@coorpacademy/components 11.32.6 → 11.32.8
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/molecule/discipline-associated-skills/index.d.ts.map +1 -1
- package/es/molecule/discipline-associated-skills/index.js +11 -2
- package/es/molecule/discipline-associated-skills/index.js.map +1 -1
- package/es/molecule/discipline-associated-skills/style.css +35 -3
- package/es/molecule/learner-skill-card/index.d.ts +3 -3
- package/es/molecule/learner-skill-card/index.js +15 -15
- package/es/molecule/learner-skill-card/index.js.map +1 -1
- package/es/stories/Configure.mdx +364 -0
- package/es/stories/assets/accessibility.png +0 -0
- package/es/stories/assets/accessibility.svg +5 -0
- package/es/stories/assets/addon-library.png +0 -0
- package/es/stories/assets/assets.png +0 -0
- package/es/stories/assets/avif-test-image.avif +0 -0
- package/es/stories/assets/context.png +0 -0
- package/es/stories/assets/discord.svg +15 -0
- package/es/stories/assets/docs.png +0 -0
- package/es/stories/assets/figma-plugin.png +0 -0
- package/es/stories/assets/github.svg +3 -0
- package/es/stories/assets/share.png +0 -0
- package/es/stories/assets/styling.png +0 -0
- package/es/stories/assets/testing.png +0 -0
- package/es/stories/assets/theming.png +0 -0
- package/es/stories/assets/tutorials.svg +12 -0
- package/es/stories/assets/youtube.svg +4 -0
- package/es/stories/button.css +30 -0
- package/es/stories/header.css +32 -0
- package/es/stories/page.css +69 -0
- package/es/template/my-learning/index.d.ts +4 -4
- package/es/template/my-learning/index.d.ts.map +1 -1
- package/es/template/my-learning/index.js +23 -22
- package/es/template/my-learning/index.js.map +1 -1
- package/es/util/time-format.d.ts +2 -0
- package/es/util/time-format.d.ts.map +1 -0
- package/es/util/time-format.js +18 -0
- package/es/util/time-format.js.map +1 -0
- package/lib/molecule/discipline-associated-skills/index.d.ts.map +1 -1
- package/lib/molecule/discipline-associated-skills/index.js +11 -2
- package/lib/molecule/discipline-associated-skills/index.js.map +1 -1
- package/lib/molecule/discipline-associated-skills/style.css +35 -3
- package/lib/molecule/learner-skill-card/index.d.ts +3 -3
- package/lib/molecule/learner-skill-card/index.js +15 -15
- package/lib/molecule/learner-skill-card/index.js.map +1 -1
- package/lib/stories/Configure.mdx +364 -0
- package/lib/stories/assets/accessibility.png +0 -0
- package/lib/stories/assets/accessibility.svg +5 -0
- package/lib/stories/assets/addon-library.png +0 -0
- package/lib/stories/assets/assets.png +0 -0
- package/lib/stories/assets/avif-test-image.avif +0 -0
- package/lib/stories/assets/context.png +0 -0
- package/lib/stories/assets/discord.svg +15 -0
- package/lib/stories/assets/docs.png +0 -0
- package/lib/stories/assets/figma-plugin.png +0 -0
- package/lib/stories/assets/github.svg +3 -0
- package/lib/stories/assets/share.png +0 -0
- package/lib/stories/assets/styling.png +0 -0
- package/lib/stories/assets/testing.png +0 -0
- package/lib/stories/assets/theming.png +0 -0
- package/lib/stories/assets/tutorials.svg +12 -0
- package/lib/stories/assets/youtube.svg +4 -0
- package/lib/stories/button.css +30 -0
- package/lib/stories/header.css +32 -0
- package/lib/stories/page.css +69 -0
- package/lib/template/my-learning/index.d.ts +4 -4
- package/lib/template/my-learning/index.d.ts.map +1 -1
- package/lib/template/my-learning/index.js +24 -22
- package/lib/template/my-learning/index.js.map +1 -1
- package/lib/util/time-format.d.ts +2 -0
- package/lib/util/time-format.d.ts.map +1 -0
- package/lib/util/time-format.js +21 -0
- package/lib/util/time-format.js.map +1 -0
- package/locales/bs/global.json +6 -6
- package/locales/cs/global.json +6 -6
- package/locales/de/global.json +6 -6
- package/locales/en/global.json +3 -3
- package/locales/es/global.json +6 -6
- package/locales/et/global.json +6 -6
- package/locales/fi/global.json +6 -6
- package/locales/fr/global.json +6 -6
- package/locales/hr/global.json +6 -6
- package/locales/hu/global.json +6 -6
- package/locales/hy/global.json +6 -6
- package/locales/it/global.json +6 -6
- package/locales/ja/global.json +5 -5
- package/locales/ko/global.json +6 -6
- package/locales/nl/global.json +6 -6
- package/locales/pl/global.json +6 -6
- package/locales/pt/global.json +6 -6
- package/locales/ro/global.json +6 -6
- package/locales/ru/global.json +6 -6
- package/locales/sk/global.json +6 -6
- package/locales/sl/global.json +6 -6
- package/locales/sv/global.json +6 -6
- package/locales/tl/global.json +6 -6
- package/locales/tr/global.json +6 -6
- package/locales/uk/global.json +6 -6
- package/locales/vi/global.json +6 -6
- package/locales/zh/global.json +5 -5
- package/locales/zh_TW/global.json +6 -6
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/discipline-associated-skills/index.js"],"names":[],"mappings":";AAUA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/discipline-associated-skills/index.js"],"names":[],"mappings":";AAUA,0FA0EC"}
|
|
@@ -26,7 +26,12 @@ const DisciplineAssociatedSkills = (props, context) => {
|
|
|
26
26
|
faSize: 12,
|
|
27
27
|
wrapperSize: 12
|
|
28
28
|
}
|
|
29
|
-
}),
|
|
29
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
30
|
+
className: style.chipFocusedContentText
|
|
31
|
+
}, skill)), []);
|
|
32
|
+
const TooltipContentElement = useCallback(skill => /*#__PURE__*/React.createElement("div", {
|
|
33
|
+
className: style.tooltipContentWrapper
|
|
34
|
+
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("b", null, translate('skill_focused_chip_tooltip'))), /*#__PURE__*/React.createElement("div", null, skill)), []);
|
|
30
35
|
return !_isEmpty(skills) ? /*#__PURE__*/React.createElement("div", {
|
|
31
36
|
"data-name": "discipline-associated-skills",
|
|
32
37
|
className: style.associatedSkillsWrapper
|
|
@@ -43,6 +48,10 @@ const DisciplineAssociatedSkills = (props, context) => {
|
|
|
43
48
|
return AnchorElement(skill.locale);
|
|
44
49
|
}
|
|
45
50
|
|
|
51
|
+
function handleTooltipContentElement() {
|
|
52
|
+
return TooltipContentElement(skill.locale);
|
|
53
|
+
}
|
|
54
|
+
|
|
46
55
|
return /*#__PURE__*/React.createElement("div", {
|
|
47
56
|
key: _uniqueId(),
|
|
48
57
|
className: classnames(style.chipWrapper, skill.focused && style.chipWrapperFocused),
|
|
@@ -53,7 +62,7 @@ const DisciplineAssociatedSkills = (props, context) => {
|
|
|
53
62
|
delayHide: 0,
|
|
54
63
|
iconContainerClassName: style.infoIconTooltip,
|
|
55
64
|
tooltipClassName: style.tooltip,
|
|
56
|
-
TooltipContent:
|
|
65
|
+
TooltipContent: handleTooltipContentElement,
|
|
57
66
|
closeToolTipInformationTextAriaLabel: translate('close_tooltip_information')
|
|
58
67
|
}) : skill.locale);
|
|
59
68
|
})))) : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","PropTypes","classnames","Icon","ToolTip","Provider","CatalogSection","style","DisciplineAssociatedSkills","props","context","translate","skills","onSkillClick","AnchorElement","skill","chipFocusedContent","faSize","wrapperSize","associatedSkillsWrapper","chipsWrapper","map","handleSkillClick","ref","handleAnchorElement","locale","chipWrapper","focused","chipWrapperFocused","infoIconTooltip","tooltip","contextTypes","childContextTypes","propTypes","arrayOf","shape","string","bool","func"],"sources":["../../../src/molecule/discipline-associated-skills/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isEmpty, uniqueId} from 'lodash/fp';\nimport Icon from '../../atom/icon';\nimport ToolTip from '../../atom/tooltip';\nimport Provider from '../../atom/provider';\nimport CatalogSection from '../../atom/catalog-section';\nimport style from './style.css';\n\nconst DisciplineAssociatedSkills = (props, context) => {\n const {translate} = context;\n\n const {skills = [], onSkillClick} = props;\n\n const AnchorElement = useCallback(\n skill => (\n <div className={style.chipFocusedContent}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n size={{\n faSize: 12,\n wrapperSize: 12\n }}\n />\n {skill}\n </div>\n ),\n []\n );\n\n return !isEmpty(skills) ? (\n <div data-name=\"discipline-associated-skills\" className={style.associatedSkillsWrapper}>\n <CatalogSection title={translate('associated_skills')}>\n <div className={style.chipsWrapper}>\n {skills.map(skill => {\n function handleSkillClick() {\n return onSkillClick(skill.ref);\n }\n function handleAnchorElement() {\n return AnchorElement(skill.locale);\n }\n return (\n <div\n key={uniqueId()}\n className={classnames(style.chipWrapper, skill.focused && style.chipWrapperFocused)}\n onClick={handleSkillClick}\n >\n {skill.focused ? (\n <ToolTip\n AnchorElement={handleAnchorElement}\n fontSize={12}\n delayHide={0}\n iconContainerClassName={style.infoIconTooltip}\n tooltipClassName={style.tooltip}\n TooltipContent={
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","PropTypes","classnames","Icon","ToolTip","Provider","CatalogSection","style","DisciplineAssociatedSkills","props","context","translate","skills","onSkillClick","AnchorElement","skill","chipFocusedContent","faSize","wrapperSize","chipFocusedContentText","TooltipContentElement","tooltipContentWrapper","associatedSkillsWrapper","chipsWrapper","map","handleSkillClick","ref","handleAnchorElement","locale","handleTooltipContentElement","chipWrapper","focused","chipWrapperFocused","infoIconTooltip","tooltip","contextTypes","childContextTypes","propTypes","arrayOf","shape","string","bool","func"],"sources":["../../../src/molecule/discipline-associated-skills/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isEmpty, uniqueId} from 'lodash/fp';\nimport Icon from '../../atom/icon';\nimport ToolTip from '../../atom/tooltip';\nimport Provider from '../../atom/provider';\nimport CatalogSection from '../../atom/catalog-section';\nimport style from './style.css';\n\nconst DisciplineAssociatedSkills = (props, context) => {\n const {translate} = context;\n\n const {skills = [], onSkillClick} = props;\n\n const AnchorElement = useCallback(\n skill => (\n <div className={style.chipFocusedContent}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n size={{\n faSize: 12,\n wrapperSize: 12\n }}\n />\n <div className={style.chipFocusedContentText}>{skill}</div>\n </div>\n ),\n []\n );\n\n const TooltipContentElement = useCallback(\n skill => (\n <div className={style.tooltipContentWrapper}>\n <div>\n <b>{translate('skill_focused_chip_tooltip')}</b>\n </div>\n <div>{skill}</div>\n </div>\n ),\n []\n );\n\n return !isEmpty(skills) ? (\n <div data-name=\"discipline-associated-skills\" className={style.associatedSkillsWrapper}>\n <CatalogSection title={translate('associated_skills')}>\n <div className={style.chipsWrapper}>\n {skills.map(skill => {\n function handleSkillClick() {\n return onSkillClick(skill.ref);\n }\n function handleAnchorElement() {\n return AnchorElement(skill.locale);\n }\n function handleTooltipContentElement() {\n return TooltipContentElement(skill.locale);\n }\n return (\n <div\n key={uniqueId()}\n className={classnames(style.chipWrapper, skill.focused && style.chipWrapperFocused)}\n onClick={handleSkillClick}\n >\n {skill.focused ? (\n <ToolTip\n AnchorElement={handleAnchorElement}\n fontSize={12}\n delayHide={0}\n iconContainerClassName={style.infoIconTooltip}\n tooltipClassName={style.tooltip}\n TooltipContent={handleTooltipContentElement}\n closeToolTipInformationTextAriaLabel={translate('close_tooltip_information')}\n />\n ) : (\n skill.locale\n )}\n </div>\n );\n })}\n </div>\n </CatalogSection>\n </div>\n ) : null;\n};\n\nDisciplineAssociatedSkills.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nDisciplineAssociatedSkills.propTypes = {\n skills: PropTypes.arrayOf(\n PropTypes.shape({\n ref: PropTypes.string,\n locale: PropTypes.string,\n focused: PropTypes.bool\n })\n ),\n onSkillClick: PropTypes.func\n};\n\nexport default DisciplineAssociatedSkills;\n"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
@value colors: "../../variables/colors.css";
|
|
2
2
|
@value breakpoints: "../../variables/breakpoints.css";
|
|
3
3
|
@value desktop from breakpoints;
|
|
4
|
+
@value mobile from breakpoints;
|
|
4
5
|
@value cm_grey_100 from colors;
|
|
5
6
|
@value cm_grey_200 from colors;
|
|
6
7
|
@value cm_grey_700 from colors;
|
|
@@ -26,8 +27,6 @@
|
|
|
26
27
|
font-weight: 600;
|
|
27
28
|
line-height: 20px;
|
|
28
29
|
font-size: 14px;
|
|
29
|
-
text-overflow: ellipsis;
|
|
30
|
-
white-space: nowrap;
|
|
31
30
|
}
|
|
32
31
|
|
|
33
32
|
.chipWrapperFocused {
|
|
@@ -38,6 +37,7 @@
|
|
|
38
37
|
.chipFocusedContent {
|
|
39
38
|
display: flex;
|
|
40
39
|
align-items: center;
|
|
40
|
+
max-width: 224px;
|
|
41
41
|
gap: 4px;
|
|
42
42
|
|
|
43
43
|
div {
|
|
@@ -45,6 +45,12 @@
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
.chipFocusedContentText {
|
|
49
|
+
text-overflow: ellipsis;
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
white-space: nowrap;
|
|
52
|
+
}
|
|
53
|
+
|
|
48
54
|
.infoIconTooltip {
|
|
49
55
|
background-color: transparent;
|
|
50
56
|
}
|
|
@@ -55,7 +61,7 @@
|
|
|
55
61
|
font-size: 12px;
|
|
56
62
|
font-style: normal;
|
|
57
63
|
line-height: 16px;
|
|
58
|
-
top: -
|
|
64
|
+
top: -64px;
|
|
59
65
|
|
|
60
66
|
p {
|
|
61
67
|
padding: 8px 8px;
|
|
@@ -63,8 +69,34 @@
|
|
|
63
69
|
}
|
|
64
70
|
}
|
|
65
71
|
|
|
72
|
+
.tooltipContentWrapper {
|
|
73
|
+
padding: 8px 12px;
|
|
74
|
+
text-align: left;
|
|
75
|
+
width: max-content;
|
|
76
|
+
font-weight: 400;
|
|
77
|
+
line-height: 16px;
|
|
78
|
+
}
|
|
79
|
+
|
|
66
80
|
@media desktop {
|
|
67
81
|
.associatedSkillsWrapper {
|
|
68
82
|
margin-top: 24px;
|
|
69
83
|
}
|
|
84
|
+
|
|
85
|
+
.chipFocusedContent {
|
|
86
|
+
max-width: max-content;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@media mobile {
|
|
91
|
+
.associatedSkillsWrapper {
|
|
92
|
+
margin-top: 24px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.chipFocusedContent {
|
|
96
|
+
max-width: 100%;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.chipWrapperFocused {
|
|
100
|
+
max-width: 69vw;
|
|
101
|
+
}
|
|
70
102
|
}
|
|
@@ -32,9 +32,9 @@ declare namespace LearnerSkillCard {
|
|
|
32
32
|
focus: PropTypes.Requireable<boolean>;
|
|
33
33
|
metrics: PropTypes.Requireable<PropTypes.InferProps<{
|
|
34
34
|
score: PropTypes.Requireable<number>;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
content: PropTypes.Requireable<number>;
|
|
36
|
+
questionsToReview: PropTypes.Requireable<number>;
|
|
37
|
+
contentCompleted: PropTypes.Requireable<number>;
|
|
38
38
|
}>>;
|
|
39
39
|
review: PropTypes.Requireable<boolean>;
|
|
40
40
|
onReviewClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -20,9 +20,9 @@ const LearnerSkillCard = (props, context) => {
|
|
|
20
20
|
} = props;
|
|
21
21
|
const {
|
|
22
22
|
score,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
content,
|
|
24
|
+
questionsToReview,
|
|
25
|
+
contentCompleted = 0
|
|
26
26
|
} = metrics;
|
|
27
27
|
const {
|
|
28
28
|
skin,
|
|
@@ -37,7 +37,7 @@ const LearnerSkillCard = (props, context) => {
|
|
|
37
37
|
const coursesLocale = translate('courses');
|
|
38
38
|
const questionsLocale = translate('questions');
|
|
39
39
|
const skillFocusLocale = translate('skill_focus');
|
|
40
|
-
const
|
|
40
|
+
const contentCompletedLocale = translate('courses_completed');
|
|
41
41
|
const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);
|
|
42
42
|
const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);
|
|
43
43
|
const buttonReviewProps = {
|
|
@@ -72,7 +72,7 @@ const LearnerSkillCard = (props, context) => {
|
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
74
|
const ProgressBar = useCallback(() => {
|
|
75
|
-
if (!
|
|
75
|
+
if (!content) return null;
|
|
76
76
|
const progressBarColor = '#3EC483';
|
|
77
77
|
const inlineProgressValueStyle = {
|
|
78
78
|
backgroundColor: progressBarColor,
|
|
@@ -87,24 +87,24 @@ const LearnerSkillCard = (props, context) => {
|
|
|
87
87
|
role: "progressbar",
|
|
88
88
|
"aria-label": _get('progression', ariaLabel)
|
|
89
89
|
}));
|
|
90
|
-
}, [score, ariaLabel,
|
|
90
|
+
}, [score, ariaLabel, content]);
|
|
91
91
|
return /*#__PURE__*/React.createElement("div", {
|
|
92
92
|
className: style.learnerSkillCardWrapper,
|
|
93
93
|
"data-name": "learner-skill-card-wrapper",
|
|
94
94
|
"aria-label": ariaLabel
|
|
95
|
-
},
|
|
95
|
+
}, content || questionsToReview ? /*#__PURE__*/React.createElement("div", {
|
|
96
96
|
className: style.skillCoursesAndQuestionsWrapper
|
|
97
|
-
},
|
|
97
|
+
}, content ? /*#__PURE__*/React.createElement("div", {
|
|
98
98
|
className: style.skillInformation,
|
|
99
99
|
"data-name": "skill-courses"
|
|
100
100
|
}, /*#__PURE__*/React.createElement("span", {
|
|
101
101
|
className: style.skillInformationNumber
|
|
102
|
-
},
|
|
102
|
+
}, content), " ", coursesLocale) : null, questionsToReview ? /*#__PURE__*/React.createElement("div", {
|
|
103
103
|
className: style.skillInformation,
|
|
104
104
|
"data-name": "skill-questions"
|
|
105
105
|
}, /*#__PURE__*/React.createElement("span", {
|
|
106
106
|
className: style.skillInformationNumber
|
|
107
|
-
},
|
|
107
|
+
}, questionsToReview), "\xA0", questionsLocale) : null) : null, /*#__PURE__*/React.createElement("div", {
|
|
108
108
|
className: style.skillTitleWrapper
|
|
109
109
|
}, /*#__PURE__*/React.createElement("div", {
|
|
110
110
|
"data-name": "skill-title",
|
|
@@ -121,12 +121,12 @@ const LearnerSkillCard = (props, context) => {
|
|
|
121
121
|
}
|
|
122
122
|
}), skillFocusLocale) : null), /*#__PURE__*/React.createElement(ProgressBar, null), /*#__PURE__*/React.createElement("div", {
|
|
123
123
|
className: style.progressInformations
|
|
124
|
-
},
|
|
124
|
+
}, content && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
125
125
|
className: style.progressInformation,
|
|
126
126
|
"data-name": "skill-completed-courses"
|
|
127
127
|
}, /*#__PURE__*/React.createElement("span", {
|
|
128
128
|
className: style.progressInformationNumber
|
|
129
|
-
},
|
|
129
|
+
}, contentCompleted), ` ${contentCompletedLocale}`), /*#__PURE__*/React.createElement("div", {
|
|
130
130
|
className: style.progressInformation,
|
|
131
131
|
"data-name": "completed-percentage"
|
|
132
132
|
}, /*#__PURE__*/React.createElement("span", {
|
|
@@ -153,9 +153,9 @@ LearnerSkillCard.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
153
153
|
focus: PropTypes.bool,
|
|
154
154
|
metrics: PropTypes.shape({
|
|
155
155
|
score: PropTypes.number,
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
content: PropTypes.number,
|
|
157
|
+
questionsToReview: PropTypes.number,
|
|
158
|
+
contentCompleted: PropTypes.number
|
|
159
159
|
}),
|
|
160
160
|
review: PropTypes.bool,
|
|
161
161
|
onReviewClick: PropTypes.func,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useState","convert","PropTypes","Icon","ButtonLink","Provider","style","LearnerSkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","focus","metrics","review","onReviewClick","onExploreClick","score","skillCourses","skillQuestions","completedCourses","skin","translate","hovered","setHovered","primarySkinColor","reviewLocale","exploreLocale","coursesLocale","questionsLocale","skillFocusLocale","coursesCompletedLocale","handleMouseOver","handleMouseLeave","buttonReviewProps","customStyle","backgroundColor","transition","disabled","onClick","label","buttonExploreProps","color","icon","position","faIcon","name","size","ProgressBar","progressBarColor","inlineProgressValueStyle","width","progressWrapper","progress","learnerSkillCardWrapper","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","skillTitleWrapper","skillFocusBadge","faSize","wrapperSize","progressInformations","progressInformation","progressInformationNumber","ctaWrapper","buttonWrapper","contextTypes","childContextTypes","propTypes","string","bool","shape","number","func"],"sources":["../../../src/molecule/learner-skill-card/index.js"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {convert} from 'css-color-function';\nimport {get} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst LearnerSkillCard = (props, context) => {\n const {\n 'aria-label': ariaLabel,\n skillTitle,\n skillAriaLabel,\n focus = false,\n metrics,\n review = false,\n onReviewClick,\n onExploreClick\n } = props;\n const {score, skillCourses, skillQuestions, completedCourses = 0} = metrics;\n const {skin, translate} = context;\n const [hovered, setHovered] = useState(false);\n const primarySkinColor = get('common.primary', skin);\n\n const reviewLocale = translate('Review');\n const exploreLocale = translate('Explore');\n const coursesLocale = translate('courses');\n const questionsLocale = translate('questions');\n const skillFocusLocale = translate('skill_focus');\n const coursesCompletedLocale = translate('courses_completed');\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const buttonReviewProps = {\n customStyle: {\n backgroundColor: '#FFF',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n disabled: !review,\n onClick: onReviewClick,\n 'aria-label': `${skillTitle}, ${reviewLocale}`,\n label: reviewLocale,\n 'data-name': 'learner-skill-card-review-button'\n };\n\n const buttonExploreProps = {\n customStyle: {\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n onClick: onExploreClick,\n 'aria-label': `${skillTitle}, ${exploreLocale}`,\n label: exploreLocale,\n 'data-name': 'learner-skill-card-explore-button',\n icon: {\n position: 'left',\n faIcon: {\n name: 'compass',\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }\n };\n\n const ProgressBar = useCallback(() => {\n if (!skillCourses) return null;\n\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${score}%`\n };\n\n return (\n <div className={style.progressWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n role=\"progressbar\"\n aria-label={get('progression', ariaLabel)}\n />\n </div>\n );\n }, [score, ariaLabel, skillCourses]);\n\n return (\n <div\n className={style.learnerSkillCardWrapper}\n data-name=\"learner-skill-card-wrapper\"\n aria-label={ariaLabel}\n >\n {skillCourses || skillQuestions ? (\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {skillCourses ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{skillCourses}</span> {coursesLocale}\n </div>\n ) : null}\n {skillQuestions ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{skillQuestions}</span>\n {questionsLocale}\n </div>\n ) : null}\n </div>\n ) : null}\n <div className={style.skillTitleWrapper}>\n <div\n data-name=\"skill-title\"\n className={style.skillTitle}\n aria-label={skillAriaLabel || skillTitle}\n >\n {skillTitle}\n </div>\n {focus ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n size={{\n faSize: 10,\n wrapperSize: 16\n }}\n />\n {skillFocusLocale}\n </div>\n ) : null}\n </div>\n <ProgressBar />\n <div className={style.progressInformations}>\n {skillCourses && (\n <>\n <div className={style.progressInformation} data-name=\"skill-completed-courses\">\n <span className={style.progressInformationNumber}>{completedCourses}</span>\n {` ${coursesCompletedLocale}`}\n </div>\n <div className={style.progressInformation} data-name=\"completed-percentage\">\n <span className={style.progressInformationNumber}>{score}%</span>\n </div>\n </>\n )}\n </div>\n <div className={style.ctaWrapper} data-name=\"cta-wrapper\">\n <ButtonLink {...buttonReviewProps} />\n <div\n className={style.buttonWrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-name=\"button-explore-wrapper\"\n >\n <ButtonLink {...buttonExploreProps} />\n </div>\n </div>\n </div>\n );\n};\n\nLearnerSkillCard.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nLearnerSkillCard.propTypes = {\n 'aria-label': PropTypes.string,\n skillTitle: PropTypes.string,\n skillAriaLabel: PropTypes.string,\n focus: PropTypes.bool,\n metrics: PropTypes.shape({\n score: PropTypes.number,\n skillCourses: PropTypes.number,\n skillQuestions: PropTypes.number,\n completedCourses: PropTypes.number\n }),\n review: PropTypes.bool,\n onReviewClick: PropTypes.func,\n onExploreClick: PropTypes.func\n};\n\nexport default LearnerSkillCard;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useState","convert","PropTypes","Icon","ButtonLink","Provider","style","LearnerSkillCard","props","context","ariaLabel","skillTitle","skillAriaLabel","focus","metrics","review","onReviewClick","onExploreClick","score","content","questionsToReview","contentCompleted","skin","translate","hovered","setHovered","primarySkinColor","reviewLocale","exploreLocale","coursesLocale","questionsLocale","skillFocusLocale","contentCompletedLocale","handleMouseOver","handleMouseLeave","buttonReviewProps","customStyle","backgroundColor","transition","disabled","onClick","label","buttonExploreProps","color","icon","position","faIcon","name","size","ProgressBar","progressBarColor","inlineProgressValueStyle","width","progressWrapper","progress","learnerSkillCardWrapper","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","skillTitleWrapper","skillFocusBadge","faSize","wrapperSize","progressInformations","progressInformation","progressInformationNumber","ctaWrapper","buttonWrapper","contextTypes","childContextTypes","propTypes","string","bool","shape","number","func"],"sources":["../../../src/molecule/learner-skill-card/index.js"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport {convert} from 'css-color-function';\nimport {get} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst LearnerSkillCard = (props, context) => {\n const {\n 'aria-label': ariaLabel,\n skillTitle,\n skillAriaLabel,\n focus = false,\n metrics,\n review = false,\n onReviewClick,\n onExploreClick\n } = props;\n const {score, content, questionsToReview, contentCompleted = 0} = metrics;\n const {skin, translate} = context;\n const [hovered, setHovered] = useState(false);\n const primarySkinColor = get('common.primary', skin);\n\n const reviewLocale = translate('Review');\n const exploreLocale = translate('Explore');\n const coursesLocale = translate('courses');\n const questionsLocale = translate('questions');\n const skillFocusLocale = translate('skill_focus');\n const contentCompletedLocale = translate('courses_completed');\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n const buttonReviewProps = {\n customStyle: {\n backgroundColor: '#FFF',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n disabled: !review,\n onClick: onReviewClick,\n 'aria-label': `${skillTitle}, ${reviewLocale}`,\n label: reviewLocale,\n 'data-name': 'learner-skill-card-review-button'\n };\n\n const buttonExploreProps = {\n customStyle: {\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n },\n onClick: onExploreClick,\n 'aria-label': `${skillTitle}, ${exploreLocale}`,\n label: exploreLocale,\n 'data-name': 'learner-skill-card-explore-button',\n icon: {\n position: 'left',\n faIcon: {\n name: 'compass',\n backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }\n };\n\n const ProgressBar = useCallback(() => {\n if (!content) return null;\n\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${score}%`\n };\n\n return (\n <div className={style.progressWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n role=\"progressbar\"\n aria-label={get('progression', ariaLabel)}\n />\n </div>\n );\n }, [score, ariaLabel, content]);\n\n return (\n <div\n className={style.learnerSkillCardWrapper}\n data-name=\"learner-skill-card-wrapper\"\n aria-label={ariaLabel}\n >\n {content || questionsToReview ? (\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {content ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{content}</span> {coursesLocale}\n </div>\n ) : null}\n {questionsToReview ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{questionsToReview}</span>\n {questionsLocale}\n </div>\n ) : null}\n </div>\n ) : null}\n <div className={style.skillTitleWrapper}>\n <div\n data-name=\"skill-title\"\n className={style.skillTitle}\n aria-label={skillAriaLabel || skillTitle}\n >\n {skillTitle}\n </div>\n {focus ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n size={{\n faSize: 10,\n wrapperSize: 16\n }}\n />\n {skillFocusLocale}\n </div>\n ) : null}\n </div>\n <ProgressBar />\n <div className={style.progressInformations}>\n {content && (\n <>\n <div className={style.progressInformation} data-name=\"skill-completed-courses\">\n <span className={style.progressInformationNumber}>{contentCompleted}</span>\n {` ${contentCompletedLocale}`}\n </div>\n <div className={style.progressInformation} data-name=\"completed-percentage\">\n <span className={style.progressInformationNumber}>{score}%</span>\n </div>\n </>\n )}\n </div>\n <div className={style.ctaWrapper} data-name=\"cta-wrapper\">\n <ButtonLink {...buttonReviewProps} />\n <div\n className={style.buttonWrapper}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-name=\"button-explore-wrapper\"\n >\n <ButtonLink {...buttonExploreProps} />\n </div>\n </div>\n </div>\n );\n};\n\nLearnerSkillCard.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nLearnerSkillCard.propTypes = {\n 'aria-label': PropTypes.string,\n skillTitle: PropTypes.string,\n skillAriaLabel: PropTypes.string,\n focus: PropTypes.bool,\n metrics: PropTypes.shape({\n score: PropTypes.number,\n content: PropTypes.number,\n questionsToReview: PropTypes.number,\n contentCompleted: PropTypes.number\n }),\n review: PropTypes.bool,\n onReviewClick: PropTypes.func,\n onExploreClick: PropTypes.func\n};\n\nexport default LearnerSkillCard;\n"],"mappings":"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"}
|