@coorpacademy/components 11.32.11 → 11.32.12-alpha.0

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.
Files changed (90) hide show
  1. package/es/atom/select/index.d.ts.map +1 -1
  2. package/es/atom/select/index.js +2 -1
  3. package/es/atom/select/index.js.map +1 -1
  4. package/es/atom/select/style.css +28 -0
  5. package/es/molecule/cm-popin/types.d.ts +1 -0
  6. package/es/molecule/cm-popin/types.d.ts.map +1 -1
  7. package/es/organism/cards-grid/index.d.ts +1 -0
  8. package/es/organism/cards-grid/index.js +6 -1
  9. package/es/organism/cards-grid/index.js.map +1 -1
  10. package/es/organism/cards-grid/style.css +0 -1
  11. package/es/template/app-player/loading/index.d.ts +1 -0
  12. package/es/template/app-player/player/index.d.ts +2 -0
  13. package/es/template/app-player/player/slides/index.d.ts +1 -0
  14. package/es/template/app-player/player/slides/index.d.ts.map +1 -1
  15. package/es/template/app-player/popin-correction/index.d.ts +1 -0
  16. package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
  17. package/es/template/app-player/popin-end/index.d.ts +1 -0
  18. package/es/template/app-review/index.d.ts +1 -0
  19. package/es/template/app-review/index.d.ts.map +1 -1
  20. package/es/template/app-review/player/prop-types.d.ts +1 -0
  21. package/es/template/app-review/player/prop-types.d.ts.map +1 -1
  22. package/es/template/app-review/prop-types.d.ts +1 -0
  23. package/es/template/app-review/prop-types.d.ts.map +1 -1
  24. package/es/template/back-office/brand-update/index.d.ts +1 -0
  25. package/es/template/common/authors/index.d.ts +1 -0
  26. package/es/template/common/authors/index.d.ts.map +1 -1
  27. package/es/template/common/dashboard/index.d.ts +2 -0
  28. package/es/template/common/search-page/index.d.ts +2 -0
  29. package/es/template/external-course/index.d.ts +1 -0
  30. package/es/template/skill-detail/all-courses.css +89 -0
  31. package/es/template/skill-detail/all-courses.d.ts +77 -0
  32. package/es/template/skill-detail/all-courses.d.ts.map +1 -0
  33. package/es/template/skill-detail/all-courses.js +168 -0
  34. package/es/template/skill-detail/all-courses.js.map +1 -0
  35. package/es/template/skill-detail/continue-learning.css +21 -0
  36. package/es/template/skill-detail/continue-learning.d.ts +37 -0
  37. package/es/template/skill-detail/continue-learning.d.ts.map +1 -0
  38. package/es/template/skill-detail/continue-learning.js +40 -0
  39. package/es/template/skill-detail/continue-learning.js.map +1 -0
  40. package/es/template/skill-detail/index.d.ts +95 -0
  41. package/es/template/skill-detail/index.d.ts.map +1 -0
  42. package/es/template/skill-detail/index.js +219 -0
  43. package/es/template/skill-detail/index.js.map +1 -0
  44. package/es/template/skill-detail/style.css +163 -0
  45. package/lib/atom/select/index.d.ts.map +1 -1
  46. package/lib/atom/select/index.js +2 -1
  47. package/lib/atom/select/index.js.map +1 -1
  48. package/lib/atom/select/style.css +28 -0
  49. package/lib/molecule/cm-popin/types.d.ts +1 -0
  50. package/lib/molecule/cm-popin/types.d.ts.map +1 -1
  51. package/lib/organism/cards-grid/index.d.ts +1 -0
  52. package/lib/organism/cards-grid/index.js +6 -1
  53. package/lib/organism/cards-grid/index.js.map +1 -1
  54. package/lib/organism/cards-grid/style.css +0 -1
  55. package/lib/template/app-player/loading/index.d.ts +1 -0
  56. package/lib/template/app-player/player/index.d.ts +2 -0
  57. package/lib/template/app-player/player/slides/index.d.ts +1 -0
  58. package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
  59. package/lib/template/app-player/popin-correction/index.d.ts +1 -0
  60. package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
  61. package/lib/template/app-player/popin-end/index.d.ts +1 -0
  62. package/lib/template/app-review/index.d.ts +1 -0
  63. package/lib/template/app-review/index.d.ts.map +1 -1
  64. package/lib/template/app-review/player/prop-types.d.ts +1 -0
  65. package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
  66. package/lib/template/app-review/prop-types.d.ts +1 -0
  67. package/lib/template/app-review/prop-types.d.ts.map +1 -1
  68. package/lib/template/back-office/brand-update/index.d.ts +1 -0
  69. package/lib/template/common/authors/index.d.ts +1 -0
  70. package/lib/template/common/authors/index.d.ts.map +1 -1
  71. package/lib/template/common/dashboard/index.d.ts +2 -0
  72. package/lib/template/common/search-page/index.d.ts +2 -0
  73. package/lib/template/external-course/index.d.ts +1 -0
  74. package/lib/template/skill-detail/all-courses.css +89 -0
  75. package/lib/template/skill-detail/all-courses.d.ts +77 -0
  76. package/lib/template/skill-detail/all-courses.d.ts.map +1 -0
  77. package/lib/template/skill-detail/all-courses.js +187 -0
  78. package/lib/template/skill-detail/all-courses.js.map +1 -0
  79. package/lib/template/skill-detail/continue-learning.css +21 -0
  80. package/lib/template/skill-detail/continue-learning.d.ts +37 -0
  81. package/lib/template/skill-detail/continue-learning.d.ts.map +1 -0
  82. package/lib/template/skill-detail/continue-learning.js +52 -0
  83. package/lib/template/skill-detail/continue-learning.js.map +1 -0
  84. package/lib/template/skill-detail/index.d.ts +95 -0
  85. package/lib/template/skill-detail/index.d.ts.map +1 -0
  86. package/lib/template/skill-detail/index.js +241 -0
  87. package/lib/template/skill-detail/index.js.map +1 -0
  88. package/lib/template/skill-detail/style.css +163 -0
  89. package/locales/en/global.json +7 -0
  90. package/package.json +2 -2
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _get2 = _interopRequireDefault(require("lodash/fp/get"));
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _cssColorFunction = require("css-color-function");
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ var _provider = _interopRequireDefault(require("../../atom/provider"));
17
+
18
+ var _select = _interopRequireWildcard(require("../../atom/select"));
19
+
20
+ var _buttonLink = _interopRequireDefault(require("../../atom/button-link"));
21
+
22
+ var _icon = _interopRequireDefault(require("../../atom/icon"));
23
+
24
+ var _cardsGrid = _interopRequireDefault(require("../../organism/cards-grid"));
25
+
26
+ var _style = _interopRequireDefault(require("./style.css"));
27
+
28
+ var _allCourses = _interopRequireDefault(require("./all-courses"));
29
+
30
+ var _continueLearning = _interopRequireDefault(require("./continue-learning"));
31
+
32
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
33
+
34
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+
36
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
+
38
+ const ContinueLearningButton = (props, context) => {
39
+ const [hovered, setHovered] = (0, _react.useState)(false);
40
+ const {
41
+ onClick
42
+ } = props;
43
+ const {
44
+ skin,
45
+ translate
46
+ } = context;
47
+ const primarySkinColor = (0, _get2.default)('common.primary', skin);
48
+ const handleMouseOver = (0, _react.useCallback)(() => setHovered(true), [setHovered]);
49
+ const handleMouseLeave = (0, _react.useCallback)(() => setHovered(false), [setHovered]);
50
+ return /*#__PURE__*/_react.default.createElement("div", {
51
+ onMouseOver: handleMouseOver,
52
+ onMouseLeave: handleMouseLeave
53
+ }, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
54
+ label: translate('continue_learning'),
55
+ type: "primary",
56
+ customStyle: {
57
+ width: 'fit-content',
58
+ borderRadius: '12px',
59
+ backgroundColor: hovered ? (0, _cssColorFunction.convert)(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`) : primarySkinColor
60
+ },
61
+ icon: {
62
+ position: 'left',
63
+ faIcon: {
64
+ name: 'play',
65
+ color: '#FFFFFF',
66
+ size: 16
67
+ }
68
+ },
69
+ onClick: onClick
70
+ }));
71
+ };
72
+
73
+ ContinueLearningButton.contextTypes = {
74
+ skin: _provider.default.childContextTypes.skin,
75
+ translate: _provider.default.childContextTypes.translate
76
+ };
77
+ ContinueLearningButton.propTypes = process.env.NODE_ENV !== "production" ? {
78
+ onClick: _propTypes.default.func
79
+ } : {};
80
+
81
+ const SkillDetail = (props, context) => {
82
+ const {
83
+ title,
84
+ description,
85
+ metrics,
86
+ focused,
87
+ availableForReview,
88
+ ongoingCourses,
89
+ skillIncludedCourses,
90
+ filters,
91
+ sorting,
92
+ onBackClick,
93
+ onReviewClick,
94
+ onContinueLearningClick
95
+ } = props;
96
+ const {
97
+ score,
98
+ content,
99
+ questionsToReview,
100
+ contentCompleted = 0
101
+ } = metrics;
102
+ const {
103
+ translate
104
+ } = context;
105
+ const [showMore, setShowMore] = (0, _react.useState)(false);
106
+ const handleShowMore = (0, _react.useCallback)(() => setShowMore(!showMore), [setShowMore, showMore]);
107
+ const Description = (0, _react.useCallback)(() => {
108
+ return /*#__PURE__*/_react.default.createElement("div", {
109
+ className: (0, _classnames.default)(_style.default.description, !showMore && _style.default.truncate)
110
+ }, description);
111
+ });
112
+ const ProgressBar = (0, _react.useCallback)(() => {
113
+ if (score === undefined) return null;
114
+ const progressBarColor = '#3EC483';
115
+ const inlineProgressValueStyle = {
116
+ backgroundColor: progressBarColor,
117
+ width: `${score}%`
118
+ };
119
+ return /*#__PURE__*/_react.default.createElement("div", {
120
+ className: _style.default.progressBarWrapper
121
+ }, /*#__PURE__*/_react.default.createElement("div", {
122
+ "data-name": "progress",
123
+ className: _style.default.progress,
124
+ style: inlineProgressValueStyle,
125
+ role: "progressbar"
126
+ }));
127
+ }, [score]);
128
+ return /*#__PURE__*/_react.default.createElement("div", {
129
+ className: _style.default.backgroundContainer
130
+ }, /*#__PURE__*/_react.default.createElement("div", {
131
+ className: _style.default.container
132
+ }, /*#__PURE__*/_react.default.createElement("div", {
133
+ className: _style.default.backButtonWrapper,
134
+ onClick: onBackClick
135
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, {
136
+ iconName: "arrow-left",
137
+ size: {
138
+ faSize: 14,
139
+ wrapperSize: 14
140
+ }
141
+ })), /*#__PURE__*/_react.default.createElement("div", {
142
+ className: _style.default.ctaContainer
143
+ }, /*#__PURE__*/_react.default.createElement("div", null, focused ? /*#__PURE__*/_react.default.createElement("div", {
144
+ className: _style.default.skillFocusBadge
145
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, {
146
+ iconName: "bullseye-arrow",
147
+ backgroundColor: "#DDD1FF",
148
+ size: {
149
+ faSize: 10,
150
+ wrapperSize: 16
151
+ }
152
+ }), translate('skill_focus')) : null, /*#__PURE__*/_react.default.createElement("div", {
153
+ className: _style.default.title
154
+ }, title), description ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Description, null), description.length >= 226 ? /*#__PURE__*/_react.default.createElement("div", {
155
+ className: _style.default.showMoreWrapper,
156
+ onClick: handleShowMore
157
+ }, showMore ? translate('Show less') : translate('Show more'), /*#__PURE__*/_react.default.createElement(_icon.default, {
158
+ iconName: showMore ? 'chevron-up' : 'chevron-down',
159
+ size: {
160
+ faSize: 14,
161
+ wrapperSize: 16
162
+ }
163
+ })) : null) : null), /*#__PURE__*/_react.default.createElement("div", {
164
+ className: _style.default.ctaWrapper
165
+ }, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
166
+ type: "secondary",
167
+ onClick: onReviewClick,
168
+ label: translate('review_this_skill'),
169
+ disabled: !availableForReview,
170
+ customStyle: {
171
+ width: 'fit-content',
172
+ borderRadius: '12px'
173
+ }
174
+ }), /*#__PURE__*/_react.default.createElement(ContinueLearningButton, {
175
+ onClick: onContinueLearningClick
176
+ }))), /*#__PURE__*/_react.default.createElement("div", {
177
+ className: _style.default.progressInformationsWrapper
178
+ }, /*#__PURE__*/_react.default.createElement("div", {
179
+ className: _style.default.progressTitle
180
+ }, translate('your_progress')), /*#__PURE__*/_react.default.createElement("div", {
181
+ className: _style.default.skillCoursesAndQuestionsWrapper
182
+ }, content ? /*#__PURE__*/_react.default.createElement("div", {
183
+ className: _style.default.skillInformation,
184
+ "data-name": "skill-courses"
185
+ }, /*#__PURE__*/_react.default.createElement("span", {
186
+ className: _style.default.skillInformationNumber
187
+ }, content), ' ', translate('courses')) : null, questionsToReview ? /*#__PURE__*/_react.default.createElement("div", {
188
+ className: _style.default.skillInformation,
189
+ "data-name": "skill-questions"
190
+ }, /*#__PURE__*/_react.default.createElement("span", {
191
+ className: _style.default.skillInformationNumber
192
+ }, questionsToReview), "\xA0", translate('questions')) : null), /*#__PURE__*/_react.default.createElement(ProgressBar, null), /*#__PURE__*/_react.default.createElement("div", {
193
+ className: _style.default.progressInformations
194
+ }, content && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
195
+ className: _style.default.progressInformation,
196
+ "data-name": "skill-completed-courses"
197
+ }, /*#__PURE__*/_react.default.createElement("span", {
198
+ className: _style.default.progressInformationNumber
199
+ }, contentCompleted), ` ${translate('courses_completed')}`), /*#__PURE__*/_react.default.createElement("div", {
200
+ className: _style.default.progressInformation,
201
+ "data-name": "completed-percentage"
202
+ }, /*#__PURE__*/_react.default.createElement("span", {
203
+ className: _style.default.progressInformationNumber
204
+ }, score, "%"))))), /*#__PURE__*/_react.default.createElement(_continueLearning.default, {
205
+ ongoingCourses: ongoingCourses
206
+ }), /*#__PURE__*/_react.default.createElement(_allCourses.default, {
207
+ skillIncludedCourses: skillIncludedCourses,
208
+ filters: filters,
209
+ sorting: sorting
210
+ })));
211
+ };
212
+
213
+ SkillDetail.contextTypes = {
214
+ skin: _provider.default.childContextTypes.skin,
215
+ translate: _provider.default.childContextTypes.translate
216
+ };
217
+ SkillDetail.propTypes = process.env.NODE_ENV !== "production" ? {
218
+ title: _propTypes.default.string.isRequired,
219
+ description: _propTypes.default.string,
220
+ metrics: _propTypes.default.shape({
221
+ score: _propTypes.default.number,
222
+ content: _propTypes.default.number,
223
+ questionsToReview: _propTypes.default.number,
224
+ contentCompleted: _propTypes.default.number
225
+ }),
226
+ focused: _propTypes.default.bool,
227
+ availableForReview: _propTypes.default.bool,
228
+ ongoingCourses: _propTypes.default.shape(_cardsGrid.default.propTypes),
229
+ skillIncludedCourses: _propTypes.default.shape(_cardsGrid.default.propTypes),
230
+ filters: _propTypes.default.shape({
231
+ onChange: _propTypes.default.func,
232
+ options: _propTypes.default.arrayOf(_propTypes.default.shape(_select.SelectOptionPropTypes))
233
+ }),
234
+ sorting: _propTypes.default.shape(_select.default.propTypes),
235
+ onBackClick: _propTypes.default.func,
236
+ onReviewClick: _propTypes.default.func,
237
+ onContinueLearningClick: _propTypes.default.func
238
+ } : {};
239
+ var _default = SkillDetail;
240
+ exports.default = _default;
241
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["ContinueLearningButton","props","context","hovered","setHovered","useState","onClick","skin","translate","primarySkinColor","handleMouseOver","useCallback","handleMouseLeave","width","borderRadius","backgroundColor","convert","position","faIcon","name","color","size","contextTypes","Provider","childContextTypes","propTypes","PropTypes","func","SkillDetail","title","description","metrics","focused","availableForReview","ongoingCourses","skillIncludedCourses","filters","sorting","onBackClick","onReviewClick","onContinueLearningClick","score","content","questionsToReview","contentCompleted","showMore","setShowMore","handleShowMore","Description","classnames","style","truncate","ProgressBar","undefined","progressBarColor","inlineProgressValueStyle","progressBarWrapper","progress","backgroundContainer","container","backButtonWrapper","faSize","wrapperSize","ctaContainer","skillFocusBadge","length","showMoreWrapper","ctaWrapper","progressInformationsWrapper","progressTitle","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","progressInformations","progressInformation","progressInformationNumber","string","isRequired","shape","number","bool","CardsGrid","onChange","options","arrayOf","SelectOptionPropTypes","Select"],"sources":["../../../src/template/skill-detail/index.js"],"sourcesContent":["import React, {useCallback, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport {get} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Select, {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLink from '../../atom/button-link';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport style from './style.css';\nimport AllCourses from './all-courses';\nimport ContinueLearning from './continue-learning';\n\nconst ContinueLearningButton = (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 onMouseOver={handleMouseOver} onMouseLeave={handleMouseLeave}>\n <ButtonLink\n label={translate('continue_learning')}\n type=\"primary\"\n customStyle={{\n width: 'fit-content',\n borderRadius: '12px',\n backgroundColor: hovered\n ? convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`)\n : primarySkinColor\n }}\n icon={{\n position: 'left',\n faIcon: {\n name: 'play',\n color: '#FFFFFF',\n size: 16\n }\n }}\n onClick={onClick}\n />\n </div>\n );\n};\n\nContinueLearningButton.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContinueLearningButton.propTypes = {\n onClick: PropTypes.func\n};\n\nconst SkillDetail = (props, context) => {\n const {\n title,\n description,\n metrics,\n focused,\n availableForReview,\n ongoingCourses,\n skillIncludedCourses,\n filters,\n sorting,\n onBackClick,\n onReviewClick,\n onContinueLearningClick\n } = props;\n const {score, content, questionsToReview, contentCompleted = 0} = metrics;\n const {translate} = context;\n\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n const Description = useCallback(() => {\n return (\n <div className={classnames(style.description, !showMore && style.truncate)}>\n {description}\n </div>\n );\n });\n\n const ProgressBar = useCallback(() => {\n if (score === undefined) return null;\n const progressBarColor = '#3EC483';\n const inlineProgressValueStyle = {\n backgroundColor: progressBarColor,\n width: `${score}%`\n };\n\n return (\n <div className={style.progressBarWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressValueStyle}\n role=\"progressbar\"\n />\n </div>\n );\n }, [score]);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container}>\n <div className={style.backButtonWrapper} onClick={onBackClick}>\n <Icon\n iconName=\"arrow-left\"\n size={{\n faSize: 14,\n wrapperSize: 14\n }}\n />\n </div>\n <div className={style.ctaContainer}>\n <div>\n {focused ? (\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 {translate('skill_focus')}\n </div>\n ) : null}\n <div className={style.title}>{title}</div>\n {description ? (\n <>\n <Description />\n {description.length >= 226 ? (\n <div className={style.showMoreWrapper} onClick={handleShowMore}>\n {showMore ? translate('Show less') : translate('Show more')}\n <Icon\n iconName={showMore ? 'chevron-up' : 'chevron-down'}\n size={{\n faSize: 14,\n wrapperSize: 16\n }}\n />\n </div>\n ) : null}\n </>\n ) : null}\n </div>\n\n <div className={style.ctaWrapper}>\n <ButtonLink\n type=\"secondary\"\n onClick={onReviewClick}\n label={translate('review_this_skill')}\n disabled={!availableForReview}\n customStyle={{\n width: 'fit-content',\n borderRadius: '12px'\n }}\n />\n <ContinueLearningButton onClick={onContinueLearningClick} />\n </div>\n </div>\n <div className={style.progressInformationsWrapper}>\n <div className={style.progressTitle}>{translate('your_progress')}</div>\n <div className={style.skillCoursesAndQuestionsWrapper}>\n {content ? (\n <div className={style.skillInformation} data-name=\"skill-courses\">\n <span className={style.skillInformationNumber}>{content}</span>{' '}\n {translate('courses')}\n </div>\n ) : null}\n {questionsToReview ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{questionsToReview}</span>\n &nbsp;{translate('questions')}\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 {` ${translate('courses_completed')}`}\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>\n <ContinueLearning ongoingCourses={ongoingCourses} />\n <AllCourses\n skillIncludedCourses={skillIncludedCourses}\n filters={filters}\n sorting={sorting}\n />\n </div>\n </div>\n );\n};\n\nSkillDetail.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nSkillDetail.propTypes = {\n title: PropTypes.string.isRequired,\n description: PropTypes.string,\n metrics: PropTypes.shape({\n score: PropTypes.number,\n content: PropTypes.number,\n questionsToReview: PropTypes.number,\n contentCompleted: PropTypes.number\n }),\n focused: PropTypes.bool,\n availableForReview: PropTypes.bool,\n ongoingCourses: PropTypes.shape(CardsGrid.propTypes),\n skillIncludedCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n sorting: PropTypes.shape(Select.propTypes),\n onBackClick: PropTypes.func,\n onReviewClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func\n};\n\nexport default SkillDetail;\n"],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ @value colors: "../../variables/colors.css";
2
+ @value breakpoints: "../../variables/breakpoints.css";
3
+ @value tablet from breakpoints;
4
+ @value xtraLightGrey from colors;
5
+ @value cm_grey_100 from colors;
6
+ @value cm_grey_200 from colors;
7
+ @value cm_grey_400 from colors;
8
+
9
+ .textBase {
10
+ font-family: "Gilroy";
11
+ font-style: normal;
12
+ }
13
+
14
+ .backgroundContainer {
15
+ background-color: white;
16
+ min-height: 100%;
17
+ width: 100%;
18
+ }
19
+
20
+ .container {
21
+ composes: textBase;
22
+ background-color: white;
23
+ font-family: "Gilroy";
24
+ font-style: normal;
25
+ margin-top: 48px;
26
+ margin-bottom: 48px;
27
+ margin-left: auto;
28
+ margin-right: auto;
29
+ padding: 0 16px;
30
+ position: relative;
31
+ box-sizing: border-box;
32
+ min-height: 100%;
33
+ width: 100%;
34
+ max-width: calc(1080px + 40px);
35
+ }
36
+
37
+ .backButtonWrapper {
38
+ margin-bottom: 16px;
39
+ background-color: cm_grey_100;
40
+ border-radius: 8px;
41
+ width: fit-content;
42
+ padding: 8px;
43
+ cursor: pointer;
44
+ }
45
+
46
+ .ctaContainer {
47
+ display: flex;
48
+ width: 100%;
49
+ justify-content: space-between;
50
+ }
51
+
52
+ .skillFocusBadge {
53
+ display: flex;
54
+ height: 12px;
55
+ width: fit-content;
56
+ align-items: center;
57
+ background-color: #DDD1FF;
58
+ border-radius: 24px;
59
+ padding: 4px 8px;
60
+ font-size: 12px;
61
+ line-height: 16px;
62
+ font-weight: 600;
63
+ color: #3900D6;
64
+ margin-bottom: 16px;
65
+ }
66
+
67
+ .ctaWrapper,
68
+ .showMoreWrapper {
69
+ display: flex;
70
+ gap: 8px;
71
+ }
72
+
73
+ .showMoreWrapper {
74
+ align-items: center;
75
+ margin-top: 8px;
76
+ font-weight: 600;
77
+ cursor: pointer;
78
+ }
79
+
80
+ .title {
81
+ font-size: 24px;
82
+ font-weight: 700;
83
+ line-height: 32px;
84
+ }
85
+
86
+ .description {
87
+ margin-top: 8px;
88
+ max-width: 734px;
89
+ font-size: 14px;
90
+ font-weight: 500;
91
+ line-height: 20px;
92
+ color: cm_grey_400;
93
+ }
94
+
95
+ .truncate {
96
+ display: -webkit-box;
97
+ -webkit-line-clamp: 2;
98
+ -webkit-box-orient: vertical;
99
+ overflow: hidden;
100
+ text-overflow: ellipsis;
101
+ }
102
+
103
+ .progressInformationsWrapper {
104
+ margin-top: 40px;
105
+ background-color: xtraLightGrey;
106
+ border-radius: 16px;
107
+ padding: 24px;
108
+ }
109
+
110
+ .progressTitle {
111
+ font-size: 16px;
112
+ font-weight: 600;
113
+ line-height: 22px;
114
+ margin-bottom: 16px;
115
+ }
116
+
117
+ .skillCoursesAndQuestionsWrapper,
118
+ .progressInformations {
119
+ display: flex;
120
+ justify-content: space-between;
121
+ margin-bottom: 8px;
122
+ }
123
+
124
+ .skillInformation,
125
+ .progressInformation {
126
+ composes: textBase;
127
+ font-weight: 600;
128
+ font-size: 14px;
129
+ line-height: 20px;
130
+ color: cm_grey_400;
131
+ }
132
+
133
+ .skillInformationNumber,
134
+ .progressInformationNumber {
135
+ color: #000;
136
+ }
137
+
138
+ .progressBarWrapper {
139
+ position: relative;
140
+ left: 0;
141
+ width: 100%;
142
+ height: 4px;
143
+ border-radius: 2px;
144
+ overflow: hidden;
145
+ background-color: cm_grey_100;
146
+ margin: 16px 0;
147
+ }
148
+
149
+ .progress {
150
+ display: block;
151
+ height: 8px;
152
+ animation: progressbar 2s ease-in-out;
153
+ }
154
+
155
+ @media tablet {
156
+ .ctaContainer {
157
+ flex-direction: column;
158
+ }
159
+
160
+ .ctaWrapper {
161
+ margin-top: 32px;
162
+ }
163
+ }
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "all": "All",
3
+ "all_courses": "All courses",
3
4
  "accepted_cards": "Credit or debit card",
4
5
  "An Error Occurred": "An Error Occurred",
5
6
  "Answer": "Answer",
@@ -22,6 +23,7 @@
22
23
  "Create a new cohort": "Create a new cohort",
23
24
  "courses": "Courses",
24
25
  "courses_completed": "Courses completed",
26
+ "continue_learning": "Continue learning",
25
27
  "skills_change_focus": "Change skill focus",
26
28
  "skills_choose_focus": "Choose your focus",
27
29
  "cancel": "Cancel",
@@ -59,6 +61,7 @@
59
61
  "product_desc_culture": "Digital culture: All levels completed",
60
62
  "product_desc_forum": "Forum",
61
63
  "product_desc_partnership": "All training courses of our partners",
64
+ "your_progress": "Your progress",
62
65
  "Put back": "Put back",
63
66
  "Reject": "Reject",
64
67
  "Reload": "Reload",
@@ -66,12 +69,15 @@
66
69
  "Review lesson": "Review lesson",
67
70
  "search_place_holder": "Search...",
68
71
  "secured_payment": "Secure server",
72
+ "sort_by": "Sort by:",
69
73
  "See clue": "See clue",
70
74
  "See less": "See less",
71
75
  "See lesson": "See lesson",
72
76
  "Select a dashboard in the Sidebar": "Select a dashboard in the Sidebar",
73
77
  "Show more": "Show more",
78
+ "Show less": "Show less",
74
79
  "Show": "Show",
80
+ "show_completed": "Show completed",
75
81
  "Start battle": "Start battle",
76
82
  "skills_section_title": "Skills",
77
83
  "skills_section_description": "Explore or review skills",
@@ -127,6 +133,7 @@
127
133
  "invalid_scorm": "scorm file is not valid",
128
134
  "show_errors": "show errors"
129
135
  },
136
+ "review_this_skill": "Review this skill",
130
137
  "review_skill_empty": "You have no skill to revise yet",
131
138
  "review_skill_empty_description": "First you need to complete courses before you can review different skills.",
132
139
  "close_button_ariaLabel": "Close review slide",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "11.32.11",
3
+ "version": "11.32.12-alpha.0+6ec0d1859",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -177,5 +177,5 @@
177
177
  "last 2 versions",
178
178
  "IE 11"
179
179
  ],
180
- "gitHead": "fc105a306cf838f85f8f6c58210257db27c51b32"
180
+ "gitHead": "6ec0d1859050f4f1d689b94e86ea25e06aa26064"
181
181
  }