@coorpacademy/components 11.32.8 → 11.32.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/atom/input-search/style.css +5 -4
- package/es/molecule/dashboard/learning-profile-banner/style.css +3 -4
- package/es/molecule/learner-skill-card/style.css +1 -1
- package/es/template/my-learning/index.js +7 -7
- package/es/template/my-learning/index.js.map +1 -1
- package/es/template/my-learning/style.css +2 -1
- package/lib/atom/input-search/style.css +5 -4
- package/lib/molecule/dashboard/learning-profile-banner/style.css +3 -4
- package/lib/molecule/learner-skill-card/style.css +1 -1
- package/lib/template/my-learning/index.js +8 -7
- package/lib/template/my-learning/index.js.map +1 -1
- package/lib/template/my-learning/style.css +2 -1
- package/locales/bs/global.json +1 -0
- package/locales/cs/global.json +1 -0
- package/locales/de/global.json +1 -0
- package/locales/en/global.json +1 -0
- package/locales/es/global.json +2 -1
- package/locales/et/global.json +1 -0
- package/locales/fi/global.json +1 -0
- package/locales/fr/global.json +4 -3
- package/locales/hr/global.json +1 -0
- package/locales/hu/global.json +1 -0
- package/locales/hy/global.json +1 -0
- package/locales/it/global.json +2 -1
- package/locales/ja/global.json +1 -0
- package/locales/ko/global.json +1 -0
- package/locales/nl/global.json +1 -0
- package/locales/pl/global.json +2 -1
- package/locales/pt/global.json +2 -1
- package/locales/ro/global.json +1 -0
- package/locales/ru/global.json +2 -1
- package/locales/sk/global.json +2 -1
- package/locales/sl/global.json +2 -1
- package/locales/sv/global.json +2 -1
- package/locales/tl/global.json +1 -0
- package/locales/tr/global.json +2 -1
- package/locales/uk/global.json +2 -1
- package/locales/vi/global.json +1 -0
- package/locales/zh/global.json +1 -0
- package/locales/zh_TW/global.json +1 -0
- package/package.json +2 -2
|
@@ -177,10 +177,11 @@
|
|
|
177
177
|
line-height: 16px;
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
180
|
+
input:-webkit-autofill,
|
|
181
|
+
input:-webkit-autofill:hover,
|
|
182
|
+
input:-webkit-autofill:focus,
|
|
183
|
+
input:-webkit-autofill:active{
|
|
184
|
+
-webkit-background-clip: text;
|
|
184
185
|
}
|
|
185
186
|
|
|
186
187
|
@media tablet {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
.root {
|
|
13
13
|
display: flex;
|
|
14
14
|
justify-content: center;
|
|
15
|
-
padding: 24px
|
|
15
|
+
padding: 24px 12px;
|
|
16
16
|
font-family: Gilroy;
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
|
|
112
112
|
.cta {
|
|
113
113
|
margin-top: 22px;
|
|
114
|
-
max-width:
|
|
114
|
+
max-width: fit-content;
|
|
115
115
|
border-radius: 36px;
|
|
116
116
|
font-family: Gilroy;
|
|
117
117
|
font-size: 14px;
|
|
@@ -152,8 +152,7 @@
|
|
|
152
152
|
|
|
153
153
|
@media mobile {
|
|
154
154
|
.container {
|
|
155
|
-
height:
|
|
156
|
-
max-width: 327px;
|
|
155
|
+
max-height: 210px;
|
|
157
156
|
}
|
|
158
157
|
|
|
159
158
|
.banner {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _getOr from "lodash/fp/getOr";
|
|
1
2
|
import _sumBy from "lodash/fp/sumBy";
|
|
2
3
|
import _pipe from "lodash/fp/pipe";
|
|
3
4
|
import _fromPairs from "lodash/fp/fromPairs";
|
|
@@ -77,8 +78,7 @@ const FilterButton = (props, context) => {
|
|
|
77
78
|
onClick
|
|
78
79
|
} = props;
|
|
79
80
|
const {
|
|
80
|
-
skin
|
|
81
|
-
translate
|
|
81
|
+
skin
|
|
82
82
|
} = context;
|
|
83
83
|
|
|
84
84
|
const primarySkinColor = _get('common.primary', skin);
|
|
@@ -95,7 +95,7 @@ const FilterButton = (props, context) => {
|
|
|
95
95
|
backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#FFFFFF',
|
|
96
96
|
color: active ? primarySkinColor : '#9999A8',
|
|
97
97
|
transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',
|
|
98
|
-
width:
|
|
98
|
+
width: 'fit-content'
|
|
99
99
|
},
|
|
100
100
|
onClick,
|
|
101
101
|
content: /*#__PURE__*/React.createElement(Content, null),
|
|
@@ -146,7 +146,7 @@ const MyLearning = (props, context) => {
|
|
|
146
146
|
const skillsReviewReady = useMemo(() => {
|
|
147
147
|
return searchResults.filter(skill => skillsInformation[skill].availableForReview);
|
|
148
148
|
}, [searchResults, skillsInformation]);
|
|
149
|
-
const graphDatas = useMemo(() => _pipe(_map(skill => [skill,
|
|
149
|
+
const graphDatas = useMemo(() => _pipe(_map(skill => [skill, _getOr(0, [skill, 'stats', 'score'], skillsInformation).toFixed(1)]), _fromPairs)(selectedSkillsList), [selectedSkillsList, skillsInformation]);
|
|
150
150
|
const graphLegends = useMemo(() => _pipe(_map(skill => [skill, skillsLocales[skill]]), _fromPairs)(selectedSkillsList), [selectedSkillsList, skillsLocales]);
|
|
151
151
|
const filters = useMemo(() => {
|
|
152
152
|
return {
|
|
@@ -240,7 +240,7 @@ const MyLearning = (props, context) => {
|
|
|
240
240
|
}, /*#__PURE__*/React.createElement("div", {
|
|
241
241
|
"data-name": "skill-focus-title",
|
|
242
242
|
className: style.skillFocusHeaderTitle
|
|
243
|
-
}, translate('
|
|
243
|
+
}, translate('skills_focus')), /*#__PURE__*/React.createElement("div", {
|
|
244
244
|
"data-name": "skill-focus-description",
|
|
245
245
|
className: style.skillFocusHeaderDescription
|
|
246
246
|
}, translate('skills_focus_description')))), selectedSkillsList.length >= 3 ? /*#__PURE__*/React.createElement(ChangeSkillFocusButton, {
|
|
@@ -289,7 +289,7 @@ const MyLearning = (props, context) => {
|
|
|
289
289
|
label: translate('skills_choose_focus'),
|
|
290
290
|
type: "primary",
|
|
291
291
|
customStyle: {
|
|
292
|
-
width: '
|
|
292
|
+
width: 'fit-contain',
|
|
293
293
|
backgroundColor: hovered ? convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`) : primarySkinColor
|
|
294
294
|
},
|
|
295
295
|
onClick: handleOpenSkillPicker
|
|
@@ -383,7 +383,7 @@ const MyLearning = (props, context) => {
|
|
|
383
383
|
skillTitle: skillsLocales[skill],
|
|
384
384
|
focus: selectedSkills.includes(skill),
|
|
385
385
|
metrics: {
|
|
386
|
-
score,
|
|
386
|
+
score: score.toFixed(1),
|
|
387
387
|
content,
|
|
388
388
|
questionsToReview,
|
|
389
389
|
contentCompleted
|
|
@@ -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","formatMinutes","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","sort","a","b","stats","score","activeFilter","setActiveFilter","skillsReviewReady","skill","availableForReview","graphDatas","graphLegends","filters","all","review","sumKpi","kpi","coursedCompletedData","questionsToReviewData","learningTimeData","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","questionsToReview","contentCompleted","includes","arrayOf","objectOf","shape","learningTime"],"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 {get, 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 {formatMinutes} from '../../util/time-format';\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 = get('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 skin: Provider.childContextTypes.skin,\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 = get('common.primary', skin);\n\n const Content = useCallback(\n () => (\n <div>\n {filter}\n <span\n className={active ? style.skillFilterNumber : style.skillFilterNumberInActive}\n style={{\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#EAEAEB',\n color: active ? primarySkinColor : '#515161'\n }}\n >\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 skin: Provider.childContextTypes.skin,\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 {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\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(\n skills.sort((a, b) => skillsInformation[b].stats.score - skillsInformation[a].stats.score)\n );\n const [activeFilter, setActiveFilter] = useState('all');\n const [hovered, setHovered] = useState(false);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\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('contentCompleted'), [sumKpi]);\n\n const questionsToReviewData = useMemo(() => sumKpi('questionsToReview'), [sumKpi]);\n\n const learningTimeData = useMemo(() => sumKpi('learningTime'), [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_content_completed'),\n value: `${coursedCompletedData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'book-open-cover', backgroundColor: '#D9F4F7'}\n },\n {\n title: translate('skill_chart_side_panel_learning_hours'),\n value: formatMinutes(learningTimeData),\n legend: skillChartPaneLegends,\n icon: {iconName: 'clock', backgroundColor: '#FAD6DE'}\n },\n {\n title: translate('skill_chart_side_panel_questions_to_review'),\n value: `${questionsToReviewData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'circle-question', backgroundColor: '#FFDCD1'}\n }\n ];\n\n const handleOnDotClick = useCallback(\n skillRef => {\n 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 onExploreClick={onExploreSkill}\n colors={[\n {\n gradient: {\n fill: ['#0062ffff', '#8000ff85'],\n stroke: ['#0062ffff', '#8000FF']\n },\n percentage: {\n color: primarySkinColor,\n background: convert(`color(${primarySkinColor} a(0.07))`)\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 <div onMouseOver={handleMouseOver} onMouseLeave={handleMouseLeave}>\n <ButtonLink\n label={translate('skills_choose_focus')}\n type=\"primary\"\n customStyle={{\n width: '168px',\n backgroundColor: hovered\n ? convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`)\n : primarySkinColor\n }}\n onClick={handleOpenSkillPicker}\n />\n </div>\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('close_tooltip_information')}\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 const {score, content, questionsToReview, contentCompleted} =\n skillsInformation[skill].stats;\n return (\n <div key={index}>\n <LearnerSkillCard\n skillTitle={skillsLocales[skill]}\n focus={selectedSkills.includes(skill)}\n metrics={{\n score,\n content,\n questionsToReview,\n contentCompleted\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 skin: Provider.childContextTypes.skin,\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 content: PropTypes.number,\n contentCompleted: PropTypes.number,\n questionsToReview: PropTypes.number,\n learningTime: 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","formatMinutes","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","sort","a","b","stats","score","activeFilter","setActiveFilter","skillsReviewReady","skill","availableForReview","graphDatas","toFixed","graphLegends","filters","all","review","sumKpi","kpi","coursedCompletedData","questionsToReviewData","learningTimeData","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","questionsToReview","contentCompleted","includes","arrayOf","objectOf","shape","learningTime"],"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 {get, keys, map, fromPairs, pipe, sumBy, getOr} 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 {formatMinutes} from '../../util/time-format';\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 = get('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 skin: Provider.childContextTypes.skin,\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} = context;\n const primarySkinColor = get('common.primary', skin);\n\n const Content = useCallback(\n () => (\n <div>\n {filter}\n <span\n className={active ? style.skillFilterNumber : style.skillFilterNumberInActive}\n style={{\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#EAEAEB',\n color: active ? primarySkinColor : '#515161'\n }}\n >\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: '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 skin: Provider.childContextTypes.skin,\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 {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\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(\n skills.sort((a, b) => skillsInformation[b].stats.score - skillsInformation[a].stats.score)\n );\n const [activeFilter, setActiveFilter] = useState('all');\n const [hovered, setHovered] = useState(false);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\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, getOr(0, [skill, 'stats', 'score'], skillsInformation).toFixed(1)]),\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('contentCompleted'), [sumKpi]);\n\n const questionsToReviewData = useMemo(() => sumKpi('questionsToReview'), [sumKpi]);\n\n const learningTimeData = useMemo(() => sumKpi('learningTime'), [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_content_completed'),\n value: `${coursedCompletedData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'book-open-cover', backgroundColor: '#D9F4F7'}\n },\n {\n title: translate('skill_chart_side_panel_learning_hours'),\n value: formatMinutes(learningTimeData),\n legend: skillChartPaneLegends,\n icon: {iconName: 'clock', backgroundColor: '#FAD6DE'}\n },\n {\n title: translate('skill_chart_side_panel_questions_to_review'),\n value: `${questionsToReviewData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'circle-question', backgroundColor: '#FFDCD1'}\n }\n ];\n\n const handleOnDotClick = useCallback(\n skillRef => {\n 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('skills_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 onExploreClick={onExploreSkill}\n colors={[\n {\n gradient: {\n fill: ['#0062ffff', '#8000ff85'],\n stroke: ['#0062ffff', '#8000FF']\n },\n percentage: {\n color: primarySkinColor,\n background: convert(`color(${primarySkinColor} a(0.07))`)\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 <div onMouseOver={handleMouseOver} onMouseLeave={handleMouseLeave}>\n <ButtonLink\n label={translate('skills_choose_focus')}\n type=\"primary\"\n customStyle={{\n width: 'fit-contain',\n backgroundColor: hovered\n ? convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`)\n : primarySkinColor\n }}\n onClick={handleOpenSkillPicker}\n />\n </div>\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('close_tooltip_information')}\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 const {score, content, questionsToReview, contentCompleted} =\n skillsInformation[skill].stats;\n return (\n <div key={index}>\n <LearnerSkillCard\n skillTitle={skillsLocales[skill]}\n focus={selectedSkills.includes(skill)}\n metrics={{\n score: score.toFixed(1),\n content,\n questionsToReview,\n contentCompleted\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 skin: Provider.childContextTypes.skin,\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 content: PropTypes.number,\n contentCompleted: PropTypes.number,\n questionsToReview: PropTypes.number,\n learningTime: 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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"}
|
|
@@ -20,11 +20,12 @@
|
|
|
20
20
|
margin-bottom: 48px;
|
|
21
21
|
margin-left: auto;
|
|
22
22
|
margin-right: auto;
|
|
23
|
+
padding: 0 16px;
|
|
23
24
|
position: relative;
|
|
24
25
|
box-sizing: border-box;
|
|
25
26
|
min-height: 100%;
|
|
26
27
|
width: 100%;
|
|
27
|
-
max-width: 1080px;
|
|
28
|
+
max-width: calc(1080px + 32px);
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
.skillFocusContainer {
|
|
@@ -177,10 +177,11 @@
|
|
|
177
177
|
line-height: 16px;
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
180
|
+
input:-webkit-autofill,
|
|
181
|
+
input:-webkit-autofill:hover,
|
|
182
|
+
input:-webkit-autofill:focus,
|
|
183
|
+
input:-webkit-autofill:active{
|
|
184
|
+
-webkit-background-clip: text;
|
|
184
185
|
}
|
|
185
186
|
|
|
186
187
|
@media tablet {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
.root {
|
|
13
13
|
display: flex;
|
|
14
14
|
justify-content: center;
|
|
15
|
-
padding: 24px
|
|
15
|
+
padding: 24px 12px;
|
|
16
16
|
font-family: Gilroy;
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
|
|
112
112
|
.cta {
|
|
113
113
|
margin-top: 22px;
|
|
114
|
-
max-width:
|
|
114
|
+
max-width: fit-content;
|
|
115
115
|
border-radius: 36px;
|
|
116
116
|
font-family: Gilroy;
|
|
117
117
|
font-size: 14px;
|
|
@@ -152,8 +152,7 @@
|
|
|
152
152
|
|
|
153
153
|
@media mobile {
|
|
154
154
|
.container {
|
|
155
|
-
height:
|
|
156
|
-
max-width: 327px;
|
|
155
|
+
max-height: 210px;
|
|
157
156
|
}
|
|
158
157
|
|
|
159
158
|
.banner {
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
5
|
|
|
6
|
+
var _getOr2 = _interopRequireDefault(require("lodash/fp/getOr"));
|
|
7
|
+
|
|
6
8
|
var _sumBy2 = _interopRequireDefault(require("lodash/fp/sumBy"));
|
|
7
9
|
|
|
8
10
|
var _pipe2 = _interopRequireDefault(require("lodash/fp/pipe"));
|
|
@@ -108,8 +110,7 @@ const FilterButton = (props, context) => {
|
|
|
108
110
|
onClick
|
|
109
111
|
} = props;
|
|
110
112
|
const {
|
|
111
|
-
skin
|
|
112
|
-
translate
|
|
113
|
+
skin
|
|
113
114
|
} = context;
|
|
114
115
|
const primarySkinColor = (0, _get2.default)('common.primary', skin);
|
|
115
116
|
const Content = (0, _react.useCallback)(() => /*#__PURE__*/_react.default.createElement("div", null, filter, /*#__PURE__*/_react.default.createElement("span", {
|
|
@@ -124,7 +125,7 @@ const FilterButton = (props, context) => {
|
|
|
124
125
|
backgroundColor: active ? (0, _cssColorFunction.convert)(`color(${primarySkinColor} a(0.07))`) : '#FFFFFF',
|
|
125
126
|
color: active ? primarySkinColor : '#9999A8',
|
|
126
127
|
transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',
|
|
127
|
-
width:
|
|
128
|
+
width: 'fit-content'
|
|
128
129
|
},
|
|
129
130
|
onClick,
|
|
130
131
|
content: /*#__PURE__*/_react.default.createElement(Content, null),
|
|
@@ -173,7 +174,7 @@ const MyLearning = (props, context) => {
|
|
|
173
174
|
const skillsReviewReady = (0, _react.useMemo)(() => {
|
|
174
175
|
return searchResults.filter(skill => skillsInformation[skill].availableForReview);
|
|
175
176
|
}, [searchResults, skillsInformation]);
|
|
176
|
-
const graphDatas = (0, _react.useMemo)(() => (0, _pipe2.default)((0, _map2.default)(skill => [skill,
|
|
177
|
+
const graphDatas = (0, _react.useMemo)(() => (0, _pipe2.default)((0, _map2.default)(skill => [skill, (0, _getOr2.default)(0, [skill, 'stats', 'score'], skillsInformation).toFixed(1)]), _fromPairs2.default)(selectedSkillsList), [selectedSkillsList, skillsInformation]);
|
|
177
178
|
const graphLegends = (0, _react.useMemo)(() => (0, _pipe2.default)((0, _map2.default)(skill => [skill, skillsLocales[skill]]), _fromPairs2.default)(selectedSkillsList), [selectedSkillsList, skillsLocales]);
|
|
178
179
|
const filters = (0, _react.useMemo)(() => {
|
|
179
180
|
return {
|
|
@@ -267,7 +268,7 @@ const MyLearning = (props, context) => {
|
|
|
267
268
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
268
269
|
"data-name": "skill-focus-title",
|
|
269
270
|
className: _style.default.skillFocusHeaderTitle
|
|
270
|
-
}, translate('
|
|
271
|
+
}, translate('skills_focus')), /*#__PURE__*/_react.default.createElement("div", {
|
|
271
272
|
"data-name": "skill-focus-description",
|
|
272
273
|
className: _style.default.skillFocusHeaderDescription
|
|
273
274
|
}, translate('skills_focus_description')))), selectedSkillsList.length >= 3 ? /*#__PURE__*/_react.default.createElement(ChangeSkillFocusButton, {
|
|
@@ -316,7 +317,7 @@ const MyLearning = (props, context) => {
|
|
|
316
317
|
label: translate('skills_choose_focus'),
|
|
317
318
|
type: "primary",
|
|
318
319
|
customStyle: {
|
|
319
|
-
width: '
|
|
320
|
+
width: 'fit-contain',
|
|
320
321
|
backgroundColor: hovered ? (0, _cssColorFunction.convert)(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`) : primarySkinColor
|
|
321
322
|
},
|
|
322
323
|
onClick: handleOpenSkillPicker
|
|
@@ -410,7 +411,7 @@ const MyLearning = (props, context) => {
|
|
|
410
411
|
skillTitle: skillsLocales[skill],
|
|
411
412
|
focus: selectedSkills.includes(skill),
|
|
412
413
|
metrics: {
|
|
413
|
-
score,
|
|
414
|
+
score: score.toFixed(1),
|
|
414
415
|
content,
|
|
415
416
|
questionsToReview,
|
|
416
417
|
contentCompleted
|
|
@@ -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","sort","a","b","stats","score","activeFilter","setActiveFilter","skillsReviewReady","useMemo","skill","availableForReview","graphDatas","graphLegends","filters","all","review","sumKpi","kpi","coursedCompletedData","questionsToReviewData","learningTimeData","skillChartPaneLegends","focusedSkill","skillChartPanelProps","title","value","legend","icon","iconName","formatMinutes","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","questionsToReview","contentCompleted","includes","arrayOf","objectOf","shape","learningTime"],"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 {get, 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 {formatMinutes} from '../../util/time-format';\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 = get('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 skin: Provider.childContextTypes.skin,\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 = get('common.primary', skin);\n\n const Content = useCallback(\n () => (\n <div>\n {filter}\n <span\n className={active ? style.skillFilterNumber : style.skillFilterNumberInActive}\n style={{\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#EAEAEB',\n color: active ? primarySkinColor : '#515161'\n }}\n >\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 skin: Provider.childContextTypes.skin,\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 {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\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(\n skills.sort((a, b) => skillsInformation[b].stats.score - skillsInformation[a].stats.score)\n );\n const [activeFilter, setActiveFilter] = useState('all');\n const [hovered, setHovered] = useState(false);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\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('contentCompleted'), [sumKpi]);\n\n const questionsToReviewData = useMemo(() => sumKpi('questionsToReview'), [sumKpi]);\n\n const learningTimeData = useMemo(() => sumKpi('learningTime'), [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_content_completed'),\n value: `${coursedCompletedData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'book-open-cover', backgroundColor: '#D9F4F7'}\n },\n {\n title: translate('skill_chart_side_panel_learning_hours'),\n value: formatMinutes(learningTimeData),\n legend: skillChartPaneLegends,\n icon: {iconName: 'clock', backgroundColor: '#FAD6DE'}\n },\n {\n title: translate('skill_chart_side_panel_questions_to_review'),\n value: `${questionsToReviewData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'circle-question', backgroundColor: '#FFDCD1'}\n }\n ];\n\n const handleOnDotClick = useCallback(\n skillRef => {\n 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 onExploreClick={onExploreSkill}\n colors={[\n {\n gradient: {\n fill: ['#0062ffff', '#8000ff85'],\n stroke: ['#0062ffff', '#8000FF']\n },\n percentage: {\n color: primarySkinColor,\n background: convert(`color(${primarySkinColor} a(0.07))`)\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 <div onMouseOver={handleMouseOver} onMouseLeave={handleMouseLeave}>\n <ButtonLink\n label={translate('skills_choose_focus')}\n type=\"primary\"\n customStyle={{\n width: '168px',\n backgroundColor: hovered\n ? convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`)\n : primarySkinColor\n }}\n onClick={handleOpenSkillPicker}\n />\n </div>\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('close_tooltip_information')}\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 const {score, content, questionsToReview, contentCompleted} =\n skillsInformation[skill].stats;\n return (\n <div key={index}>\n <LearnerSkillCard\n skillTitle={skillsLocales[skill]}\n focus={selectedSkills.includes(skill)}\n metrics={{\n score,\n content,\n questionsToReview,\n contentCompleted\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 skin: Provider.childContextTypes.skin,\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 content: PropTypes.number,\n contentCompleted: PropTypes.number,\n questionsToReview: PropTypes.number,\n learningTime: 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","sort","a","b","stats","score","activeFilter","setActiveFilter","skillsReviewReady","useMemo","skill","availableForReview","graphDatas","toFixed","graphLegends","filters","all","review","sumKpi","kpi","coursedCompletedData","questionsToReviewData","learningTimeData","skillChartPaneLegends","focusedSkill","skillChartPanelProps","title","value","legend","icon","iconName","formatMinutes","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","questionsToReview","contentCompleted","includes","arrayOf","objectOf","shape","learningTime"],"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 {get, keys, map, fromPairs, pipe, sumBy, getOr} 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 {formatMinutes} from '../../util/time-format';\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 = get('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 skin: Provider.childContextTypes.skin,\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} = context;\n const primarySkinColor = get('common.primary', skin);\n\n const Content = useCallback(\n () => (\n <div>\n {filter}\n <span\n className={active ? style.skillFilterNumber : style.skillFilterNumberInActive}\n style={{\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#EAEAEB',\n color: active ? primarySkinColor : '#515161'\n }}\n >\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: '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 skin: Provider.childContextTypes.skin,\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 {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\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(\n skills.sort((a, b) => skillsInformation[b].stats.score - skillsInformation[a].stats.score)\n );\n const [activeFilter, setActiveFilter] = useState('all');\n const [hovered, setHovered] = useState(false);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\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, getOr(0, [skill, 'stats', 'score'], skillsInformation).toFixed(1)]),\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('contentCompleted'), [sumKpi]);\n\n const questionsToReviewData = useMemo(() => sumKpi('questionsToReview'), [sumKpi]);\n\n const learningTimeData = useMemo(() => sumKpi('learningTime'), [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_content_completed'),\n value: `${coursedCompletedData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'book-open-cover', backgroundColor: '#D9F4F7'}\n },\n {\n title: translate('skill_chart_side_panel_learning_hours'),\n value: formatMinutes(learningTimeData),\n legend: skillChartPaneLegends,\n icon: {iconName: 'clock', backgroundColor: '#FAD6DE'}\n },\n {\n title: translate('skill_chart_side_panel_questions_to_review'),\n value: `${questionsToReviewData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'circle-question', backgroundColor: '#FFDCD1'}\n }\n ];\n\n const handleOnDotClick = useCallback(\n skillRef => {\n 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('skills_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 onExploreClick={onExploreSkill}\n colors={[\n {\n gradient: {\n fill: ['#0062ffff', '#8000ff85'],\n stroke: ['#0062ffff', '#8000FF']\n },\n percentage: {\n color: primarySkinColor,\n background: convert(`color(${primarySkinColor} a(0.07))`)\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 <div onMouseOver={handleMouseOver} onMouseLeave={handleMouseLeave}>\n <ButtonLink\n label={translate('skills_choose_focus')}\n type=\"primary\"\n customStyle={{\n width: 'fit-contain',\n backgroundColor: hovered\n ? convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`)\n : primarySkinColor\n }}\n onClick={handleOpenSkillPicker}\n />\n </div>\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('close_tooltip_information')}\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 const {score, content, questionsToReview, contentCompleted} =\n skillsInformation[skill].stats;\n return (\n <div key={index}>\n <LearnerSkillCard\n skillTitle={skillsLocales[skill]}\n focus={selectedSkills.includes(skill)}\n metrics={{\n score: score.toFixed(1),\n content,\n questionsToReview,\n contentCompleted\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 skin: Provider.childContextTypes.skin,\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 content: PropTypes.number,\n contentCompleted: PropTypes.number,\n questionsToReview: PropTypes.number,\n learningTime: 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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"}
|
|
@@ -20,11 +20,12 @@
|
|
|
20
20
|
margin-bottom: 48px;
|
|
21
21
|
margin-left: auto;
|
|
22
22
|
margin-right: auto;
|
|
23
|
+
padding: 0 16px;
|
|
23
24
|
position: relative;
|
|
24
25
|
box-sizing: border-box;
|
|
25
26
|
min-height: 100%;
|
|
26
27
|
width: 100%;
|
|
27
|
-
max-width: 1080px;
|
|
28
|
+
max-width: calc(1080px + 32px);
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
.skillFocusContainer {
|
package/locales/bs/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${valuta}${cijena} uklj. PDV mjesečno",
|
|
92
92
|
"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",
|
|
93
93
|
"skill_focus": "Fokus na vještine",
|
|
94
|
+
"skills_focus": "Ciljane vještine",
|
|
94
95
|
"skill_focus_footer_description": "Odaberite barem {{skillNumber}} više vještina",
|
|
95
96
|
"skill_focus_footer_error_description": "Poništite odabir barem {{skillNumber}} više vještina",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Sadržaj je završen",
|
package/locales/cs/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "vč. ${price} ${currency} daně na měsíc",
|
|
92
92
|
"subscription_promo_code": "Nyní máte neomezený přístup k našemu katalogu až do {{date}}. Chcete-li jej využívat i po tomto datu, obnovte si předplatné",
|
|
93
93
|
"skill_focus": "Zaměření dovednosti",
|
|
94
|
+
"skills_focus": "Cílené dovednosti",
|
|
94
95
|
"skill_focus_footer_description": "Vyberte alespoň {{skillNumber}} dalších dovedností",
|
|
95
96
|
"skill_focus_footer_error_description": "Zrušte výběr alespoň {{skillNumber}} dalších dovedností",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Obsah dokončen",
|
package/locales/de/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price} inkl. Steuer monatlich",
|
|
92
92
|
"subscription_promo_code": "Sie haben jetzt einen kostenlosen unbegrenzten Zugang zu unserem Katalog bis {{date}}. Um es nach diesem Datum zu behalten, melden Sie sich bitte an",
|
|
93
93
|
"skill_focus": "Fähigkeitsfokus",
|
|
94
|
+
"skills_focus": "Gezielte Fähigkeiten",
|
|
94
95
|
"skill_focus_footer_description": "Wählen Sie mindestens {{skillNumber}} weitere Fähigkeiten aus.",
|
|
95
96
|
"skill_focus_footer_error_description": "Heben Sie die Auswahl von mindestens {{SkillNumber}} weiteren Skills auf.",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Inhalt abgeschlossen",
|
package/locales/en/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price} incl. taxes per month",
|
|
92
92
|
"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",
|
|
93
93
|
"skill_focus": "Skill focus",
|
|
94
|
+
"skills_focus": "Skills focus",
|
|
94
95
|
"skill_focus_footer_description": "Select at least {{skillNumber}} more skills",
|
|
95
96
|
"skill_focus_footer_error_description": "Unselect at least {{skillNumber}} more skills",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Content Completed",
|
package/locales/es/global.json
CHANGED
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "${currency}${price} incl. impuestos al mes",
|
|
92
92
|
"subscription_promo_code": "Ahora tienes acceso gratis e ilimitado a nuestro catálogo hasta el {{date}}. Para seguir disfrutándolo después de esta fecha, por favor, suscríbete en",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Habilidad dirigida",
|
|
94
|
+
"skills_focus": "Habilidades específicas",
|
|
94
95
|
"skill_focus_footer_description": "Selecciona al menos {{skillNumber}} habilidades más",
|
|
95
96
|
"skill_focus_footer_error_description": "Quita de la selección al menos {{skillNumber}} habilidades más",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Contenido completado",
|
package/locales/et/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price} incl. taxes per month",
|
|
92
92
|
"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",
|
|
93
93
|
"skill_focus": "Oskusfookus",
|
|
94
|
+
"skills_focus": "Suunatud oskused",
|
|
94
95
|
"skill_focus_footer_description": "Vali vähemalt veel {{skillNumber}} oskust",
|
|
95
96
|
"skill_focus_footer_error_description": "Tühista veel vähemalt {{skillNumber}} oskuse valik",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Sisu valmis",
|
package/locales/fi/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${price} ${currency} kuukaudessa sisältäen verot",
|
|
92
92
|
"subscription_promo_code": "Sinulla on nyt luettelomme ilmainen ja rajoittamaton käyttöoikeus {{date}} asti. Jos haluat jatkaa sen käyttämistä kyseisen päivän jälkeen, tilaa",
|
|
93
93
|
"skill_focus": "Osaamisen painopiste",
|
|
94
|
+
"skills_focus": "Kohdennettuja taitoja",
|
|
94
95
|
"skill_focus_footer_description": "Valitse vähintään {{skillNumber}} valmiutta enemmän",
|
|
95
96
|
"skill_focus_footer_error_description": "Poista vielä vähintään {{skillNumber}} valmiuden valinta",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Sisältö valmis",
|
package/locales/fr/global.json
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"Create a new cohort": "Créer une nouvelle cohorte",
|
|
23
23
|
"courses": "Cours",
|
|
24
24
|
"courses_completed": "Cours terminés",
|
|
25
|
-
"skills_change_focus": "Changer
|
|
25
|
+
"skills_change_focus": "Changer ses compétences ciblées",
|
|
26
26
|
"skills_choose_focus": "Choisissez votre objectif",
|
|
27
27
|
"cancel": "Annuler",
|
|
28
28
|
"confirm": "Confirmer",
|
|
@@ -90,13 +90,14 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "${price}${currency} TTC par mois",
|
|
92
92
|
"subscription_promo_code": "Vous profitez d’un accès gratuit à tout le catalogue jusqu’au {{date}}. Passé cette date, nous vous invitons à souscrire l’abonnement sur",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Compétence ciblée",
|
|
94
|
+
"skills_focus": "Compétences ciblées",
|
|
94
95
|
"skill_focus_footer_description": "Sélectionnez au moins {{skillNumber}} compétences supplémentaires",
|
|
95
96
|
"skill_focus_footer_error_description": "Désélectionnez au moins {{skillNumber}} compétences supplémentaires",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Contenu terminé",
|
|
97
98
|
"skill_chart_side_panel_questions_to_review": "Questions à réviser",
|
|
98
99
|
"skill_chart_side_panel_learning_hours": "Temps d'apprentissage",
|
|
99
|
-
"skill_focused_chip_tooltip": "Cette compétence est
|
|
100
|
+
"skill_focused_chip_tooltip": "Cette compétence est ciblée",
|
|
100
101
|
"selected": "sélectionnées",
|
|
101
102
|
"This message has been removed by its author": "Ce message a été supprimé par son auteur.",
|
|
102
103
|
"unsubscribe": "Se désabonner de Coorpacademy",
|
package/locales/hr/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price} uklj. poreza mjesečno",
|
|
92
92
|
"subscription_promo_code": "Sada imate besplatan neograničen pristup našem katalogu do {{date}}. Da biste ga nastavili koristiti i nakon ovog datuma, pretplatite se na",
|
|
93
93
|
"skill_focus": "Fokus vještina",
|
|
94
|
+
"skills_focus": "Fokus vještina",
|
|
94
95
|
"skill_focus_footer_description": "Odaberi još najmanje {{skillNumber}} vještina",
|
|
95
96
|
"skill_focus_footer_error_description": "Poništi odabir najmanje još {{skillNumber}} vještina",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Sadržaj dovršen",
|
package/locales/hu/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price} beleértve. adó havonta",
|
|
92
92
|
"subscription_promo_code": "Önnek ingyenes korlátlan hozzáférése van a katalógusunkhoz eddig az időpontig: {{date}}. Ha ezután is használni szeretné, kérjük, fizessen elő",
|
|
93
93
|
"skill_focus": "Képesség célzása",
|
|
94
|
+
"skills_focus": "Célzott készségek",
|
|
94
95
|
"skill_focus_footer_description": "Válassz még legalább {{skillNumber}} további képességet",
|
|
95
96
|
"skill_focus_footer_error_description": "Vond vissza még legalább {{skillNumber}} képesség megjelölését",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "A tartalom elkészült",
|
package/locales/hy/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price} ներառյալ ամսական հարկեր",
|
|
92
92
|
"subscription_promo_code": "Դուք այժմ ունեք անվճար անսահմանափակ մուտք դեպի մեր կատալոգ մինչև {{date}}: Այս ամսաթվից հետո այն վայելելու համար, խնդրում ենք բաժանորդագրվել",
|
|
93
93
|
"skill_focus": "Հմտության կենտրոնացում",
|
|
94
|
+
"skills_focus": "Նպատակային հմտություններ",
|
|
94
95
|
"skill_focus_footer_description": "Ընտրեք առնվազն {{skillNumber}} ավելի շատ հմտություններ",
|
|
95
96
|
"skill_focus_footer_error_description": "Ապաընտրեք առնվազն {{skillNumber}} ավելի շատ հմտություններ",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Բովանդակությունը ավարտված է",
|
package/locales/it/global.json
CHANGED
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "${currency}${price} incl. tasse al mese",
|
|
92
92
|
"subscription_promo_code": "Ora hai un accesso illimitato gratuito al nostro catalogo fino al {{date}}. Per continuare a fruirne dopo questa data, ti invitiamo ad abbonarti su",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Abilità mirata",
|
|
94
|
+
"skills_focus": "Competenze mirate",
|
|
94
95
|
"skill_focus_footer_description": "Seleziona almeno {{skillNumber}} altre competenze",
|
|
95
96
|
"skill_focus_footer_error_description": "Deseleziona almeno {{skillNumber}} altre competenze",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Contenuto completato",
|
package/locales/ja/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "1 ヶ月あたりの ${currency} ${price} 税込税",
|
|
92
92
|
"subscription_promo_code": "今、{{date}} までカタログに無料の無制限のアクセスがあります。この日付後にそれを楽しんで、するに登録してください。",
|
|
93
93
|
"skill_focus": "スキルフォーカス",
|
|
94
|
+
"skills_focus": "対象となるスキル",
|
|
94
95
|
"skill_focus_footer_description": "少なくとも{{skillNumber}}つ以上のスキルを選択してください",
|
|
95
96
|
"skill_focus_footer_error_description": "少なくとも{{skillNumber}}つ以上のスキルの選択を解除してください",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "コンテンツ完了",
|
package/locales/ko/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price} 포함됨. 1개월당 세금",
|
|
92
92
|
"subscription_promo_code": "귀하는 이제 {{date}}까지 당사의 카탈로그에 대한 무제한의 무료 액세스 권한이 있습니다. 이 날짜 이후에 계속 즐기시려면, 구독하세요",
|
|
93
93
|
"skill_focus": "집중 기술",
|
|
94
|
+
"skills_focus": "타겟 스킬",
|
|
94
95
|
"skill_focus_footer_description": "최소 {{skillNumber}}개 이상의 기술을 선택하세요",
|
|
95
96
|
"skill_focus_footer_error_description": "최소 {{skillNumber}}개 이상의 기술을 선택 해제하세요.",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "콘텐츠 완료",
|
package/locales/nl/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price} incl. belastingen per maand",
|
|
92
92
|
"subscription_promo_code": "Je hebt nu gratis onbeperkte toegang tot onze catalogus tot {{date}}. Wil je dat dit na die datum zo blijft, verleng dan je abonnement.",
|
|
93
93
|
"skill_focus": "Vaardigheidsfocus",
|
|
94
|
+
"skills_focus": "Gerichte vaardigheden",
|
|
94
95
|
"skill_focus_footer_description": "Selecteer ten minste {{skillNumber}} extra vaardigheden",
|
|
95
96
|
"skill_focus_footer_error_description": "Deselecteer ten minste {{skillNumber}} extra vaardigheden",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Inhoud voltooid",
|
package/locales/pl/global.json
CHANGED
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "${currency}${price} wraz z podatkami miesięcznie",
|
|
92
92
|
"subscription_promo_code": "Masz teraz nieograniczony dostęp do naszego katalogu do dnia {{date}}. Aby nadal korzystać po tym dniu, subskrybuj",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Ukierunkowana umiejętność",
|
|
94
|
+
"skills_focus": "Ukierunkowane umiejętności",
|
|
94
95
|
"skill_focus_footer_description": "Wybierz jeszcze co najmniej {{skillNumber}} umiejętności",
|
|
95
96
|
"skill_focus_footer_error_description": "Cofnij wybór co najmniej {{skillNumber}} umiejętności",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Treść ukończona",
|
package/locales/pt/global.json
CHANGED
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "${currency}${price} incl. taxas por mês",
|
|
92
92
|
"subscription_promo_code": "Agora tem um acesso grátis ilimitado ao nosso catálogo até {{date}}. Para continuar a beneficiar dele depois desta data, por favor subscreva em",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Habilidade direcionada",
|
|
94
|
+
"skills_focus": "Habilidades direcionadas",
|
|
94
95
|
"skill_focus_footer_description": "Selecione pelo menos mais {{skillNumber}} competências",
|
|
95
96
|
"skill_focus_footer_error_description": "Remova a seleção de pelo menos mais {{skillNumber}} competências",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Conteúdo concluído",
|
package/locales/ro/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price} incl. taxe pe lună",
|
|
92
92
|
"subscription_promo_code": "Aveți acces gratuit și nelimitat la catalogul nostru până la data de {{date}}. Dacă doriți să beneficiați de acces și după data respectivă, vă rugăm să vă abonați pe",
|
|
93
93
|
"skill_focus": "Abilitățile vizate",
|
|
94
|
+
"skills_focus": "Abilități vizate",
|
|
94
95
|
"skill_focus_footer_description": "Selectați cel puțin încă {{skillNumber}} abilități",
|
|
95
96
|
"skill_focus_footer_error_description": "Deselectați cel puțin încă {{skillNumber}} abilități",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Conținut finalizat",
|
package/locales/ru/global.json
CHANGED
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "${currency}${price} вкл. налоги в месяц",
|
|
92
92
|
"subscription_promo_code": "Теперь вы располагаете безлимитным доступом к нашему каталогу до {{date}}. Чтобы пользоваться им и после этой даты, оформите подписку на",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Целевой навык",
|
|
94
|
+
"skills_focus": "Целевые навыки",
|
|
94
95
|
"skill_focus_footer_description": "Выберите как минимум ещё {{skillNumber}} навыка(-ов)",
|
|
95
96
|
"skill_focus_footer_error_description": "Отмените выбор как минимум ещё {{skillNumber}} навыков",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Содержание завершено",
|
package/locales/sk/global.json
CHANGED
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "${currency}${price} vrátane DPH za mesiac",
|
|
92
92
|
"subscription_promo_code": "Teraz máte bezplatný neobmedzený prístup do nášho katalógu do {{date}}. Ak si ho chcete užívať aj po tomto termíne, prihláste sa na odber",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Cielená zručnosť",
|
|
94
|
+
"skills_focus": "Cielené zručnosti",
|
|
94
95
|
"skill_focus_footer_description": "Vyberte aspoň {{skillNumber}} ďalších zručností",
|
|
95
96
|
"skill_focus_footer_error_description": "Zrušte výber aspoň {{skillNumber}} ďalších zručností",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Obsah dokončený",
|
package/locales/sl/global.json
CHANGED
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "$ {currency} $ {price} vklj. davkov na mesec",
|
|
92
92
|
"subscription_promo_code": "Zdaj imate brezplačen neomejen dostop do našega kataloga do {{date}} . Če želite še naprej uživati po tem datumu, se naročite",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Ciljna spretnost",
|
|
94
|
+
"skills_focus": "Ciljno usmerjene veščine",
|
|
94
95
|
"skill_focus_footer_description": "Izberite vsaj še toliko veščin: {{skillNumber}}",
|
|
95
96
|
"skill_focus_footer_error_description": "Prekličite izbor vsaj še toliko veščin: {{skillNumber}}",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Vsebina dokončana",
|
package/locales/sv/global.json
CHANGED
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "${currency}${price} inkl. skatt per månad",
|
|
92
92
|
"subscription_promo_code": "Du har nu gratis obegränsad tillgång till vår katalog fram till den {{date}}. För att fortsätta använda den efter det här datumet, vänligen prenumerera på ",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Riktad skicklighet",
|
|
94
|
+
"skills_focus": "Riktade färdigheter",
|
|
94
95
|
"skill_focus_footer_description": "Välj minst {{skillNumber}} färdigheter till",
|
|
95
96
|
"skill_focus_footer_error_description": "Avmarkera minst {{skillNumber}} färdigheter till",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Innehållet slutfört",
|
package/locales/tl/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price} kasamang taxes kada buwan",
|
|
92
92
|
"subscription_promo_code": "Mayroon kang libreng walang limitasyong pag-access sa aming katalogo hanggang sa {{date}}. Upang mapanatili itong tangkilikin pagkatapos ng petsang ito, mangyaring mag-subscribe sa",
|
|
93
93
|
"skill_focus": "Kasanayang pagtutuunan ng pansin",
|
|
94
|
+
"skills_focus": "Mga naka-target na kasanayan",
|
|
94
95
|
"skill_focus_footer_description": "Pumili ng hindi bababa sa {{skillNumber}} pang kasanayan",
|
|
95
96
|
"skill_focus_footer_error_description": "Alisin sa pagkakapili ang hindi bababa sa {{skillNumber}} pang kasanayan",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Nakumpleto ang Nilalaman",
|
package/locales/tr/global.json
CHANGED
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "Aylık ${currency}${price}, vergiler dahil",
|
|
92
92
|
"subscription_promo_code": "Şimdi {{date}} tarihine kadar kataloğumuza ücretsiz sınırsız erişim hakkına sahipsiniz. Bu tarihten sonra içeriği kullanmaya devam etmek için, lütfen _______ tarihinde abone olun",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Hedeflenen beceri",
|
|
94
|
+
"skills_focus": "Hedeflenen beceriler",
|
|
94
95
|
"skill_focus_footer_description": "En az {{skillNumber}} daha fazla beceri seç",
|
|
95
96
|
"skill_focus_footer_error_description": "En az {{skillNumber}} daha fazla becerinin seçimini kaldır",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "İçerik Tamamlandı",
|
package/locales/uk/global.json
CHANGED
|
@@ -90,7 +90,8 @@
|
|
|
90
90
|
"subscription_premium_title": "Coorpacademy Premium",
|
|
91
91
|
"subscription_price": "${currency}${price} включно податків на місяць",
|
|
92
92
|
"subscription_promo_code": "Тепер у вас безкоштовний необмежений доступ до нашого каталогу до {{date}}. Щоб користуватися ним і після цієї дати, будь ласка підпишіться на",
|
|
93
|
-
"skill_focus": "
|
|
93
|
+
"skill_focus": "Цільовий навик",
|
|
94
|
+
"skills_focus": "Цільові навички",
|
|
94
95
|
"skill_focus_footer_description": "Виберіть ще принаймні {{skillNumber}} навички",
|
|
95
96
|
"skill_focus_footer_error_description": "Приберіть вибір ще принаймні {{skillNumber}} навичок",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Зміст завершено",
|
package/locales/vi/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "đã bao gồm ${price}${currency} thuế mỗi tháng",
|
|
92
92
|
"subscription_promo_code": "Giờ đây bạn đã có quyền truy cập miễn phí không giới hạn vào danh mục của chúng tôi cho đến {{date}}. Để tiếp tục tận hưởng đặc quyền này sau ngày đã nêu, hãy đăng ký",
|
|
93
93
|
"skill_focus": "Trọng tâm kỹ năng",
|
|
94
|
+
"skills_focus": "Trọng tâm kỹ năng",
|
|
94
95
|
"skill_focus_footer_description": "Chọn thêm ít nhất {{skillNumber}} kỹ năng nữa",
|
|
95
96
|
"skill_focus_footer_error_description": "Bỏ chọn thêm ít nhất {{skillNumber}} kỹ năng nữa",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "Nội dung đã hoàn thành",
|
package/locales/zh/global.json
CHANGED
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "${currency}${price}包括每月税费",
|
|
92
92
|
"subscription_promo_code": "现在你可以尽情访问我们的课程,直到{{date}}。若要在该日期之后继续享用,请订阅",
|
|
93
93
|
"skill_focus": "重点关注的技能",
|
|
94
|
+
"skills_focus": "针对性技能",
|
|
94
95
|
"skill_focus_footer_description": "选择至少 {{skillNumber}} 项技能",
|
|
95
96
|
"skill_focus_footer_error_description": "取消选择至少 {{skillNumber}} 项技能",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "内容已完成",
|
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
"subscription_price": "含 ${currency}${price}每月稅金",
|
|
92
92
|
"subscription_promo_code": "您現在可以免費無限制地造訪我們的目錄,直到{{date}}。如要在此日期之後繼續享用它,請訂閱",
|
|
93
93
|
"skill_focus": "技能焦點",
|
|
94
|
+
"skills_focus": "針對性技能",
|
|
94
95
|
"skill_focus_footer_description": "至少選擇 {{skillNumber}} 項技能",
|
|
95
96
|
"skill_focus_footer_error_description": "至少取消選擇 {{skillNumber}} 項技能",
|
|
96
97
|
"skill_chart_side_panel_content_completed": "內容已完成",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "11.32.
|
|
3
|
+
"version": "11.32.10",
|
|
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": "
|
|
179
|
+
"gitHead": "3da4e1a68ba3f90104cec176bc4cc1823662a051"
|
|
180
180
|
}
|