@coorpacademy/components 11.32.2 → 11.32.3

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.
@@ -127,7 +127,7 @@ const LearnerSkillCard = (props, context) => {
127
127
  "data-name": "skill-completed-courses"
128
128
  }, /*#__PURE__*/React.createElement("span", {
129
129
  className: style.progressInformationNumber
130
- }, completedCourses), coursesCompletedLocale), /*#__PURE__*/React.createElement("div", {
130
+ }, completedCourses), ` ${coursesCompletedLocale}`), /*#__PURE__*/React.createElement("div", {
131
131
  className: style.progressInformation,
132
132
  "data-name": "completed-percentage"
133
133
  }, /*#__PURE__*/React.createElement("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useState","convert","PropTypes","Icon","ButtonLink","Provider","style","LearnerSkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","focus","metrics","review","onReviewClick","onExploreClick","skillCourses","skillQuestions","completedCourses","skin","translate","hovered","setHovered","primarySkinColor","reviewLocale","exploreLocale","coursesLocale","questionsLocale","skillFocusLocale","coursesCompletedLocale","handleMouseOver","handleMouseLeave","buttonReviewProps","customStyle","backgroundColor","transition","disabled","onClick","label","buttonExploreProps","color","icon","position","faIcon","name","size","completedPercentage","Number","parseInt","ProgressBar","progressBarColor","inlineProgressValueStyle","width","progressWrapper","progress","learnerSkillCardWrapper","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","skillTitleWrapper","skillFocusBadge","faSize","wrapperSize","progressInformations","progressInformation","progressInformationNumber","ctaWrapper","buttonWrapper","contextTypes","childContextTypes","propTypes","string","bool","shape","number","func"],"sources":["../../../src/molecule/learner-skill-card/index.js"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {convert} from 'css-color-function';\nimport {get, getOr} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst LearnerSkillCard = (props, context) => {\n const {\n 'aria-label': ariaLabel,\n skillTitle,\n skillAriaLabel,\n focus = false,\n metrics,\n review = false,\n onReviewClick,\n onExploreClick\n } = props;\n const {skillCourses, skillQuestions, completedCourses = 0} = metrics;\n const {skin, translate} = context;\n const [hovered, setHovered] = useState(false);\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const reviewLocale = translate('Review');\n const exploreLocale = translate('Explore');\n const coursesLocale = translate('courses');\n const questionsLocale = translate('questions');\n const skillFocusLocale = translate('skill_focus');\n const coursesCompletedLocale = translate('courses_completed');\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const buttonReviewProps = {\n customStyle: {\n backgroundColor: '#FFF',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n disabled: !review,\n onClick: onReviewClick,\n 'aria-label': `${skillTitle}, ${reviewLocale}`,\n label: reviewLocale,\n 'data-name': 'learner-skill-card-review-button'\n };\n\n const buttonExploreProps = {\n customStyle: {\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n onClick: onExploreClick,\n 'aria-label': `${skillTitle}, ${exploreLocale}`,\n label: exploreLocale,\n 'data-name': 'learner-skill-card-explore-button',\n icon: {\n position: 'left',\n faIcon: {\n name: 'compass',\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }\n };\n\n const completedPercentage =\n skillCourses && Number.parseInt((completedCourses / skillCourses) * 100);\n\n const ProgressBar = useCallback(() => {\n if (!skillCourses) return null;\n\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${completedPercentage}%`\n };\n\n return (\n <div className={style.progressWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n role=\"progressbar\"\n aria-label={get('progression', ariaLabel)}\n />\n </div>\n );\n }, [completedPercentage, ariaLabel, skillCourses]);\n\n return (\n <div\n className={style.learnerSkillCardWrapper}\n data-name=\"learner-skill-card-wrapper\"\n aria-label={ariaLabel}\n >\n {skillCourses || skillQuestions ? (\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {skillCourses ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{skillCourses}</span> {coursesLocale}\n </div>\n ) : null}\n {skillQuestions ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{skillQuestions}</span>\n &nbsp;{questionsLocale}\n </div>\n ) : null}\n </div>\n ) : null}\n <div className={style.skillTitleWrapper}>\n <div\n data-name=\"skill-title\"\n className={style.skillTitle}\n aria-label={skillAriaLabel || skillTitle}\n >\n {skillTitle}\n </div>\n {focus ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n size={{\n faSize: 10,\n wrapperSize: 16\n }}\n />\n {skillFocusLocale}\n </div>\n ) : null}\n </div>\n <ProgressBar />\n <div className={style.progressInformations}>\n {skillCourses && (\n <>\n <div className={style.progressInformation} data-name=\"skill-completed-courses\">\n <span className={style.progressInformationNumber}>{completedCourses}</span>\n {coursesCompletedLocale}\n </div>\n <div className={style.progressInformation} data-name=\"completed-percentage\">\n <span className={style.progressInformationNumber}>{completedPercentage}%</span>\n </div>\n </>\n )}\n </div>\n <div className={style.ctaWrapper} data-name=\"cta-wrapper\">\n <ButtonLink {...buttonReviewProps} />\n <div\n className={style.buttonWrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-name=\"button-explore-wrapper\"\n >\n <ButtonLink {...buttonExploreProps} />\n </div>\n </div>\n </div>\n );\n};\n\nLearnerSkillCard.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nLearnerSkillCard.propTypes = {\n 'aria-label': PropTypes.string,\n skillTitle: PropTypes.string,\n skillAriaLabel: PropTypes.string,\n focus: PropTypes.bool,\n metrics: PropTypes.shape({\n skillCourses: PropTypes.number,\n skillQuestions: PropTypes.number,\n completedCourses: PropTypes.number\n }),\n review: PropTypes.bool,\n onReviewClick: PropTypes.func,\n onExploreClick: PropTypes.func\n};\n\nexport default LearnerSkillCard;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useState","convert","PropTypes","Icon","ButtonLink","Provider","style","LearnerSkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","focus","metrics","review","onReviewClick","onExploreClick","skillCourses","skillQuestions","completedCourses","skin","translate","hovered","setHovered","primarySkinColor","reviewLocale","exploreLocale","coursesLocale","questionsLocale","skillFocusLocale","coursesCompletedLocale","handleMouseOver","handleMouseLeave","buttonReviewProps","customStyle","backgroundColor","transition","disabled","onClick","label","buttonExploreProps","color","icon","position","faIcon","name","size","completedPercentage","Number","parseInt","ProgressBar","progressBarColor","inlineProgressValueStyle","width","progressWrapper","progress","learnerSkillCardWrapper","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","skillTitleWrapper","skillFocusBadge","faSize","wrapperSize","progressInformations","progressInformation","progressInformationNumber","ctaWrapper","buttonWrapper","contextTypes","childContextTypes","propTypes","string","bool","shape","number","func"],"sources":["../../../src/molecule/learner-skill-card/index.js"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {convert} from 'css-color-function';\nimport {get, getOr} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst LearnerSkillCard = (props, context) => {\n const {\n 'aria-label': ariaLabel,\n skillTitle,\n skillAriaLabel,\n focus = false,\n metrics,\n review = false,\n onReviewClick,\n onExploreClick\n } = props;\n const {skillCourses, skillQuestions, completedCourses = 0} = metrics;\n const {skin, translate} = context;\n const [hovered, setHovered] = useState(false);\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const reviewLocale = translate('Review');\n const exploreLocale = translate('Explore');\n const coursesLocale = translate('courses');\n const questionsLocale = translate('questions');\n const skillFocusLocale = translate('skill_focus');\n const coursesCompletedLocale = translate('courses_completed');\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const buttonReviewProps = {\n customStyle: {\n backgroundColor: '#FFF',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n disabled: !review,\n onClick: onReviewClick,\n 'aria-label': `${skillTitle}, ${reviewLocale}`,\n label: reviewLocale,\n 'data-name': 'learner-skill-card-review-button'\n };\n\n const buttonExploreProps = {\n customStyle: {\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n onClick: onExploreClick,\n 'aria-label': `${skillTitle}, ${exploreLocale}`,\n label: exploreLocale,\n 'data-name': 'learner-skill-card-explore-button',\n icon: {\n position: 'left',\n faIcon: {\n name: 'compass',\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }\n };\n\n const completedPercentage =\n skillCourses && Number.parseInt((completedCourses / skillCourses) * 100);\n\n const ProgressBar = useCallback(() => {\n if (!skillCourses) return null;\n\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${completedPercentage}%`\n };\n\n return (\n <div className={style.progressWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n role=\"progressbar\"\n aria-label={get('progression', ariaLabel)}\n />\n </div>\n );\n }, [completedPercentage, ariaLabel, skillCourses]);\n\n return (\n <div\n className={style.learnerSkillCardWrapper}\n data-name=\"learner-skill-card-wrapper\"\n aria-label={ariaLabel}\n >\n {skillCourses || skillQuestions ? (\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {skillCourses ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{skillCourses}</span> {coursesLocale}\n </div>\n ) : null}\n {skillQuestions ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{skillQuestions}</span>\n &nbsp;{questionsLocale}\n </div>\n ) : null}\n </div>\n ) : null}\n <div className={style.skillTitleWrapper}>\n <div\n data-name=\"skill-title\"\n className={style.skillTitle}\n aria-label={skillAriaLabel || skillTitle}\n >\n {skillTitle}\n </div>\n {focus ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n size={{\n faSize: 10,\n wrapperSize: 16\n }}\n />\n {skillFocusLocale}\n </div>\n ) : null}\n </div>\n <ProgressBar />\n <div className={style.progressInformations}>\n {skillCourses && (\n <>\n <div className={style.progressInformation} data-name=\"skill-completed-courses\">\n <span className={style.progressInformationNumber}>{completedCourses}</span>\n {` ${coursesCompletedLocale}`}\n </div>\n <div className={style.progressInformation} data-name=\"completed-percentage\">\n <span className={style.progressInformationNumber}>{completedPercentage}%</span>\n </div>\n </>\n )}\n </div>\n <div className={style.ctaWrapper} data-name=\"cta-wrapper\">\n <ButtonLink {...buttonReviewProps} />\n <div\n className={style.buttonWrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-name=\"button-explore-wrapper\"\n >\n <ButtonLink {...buttonExploreProps} />\n </div>\n </div>\n </div>\n );\n};\n\nLearnerSkillCard.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nLearnerSkillCard.propTypes = {\n 'aria-label': PropTypes.string,\n skillTitle: PropTypes.string,\n skillAriaLabel: PropTypes.string,\n focus: PropTypes.bool,\n metrics: PropTypes.shape({\n skillCourses: PropTypes.number,\n skillQuestions: PropTypes.number,\n completedCourses: PropTypes.number\n }),\n review: PropTypes.bool,\n onReviewClick: PropTypes.func,\n onExploreClick: PropTypes.func\n};\n\nexport default LearnerSkillCard;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/skill-picker-modal/index.js"],"names":[],"mappings":";AASA,gFA8HC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/skill-picker-modal/index.js"],"names":[],"mappings":";AASA,gFA0HC"}
@@ -43,13 +43,13 @@ const SkillPickerModal = (props, context) => {
43
43
  }, [skills, selectedSkillList, skillsLocales]);
44
44
  const isError = useMemo(() => selectedSkillList.length > maxSelectedSkills || selectedSkillList.length < minSelectedSkills, [selectedSkillList, maxSelectedSkills]);
45
45
  const footer = useMemo(() => {
46
- const footerDescription = isError ? translate('skill_focus_footer_error_description', {
46
+ const footerDescription = selectedSkillList.length > maxSelectedSkills ? translate('skill_focus_footer_error_description', {
47
47
  skillNumber: selectedSkillList.length - maxSelectedSkills
48
48
  }) : translate('skill_focus_footer_description', {
49
49
  skillNumber: minSelectedSkills - selectedSkillList.length
50
50
  });
51
51
  return {
52
- text: isLoading || selectedSkillList.length <= maxSelectedSkills && selectedSkillList.length >= minSelectedSkills ? '' : footerDescription.replace('.'),
52
+ text: isLoading || !isError ? '' : footerDescription,
53
53
  isError,
54
54
  cancelButton: {
55
55
  onCancel: handleCancel,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useMemo","useState","useCallback","PropTypes","filter","BaseModal","Chip","Loader","Provider","style","SkillPickerModal","props","context","skills","selectedSkills","skillsLocales","isOpen","isLoading","maxSelectedSkills","minSelectedSkills","onCancel","onConfirm","onClose","translate","selectedSkillList","setSelectedSkillList","handleCancel","handleClose","skillList","map","skill","skillTitle","skillRef","focus","includes","isError","length","footer","footerDescription","skillNumber","text","replace","cancelButton","label","disabled","confirmButton","iconName","name","backgroundColor","skillPickerContainer","loaderContainer","loader","marginBottom","display","gap","flexWrap","index","handleChipClick","newSelectedSkillList","selectedSkill","contextTypes","childContextTypes","propTypes","arrayOf","string","objectOf","bool","number","func"],"sources":["../../../src/molecule/skill-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport filter from 'lodash/fp/filter';\nimport BaseModal from '../base-modal';\nimport Chip from '../../atom/chip';\nimport Loader from '../../atom/loader';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst SkillPickerModal = (props, context) => {\n const {\n skills,\n selectedSkills,\n skillsLocales,\n isOpen,\n isLoading,\n maxSelectedSkills = 6,\n minSelectedSkills = 3,\n onCancel,\n onConfirm,\n onClose\n } = props;\n const {translate} = context;\n\n const [selectedSkillList, setSelectedSkillList] = useState(selectedSkills);\n\n const handleCancel = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onCancel();\n }, [setSelectedSkillList, selectedSkills, onCancel]);\n\n const handleClose = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onClose();\n }, [setSelectedSkillList, selectedSkills, onClose]);\n\n const skillList = useMemo(() => {\n return skills.map(skill => {\n return {\n skillTitle: skillsLocales[skill],\n skillRef: skill,\n focus: selectedSkillList.includes(skill)\n };\n });\n }, [skills, selectedSkillList, skillsLocales]);\n\n const isError = useMemo(\n () =>\n selectedSkillList.length > maxSelectedSkills || selectedSkillList.length < minSelectedSkills,\n [selectedSkillList, maxSelectedSkills]\n );\n\n const footer = useMemo(() => {\n const footerDescription = isError\n ? translate('skill_focus_footer_error_description', {\n skillNumber: selectedSkillList.length - maxSelectedSkills\n })\n : translate('skill_focus_footer_description', {\n skillNumber: minSelectedSkills - selectedSkillList.length\n });\n return {\n text:\n isLoading ||\n (selectedSkillList.length <= maxSelectedSkills &&\n selectedSkillList.length >= minSelectedSkills)\n ? ''\n : footerDescription.replace('.'),\n isError,\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel'),\n disabled: isLoading || isError\n },\n confirmButton: {\n onConfirm: () => onConfirm(selectedSkillList),\n label: translate('confirm'),\n iconName: 'circle-check',\n disabled: isLoading || isError\n }\n };\n }, [\n isError,\n handleCancel,\n onConfirm,\n translate,\n selectedSkillList,\n isLoading,\n maxSelectedSkills,\n minSelectedSkills\n ]);\n\n if ((!isLoading && !skills) || !isOpen) return null;\n\n return (\n <BaseModal\n title={translate('skill_focus')}\n description={translate('skill_focus_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n headerIcon={{\n name: 'bullseye-arrow',\n backgroundColor: '#DDD1FF'\n }}\n >\n <div className={style.skillPickerContainer}>\n {isLoading ? (\n <div className={style.loaderContainer}>\n <Loader className={style.loader} theme=\"coorpmanager\" />\n </div>\n ) : (\n <>\n <div style={{marginBottom: '16px'}}>\n {`${selectedSkillList.length} ${translate('selected')}`}\n </div>\n <div style={{display: 'flex', gap: '16px', flexWrap: 'wrap'}}>\n {skillList.map((skill, index) => {\n const {skillTitle, skillRef, focus} = skill;\n function handleChipClick() {\n const newSelectedSkillList = focus\n ? filter(selectedSkill => selectedSkill !== skillRef, selectedSkillList)\n : [...selectedSkillList, skill.skillRef];\n setSelectedSkillList(newSelectedSkillList);\n }\n\n return (\n <Chip text={skillTitle} selected={focus} onClick={handleChipClick} key={index} />\n );\n })}\n </div>\n </>\n )}\n </div>\n </BaseModal>\n );\n};\n\nSkillPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nSkillPickerModal.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n isOpen: PropTypes.bool,\n isLoading: PropTypes.bool,\n minSelectedSkills: PropTypes.number,\n maxSelectedSkills: PropTypes.number,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default SkillPickerModal;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","useState","useCallback","PropTypes","filter","BaseModal","Chip","Loader","Provider","style","SkillPickerModal","props","context","skills","selectedSkills","skillsLocales","isOpen","isLoading","maxSelectedSkills","minSelectedSkills","onCancel","onConfirm","onClose","translate","selectedSkillList","setSelectedSkillList","handleCancel","handleClose","skillList","map","skill","skillTitle","skillRef","focus","includes","isError","length","footer","footerDescription","skillNumber","text","cancelButton","label","disabled","confirmButton","iconName","name","backgroundColor","skillPickerContainer","loaderContainer","loader","marginBottom","display","gap","flexWrap","index","handleChipClick","newSelectedSkillList","selectedSkill","contextTypes","childContextTypes","propTypes","arrayOf","string","objectOf","bool","number","func"],"sources":["../../../src/molecule/skill-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport filter from 'lodash/fp/filter';\nimport BaseModal from '../base-modal';\nimport Chip from '../../atom/chip';\nimport Loader from '../../atom/loader';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst SkillPickerModal = (props, context) => {\n const {\n skills,\n selectedSkills,\n skillsLocales,\n isOpen,\n isLoading,\n maxSelectedSkills = 6,\n minSelectedSkills = 3,\n onCancel,\n onConfirm,\n onClose\n } = props;\n const {translate} = context;\n\n const [selectedSkillList, setSelectedSkillList] = useState(selectedSkills);\n\n const handleCancel = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onCancel();\n }, [setSelectedSkillList, selectedSkills, onCancel]);\n\n const handleClose = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onClose();\n }, [setSelectedSkillList, selectedSkills, onClose]);\n\n const skillList = useMemo(() => {\n return skills.map(skill => {\n return {\n skillTitle: skillsLocales[skill],\n skillRef: skill,\n focus: selectedSkillList.includes(skill)\n };\n });\n }, [skills, selectedSkillList, skillsLocales]);\n\n const isError = useMemo(\n () =>\n selectedSkillList.length > maxSelectedSkills || selectedSkillList.length < minSelectedSkills,\n [selectedSkillList, maxSelectedSkills]\n );\n\n const footer = useMemo(() => {\n const footerDescription =\n selectedSkillList.length > maxSelectedSkills\n ? translate('skill_focus_footer_error_description', {\n skillNumber: selectedSkillList.length - maxSelectedSkills\n })\n : translate('skill_focus_footer_description', {\n skillNumber: minSelectedSkills - selectedSkillList.length\n });\n return {\n text: isLoading || !isError ? '' : footerDescription,\n isError,\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel'),\n disabled: isLoading || isError\n },\n confirmButton: {\n onConfirm: () => onConfirm(selectedSkillList),\n label: translate('confirm'),\n iconName: 'circle-check',\n disabled: isLoading || isError\n }\n };\n }, [\n isError,\n handleCancel,\n onConfirm,\n translate,\n selectedSkillList,\n isLoading,\n maxSelectedSkills,\n minSelectedSkills\n ]);\n\n if ((!isLoading && !skills) || !isOpen) return null;\n\n return (\n <BaseModal\n title={translate('skill_focus')}\n description={translate('skill_focus_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n headerIcon={{\n name: 'bullseye-arrow',\n backgroundColor: '#DDD1FF'\n }}\n >\n <div className={style.skillPickerContainer}>\n {isLoading ? (\n <div className={style.loaderContainer}>\n <Loader className={style.loader} theme=\"coorpmanager\" />\n </div>\n ) : (\n <>\n <div style={{marginBottom: '16px'}}>\n {`${selectedSkillList.length} ${translate('selected')}`}\n </div>\n <div style={{display: 'flex', gap: '16px', flexWrap: 'wrap'}}>\n {skillList.map((skill, index) => {\n const {skillTitle, skillRef, focus} = skill;\n function handleChipClick() {\n const newSelectedSkillList = focus\n ? filter(selectedSkill => selectedSkill !== skillRef, selectedSkillList)\n : [...selectedSkillList, skill.skillRef];\n setSelectedSkillList(newSelectedSkillList);\n }\n\n return (\n <Chip text={skillTitle} selected={focus} onClick={handleChipClick} key={index} />\n );\n })}\n </div>\n </>\n )}\n </div>\n </BaseModal>\n );\n};\n\nSkillPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nSkillPickerModal.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n isOpen: PropTypes.bool,\n isLoading: PropTypes.bool,\n minSelectedSkills: PropTypes.number,\n maxSelectedSkills: PropTypes.number,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default SkillPickerModal;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/skills-chart-side-information-panel/index.js"],"names":[],"mappings":";AAMA;;gBAWC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/skills-chart-side-information-panel/index.js"],"names":[],"mappings":";AAMA;;gBAeC"}
@@ -15,6 +15,7 @@ const SkillsChartSideInformationPanel = ({
15
15
  })), sidePanelItems);
16
16
 
17
17
  return /*#__PURE__*/React.createElement("div", {
18
+ "data-name": "skill-chart-side-panel",
18
19
  className: style.sidePanel
19
20
  }, sidePanel);
20
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","SkillsChartSideInformationItem","style","SkillsChartSideInformationPanel","sidePanelItems","sidePanel","sidePanelItemProps","title","propTypes","arrayOf","shape"],"sources":["../../../src/molecule/skills-chart-side-information-panel/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {map} from 'lodash/fp';\nimport SkillsChartSideInformationItem from '../skills-chart-side-information-item';\nimport style from './style.css';\n\nconst SkillsChartSideInformationPanel = ({sidePanelItems = []}) => {\n const sidePanel = map(\n sidePanelItemProps => (\n <SkillsChartSideInformationItem\n {...sidePanelItemProps}\n key={`side-panel-item-${sidePanelItemProps.title}`}\n />\n ),\n sidePanelItems\n );\n return <div className={style.sidePanel}>{sidePanel}</div>;\n};\n\nSkillsChartSideInformationPanel.propTypes = {\n sidePanelItems: PropTypes.arrayOf(PropTypes.shape(SkillsChartSideInformationItem.propTypes))\n};\n\nexport default SkillsChartSideInformationPanel;\n"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,8BAAP,MAA2C,uCAA3C;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,+BAA+B,GAAG,CAAC;EAACC,cAAc,GAAG;AAAlB,CAAD,KAA2B;EACjE,MAAMC,SAAS,GAAG,KAChBC,kBAAkB,iBAChB,oBAAC,8BAAD,eACMA,kBADN;IAEE,GAAG,EAAG,mBAAkBA,kBAAkB,CAACC,KAAM;EAFnD,GAFc,EAOhBH,cAPgB,CAAlB;;EASA,oBAAO;IAAK,SAAS,EAAEF,KAAK,CAACG;EAAtB,GAAkCA,SAAlC,CAAP;AACD,CAXD;;AAaAF,+BAA+B,CAACK,SAAhC,2CAA4C;EAC1CJ,cAAc,EAAEJ,SAAS,CAACS,OAAV,CAAkBT,SAAS,CAACU,KAAV,CAAgBT,8BAA8B,CAACO,SAA/C,CAAlB;AAD0B,CAA5C;AAIA,eAAeL,+BAAf"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","SkillsChartSideInformationItem","style","SkillsChartSideInformationPanel","sidePanelItems","sidePanel","sidePanelItemProps","title","propTypes","arrayOf","shape"],"sources":["../../../src/molecule/skills-chart-side-information-panel/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {map} from 'lodash/fp';\nimport SkillsChartSideInformationItem from '../skills-chart-side-information-item';\nimport style from './style.css';\n\nconst SkillsChartSideInformationPanel = ({sidePanelItems = []}) => {\n const sidePanel = map(\n sidePanelItemProps => (\n <SkillsChartSideInformationItem\n {...sidePanelItemProps}\n key={`side-panel-item-${sidePanelItemProps.title}`}\n />\n ),\n sidePanelItems\n );\n return (\n <div data-name=\"skill-chart-side-panel\" className={style.sidePanel}>\n {sidePanel}\n </div>\n );\n};\n\nSkillsChartSideInformationPanel.propTypes = {\n sidePanelItems: PropTypes.arrayOf(PropTypes.shape(SkillsChartSideInformationItem.propTypes))\n};\n\nexport default SkillsChartSideInformationPanel;\n"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,8BAAP,MAA2C,uCAA3C;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,+BAA+B,GAAG,CAAC;EAACC,cAAc,GAAG;AAAlB,CAAD,KAA2B;EACjE,MAAMC,SAAS,GAAG,KAChBC,kBAAkB,iBAChB,oBAAC,8BAAD,eACMA,kBADN;IAEE,GAAG,EAAG,mBAAkBA,kBAAkB,CAACC,KAAM;EAFnD,GAFc,EAOhBH,cAPgB,CAAlB;;EASA,oBACE;IAAK,aAAU,wBAAf;IAAwC,SAAS,EAAEF,KAAK,CAACG;EAAzD,GACGA,SADH,CADF;AAKD,CAfD;;AAiBAF,+BAA+B,CAACK,SAAhC,2CAA4C;EAC1CJ,cAAc,EAAEJ,SAAS,CAACS,OAAV,CAAkBT,SAAS,CAACU,KAAV,CAAgBT,8BAA8B,CAACO,SAA/C,CAAlB;AAD0B,CAA5C;AAIA,eAAeL,+BAAf"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/my-learning/index.js"],"names":[],"mappings":";AAgHA,mEAkVC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/my-learning/index.js"],"names":[],"mappings":";AAgHA,mEAuVC"}
@@ -205,6 +205,7 @@ const MyLearning = (props, context) => {
205
205
  onConfirm: handleConfirmSkillPicker,
206
206
  onClose: handleCloseSkillPicker
207
207
  }), learnerFeature ? /*#__PURE__*/React.createElement("div", {
208
+ "data-name": "skill-focus-container",
208
209
  className: style.skillFocusContainer
209
210
  }, /*#__PURE__*/React.createElement("header", {
210
211
  className: style.skillFocusHeader
@@ -223,12 +224,14 @@ const MyLearning = (props, context) => {
223
224
  })), /*#__PURE__*/React.createElement("div", {
224
225
  className: style.skillFocusHeaderContent
225
226
  }, /*#__PURE__*/React.createElement("div", {
227
+ "data-name": "skill-focus-title",
226
228
  className: style.skillFocusHeaderTitle
227
229
  }, translate('skill_focus')), /*#__PURE__*/React.createElement("div", {
230
+ "data-name": "skill-focus-description",
228
231
  className: style.skillFocusHeaderDescription
229
- }, translate('skills_focus_description')))), selectedSkillsList.length > 0 ? /*#__PURE__*/React.createElement(ChangeSkillFocusButton, {
232
+ }, translate('skills_focus_description')))), selectedSkillsList.length >= 3 ? /*#__PURE__*/React.createElement(ChangeSkillFocusButton, {
230
233
  onClick: handleOpenSkillPicker
231
- }) : null), selectedSkillsList.length > 0 ? /*#__PURE__*/React.createElement("div", {
234
+ }) : null), selectedSkillsList.length >= 3 ? /*#__PURE__*/React.createElement("div", {
232
235
  className: style.skillFocusContent
233
236
  }, /*#__PURE__*/React.createElement("div", {
234
237
  className: style.radarContainer
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useState","useMemo","PropTypes","convert","Provider","Icon","Picture","ButtonLink","ToolTip","ReviewNoSkills","SearchForm","SkillPickerModal","ResponsiveLearningProfileRadarChart","SkillsChartSideInformationPanel","LearnerSkillCard","searchValueIncluded","style","ChangeSkillFocusButton","props","context","hovered","setHovered","onClick","skin","translate","primarySkinColor","handleMouseOver","handleMouseLeave","backgroundColor","color","transition","position","faIcon","name","size","contextTypes","childContextTypes","propTypes","func","FilterButton","active","filter","skillTotal","Content","skillFilterNumber","skillFilterNumberInActive","buttonProps","customStyle","width","content","bool","string","number","MyLearning","skills","selectedSkills","skillsInformation","skillsLocales","learnerFeature","isLoading","onSkillFocusConfirm","onReviewSkill","onExploreSkill","open","setOpen","selectedSkillsList","setSelectedSkillsList","skillFocusSelectedOnChart","setSkillFocusSelectedOnChart","undefined","searchValue","setSearchValue","searchResults","setSearchResults","activeFilter","setActiveFilter","skillsReviewReady","skill","availableForReview","graphDatas","stats","score","graphLegends","filters","all","review","sumKpi","kpi","coursedCompletedData","questionsAnsweredData","learningHoursData","skillChartPaneLegends","focusedSkill","skillChartPanelProps","title","value","legend","icon","iconName","handleOnDotClick","skillRef","handleOpenSkillPicker","handleCloseSkillPicker","handleConfirmSkillPicker","focusSkillList","handleSearch","handleSearchReset","ReviewTooltipContent","backgroundContainer","container","skillFocusContainer","skillFocusHeader","skillFocusHeaderWrapper","skillFocusHeaderIcon","faSize","wrapperSize","skillFocusHeaderContent","skillFocusHeaderTitle","skillFocusHeaderDescription","length","skillFocusContent","radarContainer","gradient","fill","stroke","percentage","background","label","skillFocusEmpty","img","skillFocusEmptyTitle","skillFocusEmptyDescription","skillListHeader","skillListHeaderIcon","skillListHeaderContent","skillListHeaderTitle","skillListHeaderDescription","infoIconTooltip","tooltip","toolBarContainer","skillFilterContainer","map","index","handleFilterClick","searchWrapper","placeholder","onChange","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","skillListContainer","skillListEmptyContainer","handleReviewSkill","handleExploreSkill","includes","skillCourses","courses","skillQuestions","questionsAnswered","completedCourses","coursesCompleted","arrayOf","objectOf","shape","learningHours"],"sources":["../../../src/template/my-learning/index.js"],"sourcesContent":["import React, {useCallback, useState, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {convert} from 'css-color-function';\nimport {getOr, keys, map, fromPairs, pipe, sumBy} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport Picture from '../../atom/picture';\nimport ButtonLink from '../../atom/button-link';\nimport ToolTip from '../../atom/tooltip';\nimport ReviewNoSkills from '../../organism/review-no-skills';\nimport SearchForm from '../../molecule/search-form';\nimport SkillPickerModal from '../../molecule/skill-picker-modal';\nimport ResponsiveLearningProfileRadarChart from '../../molecule/learning-profile-radar-chart';\nimport SkillsChartSideInformationPanel from '../../molecule/skills-chart-side-information-panel';\nimport LearnerSkillCard from '../../molecule/learner-skill-card';\nimport searchValueIncluded from '../../util/search-value-included';\nimport style from './style.css';\n\nconst ChangeSkillFocusButton = (props, context) => {\n const [hovered, setHovered] = useState(false);\n const {onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n return (\n <div\n data-name=\"button-explore-wrapper\"\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n >\n <ButtonLink\n customStyle={{\n backgroundColor: hovered\n ? primarySkinColor\n : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n }}\n onClick={onClick}\n label={translate('skills_change_focus')}\n data-name=\"change-skill-focus-button\"\n icon={{\n position: 'left',\n faIcon: {\n name: 'arrows-rotate',\n backgroundColor: hovered\n ? primarySkinColor\n : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }}\n />\n </div>\n );\n};\n\nChangeSkillFocusButton.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nChangeSkillFocusButton.propTypes = {\n onClick: PropTypes.func\n};\n\nconst FilterButton = (props, context) => {\n const {active, filter, skillTotal, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const Content = useCallback(\n () => (\n <div>\n {filter}\n <span className={active ? style.skillFilterNumber : style.skillFilterNumberInActive}>\n {skillTotal}\n </span>\n </div>\n ),\n [filter, skillTotal, active]\n );\n\n const buttonProps = {\n customStyle: {\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#FFFFFF',\n color: active ? primarySkinColor : '#9999A8',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: filter === translate('review_mode_available') ? '200px' : 'fit-content'\n },\n onClick,\n content: <Content />,\n 'data-name': 'change-skill-focus-button'\n };\n\n return <ButtonLink {...buttonProps} />;\n};\n\nFilterButton.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nFilterButton.propTypes = {\n active: PropTypes.bool,\n filter: PropTypes.string,\n skillTotal: PropTypes.number,\n onClick: PropTypes.func\n};\n\nconst MyLearning = (props, context) => {\n const {\n skills,\n selectedSkills = [],\n skillsInformation,\n skillsLocales,\n learnerFeature = true,\n isLoading,\n onSkillFocusConfirm,\n onReviewSkill,\n onExploreSkill\n } = props;\n const {translate} = context;\n const [open, setOpen] = useState(false);\n const [selectedSkillsList, setSelectedSkillsList] = useState(selectedSkills);\n const [skillFocusSelectedOnChart, setSkillFocusSelectedOnChart] = useState(undefined);\n const [searchValue, setSearchValue] = useState('');\n const [searchResults, setSearchResults] = useState(skills);\n const [activeFilter, setActiveFilter] = useState('all');\n\n const skillsReviewReady = useMemo(() => {\n return searchResults.filter(skill => skillsInformation[skill].availableForReview);\n }, [searchResults, skillsInformation]);\n\n const graphDatas = useMemo(\n () =>\n pipe(\n map(skill => [skill, skillsInformation[skill].stats.score]),\n fromPairs\n )(selectedSkillsList),\n [selectedSkillsList, skillsInformation]\n );\n\n const graphLegends = useMemo(\n () =>\n pipe(\n map(skill => [skill, skillsLocales[skill]]),\n fromPairs\n )(selectedSkillsList),\n [selectedSkillsList, skillsLocales]\n );\n\n const filters = useMemo(() => {\n return {\n all: searchResults,\n review: skillsReviewReady\n };\n }, [searchResults, skillsReviewReady]);\n\n const sumKpi = useCallback(\n kpi =>\n skillFocusSelectedOnChart\n ? skillsInformation[skillFocusSelectedOnChart].stats[kpi]\n : sumBy(skill => skillsInformation[skill].stats[kpi], selectedSkillsList),\n [skillFocusSelectedOnChart, skillsInformation, selectedSkillsList]\n );\n\n const coursedCompletedData = useMemo(() => sumKpi('coursesCompleted'), [sumKpi]);\n\n const questionsAnsweredData = useMemo(() => sumKpi('questionsAnswered'), [sumKpi]);\n\n const learningHoursData = useMemo(() => sumKpi('learningHours'), [sumKpi]);\n\n const skillChartPaneLegends = useMemo(\n () =>\n translate('skill_scope_specifier', {\n focusedSkill: skillFocusSelectedOnChart\n ? skillsLocales[skillFocusSelectedOnChart]\n : translate('focused_skills')\n }),\n [translate, skillsLocales, skillFocusSelectedOnChart]\n );\n const skillChartPanelProps = [\n {\n title: translate('skill_chart_side_panel_courses_completed'),\n value: `${coursedCompletedData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'book-open-cover', backgroundColor: '#D9F4F7'}\n },\n {\n title: translate('skill_chart_side_panel_questions_answered'),\n value: `${questionsAnsweredData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'circle-question', backgroundColor: '#FFDCD1'}\n },\n {\n title: translate('skill_chart_side_panel_learning_hours'),\n value: `${learningHoursData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'clock', backgroundColor: '#FAD6DE'}\n }\n ];\n\n const handleOnDotClick = useCallback(\n skillRef => {\n skillRef && setSkillFocusSelectedOnChart(skillRef);\n },\n [setSkillFocusSelectedOnChart]\n );\n const handleOpenSkillPicker = useCallback(() => setOpen(true), [setOpen]);\n const handleCloseSkillPicker = useCallback(() => setOpen(false), [setOpen]);\n const handleConfirmSkillPicker = useCallback(\n focusSkillList => {\n setSelectedSkillsList(focusSkillList);\n onSkillFocusConfirm(focusSkillList);\n setOpen(false);\n },\n [onSkillFocusConfirm, setSelectedSkillsList, setOpen]\n );\n const handleSearch = useCallback(\n value => {\n setSearchValue(value);\n setSearchResults(skills.filter(skill => searchValueIncluded(skillsLocales[skill], value)));\n },\n [skills, skillsLocales, setSearchValue, setSearchResults]\n );\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n setSearchResults(skills);\n }, [skills, setSearchValue, setSearchResults]);\n\n const ReviewTooltipContent = useCallback(\n () => (\n <div>\n <div>\n <b>{translate('review_mode_tooltip_header')}</b>\n </div>\n <p>{translate('review_mode_tooltip_content')}</p>\n <ol>\n <li>{translate('review_mode_tooltip_content_part1')}</li>\n <li>{translate('review_mode_tooltip_content_part2')}</li>\n <li>{translate('review_mode_tooltip_content_part3')}</li>\n <li>{translate('review_mode_tooltip_content_part4')}</li>\n </ol>\n </div>\n ),\n [translate]\n );\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container}>\n <SkillPickerModal\n skills={skills}\n selectedSkills={selectedSkillsList}\n skillsLocales={skillsLocales}\n isOpen={open}\n isLoading={isLoading}\n onCancel={handleCloseSkillPicker}\n onConfirm={handleConfirmSkillPicker}\n onClose={handleCloseSkillPicker}\n />\n {learnerFeature ? (\n <div className={style.skillFocusContainer}>\n <header className={style.skillFocusHeader}>\n <div className={style.skillFocusHeaderWrapper}>\n <div className={style.skillFocusHeaderIcon}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n borderRadius=\"12px\"\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n <div className={style.skillFocusHeaderContent}>\n <div className={style.skillFocusHeaderTitle}>{translate('skill_focus')}</div>\n <div className={style.skillFocusHeaderDescription}>\n {translate('skills_focus_description')}\n </div>\n </div>\n </div>\n {selectedSkillsList.length > 0 ? (\n <ChangeSkillFocusButton onClick={handleOpenSkillPicker} />\n ) : null}\n </header>\n {selectedSkillsList.length > 0 ? (\n <div className={style.skillFocusContent}>\n <div className={style.radarContainer}>\n <ResponsiveLearningProfileRadarChart\n totalDataset={1}\n height={424}\n width={680}\n data={graphDatas}\n legend={graphLegends}\n onClick={handleOnDotClick}\n colors={[\n {\n gradient: {\n fill: ['#0062ffff', '#8000ff85'],\n stroke: ['#0062ffff', '#8000FF']\n },\n percentage: {\n color: '#0061FF',\n background:\n 'linear-gradient(180deg, rgba(0, 97, 255, 0.10) 0%, rgba(147, 107, 255, 0.10) 100%)'\n },\n label: {\n color: '#020202ff'\n }\n }\n ]}\n />\n </div>\n <SkillsChartSideInformationPanel sidePanelItems={skillChartPanelProps} />\n </div>\n ) : (\n <div className={style.skillFocusEmpty}>\n <Picture\n className={style.img}\n src=\"https://static.coorpacademy.com/assets/images/mylearning-no-skill-selected-placeholder.svg\"\n alt=\"demo\"\n />\n <div className={style.skillFocusEmptyTitle}>\n {translate('skills_focus_empty_title')}\n </div>\n <div className={style.skillFocusEmptyDescription}>\n {translate('skills_focus_empty_description')}\n </div>\n <ButtonLink\n label={translate('skills_choose_focus')}\n type=\"primary\"\n customStyle={{width: '168px'}}\n onClick={handleOpenSkillPicker}\n />\n </div>\n )}\n </div>\n ) : null}\n <header className={style.skillListHeader}>\n <div className={style.skillListHeaderIcon}>\n <Icon\n iconName=\"dumbbell\"\n backgroundColor=\"#FFF9D1\"\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n <div className={style.skillListHeaderContent}>\n <div className={style.skillListHeaderTitle}>{translate('skills_section_title')}</div>\n <div className={style.skillListHeaderDescription}>\n {translate('skills_section_description')}\n <ToolTip\n fontSize={12}\n iconContainerClassName={style.infoIconTooltip}\n tooltipClassName={style.tooltip}\n TooltipContent={ReviewTooltipContent}\n closeToolTipInformationTextAriaLabel={translate(\n 'Press the escape key to close the information text'\n )}\n />\n </div>\n </div>\n </header>\n <div className={style.toolBarContainer}>\n <div className={style.skillFilterContainer}>\n {keys(filters).map((filter, index) => {\n function handleFilterClick() {\n setActiveFilter(filter);\n }\n\n return (\n <div key={index}>\n <FilterButton\n active={activeFilter === filter}\n filter={\n filter === 'all' ? translate('all') : translate('review_mode_available')\n }\n skillTotal={filters[filter].length}\n onClick={handleFilterClick}\n />\n </div>\n );\n })}\n </div>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleSearchReset}\n />\n </div>\n </div>\n {searchValue && searchResults.length === 0 ? (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleSearchReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n ) : (\n <div className={style.skillListContainer}>\n {activeFilter === 'review_mode_available' && filters[activeFilter].length === 0 ? (\n <div className={style.skillListEmptyContainer}>\n <ReviewNoSkills\n titleNoSkills={translate('review_skill_empty')}\n textNoSkills={translate('review_skill_empty_description')}\n iconSkillAriaLabel={translate('review_skill_empty')}\n imagePosition=\"top\"\n />\n </div>\n ) : (\n filters[activeFilter].map((skill, index) => {\n function handleReviewSkill() {\n onReviewSkill(skill);\n }\n function handleExploreSkill() {\n onExploreSkill(skill);\n }\n return (\n <div key={index}>\n <LearnerSkillCard\n skillTitle={skillsLocales[skill]}\n focus={selectedSkills.includes(skill)}\n metrics={{\n skillCourses: skillsInformation[skill].stats.courses,\n skillQuestions: skillsInformation[skill].stats.questionsAnswered,\n completedCourses: skillsInformation[skill].stats.coursesCompleted\n }}\n review={skillsInformation[skill].availableForReview}\n onReviewClick={handleReviewSkill}\n onExploreClick={handleExploreSkill}\n />\n </div>\n );\n })\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nMyLearning.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nMyLearning.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsInformation: PropTypes.objectOf(\n PropTypes.shape({\n availableForReview: PropTypes.bool,\n stats: PropTypes.shape({\n score: PropTypes.number,\n courses: PropTypes.number,\n coursesCompleted: PropTypes.number,\n questionsAnswered: PropTypes.number,\n learningHours: PropTypes.number\n })\n })\n ),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n learnerFeature: PropTypes.bool,\n isLoading: PropTypes.bool,\n onSkillFocusConfirm: PropTypes.func,\n onReviewSkill: PropTypes.func,\n onExploreSkill: PropTypes.func\n};\n\nexport default MyLearning;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useState","useMemo","PropTypes","convert","Provider","Icon","Picture","ButtonLink","ToolTip","ReviewNoSkills","SearchForm","SkillPickerModal","ResponsiveLearningProfileRadarChart","SkillsChartSideInformationPanel","LearnerSkillCard","searchValueIncluded","style","ChangeSkillFocusButton","props","context","hovered","setHovered","onClick","skin","translate","primarySkinColor","handleMouseOver","handleMouseLeave","backgroundColor","color","transition","position","faIcon","name","size","contextTypes","childContextTypes","propTypes","func","FilterButton","active","filter","skillTotal","Content","skillFilterNumber","skillFilterNumberInActive","buttonProps","customStyle","width","content","bool","string","number","MyLearning","skills","selectedSkills","skillsInformation","skillsLocales","learnerFeature","isLoading","onSkillFocusConfirm","onReviewSkill","onExploreSkill","open","setOpen","selectedSkillsList","setSelectedSkillsList","skillFocusSelectedOnChart","setSkillFocusSelectedOnChart","undefined","searchValue","setSearchValue","searchResults","setSearchResults","activeFilter","setActiveFilter","skillsReviewReady","skill","availableForReview","graphDatas","stats","score","graphLegends","filters","all","review","sumKpi","kpi","coursedCompletedData","questionsAnsweredData","learningHoursData","skillChartPaneLegends","focusedSkill","skillChartPanelProps","title","value","legend","icon","iconName","handleOnDotClick","skillRef","handleOpenSkillPicker","handleCloseSkillPicker","handleConfirmSkillPicker","focusSkillList","handleSearch","handleSearchReset","ReviewTooltipContent","backgroundContainer","container","skillFocusContainer","skillFocusHeader","skillFocusHeaderWrapper","skillFocusHeaderIcon","faSize","wrapperSize","skillFocusHeaderContent","skillFocusHeaderTitle","skillFocusHeaderDescription","length","skillFocusContent","radarContainer","gradient","fill","stroke","percentage","background","label","skillFocusEmpty","img","skillFocusEmptyTitle","skillFocusEmptyDescription","skillListHeader","skillListHeaderIcon","skillListHeaderContent","skillListHeaderTitle","skillListHeaderDescription","infoIconTooltip","tooltip","toolBarContainer","skillFilterContainer","map","index","handleFilterClick","searchWrapper","placeholder","onChange","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","skillListContainer","skillListEmptyContainer","handleReviewSkill","handleExploreSkill","includes","skillCourses","courses","skillQuestions","questionsAnswered","completedCourses","coursesCompleted","arrayOf","objectOf","shape","learningHours"],"sources":["../../../src/template/my-learning/index.js"],"sourcesContent":["import React, {useCallback, useState, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {convert} from 'css-color-function';\nimport {getOr, keys, map, fromPairs, pipe, sumBy} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport Picture from '../../atom/picture';\nimport ButtonLink from '../../atom/button-link';\nimport ToolTip from '../../atom/tooltip';\nimport ReviewNoSkills from '../../organism/review-no-skills';\nimport SearchForm from '../../molecule/search-form';\nimport SkillPickerModal from '../../molecule/skill-picker-modal';\nimport ResponsiveLearningProfileRadarChart from '../../molecule/learning-profile-radar-chart';\nimport SkillsChartSideInformationPanel from '../../molecule/skills-chart-side-information-panel';\nimport LearnerSkillCard from '../../molecule/learner-skill-card';\nimport searchValueIncluded from '../../util/search-value-included';\nimport style from './style.css';\n\nconst ChangeSkillFocusButton = (props, context) => {\n const [hovered, setHovered] = useState(false);\n const {onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n return (\n <div\n data-name=\"button-explore-wrapper\"\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n >\n <ButtonLink\n customStyle={{\n backgroundColor: hovered\n ? primarySkinColor\n : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n }}\n onClick={onClick}\n label={translate('skills_change_focus')}\n data-name=\"change-skill-focus-button\"\n icon={{\n position: 'left',\n faIcon: {\n name: 'arrows-rotate',\n backgroundColor: hovered\n ? primarySkinColor\n : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }}\n />\n </div>\n );\n};\n\nChangeSkillFocusButton.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nChangeSkillFocusButton.propTypes = {\n onClick: PropTypes.func\n};\n\nconst FilterButton = (props, context) => {\n const {active, filter, skillTotal, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const Content = useCallback(\n () => (\n <div>\n {filter}\n <span className={active ? style.skillFilterNumber : style.skillFilterNumberInActive}>\n {skillTotal}\n </span>\n </div>\n ),\n [filter, skillTotal, active]\n );\n\n const buttonProps = {\n customStyle: {\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#FFFFFF',\n color: active ? primarySkinColor : '#9999A8',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: filter === translate('review_mode_available') ? '200px' : 'fit-content'\n },\n onClick,\n content: <Content />,\n 'data-name': 'change-skill-focus-button'\n };\n\n return <ButtonLink {...buttonProps} />;\n};\n\nFilterButton.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nFilterButton.propTypes = {\n active: PropTypes.bool,\n filter: PropTypes.string,\n skillTotal: PropTypes.number,\n onClick: PropTypes.func\n};\n\nconst MyLearning = (props, context) => {\n const {\n skills,\n selectedSkills = [],\n skillsInformation,\n skillsLocales,\n learnerFeature = true,\n isLoading,\n onSkillFocusConfirm,\n onReviewSkill,\n onExploreSkill\n } = props;\n const {translate} = context;\n const [open, setOpen] = useState(false);\n const [selectedSkillsList, setSelectedSkillsList] = useState(selectedSkills);\n const [skillFocusSelectedOnChart, setSkillFocusSelectedOnChart] = useState(undefined);\n const [searchValue, setSearchValue] = useState('');\n const [searchResults, setSearchResults] = useState(skills);\n const [activeFilter, setActiveFilter] = useState('all');\n\n const skillsReviewReady = useMemo(() => {\n return searchResults.filter(skill => skillsInformation[skill].availableForReview);\n }, [searchResults, skillsInformation]);\n\n const graphDatas = useMemo(\n () =>\n pipe(\n map(skill => [skill, skillsInformation[skill].stats.score]),\n fromPairs\n )(selectedSkillsList),\n [selectedSkillsList, skillsInformation]\n );\n\n const graphLegends = useMemo(\n () =>\n pipe(\n map(skill => [skill, skillsLocales[skill]]),\n fromPairs\n )(selectedSkillsList),\n [selectedSkillsList, skillsLocales]\n );\n\n const filters = useMemo(() => {\n return {\n all: searchResults,\n review: skillsReviewReady\n };\n }, [searchResults, skillsReviewReady]);\n\n const sumKpi = useCallback(\n kpi =>\n skillFocusSelectedOnChart\n ? skillsInformation[skillFocusSelectedOnChart].stats[kpi]\n : sumBy(skill => skillsInformation[skill].stats[kpi], selectedSkillsList),\n [skillFocusSelectedOnChart, skillsInformation, selectedSkillsList]\n );\n\n const coursedCompletedData = useMemo(() => sumKpi('coursesCompleted'), [sumKpi]);\n\n const questionsAnsweredData = useMemo(() => sumKpi('questionsAnswered'), [sumKpi]);\n\n const learningHoursData = useMemo(() => sumKpi('learningHours'), [sumKpi]);\n\n const skillChartPaneLegends = useMemo(\n () =>\n translate('skill_scope_specifier', {\n focusedSkill: skillFocusSelectedOnChart\n ? skillsLocales[skillFocusSelectedOnChart]\n : translate('focused_skills')\n }),\n [translate, skillsLocales, skillFocusSelectedOnChart]\n );\n const skillChartPanelProps = [\n {\n title: translate('skill_chart_side_panel_courses_completed'),\n value: `${coursedCompletedData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'book-open-cover', backgroundColor: '#D9F4F7'}\n },\n {\n title: translate('skill_chart_side_panel_questions_answered'),\n value: `${questionsAnsweredData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'circle-question', backgroundColor: '#FFDCD1'}\n },\n {\n title: translate('skill_chart_side_panel_learning_hours'),\n value: `${learningHoursData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'clock', backgroundColor: '#FAD6DE'}\n }\n ];\n\n const handleOnDotClick = useCallback(\n skillRef => {\n skillRef && setSkillFocusSelectedOnChart(skillRef);\n },\n [setSkillFocusSelectedOnChart]\n );\n const handleOpenSkillPicker = useCallback(() => setOpen(true), [setOpen]);\n const handleCloseSkillPicker = useCallback(() => setOpen(false), [setOpen]);\n const handleConfirmSkillPicker = useCallback(\n focusSkillList => {\n setSelectedSkillsList(focusSkillList);\n onSkillFocusConfirm(focusSkillList);\n setOpen(false);\n },\n [onSkillFocusConfirm, setSelectedSkillsList, setOpen]\n );\n const handleSearch = useCallback(\n value => {\n setSearchValue(value);\n setSearchResults(skills.filter(skill => searchValueIncluded(skillsLocales[skill], value)));\n },\n [skills, skillsLocales, setSearchValue, setSearchResults]\n );\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n setSearchResults(skills);\n }, [skills, setSearchValue, setSearchResults]);\n\n const ReviewTooltipContent = useCallback(\n () => (\n <div>\n <div>\n <b>{translate('review_mode_tooltip_header')}</b>\n </div>\n <p>{translate('review_mode_tooltip_content')}</p>\n <ol>\n <li>{translate('review_mode_tooltip_content_part1')}</li>\n <li>{translate('review_mode_tooltip_content_part2')}</li>\n <li>{translate('review_mode_tooltip_content_part3')}</li>\n <li>{translate('review_mode_tooltip_content_part4')}</li>\n </ol>\n </div>\n ),\n [translate]\n );\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container}>\n <SkillPickerModal\n skills={skills}\n selectedSkills={selectedSkillsList}\n skillsLocales={skillsLocales}\n isOpen={open}\n isLoading={isLoading}\n onCancel={handleCloseSkillPicker}\n onConfirm={handleConfirmSkillPicker}\n onClose={handleCloseSkillPicker}\n />\n {learnerFeature ? (\n <div data-name=\"skill-focus-container\" className={style.skillFocusContainer}>\n <header className={style.skillFocusHeader}>\n <div className={style.skillFocusHeaderWrapper}>\n <div className={style.skillFocusHeaderIcon}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n borderRadius=\"12px\"\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n <div className={style.skillFocusHeaderContent}>\n <div data-name=\"skill-focus-title\" className={style.skillFocusHeaderTitle}>\n {translate('skill_focus')}\n </div>\n <div\n data-name=\"skill-focus-description\"\n className={style.skillFocusHeaderDescription}\n >\n {translate('skills_focus_description')}\n </div>\n </div>\n </div>\n {selectedSkillsList.length >= 3 ? (\n <ChangeSkillFocusButton onClick={handleOpenSkillPicker} />\n ) : null}\n </header>\n {selectedSkillsList.length >= 3 ? (\n <div className={style.skillFocusContent}>\n <div className={style.radarContainer}>\n <ResponsiveLearningProfileRadarChart\n totalDataset={1}\n height={424}\n width={680}\n data={graphDatas}\n legend={graphLegends}\n onClick={handleOnDotClick}\n colors={[\n {\n gradient: {\n fill: ['#0062ffff', '#8000ff85'],\n stroke: ['#0062ffff', '#8000FF']\n },\n percentage: {\n color: '#0061FF',\n background:\n 'linear-gradient(180deg, rgba(0, 97, 255, 0.10) 0%, rgba(147, 107, 255, 0.10) 100%)'\n },\n label: {\n color: '#020202ff'\n }\n }\n ]}\n />\n </div>\n <SkillsChartSideInformationPanel sidePanelItems={skillChartPanelProps} />\n </div>\n ) : (\n <div className={style.skillFocusEmpty}>\n <Picture\n className={style.img}\n src=\"https://static.coorpacademy.com/assets/images/mylearning-no-skill-selected-placeholder.svg\"\n alt=\"demo\"\n />\n <div className={style.skillFocusEmptyTitle}>\n {translate('skills_focus_empty_title')}\n </div>\n <div className={style.skillFocusEmptyDescription}>\n {translate('skills_focus_empty_description')}\n </div>\n <ButtonLink\n label={translate('skills_choose_focus')}\n type=\"primary\"\n customStyle={{width: '168px'}}\n onClick={handleOpenSkillPicker}\n />\n </div>\n )}\n </div>\n ) : null}\n <header className={style.skillListHeader}>\n <div className={style.skillListHeaderIcon}>\n <Icon\n iconName=\"dumbbell\"\n backgroundColor=\"#FFF9D1\"\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n <div className={style.skillListHeaderContent}>\n <div className={style.skillListHeaderTitle}>{translate('skills_section_title')}</div>\n <div className={style.skillListHeaderDescription}>\n {translate('skills_section_description')}\n <ToolTip\n fontSize={12}\n iconContainerClassName={style.infoIconTooltip}\n tooltipClassName={style.tooltip}\n TooltipContent={ReviewTooltipContent}\n closeToolTipInformationTextAriaLabel={translate(\n 'Press the escape key to close the information text'\n )}\n />\n </div>\n </div>\n </header>\n <div className={style.toolBarContainer}>\n <div className={style.skillFilterContainer}>\n {keys(filters).map((filter, index) => {\n function handleFilterClick() {\n setActiveFilter(filter);\n }\n\n return (\n <div key={index}>\n <FilterButton\n active={activeFilter === filter}\n filter={\n filter === 'all' ? translate('all') : translate('review_mode_available')\n }\n skillTotal={filters[filter].length}\n onClick={handleFilterClick}\n />\n </div>\n );\n })}\n </div>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleSearchReset}\n />\n </div>\n </div>\n {searchValue && searchResults.length === 0 ? (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleSearchReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n ) : (\n <div className={style.skillListContainer}>\n {activeFilter === 'review_mode_available' && filters[activeFilter].length === 0 ? (\n <div className={style.skillListEmptyContainer}>\n <ReviewNoSkills\n titleNoSkills={translate('review_skill_empty')}\n textNoSkills={translate('review_skill_empty_description')}\n iconSkillAriaLabel={translate('review_skill_empty')}\n imagePosition=\"top\"\n />\n </div>\n ) : (\n filters[activeFilter].map((skill, index) => {\n function handleReviewSkill() {\n onReviewSkill(skill);\n }\n function handleExploreSkill() {\n onExploreSkill(skill);\n }\n return (\n <div key={index}>\n <LearnerSkillCard\n skillTitle={skillsLocales[skill]}\n focus={selectedSkills.includes(skill)}\n metrics={{\n skillCourses: skillsInformation[skill].stats.courses,\n skillQuestions: skillsInformation[skill].stats.questionsAnswered,\n completedCourses: skillsInformation[skill].stats.coursesCompleted\n }}\n review={skillsInformation[skill].availableForReview}\n onReviewClick={handleReviewSkill}\n onExploreClick={handleExploreSkill}\n />\n </div>\n );\n })\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nMyLearning.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nMyLearning.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsInformation: PropTypes.objectOf(\n PropTypes.shape({\n availableForReview: PropTypes.bool,\n stats: PropTypes.shape({\n score: PropTypes.number,\n courses: PropTypes.number,\n coursesCompleted: PropTypes.number,\n questionsAnswered: PropTypes.number,\n learningHours: PropTypes.number\n })\n })\n ),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n learnerFeature: PropTypes.bool,\n isLoading: PropTypes.bool,\n onSkillFocusConfirm: PropTypes.func,\n onReviewSkill: PropTypes.func,\n onExploreSkill: PropTypes.func\n};\n\nexport default MyLearning;\n"],"mappings":"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"}
@@ -144,7 +144,7 @@ const LearnerSkillCard = (props, context) => {
144
144
  "data-name": "skill-completed-courses"
145
145
  }, /*#__PURE__*/_react.default.createElement("span", {
146
146
  className: _style.default.progressInformationNumber
147
- }, completedCourses), coursesCompletedLocale), /*#__PURE__*/_react.default.createElement("div", {
147
+ }, completedCourses), ` ${coursesCompletedLocale}`), /*#__PURE__*/_react.default.createElement("div", {
148
148
  className: _style.default.progressInformation,
149
149
  "data-name": "completed-percentage"
150
150
  }, /*#__PURE__*/_react.default.createElement("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LearnerSkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","focus","metrics","review","onReviewClick","onExploreClick","skillCourses","skillQuestions","completedCourses","skin","translate","hovered","setHovered","useState","primarySkinColor","reviewLocale","exploreLocale","coursesLocale","questionsLocale","skillFocusLocale","coursesCompletedLocale","handleMouseOver","useCallback","handleMouseLeave","buttonReviewProps","customStyle","backgroundColor","transition","disabled","onClick","label","buttonExploreProps","convert","color","icon","position","faIcon","name","size","completedPercentage","Number","parseInt","ProgressBar","progressBarColor","inlineProgressValueStyle","width","style","progressWrapper","progress","learnerSkillCardWrapper","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","skillTitleWrapper","skillFocusBadge","faSize","wrapperSize","progressInformations","progressInformation","progressInformationNumber","ctaWrapper","buttonWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","shape","number","func"],"sources":["../../../src/molecule/learner-skill-card/index.js"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {convert} from 'css-color-function';\nimport {get, getOr} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst LearnerSkillCard = (props, context) => {\n const {\n 'aria-label': ariaLabel,\n skillTitle,\n skillAriaLabel,\n focus = false,\n metrics,\n review = false,\n onReviewClick,\n onExploreClick\n } = props;\n const {skillCourses, skillQuestions, completedCourses = 0} = metrics;\n const {skin, translate} = context;\n const [hovered, setHovered] = useState(false);\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const reviewLocale = translate('Review');\n const exploreLocale = translate('Explore');\n const coursesLocale = translate('courses');\n const questionsLocale = translate('questions');\n const skillFocusLocale = translate('skill_focus');\n const coursesCompletedLocale = translate('courses_completed');\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const buttonReviewProps = {\n customStyle: {\n backgroundColor: '#FFF',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n disabled: !review,\n onClick: onReviewClick,\n 'aria-label': `${skillTitle}, ${reviewLocale}`,\n label: reviewLocale,\n 'data-name': 'learner-skill-card-review-button'\n };\n\n const buttonExploreProps = {\n customStyle: {\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n onClick: onExploreClick,\n 'aria-label': `${skillTitle}, ${exploreLocale}`,\n label: exploreLocale,\n 'data-name': 'learner-skill-card-explore-button',\n icon: {\n position: 'left',\n faIcon: {\n name: 'compass',\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }\n };\n\n const completedPercentage =\n skillCourses && Number.parseInt((completedCourses / skillCourses) * 100);\n\n const ProgressBar = useCallback(() => {\n if (!skillCourses) return null;\n\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${completedPercentage}%`\n };\n\n return (\n <div className={style.progressWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n role=\"progressbar\"\n aria-label={get('progression', ariaLabel)}\n />\n </div>\n );\n }, [completedPercentage, ariaLabel, skillCourses]);\n\n return (\n <div\n className={style.learnerSkillCardWrapper}\n data-name=\"learner-skill-card-wrapper\"\n aria-label={ariaLabel}\n >\n {skillCourses || skillQuestions ? (\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {skillCourses ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{skillCourses}</span> {coursesLocale}\n </div>\n ) : null}\n {skillQuestions ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{skillQuestions}</span>\n &nbsp;{questionsLocale}\n </div>\n ) : null}\n </div>\n ) : null}\n <div className={style.skillTitleWrapper}>\n <div\n data-name=\"skill-title\"\n className={style.skillTitle}\n aria-label={skillAriaLabel || skillTitle}\n >\n {skillTitle}\n </div>\n {focus ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n size={{\n faSize: 10,\n wrapperSize: 16\n }}\n />\n {skillFocusLocale}\n </div>\n ) : null}\n </div>\n <ProgressBar />\n <div className={style.progressInformations}>\n {skillCourses && (\n <>\n <div className={style.progressInformation} data-name=\"skill-completed-courses\">\n <span className={style.progressInformationNumber}>{completedCourses}</span>\n {coursesCompletedLocale}\n </div>\n <div className={style.progressInformation} data-name=\"completed-percentage\">\n <span className={style.progressInformationNumber}>{completedPercentage}%</span>\n </div>\n </>\n )}\n </div>\n <div className={style.ctaWrapper} data-name=\"cta-wrapper\">\n <ButtonLink {...buttonReviewProps} />\n <div\n className={style.buttonWrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-name=\"button-explore-wrapper\"\n >\n <ButtonLink {...buttonExploreProps} />\n </div>\n </div>\n </div>\n );\n};\n\nLearnerSkillCard.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nLearnerSkillCard.propTypes = {\n 'aria-label': PropTypes.string,\n skillTitle: PropTypes.string,\n skillAriaLabel: PropTypes.string,\n focus: PropTypes.bool,\n metrics: PropTypes.shape({\n skillCourses: PropTypes.number,\n skillQuestions: PropTypes.number,\n completedCourses: PropTypes.number\n }),\n review: PropTypes.bool,\n onReviewClick: PropTypes.func,\n onExploreClick: PropTypes.func\n};\n\nexport default LearnerSkillCard;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["LearnerSkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","focus","metrics","review","onReviewClick","onExploreClick","skillCourses","skillQuestions","completedCourses","skin","translate","hovered","setHovered","useState","primarySkinColor","reviewLocale","exploreLocale","coursesLocale","questionsLocale","skillFocusLocale","coursesCompletedLocale","handleMouseOver","useCallback","handleMouseLeave","buttonReviewProps","customStyle","backgroundColor","transition","disabled","onClick","label","buttonExploreProps","convert","color","icon","position","faIcon","name","size","completedPercentage","Number","parseInt","ProgressBar","progressBarColor","inlineProgressValueStyle","width","style","progressWrapper","progress","learnerSkillCardWrapper","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","skillTitleWrapper","skillFocusBadge","faSize","wrapperSize","progressInformations","progressInformation","progressInformationNumber","ctaWrapper","buttonWrapper","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","bool","shape","number","func"],"sources":["../../../src/molecule/learner-skill-card/index.js"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {convert} from 'css-color-function';\nimport {get, getOr} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst LearnerSkillCard = (props, context) => {\n const {\n 'aria-label': ariaLabel,\n skillTitle,\n skillAriaLabel,\n focus = false,\n metrics,\n review = false,\n onReviewClick,\n onExploreClick\n } = props;\n const {skillCourses, skillQuestions, completedCourses = 0} = metrics;\n const {skin, translate} = context;\n const [hovered, setHovered] = useState(false);\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const reviewLocale = translate('Review');\n const exploreLocale = translate('Explore');\n const coursesLocale = translate('courses');\n const questionsLocale = translate('questions');\n const skillFocusLocale = translate('skill_focus');\n const coursesCompletedLocale = translate('courses_completed');\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const buttonReviewProps = {\n customStyle: {\n backgroundColor: '#FFF',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n disabled: !review,\n onClick: onReviewClick,\n 'aria-label': `${skillTitle}, ${reviewLocale}`,\n label: reviewLocale,\n 'data-name': 'learner-skill-card-review-button'\n };\n\n const buttonExploreProps = {\n customStyle: {\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n onClick: onExploreClick,\n 'aria-label': `${skillTitle}, ${exploreLocale}`,\n label: exploreLocale,\n 'data-name': 'learner-skill-card-explore-button',\n icon: {\n position: 'left',\n faIcon: {\n name: 'compass',\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }\n };\n\n const completedPercentage =\n skillCourses && Number.parseInt((completedCourses / skillCourses) * 100);\n\n const ProgressBar = useCallback(() => {\n if (!skillCourses) return null;\n\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${completedPercentage}%`\n };\n\n return (\n <div className={style.progressWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n role=\"progressbar\"\n aria-label={get('progression', ariaLabel)}\n />\n </div>\n );\n }, [completedPercentage, ariaLabel, skillCourses]);\n\n return (\n <div\n className={style.learnerSkillCardWrapper}\n data-name=\"learner-skill-card-wrapper\"\n aria-label={ariaLabel}\n >\n {skillCourses || skillQuestions ? (\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {skillCourses ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{skillCourses}</span> {coursesLocale}\n </div>\n ) : null}\n {skillQuestions ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{skillQuestions}</span>\n &nbsp;{questionsLocale}\n </div>\n ) : null}\n </div>\n ) : null}\n <div className={style.skillTitleWrapper}>\n <div\n data-name=\"skill-title\"\n className={style.skillTitle}\n aria-label={skillAriaLabel || skillTitle}\n >\n {skillTitle}\n </div>\n {focus ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n size={{\n faSize: 10,\n wrapperSize: 16\n }}\n />\n {skillFocusLocale}\n </div>\n ) : null}\n </div>\n <ProgressBar />\n <div className={style.progressInformations}>\n {skillCourses && (\n <>\n <div className={style.progressInformation} data-name=\"skill-completed-courses\">\n <span className={style.progressInformationNumber}>{completedCourses}</span>\n {` ${coursesCompletedLocale}`}\n </div>\n <div className={style.progressInformation} data-name=\"completed-percentage\">\n <span className={style.progressInformationNumber}>{completedPercentage}%</span>\n </div>\n </>\n )}\n </div>\n <div className={style.ctaWrapper} data-name=\"cta-wrapper\">\n <ButtonLink {...buttonReviewProps} />\n <div\n className={style.buttonWrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-name=\"button-explore-wrapper\"\n >\n <ButtonLink {...buttonExploreProps} />\n </div>\n </div>\n </div>\n );\n};\n\nLearnerSkillCard.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nLearnerSkillCard.propTypes = {\n 'aria-label': PropTypes.string,\n skillTitle: PropTypes.string,\n skillAriaLabel: PropTypes.string,\n focus: PropTypes.bool,\n metrics: PropTypes.shape({\n skillCourses: PropTypes.number,\n skillQuestions: PropTypes.number,\n completedCourses: PropTypes.number\n }),\n review: PropTypes.bool,\n onReviewClick: PropTypes.func,\n onExploreClick: PropTypes.func\n};\n\nexport default LearnerSkillCard;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/skill-picker-modal/index.js"],"names":[],"mappings":";AASA,gFA8HC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/skill-picker-modal/index.js"],"names":[],"mappings":";AASA,gFA0HC"}
@@ -61,13 +61,13 @@ const SkillPickerModal = (props, context) => {
61
61
  }, [skills, selectedSkillList, skillsLocales]);
62
62
  const isError = (0, _react.useMemo)(() => selectedSkillList.length > maxSelectedSkills || selectedSkillList.length < minSelectedSkills, [selectedSkillList, maxSelectedSkills]);
63
63
  const footer = (0, _react.useMemo)(() => {
64
- const footerDescription = isError ? translate('skill_focus_footer_error_description', {
64
+ const footerDescription = selectedSkillList.length > maxSelectedSkills ? translate('skill_focus_footer_error_description', {
65
65
  skillNumber: selectedSkillList.length - maxSelectedSkills
66
66
  }) : translate('skill_focus_footer_description', {
67
67
  skillNumber: minSelectedSkills - selectedSkillList.length
68
68
  });
69
69
  return {
70
- text: isLoading || selectedSkillList.length <= maxSelectedSkills && selectedSkillList.length >= minSelectedSkills ? '' : footerDescription.replace('.'),
70
+ text: isLoading || !isError ? '' : footerDescription,
71
71
  isError,
72
72
  cancelButton: {
73
73
  onCancel: handleCancel,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["SkillPickerModal","props","context","skills","selectedSkills","skillsLocales","isOpen","isLoading","maxSelectedSkills","minSelectedSkills","onCancel","onConfirm","onClose","translate","selectedSkillList","setSelectedSkillList","useState","handleCancel","useCallback","handleClose","skillList","useMemo","map","skill","skillTitle","skillRef","focus","includes","isError","length","footer","footerDescription","skillNumber","text","replace","cancelButton","label","disabled","confirmButton","iconName","name","backgroundColor","style","skillPickerContainer","loaderContainer","loader","marginBottom","display","gap","flexWrap","index","handleChipClick","newSelectedSkillList","filter","selectedSkill","contextTypes","Provider","childContextTypes","propTypes","PropTypes","arrayOf","string","objectOf","bool","number","func"],"sources":["../../../src/molecule/skill-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport filter from 'lodash/fp/filter';\nimport BaseModal from '../base-modal';\nimport Chip from '../../atom/chip';\nimport Loader from '../../atom/loader';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst SkillPickerModal = (props, context) => {\n const {\n skills,\n selectedSkills,\n skillsLocales,\n isOpen,\n isLoading,\n maxSelectedSkills = 6,\n minSelectedSkills = 3,\n onCancel,\n onConfirm,\n onClose\n } = props;\n const {translate} = context;\n\n const [selectedSkillList, setSelectedSkillList] = useState(selectedSkills);\n\n const handleCancel = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onCancel();\n }, [setSelectedSkillList, selectedSkills, onCancel]);\n\n const handleClose = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onClose();\n }, [setSelectedSkillList, selectedSkills, onClose]);\n\n const skillList = useMemo(() => {\n return skills.map(skill => {\n return {\n skillTitle: skillsLocales[skill],\n skillRef: skill,\n focus: selectedSkillList.includes(skill)\n };\n });\n }, [skills, selectedSkillList, skillsLocales]);\n\n const isError = useMemo(\n () =>\n selectedSkillList.length > maxSelectedSkills || selectedSkillList.length < minSelectedSkills,\n [selectedSkillList, maxSelectedSkills]\n );\n\n const footer = useMemo(() => {\n const footerDescription = isError\n ? translate('skill_focus_footer_error_description', {\n skillNumber: selectedSkillList.length - maxSelectedSkills\n })\n : translate('skill_focus_footer_description', {\n skillNumber: minSelectedSkills - selectedSkillList.length\n });\n return {\n text:\n isLoading ||\n (selectedSkillList.length <= maxSelectedSkills &&\n selectedSkillList.length >= minSelectedSkills)\n ? ''\n : footerDescription.replace('.'),\n isError,\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel'),\n disabled: isLoading || isError\n },\n confirmButton: {\n onConfirm: () => onConfirm(selectedSkillList),\n label: translate('confirm'),\n iconName: 'circle-check',\n disabled: isLoading || isError\n }\n };\n }, [\n isError,\n handleCancel,\n onConfirm,\n translate,\n selectedSkillList,\n isLoading,\n maxSelectedSkills,\n minSelectedSkills\n ]);\n\n if ((!isLoading && !skills) || !isOpen) return null;\n\n return (\n <BaseModal\n title={translate('skill_focus')}\n description={translate('skill_focus_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n headerIcon={{\n name: 'bullseye-arrow',\n backgroundColor: '#DDD1FF'\n }}\n >\n <div className={style.skillPickerContainer}>\n {isLoading ? (\n <div className={style.loaderContainer}>\n <Loader className={style.loader} theme=\"coorpmanager\" />\n </div>\n ) : (\n <>\n <div style={{marginBottom: '16px'}}>\n {`${selectedSkillList.length} ${translate('selected')}`}\n </div>\n <div style={{display: 'flex', gap: '16px', flexWrap: 'wrap'}}>\n {skillList.map((skill, index) => {\n const {skillTitle, skillRef, focus} = skill;\n function handleChipClick() {\n const newSelectedSkillList = focus\n ? filter(selectedSkill => selectedSkill !== skillRef, selectedSkillList)\n : [...selectedSkillList, skill.skillRef];\n setSelectedSkillList(newSelectedSkillList);\n }\n\n return (\n <Chip text={skillTitle} selected={focus} onClick={handleChipClick} key={index} />\n );\n })}\n </div>\n </>\n )}\n </div>\n </BaseModal>\n );\n};\n\nSkillPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nSkillPickerModal.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n isOpen: PropTypes.bool,\n isLoading: PropTypes.bool,\n minSelectedSkills: PropTypes.number,\n maxSelectedSkills: PropTypes.number,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default SkillPickerModal;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["SkillPickerModal","props","context","skills","selectedSkills","skillsLocales","isOpen","isLoading","maxSelectedSkills","minSelectedSkills","onCancel","onConfirm","onClose","translate","selectedSkillList","setSelectedSkillList","useState","handleCancel","useCallback","handleClose","skillList","useMemo","map","skill","skillTitle","skillRef","focus","includes","isError","length","footer","footerDescription","skillNumber","text","cancelButton","label","disabled","confirmButton","iconName","name","backgroundColor","style","skillPickerContainer","loaderContainer","loader","marginBottom","display","gap","flexWrap","index","handleChipClick","newSelectedSkillList","filter","selectedSkill","contextTypes","Provider","childContextTypes","propTypes","PropTypes","arrayOf","string","objectOf","bool","number","func"],"sources":["../../../src/molecule/skill-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport filter from 'lodash/fp/filter';\nimport BaseModal from '../base-modal';\nimport Chip from '../../atom/chip';\nimport Loader from '../../atom/loader';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst SkillPickerModal = (props, context) => {\n const {\n skills,\n selectedSkills,\n skillsLocales,\n isOpen,\n isLoading,\n maxSelectedSkills = 6,\n minSelectedSkills = 3,\n onCancel,\n onConfirm,\n onClose\n } = props;\n const {translate} = context;\n\n const [selectedSkillList, setSelectedSkillList] = useState(selectedSkills);\n\n const handleCancel = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onCancel();\n }, [setSelectedSkillList, selectedSkills, onCancel]);\n\n const handleClose = useCallback(() => {\n setSelectedSkillList(selectedSkills);\n onClose();\n }, [setSelectedSkillList, selectedSkills, onClose]);\n\n const skillList = useMemo(() => {\n return skills.map(skill => {\n return {\n skillTitle: skillsLocales[skill],\n skillRef: skill,\n focus: selectedSkillList.includes(skill)\n };\n });\n }, [skills, selectedSkillList, skillsLocales]);\n\n const isError = useMemo(\n () =>\n selectedSkillList.length > maxSelectedSkills || selectedSkillList.length < minSelectedSkills,\n [selectedSkillList, maxSelectedSkills]\n );\n\n const footer = useMemo(() => {\n const footerDescription =\n selectedSkillList.length > maxSelectedSkills\n ? translate('skill_focus_footer_error_description', {\n skillNumber: selectedSkillList.length - maxSelectedSkills\n })\n : translate('skill_focus_footer_description', {\n skillNumber: minSelectedSkills - selectedSkillList.length\n });\n return {\n text: isLoading || !isError ? '' : footerDescription,\n isError,\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel'),\n disabled: isLoading || isError\n },\n confirmButton: {\n onConfirm: () => onConfirm(selectedSkillList),\n label: translate('confirm'),\n iconName: 'circle-check',\n disabled: isLoading || isError\n }\n };\n }, [\n isError,\n handleCancel,\n onConfirm,\n translate,\n selectedSkillList,\n isLoading,\n maxSelectedSkills,\n minSelectedSkills\n ]);\n\n if ((!isLoading && !skills) || !isOpen) return null;\n\n return (\n <BaseModal\n title={translate('skill_focus')}\n description={translate('skill_focus_description')}\n isOpen={isOpen}\n onClose={handleClose}\n footer={footer}\n headerIcon={{\n name: 'bullseye-arrow',\n backgroundColor: '#DDD1FF'\n }}\n >\n <div className={style.skillPickerContainer}>\n {isLoading ? (\n <div className={style.loaderContainer}>\n <Loader className={style.loader} theme=\"coorpmanager\" />\n </div>\n ) : (\n <>\n <div style={{marginBottom: '16px'}}>\n {`${selectedSkillList.length} ${translate('selected')}`}\n </div>\n <div style={{display: 'flex', gap: '16px', flexWrap: 'wrap'}}>\n {skillList.map((skill, index) => {\n const {skillTitle, skillRef, focus} = skill;\n function handleChipClick() {\n const newSelectedSkillList = focus\n ? filter(selectedSkill => selectedSkill !== skillRef, selectedSkillList)\n : [...selectedSkillList, skill.skillRef];\n setSelectedSkillList(newSelectedSkillList);\n }\n\n return (\n <Chip text={skillTitle} selected={focus} onClick={handleChipClick} key={index} />\n );\n })}\n </div>\n </>\n )}\n </div>\n </BaseModal>\n );\n};\n\nSkillPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nSkillPickerModal.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n isOpen: PropTypes.bool,\n isLoading: PropTypes.bool,\n minSelectedSkills: PropTypes.number,\n maxSelectedSkills: PropTypes.number,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default SkillPickerModal;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/skills-chart-side-information-panel/index.js"],"names":[],"mappings":";AAMA;;gBAWC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/skills-chart-side-information-panel/index.js"],"names":[],"mappings":";AAMA;;gBAeC"}
@@ -24,6 +24,7 @@ const SkillsChartSideInformationPanel = ({
24
24
  key: `side-panel-item-${sidePanelItemProps.title}`
25
25
  })), sidePanelItems);
26
26
  return /*#__PURE__*/_react.default.createElement("div", {
27
+ "data-name": "skill-chart-side-panel",
27
28
  className: _style.default.sidePanel
28
29
  }, sidePanel);
29
30
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["SkillsChartSideInformationPanel","sidePanelItems","sidePanel","sidePanelItemProps","title","style","propTypes","PropTypes","arrayOf","shape","SkillsChartSideInformationItem"],"sources":["../../../src/molecule/skills-chart-side-information-panel/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {map} from 'lodash/fp';\nimport SkillsChartSideInformationItem from '../skills-chart-side-information-item';\nimport style from './style.css';\n\nconst SkillsChartSideInformationPanel = ({sidePanelItems = []}) => {\n const sidePanel = map(\n sidePanelItemProps => (\n <SkillsChartSideInformationItem\n {...sidePanelItemProps}\n key={`side-panel-item-${sidePanelItemProps.title}`}\n />\n ),\n sidePanelItems\n );\n return <div className={style.sidePanel}>{sidePanel}</div>;\n};\n\nSkillsChartSideInformationPanel.propTypes = {\n sidePanelItems: PropTypes.arrayOf(PropTypes.shape(SkillsChartSideInformationItem.propTypes))\n};\n\nexport default SkillsChartSideInformationPanel;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;AAEA,MAAMA,+BAA+B,GAAG,CAAC;EAACC,cAAc,GAAG;AAAlB,CAAD,KAA2B;EACjE,MAAMC,SAAS,GAAG,mBAChBC,kBAAkB,iBAChB,6BAAC,uCAAD,eACMA,kBADN;IAEE,GAAG,EAAG,mBAAkBA,kBAAkB,CAACC,KAAM;EAFnD,GAFc,EAOhBH,cAPgB,CAAlB;EASA,oBAAO;IAAK,SAAS,EAAEI,cAAA,CAAMH;EAAtB,GAAkCA,SAAlC,CAAP;AACD,CAXD;;AAaAF,+BAA+B,CAACM,SAAhC,2CAA4C;EAC1CL,cAAc,EAAEM,kBAAA,CAAUC,OAAV,CAAkBD,kBAAA,CAAUE,KAAV,CAAgBC,uCAAA,CAA+BJ,SAA/C,CAAlB;AAD0B,CAA5C;eAIeN,+B"}
1
+ {"version":3,"file":"index.js","names":["SkillsChartSideInformationPanel","sidePanelItems","sidePanel","sidePanelItemProps","title","style","propTypes","PropTypes","arrayOf","shape","SkillsChartSideInformationItem"],"sources":["../../../src/molecule/skills-chart-side-information-panel/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {map} from 'lodash/fp';\nimport SkillsChartSideInformationItem from '../skills-chart-side-information-item';\nimport style from './style.css';\n\nconst SkillsChartSideInformationPanel = ({sidePanelItems = []}) => {\n const sidePanel = map(\n sidePanelItemProps => (\n <SkillsChartSideInformationItem\n {...sidePanelItemProps}\n key={`side-panel-item-${sidePanelItemProps.title}`}\n />\n ),\n sidePanelItems\n );\n return (\n <div data-name=\"skill-chart-side-panel\" className={style.sidePanel}>\n {sidePanel}\n </div>\n );\n};\n\nSkillsChartSideInformationPanel.propTypes = {\n sidePanelItems: PropTypes.arrayOf(PropTypes.shape(SkillsChartSideInformationItem.propTypes))\n};\n\nexport default SkillsChartSideInformationPanel;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;AAEA,MAAMA,+BAA+B,GAAG,CAAC;EAACC,cAAc,GAAG;AAAlB,CAAD,KAA2B;EACjE,MAAMC,SAAS,GAAG,mBAChBC,kBAAkB,iBAChB,6BAAC,uCAAD,eACMA,kBADN;IAEE,GAAG,EAAG,mBAAkBA,kBAAkB,CAACC,KAAM;EAFnD,GAFc,EAOhBH,cAPgB,CAAlB;EASA,oBACE;IAAK,aAAU,wBAAf;IAAwC,SAAS,EAAEI,cAAA,CAAMH;EAAzD,GACGA,SADH,CADF;AAKD,CAfD;;AAiBAF,+BAA+B,CAACM,SAAhC,2CAA4C;EAC1CL,cAAc,EAAEM,kBAAA,CAAUC,OAAV,CAAkBD,kBAAA,CAAUE,KAAV,CAAgBC,uCAAA,CAA+BJ,SAA/C,CAAlB;AAD0B,CAA5C;eAIeN,+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/my-learning/index.js"],"names":[],"mappings":";AAgHA,mEAkVC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/my-learning/index.js"],"names":[],"mappings":";AAgHA,mEAuVC"}
@@ -233,6 +233,7 @@ const MyLearning = (props, context) => {
233
233
  onConfirm: handleConfirmSkillPicker,
234
234
  onClose: handleCloseSkillPicker
235
235
  }), learnerFeature ? /*#__PURE__*/_react.default.createElement("div", {
236
+ "data-name": "skill-focus-container",
236
237
  className: _style.default.skillFocusContainer
237
238
  }, /*#__PURE__*/_react.default.createElement("header", {
238
239
  className: _style.default.skillFocusHeader
@@ -251,12 +252,14 @@ const MyLearning = (props, context) => {
251
252
  })), /*#__PURE__*/_react.default.createElement("div", {
252
253
  className: _style.default.skillFocusHeaderContent
253
254
  }, /*#__PURE__*/_react.default.createElement("div", {
255
+ "data-name": "skill-focus-title",
254
256
  className: _style.default.skillFocusHeaderTitle
255
257
  }, translate('skill_focus')), /*#__PURE__*/_react.default.createElement("div", {
258
+ "data-name": "skill-focus-description",
256
259
  className: _style.default.skillFocusHeaderDescription
257
- }, translate('skills_focus_description')))), selectedSkillsList.length > 0 ? /*#__PURE__*/_react.default.createElement(ChangeSkillFocusButton, {
260
+ }, translate('skills_focus_description')))), selectedSkillsList.length >= 3 ? /*#__PURE__*/_react.default.createElement(ChangeSkillFocusButton, {
258
261
  onClick: handleOpenSkillPicker
259
- }) : null), selectedSkillsList.length > 0 ? /*#__PURE__*/_react.default.createElement("div", {
262
+ }) : null), selectedSkillsList.length >= 3 ? /*#__PURE__*/_react.default.createElement("div", {
260
263
  className: _style.default.skillFocusContent
261
264
  }, /*#__PURE__*/_react.default.createElement("div", {
262
265
  className: _style.default.radarContainer
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ChangeSkillFocusButton","props","context","hovered","setHovered","useState","onClick","skin","translate","primarySkinColor","handleMouseOver","useCallback","handleMouseLeave","backgroundColor","convert","color","transition","position","faIcon","name","size","contextTypes","Provider","childContextTypes","propTypes","PropTypes","func","FilterButton","active","filter","skillTotal","Content","style","skillFilterNumber","skillFilterNumberInActive","buttonProps","customStyle","width","content","bool","string","number","MyLearning","skills","selectedSkills","skillsInformation","skillsLocales","learnerFeature","isLoading","onSkillFocusConfirm","onReviewSkill","onExploreSkill","open","setOpen","selectedSkillsList","setSelectedSkillsList","skillFocusSelectedOnChart","setSkillFocusSelectedOnChart","undefined","searchValue","setSearchValue","searchResults","setSearchResults","activeFilter","setActiveFilter","skillsReviewReady","useMemo","skill","availableForReview","graphDatas","stats","score","graphLegends","filters","all","review","sumKpi","kpi","coursedCompletedData","questionsAnsweredData","learningHoursData","skillChartPaneLegends","focusedSkill","skillChartPanelProps","title","value","legend","icon","iconName","handleOnDotClick","skillRef","handleOpenSkillPicker","handleCloseSkillPicker","handleConfirmSkillPicker","focusSkillList","handleSearch","searchValueIncluded","handleSearchReset","ReviewTooltipContent","backgroundContainer","container","skillFocusContainer","skillFocusHeader","skillFocusHeaderWrapper","skillFocusHeaderIcon","faSize","wrapperSize","skillFocusHeaderContent","skillFocusHeaderTitle","skillFocusHeaderDescription","length","skillFocusContent","radarContainer","gradient","fill","stroke","percentage","background","label","skillFocusEmpty","img","skillFocusEmptyTitle","skillFocusEmptyDescription","skillListHeader","skillListHeaderIcon","skillListHeaderContent","skillListHeaderTitle","skillListHeaderDescription","infoIconTooltip","tooltip","toolBarContainer","skillFilterContainer","map","index","handleFilterClick","searchWrapper","placeholder","onChange","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","skillListContainer","skillListEmptyContainer","handleReviewSkill","handleExploreSkill","includes","skillCourses","courses","skillQuestions","questionsAnswered","completedCourses","coursesCompleted","arrayOf","objectOf","shape","learningHours"],"sources":["../../../src/template/my-learning/index.js"],"sourcesContent":["import React, {useCallback, useState, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {convert} from 'css-color-function';\nimport {getOr, keys, map, fromPairs, pipe, sumBy} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport Picture from '../../atom/picture';\nimport ButtonLink from '../../atom/button-link';\nimport ToolTip from '../../atom/tooltip';\nimport ReviewNoSkills from '../../organism/review-no-skills';\nimport SearchForm from '../../molecule/search-form';\nimport SkillPickerModal from '../../molecule/skill-picker-modal';\nimport ResponsiveLearningProfileRadarChart from '../../molecule/learning-profile-radar-chart';\nimport SkillsChartSideInformationPanel from '../../molecule/skills-chart-side-information-panel';\nimport LearnerSkillCard from '../../molecule/learner-skill-card';\nimport searchValueIncluded from '../../util/search-value-included';\nimport style from './style.css';\n\nconst ChangeSkillFocusButton = (props, context) => {\n const [hovered, setHovered] = useState(false);\n const {onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n return (\n <div\n data-name=\"button-explore-wrapper\"\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n >\n <ButtonLink\n customStyle={{\n backgroundColor: hovered\n ? primarySkinColor\n : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n }}\n onClick={onClick}\n label={translate('skills_change_focus')}\n data-name=\"change-skill-focus-button\"\n icon={{\n position: 'left',\n faIcon: {\n name: 'arrows-rotate',\n backgroundColor: hovered\n ? primarySkinColor\n : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }}\n />\n </div>\n );\n};\n\nChangeSkillFocusButton.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nChangeSkillFocusButton.propTypes = {\n onClick: PropTypes.func\n};\n\nconst FilterButton = (props, context) => {\n const {active, filter, skillTotal, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const Content = useCallback(\n () => (\n <div>\n {filter}\n <span className={active ? style.skillFilterNumber : style.skillFilterNumberInActive}>\n {skillTotal}\n </span>\n </div>\n ),\n [filter, skillTotal, active]\n );\n\n const buttonProps = {\n customStyle: {\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#FFFFFF',\n color: active ? primarySkinColor : '#9999A8',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: filter === translate('review_mode_available') ? '200px' : 'fit-content'\n },\n onClick,\n content: <Content />,\n 'data-name': 'change-skill-focus-button'\n };\n\n return <ButtonLink {...buttonProps} />;\n};\n\nFilterButton.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nFilterButton.propTypes = {\n active: PropTypes.bool,\n filter: PropTypes.string,\n skillTotal: PropTypes.number,\n onClick: PropTypes.func\n};\n\nconst MyLearning = (props, context) => {\n const {\n skills,\n selectedSkills = [],\n skillsInformation,\n skillsLocales,\n learnerFeature = true,\n isLoading,\n onSkillFocusConfirm,\n onReviewSkill,\n onExploreSkill\n } = props;\n const {translate} = context;\n const [open, setOpen] = useState(false);\n const [selectedSkillsList, setSelectedSkillsList] = useState(selectedSkills);\n const [skillFocusSelectedOnChart, setSkillFocusSelectedOnChart] = useState(undefined);\n const [searchValue, setSearchValue] = useState('');\n const [searchResults, setSearchResults] = useState(skills);\n const [activeFilter, setActiveFilter] = useState('all');\n\n const skillsReviewReady = useMemo(() => {\n return searchResults.filter(skill => skillsInformation[skill].availableForReview);\n }, [searchResults, skillsInformation]);\n\n const graphDatas = useMemo(\n () =>\n pipe(\n map(skill => [skill, skillsInformation[skill].stats.score]),\n fromPairs\n )(selectedSkillsList),\n [selectedSkillsList, skillsInformation]\n );\n\n const graphLegends = useMemo(\n () =>\n pipe(\n map(skill => [skill, skillsLocales[skill]]),\n fromPairs\n )(selectedSkillsList),\n [selectedSkillsList, skillsLocales]\n );\n\n const filters = useMemo(() => {\n return {\n all: searchResults,\n review: skillsReviewReady\n };\n }, [searchResults, skillsReviewReady]);\n\n const sumKpi = useCallback(\n kpi =>\n skillFocusSelectedOnChart\n ? skillsInformation[skillFocusSelectedOnChart].stats[kpi]\n : sumBy(skill => skillsInformation[skill].stats[kpi], selectedSkillsList),\n [skillFocusSelectedOnChart, skillsInformation, selectedSkillsList]\n );\n\n const coursedCompletedData = useMemo(() => sumKpi('coursesCompleted'), [sumKpi]);\n\n const questionsAnsweredData = useMemo(() => sumKpi('questionsAnswered'), [sumKpi]);\n\n const learningHoursData = useMemo(() => sumKpi('learningHours'), [sumKpi]);\n\n const skillChartPaneLegends = useMemo(\n () =>\n translate('skill_scope_specifier', {\n focusedSkill: skillFocusSelectedOnChart\n ? skillsLocales[skillFocusSelectedOnChart]\n : translate('focused_skills')\n }),\n [translate, skillsLocales, skillFocusSelectedOnChart]\n );\n const skillChartPanelProps = [\n {\n title: translate('skill_chart_side_panel_courses_completed'),\n value: `${coursedCompletedData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'book-open-cover', backgroundColor: '#D9F4F7'}\n },\n {\n title: translate('skill_chart_side_panel_questions_answered'),\n value: `${questionsAnsweredData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'circle-question', backgroundColor: '#FFDCD1'}\n },\n {\n title: translate('skill_chart_side_panel_learning_hours'),\n value: `${learningHoursData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'clock', backgroundColor: '#FAD6DE'}\n }\n ];\n\n const handleOnDotClick = useCallback(\n skillRef => {\n skillRef && setSkillFocusSelectedOnChart(skillRef);\n },\n [setSkillFocusSelectedOnChart]\n );\n const handleOpenSkillPicker = useCallback(() => setOpen(true), [setOpen]);\n const handleCloseSkillPicker = useCallback(() => setOpen(false), [setOpen]);\n const handleConfirmSkillPicker = useCallback(\n focusSkillList => {\n setSelectedSkillsList(focusSkillList);\n onSkillFocusConfirm(focusSkillList);\n setOpen(false);\n },\n [onSkillFocusConfirm, setSelectedSkillsList, setOpen]\n );\n const handleSearch = useCallback(\n value => {\n setSearchValue(value);\n setSearchResults(skills.filter(skill => searchValueIncluded(skillsLocales[skill], value)));\n },\n [skills, skillsLocales, setSearchValue, setSearchResults]\n );\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n setSearchResults(skills);\n }, [skills, setSearchValue, setSearchResults]);\n\n const ReviewTooltipContent = useCallback(\n () => (\n <div>\n <div>\n <b>{translate('review_mode_tooltip_header')}</b>\n </div>\n <p>{translate('review_mode_tooltip_content')}</p>\n <ol>\n <li>{translate('review_mode_tooltip_content_part1')}</li>\n <li>{translate('review_mode_tooltip_content_part2')}</li>\n <li>{translate('review_mode_tooltip_content_part3')}</li>\n <li>{translate('review_mode_tooltip_content_part4')}</li>\n </ol>\n </div>\n ),\n [translate]\n );\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container}>\n <SkillPickerModal\n skills={skills}\n selectedSkills={selectedSkillsList}\n skillsLocales={skillsLocales}\n isOpen={open}\n isLoading={isLoading}\n onCancel={handleCloseSkillPicker}\n onConfirm={handleConfirmSkillPicker}\n onClose={handleCloseSkillPicker}\n />\n {learnerFeature ? (\n <div className={style.skillFocusContainer}>\n <header className={style.skillFocusHeader}>\n <div className={style.skillFocusHeaderWrapper}>\n <div className={style.skillFocusHeaderIcon}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n borderRadius=\"12px\"\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n <div className={style.skillFocusHeaderContent}>\n <div className={style.skillFocusHeaderTitle}>{translate('skill_focus')}</div>\n <div className={style.skillFocusHeaderDescription}>\n {translate('skills_focus_description')}\n </div>\n </div>\n </div>\n {selectedSkillsList.length > 0 ? (\n <ChangeSkillFocusButton onClick={handleOpenSkillPicker} />\n ) : null}\n </header>\n {selectedSkillsList.length > 0 ? (\n <div className={style.skillFocusContent}>\n <div className={style.radarContainer}>\n <ResponsiveLearningProfileRadarChart\n totalDataset={1}\n height={424}\n width={680}\n data={graphDatas}\n legend={graphLegends}\n onClick={handleOnDotClick}\n colors={[\n {\n gradient: {\n fill: ['#0062ffff', '#8000ff85'],\n stroke: ['#0062ffff', '#8000FF']\n },\n percentage: {\n color: '#0061FF',\n background:\n 'linear-gradient(180deg, rgba(0, 97, 255, 0.10) 0%, rgba(147, 107, 255, 0.10) 100%)'\n },\n label: {\n color: '#020202ff'\n }\n }\n ]}\n />\n </div>\n <SkillsChartSideInformationPanel sidePanelItems={skillChartPanelProps} />\n </div>\n ) : (\n <div className={style.skillFocusEmpty}>\n <Picture\n className={style.img}\n src=\"https://static.coorpacademy.com/assets/images/mylearning-no-skill-selected-placeholder.svg\"\n alt=\"demo\"\n />\n <div className={style.skillFocusEmptyTitle}>\n {translate('skills_focus_empty_title')}\n </div>\n <div className={style.skillFocusEmptyDescription}>\n {translate('skills_focus_empty_description')}\n </div>\n <ButtonLink\n label={translate('skills_choose_focus')}\n type=\"primary\"\n customStyle={{width: '168px'}}\n onClick={handleOpenSkillPicker}\n />\n </div>\n )}\n </div>\n ) : null}\n <header className={style.skillListHeader}>\n <div className={style.skillListHeaderIcon}>\n <Icon\n iconName=\"dumbbell\"\n backgroundColor=\"#FFF9D1\"\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n <div className={style.skillListHeaderContent}>\n <div className={style.skillListHeaderTitle}>{translate('skills_section_title')}</div>\n <div className={style.skillListHeaderDescription}>\n {translate('skills_section_description')}\n <ToolTip\n fontSize={12}\n iconContainerClassName={style.infoIconTooltip}\n tooltipClassName={style.tooltip}\n TooltipContent={ReviewTooltipContent}\n closeToolTipInformationTextAriaLabel={translate(\n 'Press the escape key to close the information text'\n )}\n />\n </div>\n </div>\n </header>\n <div className={style.toolBarContainer}>\n <div className={style.skillFilterContainer}>\n {keys(filters).map((filter, index) => {\n function handleFilterClick() {\n setActiveFilter(filter);\n }\n\n return (\n <div key={index}>\n <FilterButton\n active={activeFilter === filter}\n filter={\n filter === 'all' ? translate('all') : translate('review_mode_available')\n }\n skillTotal={filters[filter].length}\n onClick={handleFilterClick}\n />\n </div>\n );\n })}\n </div>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleSearchReset}\n />\n </div>\n </div>\n {searchValue && searchResults.length === 0 ? (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleSearchReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n ) : (\n <div className={style.skillListContainer}>\n {activeFilter === 'review_mode_available' && filters[activeFilter].length === 0 ? (\n <div className={style.skillListEmptyContainer}>\n <ReviewNoSkills\n titleNoSkills={translate('review_skill_empty')}\n textNoSkills={translate('review_skill_empty_description')}\n iconSkillAriaLabel={translate('review_skill_empty')}\n imagePosition=\"top\"\n />\n </div>\n ) : (\n filters[activeFilter].map((skill, index) => {\n function handleReviewSkill() {\n onReviewSkill(skill);\n }\n function handleExploreSkill() {\n onExploreSkill(skill);\n }\n return (\n <div key={index}>\n <LearnerSkillCard\n skillTitle={skillsLocales[skill]}\n focus={selectedSkills.includes(skill)}\n metrics={{\n skillCourses: skillsInformation[skill].stats.courses,\n skillQuestions: skillsInformation[skill].stats.questionsAnswered,\n completedCourses: skillsInformation[skill].stats.coursesCompleted\n }}\n review={skillsInformation[skill].availableForReview}\n onReviewClick={handleReviewSkill}\n onExploreClick={handleExploreSkill}\n />\n </div>\n );\n })\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nMyLearning.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nMyLearning.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsInformation: PropTypes.objectOf(\n PropTypes.shape({\n availableForReview: PropTypes.bool,\n stats: PropTypes.shape({\n score: PropTypes.number,\n courses: PropTypes.number,\n coursesCompleted: PropTypes.number,\n questionsAnswered: PropTypes.number,\n learningHours: PropTypes.number\n })\n })\n ),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n learnerFeature: PropTypes.bool,\n isLoading: PropTypes.bool,\n onSkillFocusConfirm: PropTypes.func,\n onReviewSkill: PropTypes.func,\n onExploreSkill: PropTypes.func\n};\n\nexport default MyLearning;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["ChangeSkillFocusButton","props","context","hovered","setHovered","useState","onClick","skin","translate","primarySkinColor","handleMouseOver","useCallback","handleMouseLeave","backgroundColor","convert","color","transition","position","faIcon","name","size","contextTypes","Provider","childContextTypes","propTypes","PropTypes","func","FilterButton","active","filter","skillTotal","Content","style","skillFilterNumber","skillFilterNumberInActive","buttonProps","customStyle","width","content","bool","string","number","MyLearning","skills","selectedSkills","skillsInformation","skillsLocales","learnerFeature","isLoading","onSkillFocusConfirm","onReviewSkill","onExploreSkill","open","setOpen","selectedSkillsList","setSelectedSkillsList","skillFocusSelectedOnChart","setSkillFocusSelectedOnChart","undefined","searchValue","setSearchValue","searchResults","setSearchResults","activeFilter","setActiveFilter","skillsReviewReady","useMemo","skill","availableForReview","graphDatas","stats","score","graphLegends","filters","all","review","sumKpi","kpi","coursedCompletedData","questionsAnsweredData","learningHoursData","skillChartPaneLegends","focusedSkill","skillChartPanelProps","title","value","legend","icon","iconName","handleOnDotClick","skillRef","handleOpenSkillPicker","handleCloseSkillPicker","handleConfirmSkillPicker","focusSkillList","handleSearch","searchValueIncluded","handleSearchReset","ReviewTooltipContent","backgroundContainer","container","skillFocusContainer","skillFocusHeader","skillFocusHeaderWrapper","skillFocusHeaderIcon","faSize","wrapperSize","skillFocusHeaderContent","skillFocusHeaderTitle","skillFocusHeaderDescription","length","skillFocusContent","radarContainer","gradient","fill","stroke","percentage","background","label","skillFocusEmpty","img","skillFocusEmptyTitle","skillFocusEmptyDescription","skillListHeader","skillListHeaderIcon","skillListHeaderContent","skillListHeaderTitle","skillListHeaderDescription","infoIconTooltip","tooltip","toolBarContainer","skillFilterContainer","map","index","handleFilterClick","searchWrapper","placeholder","onChange","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","skillListContainer","skillListEmptyContainer","handleReviewSkill","handleExploreSkill","includes","skillCourses","courses","skillQuestions","questionsAnswered","completedCourses","coursesCompleted","arrayOf","objectOf","shape","learningHours"],"sources":["../../../src/template/my-learning/index.js"],"sourcesContent":["import React, {useCallback, useState, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {convert} from 'css-color-function';\nimport {getOr, keys, map, fromPairs, pipe, sumBy} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport Picture from '../../atom/picture';\nimport ButtonLink from '../../atom/button-link';\nimport ToolTip from '../../atom/tooltip';\nimport ReviewNoSkills from '../../organism/review-no-skills';\nimport SearchForm from '../../molecule/search-form';\nimport SkillPickerModal from '../../molecule/skill-picker-modal';\nimport ResponsiveLearningProfileRadarChart from '../../molecule/learning-profile-radar-chart';\nimport SkillsChartSideInformationPanel from '../../molecule/skills-chart-side-information-panel';\nimport LearnerSkillCard from '../../molecule/learner-skill-card';\nimport searchValueIncluded from '../../util/search-value-included';\nimport style from './style.css';\n\nconst ChangeSkillFocusButton = (props, context) => {\n const [hovered, setHovered] = useState(false);\n const {onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n return (\n <div\n data-name=\"button-explore-wrapper\"\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n >\n <ButtonLink\n customStyle={{\n backgroundColor: hovered\n ? primarySkinColor\n : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n }}\n onClick={onClick}\n label={translate('skills_change_focus')}\n data-name=\"change-skill-focus-button\"\n icon={{\n position: 'left',\n faIcon: {\n name: 'arrows-rotate',\n backgroundColor: hovered\n ? primarySkinColor\n : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }}\n />\n </div>\n );\n};\n\nChangeSkillFocusButton.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nChangeSkillFocusButton.propTypes = {\n onClick: PropTypes.func\n};\n\nconst FilterButton = (props, context) => {\n const {active, filter, skillTotal, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const Content = useCallback(\n () => (\n <div>\n {filter}\n <span className={active ? style.skillFilterNumber : style.skillFilterNumberInActive}>\n {skillTotal}\n </span>\n </div>\n ),\n [filter, skillTotal, active]\n );\n\n const buttonProps = {\n customStyle: {\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#FFFFFF',\n color: active ? primarySkinColor : '#9999A8',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: filter === translate('review_mode_available') ? '200px' : 'fit-content'\n },\n onClick,\n content: <Content />,\n 'data-name': 'change-skill-focus-button'\n };\n\n return <ButtonLink {...buttonProps} />;\n};\n\nFilterButton.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nFilterButton.propTypes = {\n active: PropTypes.bool,\n filter: PropTypes.string,\n skillTotal: PropTypes.number,\n onClick: PropTypes.func\n};\n\nconst MyLearning = (props, context) => {\n const {\n skills,\n selectedSkills = [],\n skillsInformation,\n skillsLocales,\n learnerFeature = true,\n isLoading,\n onSkillFocusConfirm,\n onReviewSkill,\n onExploreSkill\n } = props;\n const {translate} = context;\n const [open, setOpen] = useState(false);\n const [selectedSkillsList, setSelectedSkillsList] = useState(selectedSkills);\n const [skillFocusSelectedOnChart, setSkillFocusSelectedOnChart] = useState(undefined);\n const [searchValue, setSearchValue] = useState('');\n const [searchResults, setSearchResults] = useState(skills);\n const [activeFilter, setActiveFilter] = useState('all');\n\n const skillsReviewReady = useMemo(() => {\n return searchResults.filter(skill => skillsInformation[skill].availableForReview);\n }, [searchResults, skillsInformation]);\n\n const graphDatas = useMemo(\n () =>\n pipe(\n map(skill => [skill, skillsInformation[skill].stats.score]),\n fromPairs\n )(selectedSkillsList),\n [selectedSkillsList, skillsInformation]\n );\n\n const graphLegends = useMemo(\n () =>\n pipe(\n map(skill => [skill, skillsLocales[skill]]),\n fromPairs\n )(selectedSkillsList),\n [selectedSkillsList, skillsLocales]\n );\n\n const filters = useMemo(() => {\n return {\n all: searchResults,\n review: skillsReviewReady\n };\n }, [searchResults, skillsReviewReady]);\n\n const sumKpi = useCallback(\n kpi =>\n skillFocusSelectedOnChart\n ? skillsInformation[skillFocusSelectedOnChart].stats[kpi]\n : sumBy(skill => skillsInformation[skill].stats[kpi], selectedSkillsList),\n [skillFocusSelectedOnChart, skillsInformation, selectedSkillsList]\n );\n\n const coursedCompletedData = useMemo(() => sumKpi('coursesCompleted'), [sumKpi]);\n\n const questionsAnsweredData = useMemo(() => sumKpi('questionsAnswered'), [sumKpi]);\n\n const learningHoursData = useMemo(() => sumKpi('learningHours'), [sumKpi]);\n\n const skillChartPaneLegends = useMemo(\n () =>\n translate('skill_scope_specifier', {\n focusedSkill: skillFocusSelectedOnChart\n ? skillsLocales[skillFocusSelectedOnChart]\n : translate('focused_skills')\n }),\n [translate, skillsLocales, skillFocusSelectedOnChart]\n );\n const skillChartPanelProps = [\n {\n title: translate('skill_chart_side_panel_courses_completed'),\n value: `${coursedCompletedData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'book-open-cover', backgroundColor: '#D9F4F7'}\n },\n {\n title: translate('skill_chart_side_panel_questions_answered'),\n value: `${questionsAnsweredData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'circle-question', backgroundColor: '#FFDCD1'}\n },\n {\n title: translate('skill_chart_side_panel_learning_hours'),\n value: `${learningHoursData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'clock', backgroundColor: '#FAD6DE'}\n }\n ];\n\n const handleOnDotClick = useCallback(\n skillRef => {\n skillRef && setSkillFocusSelectedOnChart(skillRef);\n },\n [setSkillFocusSelectedOnChart]\n );\n const handleOpenSkillPicker = useCallback(() => setOpen(true), [setOpen]);\n const handleCloseSkillPicker = useCallback(() => setOpen(false), [setOpen]);\n const handleConfirmSkillPicker = useCallback(\n focusSkillList => {\n setSelectedSkillsList(focusSkillList);\n onSkillFocusConfirm(focusSkillList);\n setOpen(false);\n },\n [onSkillFocusConfirm, setSelectedSkillsList, setOpen]\n );\n const handleSearch = useCallback(\n value => {\n setSearchValue(value);\n setSearchResults(skills.filter(skill => searchValueIncluded(skillsLocales[skill], value)));\n },\n [skills, skillsLocales, setSearchValue, setSearchResults]\n );\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n setSearchResults(skills);\n }, [skills, setSearchValue, setSearchResults]);\n\n const ReviewTooltipContent = useCallback(\n () => (\n <div>\n <div>\n <b>{translate('review_mode_tooltip_header')}</b>\n </div>\n <p>{translate('review_mode_tooltip_content')}</p>\n <ol>\n <li>{translate('review_mode_tooltip_content_part1')}</li>\n <li>{translate('review_mode_tooltip_content_part2')}</li>\n <li>{translate('review_mode_tooltip_content_part3')}</li>\n <li>{translate('review_mode_tooltip_content_part4')}</li>\n </ol>\n </div>\n ),\n [translate]\n );\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container}>\n <SkillPickerModal\n skills={skills}\n selectedSkills={selectedSkillsList}\n skillsLocales={skillsLocales}\n isOpen={open}\n isLoading={isLoading}\n onCancel={handleCloseSkillPicker}\n onConfirm={handleConfirmSkillPicker}\n onClose={handleCloseSkillPicker}\n />\n {learnerFeature ? (\n <div data-name=\"skill-focus-container\" className={style.skillFocusContainer}>\n <header className={style.skillFocusHeader}>\n <div className={style.skillFocusHeaderWrapper}>\n <div className={style.skillFocusHeaderIcon}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n borderRadius=\"12px\"\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n <div className={style.skillFocusHeaderContent}>\n <div data-name=\"skill-focus-title\" className={style.skillFocusHeaderTitle}>\n {translate('skill_focus')}\n </div>\n <div\n data-name=\"skill-focus-description\"\n className={style.skillFocusHeaderDescription}\n >\n {translate('skills_focus_description')}\n </div>\n </div>\n </div>\n {selectedSkillsList.length >= 3 ? (\n <ChangeSkillFocusButton onClick={handleOpenSkillPicker} />\n ) : null}\n </header>\n {selectedSkillsList.length >= 3 ? (\n <div className={style.skillFocusContent}>\n <div className={style.radarContainer}>\n <ResponsiveLearningProfileRadarChart\n totalDataset={1}\n height={424}\n width={680}\n data={graphDatas}\n legend={graphLegends}\n onClick={handleOnDotClick}\n colors={[\n {\n gradient: {\n fill: ['#0062ffff', '#8000ff85'],\n stroke: ['#0062ffff', '#8000FF']\n },\n percentage: {\n color: '#0061FF',\n background:\n 'linear-gradient(180deg, rgba(0, 97, 255, 0.10) 0%, rgba(147, 107, 255, 0.10) 100%)'\n },\n label: {\n color: '#020202ff'\n }\n }\n ]}\n />\n </div>\n <SkillsChartSideInformationPanel sidePanelItems={skillChartPanelProps} />\n </div>\n ) : (\n <div className={style.skillFocusEmpty}>\n <Picture\n className={style.img}\n src=\"https://static.coorpacademy.com/assets/images/mylearning-no-skill-selected-placeholder.svg\"\n alt=\"demo\"\n />\n <div className={style.skillFocusEmptyTitle}>\n {translate('skills_focus_empty_title')}\n </div>\n <div className={style.skillFocusEmptyDescription}>\n {translate('skills_focus_empty_description')}\n </div>\n <ButtonLink\n label={translate('skills_choose_focus')}\n type=\"primary\"\n customStyle={{width: '168px'}}\n onClick={handleOpenSkillPicker}\n />\n </div>\n )}\n </div>\n ) : null}\n <header className={style.skillListHeader}>\n <div className={style.skillListHeaderIcon}>\n <Icon\n iconName=\"dumbbell\"\n backgroundColor=\"#FFF9D1\"\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n <div className={style.skillListHeaderContent}>\n <div className={style.skillListHeaderTitle}>{translate('skills_section_title')}</div>\n <div className={style.skillListHeaderDescription}>\n {translate('skills_section_description')}\n <ToolTip\n fontSize={12}\n iconContainerClassName={style.infoIconTooltip}\n tooltipClassName={style.tooltip}\n TooltipContent={ReviewTooltipContent}\n closeToolTipInformationTextAriaLabel={translate(\n 'Press the escape key to close the information text'\n )}\n />\n </div>\n </div>\n </header>\n <div className={style.toolBarContainer}>\n <div className={style.skillFilterContainer}>\n {keys(filters).map((filter, index) => {\n function handleFilterClick() {\n setActiveFilter(filter);\n }\n\n return (\n <div key={index}>\n <FilterButton\n active={activeFilter === filter}\n filter={\n filter === 'all' ? translate('all') : translate('review_mode_available')\n }\n skillTotal={filters[filter].length}\n onClick={handleFilterClick}\n />\n </div>\n );\n })}\n </div>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleSearchReset}\n />\n </div>\n </div>\n {searchValue && searchResults.length === 0 ? (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleSearchReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n ) : (\n <div className={style.skillListContainer}>\n {activeFilter === 'review_mode_available' && filters[activeFilter].length === 0 ? (\n <div className={style.skillListEmptyContainer}>\n <ReviewNoSkills\n titleNoSkills={translate('review_skill_empty')}\n textNoSkills={translate('review_skill_empty_description')}\n iconSkillAriaLabel={translate('review_skill_empty')}\n imagePosition=\"top\"\n />\n </div>\n ) : (\n filters[activeFilter].map((skill, index) => {\n function handleReviewSkill() {\n onReviewSkill(skill);\n }\n function handleExploreSkill() {\n onExploreSkill(skill);\n }\n return (\n <div key={index}>\n <LearnerSkillCard\n skillTitle={skillsLocales[skill]}\n focus={selectedSkills.includes(skill)}\n metrics={{\n skillCourses: skillsInformation[skill].stats.courses,\n skillQuestions: skillsInformation[skill].stats.questionsAnswered,\n completedCourses: skillsInformation[skill].stats.coursesCompleted\n }}\n review={skillsInformation[skill].availableForReview}\n onReviewClick={handleReviewSkill}\n onExploreClick={handleExploreSkill}\n />\n </div>\n );\n })\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nMyLearning.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nMyLearning.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsInformation: PropTypes.objectOf(\n PropTypes.shape({\n availableForReview: PropTypes.bool,\n stats: PropTypes.shape({\n score: PropTypes.number,\n courses: PropTypes.number,\n coursesCompleted: PropTypes.number,\n questionsAnswered: PropTypes.number,\n learningHours: PropTypes.number\n })\n })\n ),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n learnerFeature: PropTypes.bool,\n isLoading: PropTypes.bool,\n onSkillFocusConfirm: PropTypes.func,\n onReviewSkill: PropTypes.func,\n onExploreSkill: PropTypes.func\n};\n\nexport default MyLearning;\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  {
2
+ "all": "Sve",
2
3
  "accepted_cards": "Kreditna ili debitna kartica",
3
4
  "An Error Occurred": "Došlo je do greške ",
4
5
  "Answer": "Odgovor",
@@ -18,17 +19,24 @@
18
19
  "cookies_policy": "Politika privatnosti i kolačića.",
19
20
  "cookies_title": "Kako koristimo kolačiće:",
20
21
  "Create a new cohort": "Kreiraj novu kohortu",
21
- "courses": "Courses",
22
- "courses_completed": " Courses Completed",
22
+ "courses": "Kursevi",
23
+ "courses_completed": "Kursevi završeni",
24
+ "skills_change_focus": "Promijenite fokus vještina",
25
+ "skills_choose_focus": "Odaberite fokus",
26
+ "cancel": "Otkaži",
27
+ "confirm": "Potvrdi",
23
28
  "Delete": "Izbrisati",
24
29
  "Draft": "Skica",
25
30
  "answer_the_question": "Odgovori na pitanje",
26
31
  "Edit": "Uredi",
27
- "Explore": "Explore",
32
+ "Explore": "Istražiti",
28
33
  "external_content_article": "DOKUMENTI",
29
34
  "external_content_scorm": "ANIMIRANI RESURSI",
30
35
  "external_content_video": "VIDEOS",
31
36
  "external_content_podcast": "PODCASTS",
37
+ "empty_search_result_title": "Nema rezultata za ” {{searchValue}} ”",
38
+ "empty_search_result_description": "Pokušajte prilagoditi pretragu kako biste pronašli ono što tražite.",
39
+ "empty_search_result_clear_search": "Obriši pretragu",
32
40
  "keep_subscription": "Zadrži moju prijavu",
33
41
  "media_stars_to_win_plural": "Osvoji {{count}} dodatnu zvijezdu u ovom poglavlju prvi put kad vidiš lekciju!",
34
42
  "media_stars_to_win": "Osvoji {{count}} dodatnu zvijezdu u ovom poglavlju prvi put kad vidiš lekciju!",
@@ -53,8 +61,9 @@
53
61
  "Put back": "Vratiti",
54
62
  "Reject": "Odbaci",
55
63
  "Reload": "Napuni",
56
- "Review": "Review",
64
+ "Review": "Pregled",
57
65
  "Review lesson": "Osvrnite se na lekciju",
66
+ "search_place_holder": "Traži...",
58
67
  "secured_payment": "Osiguraj server",
59
68
  "See clue": "Vidi trag",
60
69
  "See less": "Vidi manje",
@@ -63,6 +72,12 @@
63
72
  "Show more": "Prikaži više",
64
73
  "Show": "Pokaži",
65
74
  "Start battle": "Pokreni borbu",
75
+ "skills_section_title": "Vještine",
76
+ "skills_section_description": "Istražite ili pregledajte vještine",
77
+ "skills_focus_empty_title": "Odaberite vještine koje želite poboljšati",
78
+ "skills_focus_description": "Fokusirajte se na vještine koje želite poboljšati i pratite svoj napredak",
79
+ "skills_focus_empty_description": "Vježbajte redovno, pratite svoj napredak kako biste ovladali odabranim vještinama i otključali svoj potencijal.",
80
+ "skill_focus_description": "Odaberite vještine na koje se želite fokusirati",
66
81
  "subscription_disclaimer": "Pristajete da odmah dobijete pristup Premium “à la carte”. Takođjer se slažete da će vam naplata teći od datuma transakcije do kraja mjeseca, za prvu fakturu. Nakon toga će naplata biti prvog dana svakog mjeseca.",
67
82
  "subscription_freemium_button": "Pokreni Premium paket Coorpacademy",
68
83
  "subscription_freemium_description": "Trenutno koristite Freemium paket. Nudimo mnogo bolju uslugu, po imenu Premium Coorpacademy. S ovom uslugom možete pristupiti svim kurseve i svim nivoima, da li ste zainteresirani?",
@@ -74,7 +89,13 @@
74
89
  "subscription_premium_title": "Premium Coorpacademy",
75
90
  "subscription_price": "${valuta}${cijena} uklj. PDV mjesečno",
76
91
  "subscription_promo_code": "Sada imate slobodan pristup našem katalogu do {{date}}. Da nastavite da ga koristite nakon ovog datuma, molim vas da se prijavite",
77
- "skill_focus": "Skill focus",
92
+ "skill_focus": "Fokus na vještine",
93
+ "skill_focus_footer_description": "Odaberite barem {{skillNumber}} više vještina",
94
+ "skill_focus_footer_error_description": "Poništite odabir barem {{skillNumber}} više vještina",
95
+ "skill_chart_side_panel_courses_completed": " Završeni kursevi",
96
+ "skill_chart_side_panel_questions_answered": "Odgovori na pitanja",
97
+ "skill_chart_side_panel_learning_hours": "Sati učenja",
98
+ "selected": "odabrano",
78
99
  "This message has been removed by its author": "Ovu poruku je uklonio njen autor.",
79
100
  "unsubscribe": "Otkaži pretplatu na Coorpacademy.",
80
101
  "Validated": "Provjereno",
@@ -85,6 +106,13 @@
85
106
  "zuora_discount_code": "Promotivni kod",
86
107
  "mandatory_fields": "* Obavezna polja",
87
108
  "something_went_wrong": "Oh Snap! Something went wrong.",
109
+ "review_mode_tooltip_header": "Šta je režim pregleda?",
110
+ "review_mode_tooltip_content": "Informacije nestaju iz vašeg uma čim uđu u njega? Sasvim je normalno: nema zadržavanja bez ponavljanja! Da biste svoje znanje zadržali na dugi rok, koristite Revizorski način da osvježite svoje pamćenje!",
111
+ "review_mode_tooltip_content_part1": "Odaberite 1 Vještinu",
112
+ "review_mode_tooltip_content_part2": "Odgovorite na 5 pitanja",
113
+ "review_mode_tooltip_content_part3": "Imate beskonačne živote",
114
+ "review_mode_tooltip_content_part4": "U redu",
115
+ "review_mode_available": "Dostupno za pregled",
88
116
  "review_header_step_item": {
89
117
  "correct_question": "{{current}}question {{headerStepValue}} je tačno",
90
118
  "incorrect_question": "{{current}}question {{headerStepValue}} je netačno",
@@ -96,11 +124,15 @@
96
124
  "invalid_scorm": "scorm datoteka nije važeća",
97
125
  "show_errors": "pokazati greške"
98
126
  },
127
+ "review_skill_empty": "Još nemate vještinu za reviziju",
128
+ "review_skill_empty_description": "Prvo morate završiti kurseve prije nego što možete provjeriti različite vještine.",
99
129
  "close_button_ariaLabel": "Zatvorite slajd za recenziju",
100
130
  "post_comment_aria_label": "Objavite svoj komentar",
101
131
  "validate_aria_label": "Potvrdite svoj odgovor i idite na sljedeći korak",
102
132
  "stars": "zvijezde",
103
- "questions": "Questions",
133
+ "questions": "Pitanja",
134
+ "skill_scope_specifier": "na <b>{{focusedSkill}}</b>",
135
+ "focused_skills": "fokusirane vještine",
104
136
  "custom":{
105
137
  "digitlearning": {
106
138
  "comment_aria_label": "Ocijenite ovaj kurs"
@@ -1,4 +1,5 @@
1
1
  {
2
+ "all": "Kõik",
2
3
  "accepted_cards": "Credit or debit card",
3
4
  "An Error Occurred": "Ilmnes tõrge",
4
5
  "Answer": "Vastus",
@@ -18,17 +19,24 @@
18
19
  "cookies_policy": "Privaatsus- ja küpsistepoliitika.",
19
20
  "cookies_title": "Kuidas kasutame küpsiseid:",
20
21
  "Create a new cohort": "Loo uus grupp",
21
- "courses": "Courses",
22
- "courses_completed": " Courses Completed",
22
+ "courses": "Kursused",
23
+ "courses_completed": "Lõpetatud kursused",
24
+ "skills_change_focus": "Muuda oskusfookust",
25
+ "skills_choose_focus": "Vali oma fookus",
26
+ "cancel": "Tühista",
27
+ "confirm": "Kinnita",
23
28
  "Delete": "Kustuta",
24
29
  "Draft": "Mustand",
25
30
  "answer_the_question": "Vastake küsimusele",
26
31
  "Edit": "Muuda",
27
- "Explore": "Explore",
32
+ "Explore": "Avasta",
28
33
  "external_content_article": "DOCUMENTS",
29
34
  "external_content_scorm": "ANIMATED RESOURCES",
30
35
  "external_content_video": "VIDEOS",
31
36
  "external_content_podcast": "PODCASTS",
37
+ "empty_search_result_title": "Päringule ”{{searchValue}}” ei vasta ükski tulemus",
38
+ "empty_search_result_description": "Proovige oma otsingut kohandada, et leida, mida otsite.",
39
+ "empty_search_result_clear_search": "Tühjenda otsing",
32
40
  "keep_subscription": "Hoia mu tellimus alles",
33
41
  "media_stars_to_win_plural": "Võida selles peatükis õppetunni esmakordsel vaatamisel {{count}} lisatähepunkti!",
34
42
  "media_stars_to_win": "Võida selles peatükis õppetunni esmakordsel vaatamisel {{count}} lisatähepunkt!",
@@ -53,8 +61,9 @@
53
61
  "Put back": "Pane tagasi",
54
62
  "Reject": "Keeldu",
55
63
  "Reload": "Laadi uuesti",
56
- "Review": "Review",
64
+ "Review": "Ülevaade",
57
65
  "Review lesson": "Ülevaatustund",
66
+ "search_place_holder": "Otsi ...",
58
67
  "secured_payment": "Turvaline server",
59
68
  "See clue": "Näita vihjet",
60
69
  "See less": "Näita vähem",
@@ -63,6 +72,12 @@
63
72
  "Show more": "Näita rohkem",
64
73
  "Show": "Näita",
65
74
  "Start battle": "Astu lahingusse",
75
+ "skills_section_title": "Oskused",
76
+ "skills_section_description": "Avasta oskusi ja tee ülevaateid",
77
+ "skills_focus_empty_title": "Vali oskused, mida soovite parandada",
78
+ "skills_focus_description": "Keskendu oskustele, mida soovid parandada, ja jälgi oma edusamme",
79
+ "skills_focus_empty_description": "Harjutage regulaarselt, jälgige oma edusamme, et omandada valitud oskused ja avada oma potentsiaal.",
80
+ "skill_focus_description": "Vali oskused, millele soovid keskenduda",
66
81
  "subscription_disclaimer": "You agree to immediately get access to Coorpacademy Premium “à la carte”. You also agree that you will be charged from transaction date to the end of the month, for the first invoice. Then you will be charged the first day of each month.",
67
82
  "subscription_freemium_button": "Launch Coorpacademy Premium",
68
83
  "subscription_freemium_description": "You are currently using Coorpacademy Freemium. We offer much better service, called Coorpacademy Premium. With this service, you can access all courses and all levels, interested ?",
@@ -74,7 +89,13 @@
74
89
  "subscription_premium_title": "Coorpacademy Premium",
75
90
  "subscription_price": "${currency}${price} incl. taxes per month",
76
91
  "subscription_promo_code": "You now have a free unlimited access to our catalog until the {{date}}. To keep enjoying it after this date, please subscribe on",
77
- "skill_focus": "Skill focus",
92
+ "skill_focus": "Oskusfookus",
93
+ "skill_focus_footer_description": "Vali vähemalt veel {{skillNumber}} oskust",
94
+ "skill_focus_footer_error_description": "Tühista veel vähemalt {{skillNumber}} oskuse valik",
95
+ "skill_chart_side_panel_courses_completed": "Lõpetatud kursused",
96
+ "skill_chart_side_panel_questions_answered": "Vastatud küsimused",
97
+ "skill_chart_side_panel_learning_hours": "Õppimisele kulutatud tunnid",
98
+ "selected": "valitud",
78
99
  "This message has been removed by its author": "Sõnum on autori poolt eemaldatud.",
79
100
  "unsubscribe": "Tühista Coorpacademy tellimus",
80
101
  "Validated": "Valideeritud",
@@ -85,6 +106,13 @@
85
106
  "zuora_discount_code": "Promo code",
86
107
  "mandatory_fields": "*Kohustuslikud väljad",
87
108
  "something_went_wrong": "Oih! Midagi läks viltu.",
109
+ "review_mode_tooltip_header": "Mis on ülevaaterežiim?",
110
+ "review_mode_tooltip_content": "Kas unustate õpitu kiiresti? See on täiesti normaalne: ei ole tarkust ilma kordamiseta! Oma teadmiste kinnistamiseks kasutage mälu värskendamiseks ülevaaterežiimi!",
111
+ "review_mode_tooltip_content_part1": "Vali 1 oskus",
112
+ "review_mode_tooltip_content_part2": "Vasta viiele küsimusele",
113
+ "review_mode_tooltip_content_part3": "Sul on lõputult elusid",
114
+ "review_mode_tooltip_content_part4": "Vasta kõik õigesti",
115
+ "review_mode_available": "Saadaval ülevaatuseks",
88
116
  "review_header_step_item": {
89
117
  "correct_question": "{{current}}küsimus {{headerStepValue}} on õige",
90
118
  "incorrect_question": "{{current}}küsimus {{headerStepValue}} ei ole õige",
@@ -96,11 +124,15 @@
96
124
  "invalid_scorm": "scormi fail ei ole kehtiv",
97
125
  "show_errors": "näidata vigu"
98
126
  },
127
+ "review_skill_empty": "Sul puuduvad ülevaatuseks oskused",
128
+ "review_skill_empty_description": "Enne eri oskuste ülevaatamist tuleb sul läbida kursused.",
99
129
  "close_button_ariaLabel": "Sulgege ülekordamise slaid",
100
130
  "post_comment_aria_label": "Postitage oma kommentaar",
101
131
  "validate_aria_label": "Kinnitage oma vastus ja minge järgmisse etappi",
102
132
  "stars": "tähed",
103
- "questions": "Questions",
133
+ "questions": "Küsimused",
134
+ "skill_scope_specifier": "seoses oskusega <b>{{focusedSkill}}</b>",
135
+ "focused_skills": "fookusoskused",
104
136
  "custom":{
105
137
  "digitlearning": {
106
138
  "comment_aria_label": "Hinda seda kursust"
@@ -1,4 +1,5 @@
1
1
  {
2
+ "all": "Բոլորը",
2
3
  "accepted_cards": "Վարկային կամ դեբետային քարտ",
3
4
  "An Error Occurred": "Սխալ է տեղի ունեցել",
4
5
  "Answer": "Պատասխան",
@@ -18,17 +19,24 @@
18
19
  "cookies_policy": "Գաղտնիության և cookies քաղաքականություն:",
19
20
  "cookies_title": "Ինչպես ենք մենք օգտագործում cookies-ը.",
20
21
  "Create a new cohort": "Ստեղծել նոր խումբ",
21
- "courses": "Courses",
22
- "courses_completed": " Courses Completed",
22
+ "courses": "Դասընթացներ",
23
+ "courses_completed": "Դասընթացներն ավարտված են",
24
+ "skills_change_focus": "Փոխեք հմտությունների կենտրոնացումը",
25
+ "skills_choose_focus": "Ընտրեք ձեր ուշադրությունը",
26
+ "cancel": "Չեղարկել",
27
+ "confirm": "Հաստատել",
23
28
  "Delete": "Ջնջել",
24
29
  "Draft": "Նախագիծ",
25
30
  "answer_the_question": "Պատասխանիր հարցին",
26
31
  "Edit": "Խմբագրել",
27
- "Explore": "Explore",
32
+ "Explore": "Հետազոտել",
28
33
  "external_content_article": "ՓԱՍՏԱԹՂԹԵՐ",
29
34
  "external_content_scorm": "ԱՆԻՄԱՏ ՌԵՍՈՒՐՍՆԵՐ",
30
35
  "external_content_video": "ՏԵՍԱՆՅՈՒԹԵՐ",
31
36
  "external_content_podcast": "ՓՈԴՔԱՍՏՆԵՐ",
37
+ "empty_search_result_title": "« {{searchValue}} » համար արդյունքներ չկան",
38
+ "empty_search_result_description": "Փորձեք կարգավորել ձեր որոնումը` գտնելու այն, ինչ փնտրում եք:",
39
+ "empty_search_result_clear_search": "Մաքրել որոնումը",
32
40
  "keep_subscription": "Պահպանել իմ բաժանորդագրությունը",
33
41
  "media_stars_to_win_plural": "Հաղթեք {{count}} լրացուցիչ աստղեր այս բաժնում, երբ առաջին անգամ դիտեք դասը:",
34
42
  "media_stars_to_win": "Հաղթեք {{count}} լրացուցիչ աստղ այս բաժնում, երբ առաջին անգամ դիտեք դասը:",
@@ -53,8 +61,9 @@
53
61
  "Put back": "Հետ դնել",
54
62
  "Reject": "Մերժել",
55
63
  "Reload": "Վերբեռնել",
56
- "Review": "Review",
64
+ "Review": "Վերանայում",
57
65
  "Review lesson": "Վերանայել դասը",
66
+ "search_place_holder": "Որոնել...",
58
67
  "secured_payment": "Ապահով սերվեր",
59
68
  "See clue": "Տեսնել հուշումը",
60
69
  "See less": "Տեսնել ավելի քիչ",
@@ -63,6 +72,12 @@
63
72
  "Show more": "Ցույց տալ ավելին",
64
73
  "Show": "Ցույց տալ",
65
74
  "Start battle": "Սկսել ճակատամարտը",
75
+ "skills_section_title": "Հմտություններ",
76
+ "skills_section_description": "Ուսումնասիրել կամ վերանայել հմտությունները",
77
+ "skills_focus_empty_title": "Ընտրեք այն հմտությունները, որոնք ցանկանում եք կատարելագործել",
78
+ "skills_focus_description": "Կենտրոնացեք հմտությունների վրա, որոնք ցանկանում եք բարելավել և հետևել ձեր առաջընթացին",
79
+ "skills_focus_empty_description": "Պարբերաբար պարապեք, հետևեք ձեր առաջընթացին, որպեսզի տիրապետեք ձեր ընտրած հմտություններին և բացեք ձեր ներուժը:",
80
+ "skill_focus_description": "Ընտրեք այն հմտությունները, որոնց վրա ցանկանում եք կենտրոնանալ",
66
81
  "subscription_disclaimer": "Դուք համաձայնում եք անմիջապես մուտք գործել Coorpacademy Premium «à la carte»: Դուք նաև համաձայնում եք, որ գործարքի ամսաթվից մինչև ամսվա վերջ ձեզնից գանձվում է առաջին հաշիվ-ապրանքագրի համար: Այնուհետև ձեզանից կգանձվի յուրաքանչյուր ամսվա առաջին օրը:",
67
82
  "subscription_freemium_button": "Գործարկել Coorpacademy Premium-ը",
68
83
  "subscription_freemium_description": "Դուք ներկայումս օգտագործում եք Coorpacademy Freemium-ը: Մենք առաջարկում ենք շատ ավելի լավ ծառայություն, որը կոչվում է Coorpacademy Premium: Այս ծառայության միջոցով դուք կարող եք մուտք գործել բոլոր դասընթացներ և բոլոր մակարդակներ, հետաքրքրվա՞ծ եք:",
@@ -74,7 +89,13 @@
74
89
  "subscription_premium_title": "Coorpacademy Premium",
75
90
  "subscription_price": "${currency}${price} ներառյալ ամսական հարկեր",
76
91
  "subscription_promo_code": "Դուք այժմ ունեք անվճար անսահմանափակ մուտք դեպի մեր կատալոգ մինչև {{date}}: Այս ամսաթվից հետո այն վայելելու համար, խնդրում ենք բաժանորդագրվել",
77
- "skill_focus": "Skill focus",
92
+ "skill_focus": "Հմտության կենտրոնացում",
93
+ "skill_focus_footer_description": "Ընտրեք առնվազն {{skillNumber}} ավելի շատ հմտություններ",
94
+ "skill_focus_footer_error_description": "Ապաընտրեք առնվազն {{skillNumber}} ավելի շատ հմտություններ",
95
+ "skill_chart_side_panel_courses_completed": " Դասընթացներն ավարտված են",
96
+ "skill_chart_side_panel_questions_answered": "Հարցերի պատասխաններ",
97
+ "skill_chart_side_panel_learning_hours": "Ուսուցման ժամեր",
98
+ "selected": "ընտրված",
78
99
  "This message has been removed by its author": "Այս հաղորդագրությունը հեռացվել է դրա հեղինակի կողմից:",
79
100
  "unsubscribe": "Դուրս գալ Coorpacademy-ի բաժանորդագրությունից",
80
101
  "Validated": "Վավերացված",
@@ -85,6 +106,13 @@
85
106
  "zuora_discount_code": "Պրոմո Կոդ",
86
107
  "mandatory_fields": "*Պարտադիր դաշտեր",
87
108
  "something_went_wrong": "Վա՜յ: Ինչ որ բան այնպես չգնաց.",
109
+ "review_mode_tooltip_header": "Ի՞նչ է վերանայման ռեժիմը:",
110
+ "review_mode_tooltip_content": "Տեղեկատվությունը անհետանում է ձեր մտքից հենց այն մտնում է այն: Դա միանգամայն նորմալ է. առանց կրկնության պահպանում չկա: Ձեր գիտելիքները երկարաժամկետ պահպանելու համար օգտագործեք Վերանայման ռեժիմը՝ ձեր հիշողությունը թարմացնելու համար:",
111
+ "review_mode_tooltip_content_part1": "Ընտրեք 1 հմտություն",
112
+ "review_mode_tooltip_content_part2": "Պատասխանեք 5 Հարցի",
113
+ "review_mode_tooltip_content_part3": "Դուք ունեք Անսահման կյանքեր",
114
+ "review_mode_tooltip_content_part4": "Ստացեք ամեն ինչ ճիշտ",
115
+ "review_mode_available": "Հասանելի է վերանայման համար",
88
116
  "review_header_step_item": {
89
117
  "correct_question": "{{current}}հարցը {{headerStepValue}} ճիշտ է",
90
118
  "incorrect_question": "{{current}}հարցը {{headerStepValue}} սխալ է",
@@ -96,11 +124,15 @@
96
124
  "invalid_scorm": "scorm ֆայլը վավեր չէ",
97
125
  "show_errors": "ցույց տալ սխալները"
98
126
  },
127
+ "review_skill_empty": "Դեռևս վերանայելու հմտություն չունեք",
128
+ "review_skill_empty_description": "Սկզբում դուք պետք է ավարտեք դասընթացները, որպեսզի կարողանաք վերանայել տարբեր հմտություններ:",
99
129
  "close_button_ariaLabel": "Փակել վերանայման սլայդը",
100
130
  "post_comment_aria_label": "Տեղադրեք ձեր մեկնաբանությունը",
101
131
  "validate_aria_label": "Հաստատեք ձեր պատասխանը և անցեք հաջորդ քայլին",
102
132
  "stars": "աստղեր",
103
- "questions": "Questions",
133
+ "questions": "Հարցեր",
134
+ "skill_scope_specifier": "<b>{{focusedSkill}}</b> ում",
135
+ "focused_skills": "կենտրոնացված հմտություններ",
104
136
  "custom":{
105
137
  "digitlearning": {
106
138
  "comment_aria_label": "Գնահատեք այս դասընթացը"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "11.32.2",
3
+ "version": "11.32.3",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -176,5 +176,5 @@
176
176
  "last 2 versions",
177
177
  "IE 11"
178
178
  ],
179
- "gitHead": "a2f766af8fbe1357b1d48c35cd6aa2526bd6d731"
179
+ "gitHead": "b94153cfde46ecc08160a8ce8f40f3fe81347032"
180
180
  }