@coorpacademy/components 11.32.19 → 11.32.20-alpha.32
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/button-link/index.d.ts +2 -0
- package/es/atom/button-link/index.d.ts.map +1 -1
- package/es/atom/button-link/index.js +22 -8
- package/es/atom/button-link/index.js.map +1 -1
- package/es/atom/button-link/types.d.ts +4 -0
- package/es/atom/button-link/types.d.ts.map +1 -1
- package/es/atom/button-link/types.js +2 -0
- package/es/atom/button-link/types.js.map +1 -1
- package/es/atom/circular-progress-bar/index.d.ts +15 -0
- package/es/atom/circular-progress-bar/index.d.ts.map +1 -0
- package/es/atom/circular-progress-bar/index.js +86 -0
- package/es/atom/circular-progress-bar/index.js.map +1 -0
- package/es/atom/circular-progress-bar/style.css +51 -0
- package/es/atom/circular-progress-bar/types.d.ts +18 -0
- package/es/atom/circular-progress-bar/types.d.ts.map +1 -0
- package/es/atom/circular-progress-bar/types.js +10 -0
- package/es/atom/circular-progress-bar/types.js.map +1 -0
- package/es/atom/tag/index.d.ts +10 -1
- package/es/atom/tag/index.d.ts.map +1 -1
- package/es/atom/tag/index.js +19 -11
- package/es/atom/tag/index.js.map +1 -1
- package/es/atom/tag/style.css +38 -19
- package/es/molecule/base-modal/index.d.ts.map +1 -1
- package/es/molecule/base-modal/index.js +6 -10
- package/es/molecule/base-modal/index.js.map +1 -1
- package/es/molecule/cm-popin/types.d.ts +8 -0
- package/es/molecule/cm-popin/types.d.ts.map +1 -1
- package/es/molecule/draggable-list/index.d.ts +12 -0
- package/es/molecule/draggable-list/index.d.ts.map +1 -1
- package/es/molecule/draggable-list/index.js +4 -2
- package/es/molecule/draggable-list/index.js.map +1 -1
- package/es/molecule/expandible-actionable-table/index.d.ts +2 -0
- package/es/molecule/expandible-actionable-table/index.d.ts.map +1 -1
- package/es/molecule/expandible-actionable-table/types.d.ts +2 -0
- package/es/molecule/expandible-actionable-table/types.d.ts.map +1 -1
- package/es/molecule/learner-skill-card/index.d.ts.map +1 -1
- package/es/molecule/learner-skill-card/index.js +7 -10
- package/es/molecule/learner-skill-card/index.js.map +1 -1
- package/es/molecule/learning-priority-card/index.d.ts +40 -0
- package/es/molecule/learning-priority-card/index.d.ts.map +1 -0
- package/es/molecule/learning-priority-card/index.js +77 -0
- package/es/molecule/learning-priority-card/index.js.map +1 -0
- package/es/molecule/learning-priority-card/style.css +34 -0
- package/es/molecule/learning-priority-card/types.d.ts +18 -0
- package/es/molecule/learning-priority-card/types.d.ts.map +1 -0
- package/es/molecule/learning-priority-card/types.js +10 -0
- package/es/molecule/learning-priority-card/types.js.map +1 -0
- package/es/molecule/learning-priority-modal/index.d.ts +33 -0
- package/es/molecule/learning-priority-modal/index.d.ts.map +1 -0
- package/es/molecule/learning-priority-modal/index.js +231 -0
- package/es/molecule/learning-priority-modal/index.js.map +1 -0
- package/es/molecule/learning-priority-modal/style.css +68 -0
- package/es/molecule/learning-priority-setup-item/index.d.ts +18 -0
- package/es/molecule/learning-priority-setup-item/index.d.ts.map +1 -0
- package/es/molecule/learning-priority-setup-item/index.js +69 -0
- package/es/molecule/learning-priority-setup-item/index.js.map +1 -0
- package/es/molecule/learning-priority-setup-item/style.css +47 -0
- package/es/molecule/skill-card/index.d.ts.map +1 -1
- package/es/molecule/skill-card/index.js +5 -8
- package/es/molecule/skill-card/index.js.map +1 -1
- package/es/organism/brand-learning-priorities/index.d.ts +170 -0
- package/es/organism/brand-learning-priorities/index.d.ts.map +1 -0
- package/es/organism/brand-learning-priorities/index.js +99 -0
- package/es/organism/brand-learning-priorities/index.js.map +1 -0
- package/es/organism/brand-learning-priorities/style.css +35 -0
- package/es/organism/list-item/index.d.ts +34 -2
- package/es/organism/list-item/index.d.ts.map +1 -1
- package/es/organism/list-item/index.js +58 -14
- package/es/organism/list-item/index.js.map +1 -1
- package/es/organism/list-item/style.css +21 -1
- package/es/organism/list-items/index.d.ts +8 -0
- package/es/organism/setup-header/index.d.ts +8 -0
- package/es/organism/wizard-contents/index.d.ts +6 -0
- package/es/template/app-player/loading/index.d.ts +8 -0
- package/es/template/app-player/player/index.d.ts +16 -0
- package/es/template/app-player/player/slides/index.d.ts +8 -0
- package/es/template/app-player/player/slides/index.d.ts.map +1 -1
- package/es/template/app-player/popin-correction/index.d.ts +8 -0
- package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
- package/es/template/app-player/popin-end/index.d.ts +8 -0
- package/es/template/app-review/index.d.ts +8 -0
- package/es/template/app-review/index.d.ts.map +1 -1
- package/es/template/app-review/player/prop-types.d.ts +8 -0
- package/es/template/app-review/player/prop-types.d.ts.map +1 -1
- package/es/template/app-review/prop-types.d.ts +8 -0
- package/es/template/app-review/prop-types.d.ts.map +1 -1
- package/es/template/back-office/brand-create/index.d.ts +8 -0
- package/es/template/back-office/brand-create/index.d.ts.map +1 -1
- package/es/template/back-office/brand-list/index.d.ts +8 -0
- package/es/template/back-office/brand-list/index.d.ts.map +1 -1
- package/es/template/back-office/brand-update/index.d.ts +171 -0
- package/es/template/back-office/brand-update/index.d.ts.map +1 -1
- package/es/template/back-office/brand-update/index.js +7 -0
- package/es/template/back-office/brand-update/index.js.map +1 -1
- package/es/template/back-office/dashboard-preview/index.d.ts +8 -0
- package/es/template/back-office/layout/index.d.ts +8 -0
- package/es/template/back-office/layout/index.d.ts.map +1 -1
- package/es/template/common/dashboard/index.d.ts +16 -0
- package/es/template/common/search-page/index.d.ts +8 -0
- package/es/template/external-course/index.d.ts +8 -0
- package/es/template/my-learning/index.d.ts.map +1 -1
- package/es/template/my-learning/index.js +10 -18
- package/es/template/my-learning/index.js.map +1 -1
- package/es/template/skill-detail/index.d.ts.map +1 -1
- package/es/template/skill-detail/index.js +4 -8
- package/es/template/skill-detail/index.js.map +1 -1
- package/lib/atom/button-link/index.d.ts +2 -0
- package/lib/atom/button-link/index.d.ts.map +1 -1
- package/lib/atom/button-link/index.js +21 -7
- package/lib/atom/button-link/index.js.map +1 -1
- package/lib/atom/button-link/types.d.ts +4 -0
- package/lib/atom/button-link/types.d.ts.map +1 -1
- package/lib/atom/button-link/types.js +2 -0
- package/lib/atom/button-link/types.js.map +1 -1
- package/lib/atom/circular-progress-bar/index.d.ts +15 -0
- package/lib/atom/circular-progress-bar/index.d.ts.map +1 -0
- package/lib/atom/circular-progress-bar/index.js +101 -0
- package/lib/atom/circular-progress-bar/index.js.map +1 -0
- package/lib/atom/circular-progress-bar/style.css +51 -0
- package/lib/atom/circular-progress-bar/types.d.ts +18 -0
- package/lib/atom/circular-progress-bar/types.d.ts.map +1 -0
- package/lib/atom/circular-progress-bar/types.js +19 -0
- package/lib/atom/circular-progress-bar/types.js.map +1 -0
- package/lib/atom/tag/index.d.ts +10 -1
- package/lib/atom/tag/index.d.ts.map +1 -1
- package/lib/atom/tag/index.js +20 -11
- package/lib/atom/tag/index.js.map +1 -1
- package/lib/atom/tag/style.css +38 -19
- package/lib/molecule/base-modal/index.d.ts.map +1 -1
- package/lib/molecule/base-modal/index.js +5 -9
- package/lib/molecule/base-modal/index.js.map +1 -1
- package/lib/molecule/cm-popin/types.d.ts +8 -0
- package/lib/molecule/cm-popin/types.d.ts.map +1 -1
- package/lib/molecule/draggable-list/index.d.ts +12 -0
- package/lib/molecule/draggable-list/index.d.ts.map +1 -1
- package/lib/molecule/draggable-list/index.js +5 -2
- package/lib/molecule/draggable-list/index.js.map +1 -1
- package/lib/molecule/expandible-actionable-table/index.d.ts +2 -0
- package/lib/molecule/expandible-actionable-table/index.d.ts.map +1 -1
- package/lib/molecule/expandible-actionable-table/types.d.ts +2 -0
- package/lib/molecule/expandible-actionable-table/types.d.ts.map +1 -1
- package/lib/molecule/learner-skill-card/index.d.ts.map +1 -1
- package/lib/molecule/learner-skill-card/index.js +6 -9
- package/lib/molecule/learner-skill-card/index.js.map +1 -1
- package/lib/molecule/learning-priority-card/index.d.ts +40 -0
- package/lib/molecule/learning-priority-card/index.d.ts.map +1 -0
- package/lib/molecule/learning-priority-card/index.js +95 -0
- package/lib/molecule/learning-priority-card/index.js.map +1 -0
- package/lib/molecule/learning-priority-card/style.css +34 -0
- package/lib/molecule/learning-priority-card/types.d.ts +18 -0
- package/lib/molecule/learning-priority-card/types.d.ts.map +1 -0
- package/lib/molecule/learning-priority-card/types.js +19 -0
- package/lib/molecule/learning-priority-card/types.js.map +1 -0
- package/lib/molecule/learning-priority-modal/index.d.ts +33 -0
- package/lib/molecule/learning-priority-modal/index.d.ts.map +1 -0
- package/lib/molecule/learning-priority-modal/index.js +254 -0
- package/lib/molecule/learning-priority-modal/index.js.map +1 -0
- package/lib/molecule/learning-priority-modal/style.css +68 -0
- package/lib/molecule/learning-priority-setup-item/index.d.ts +18 -0
- package/lib/molecule/learning-priority-setup-item/index.d.ts.map +1 -0
- package/lib/molecule/learning-priority-setup-item/index.js +86 -0
- package/lib/molecule/learning-priority-setup-item/index.js.map +1 -0
- package/lib/molecule/learning-priority-setup-item/style.css +47 -0
- package/lib/molecule/skill-card/index.d.ts.map +1 -1
- package/lib/molecule/skill-card/index.js +4 -7
- package/lib/molecule/skill-card/index.js.map +1 -1
- package/lib/organism/brand-learning-priorities/index.d.ts +170 -0
- package/lib/organism/brand-learning-priorities/index.d.ts.map +1 -0
- package/lib/organism/brand-learning-priorities/index.js +117 -0
- package/lib/organism/brand-learning-priorities/index.js.map +1 -0
- package/lib/organism/brand-learning-priorities/style.css +35 -0
- package/lib/organism/list-item/index.d.ts +34 -2
- package/lib/organism/list-item/index.d.ts.map +1 -1
- package/lib/organism/list-item/index.js +62 -16
- package/lib/organism/list-item/index.js.map +1 -1
- package/lib/organism/list-item/style.css +21 -1
- package/lib/organism/list-items/index.d.ts +8 -0
- package/lib/organism/setup-header/index.d.ts +8 -0
- package/lib/organism/wizard-contents/index.d.ts +6 -0
- package/lib/template/app-player/loading/index.d.ts +8 -0
- package/lib/template/app-player/player/index.d.ts +16 -0
- package/lib/template/app-player/player/slides/index.d.ts +8 -0
- package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
- package/lib/template/app-player/popin-correction/index.d.ts +8 -0
- package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
- package/lib/template/app-player/popin-end/index.d.ts +8 -0
- package/lib/template/app-review/index.d.ts +8 -0
- package/lib/template/app-review/index.d.ts.map +1 -1
- package/lib/template/app-review/player/prop-types.d.ts +8 -0
- package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
- package/lib/template/app-review/prop-types.d.ts +8 -0
- package/lib/template/app-review/prop-types.d.ts.map +1 -1
- package/lib/template/back-office/brand-create/index.d.ts +8 -0
- package/lib/template/back-office/brand-create/index.d.ts.map +1 -1
- package/lib/template/back-office/brand-list/index.d.ts +8 -0
- package/lib/template/back-office/brand-list/index.d.ts.map +1 -1
- package/lib/template/back-office/brand-update/index.d.ts +171 -0
- package/lib/template/back-office/brand-update/index.d.ts.map +1 -1
- package/lib/template/back-office/brand-update/index.js +8 -0
- package/lib/template/back-office/brand-update/index.js.map +1 -1
- package/lib/template/back-office/dashboard-preview/index.d.ts +8 -0
- package/lib/template/back-office/layout/index.d.ts +8 -0
- package/lib/template/back-office/layout/index.d.ts.map +1 -1
- package/lib/template/common/dashboard/index.d.ts +16 -0
- package/lib/template/common/search-page/index.d.ts +8 -0
- package/lib/template/external-course/index.d.ts +8 -0
- package/lib/template/my-learning/index.d.ts.map +1 -1
- package/lib/template/my-learning/index.js +10 -18
- package/lib/template/my-learning/index.js.map +1 -1
- package/lib/template/skill-detail/index.d.ts.map +1 -1
- package/lib/template/skill-detail/index.js +4 -8
- package/lib/template/skill-detail/index.js.map +1 -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 +12 -0
- package/locales/es/global.json +1 -0
- package/locales/et/global.json +1 -0
- package/locales/fi/global.json +1 -0
- package/locales/fr/global.json +2 -1
- 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 +1 -0
- 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 +1 -0
- package/locales/pt/global.json +1 -0
- package/locales/ro/global.json +1 -0
- package/locales/ru/global.json +1 -0
- package/locales/sk/global.json +1 -0
- package/locales/sl/global.json +1 -0
- package/locales/sv/global.json +1 -0
- package/locales/tl/global.json +1 -0
- package/locales/tr/global.json +1 -0
- package/locales/uk/global.json +1 -0
- 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
|
@@ -116,6 +116,8 @@ declare namespace ExternalCourse {
|
|
|
116
116
|
download: PropTypes.Requireable<boolean>;
|
|
117
117
|
target: PropTypes.Requireable<string>;
|
|
118
118
|
}>>;
|
|
119
|
+
hoverBackgroundColor: PropTypes.Requireable<string>;
|
|
120
|
+
hoverColor: PropTypes.Requireable<string>;
|
|
119
121
|
disabled: PropTypes.Requireable<boolean>;
|
|
120
122
|
className: PropTypes.Requireable<string>;
|
|
121
123
|
customStyle: PropTypes.Requireable<PropTypes.InferProps<{}>>;
|
|
@@ -141,6 +143,8 @@ declare namespace ExternalCourse {
|
|
|
141
143
|
content: PropTypes.Requireable<NonNullable<PropTypes.InferProps<{
|
|
142
144
|
items: PropTypes.Requireable<(PropTypes.InferProps<{
|
|
143
145
|
title: PropTypes.Validator<string>;
|
|
146
|
+
subtitle: PropTypes.Requireable<string>;
|
|
147
|
+
selected: PropTypes.Requireable<boolean>;
|
|
144
148
|
dataColumns: PropTypes.Requireable<(PropTypes.InferProps<{
|
|
145
149
|
label: PropTypes.Requireable<string>;
|
|
146
150
|
type: PropTypes.Requireable<string>;
|
|
@@ -183,6 +187,8 @@ declare namespace ExternalCourse {
|
|
|
183
187
|
label: PropTypes.Requireable<string>;
|
|
184
188
|
type: PropTypes.Requireable<string>;
|
|
185
189
|
}> | null | undefined)[]>;
|
|
190
|
+
disabled: PropTypes.Requireable<boolean>;
|
|
191
|
+
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
186
192
|
isBulkStyle: PropTypes.Requireable<boolean>;
|
|
187
193
|
isOverflowHidden: PropTypes.Requireable<boolean>;
|
|
188
194
|
order: PropTypes.Requireable<number>;
|
|
@@ -248,6 +254,8 @@ declare namespace ExternalCourse {
|
|
|
248
254
|
download: PropTypes.Requireable<boolean>;
|
|
249
255
|
target: PropTypes.Requireable<string>;
|
|
250
256
|
}>>;
|
|
257
|
+
hoverBackgroundColor: PropTypes.Requireable<string>;
|
|
258
|
+
hoverColor: PropTypes.Requireable<string>;
|
|
251
259
|
disabled: PropTypes.Requireable<boolean>;
|
|
252
260
|
className: PropTypes.Requireable<string>;
|
|
253
261
|
customStyle: PropTypes.Requireable<PropTypes.InferProps<{}>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/my-learning/index.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/my-learning/index.js"],"names":[],"mappings":";AA8GA,mEA4XC"}
|
|
@@ -60,7 +60,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
60
60
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
61
61
|
|
|
62
62
|
const ChangeSkillFocusButton = (props, context) => {
|
|
63
|
-
const [hovered, setHovered] = (0, _react.useState)(false);
|
|
64
63
|
const {
|
|
65
64
|
onClick
|
|
66
65
|
} = props;
|
|
@@ -69,18 +68,16 @@ const ChangeSkillFocusButton = (props, context) => {
|
|
|
69
68
|
translate
|
|
70
69
|
} = context;
|
|
71
70
|
const primarySkinColor = (0, _get2.default)('common.primary', skin);
|
|
72
|
-
const handleMouseOver = (0, _react.useCallback)(() => setHovered(true), [setHovered]);
|
|
73
|
-
const handleMouseLeave = (0, _react.useCallback)(() => setHovered(false), [setHovered]);
|
|
74
71
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
75
|
-
"data-name": "button-explore-wrapper"
|
|
76
|
-
onMouseOver: handleMouseOver,
|
|
77
|
-
onMouseLeave: handleMouseLeave
|
|
72
|
+
"data-name": "button-explore-wrapper"
|
|
78
73
|
}, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
|
|
79
74
|
customStyle: {
|
|
80
|
-
backgroundColor:
|
|
81
|
-
color:
|
|
75
|
+
backgroundColor: (0, _cssColorFunction.convert)(`color(${primarySkinColor} a(0.07))`),
|
|
76
|
+
color: primarySkinColor,
|
|
82
77
|
transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'
|
|
83
78
|
},
|
|
79
|
+
hoverBackgroundColor: primarySkinColor,
|
|
80
|
+
hoverColor: "#FFFFFF",
|
|
84
81
|
onClick: onClick,
|
|
85
82
|
label: translate('skills_change_focus'),
|
|
86
83
|
"data-name": "change-skill-focus-button",
|
|
@@ -88,8 +85,8 @@ const ChangeSkillFocusButton = (props, context) => {
|
|
|
88
85
|
position: 'left',
|
|
89
86
|
faIcon: {
|
|
90
87
|
name: 'arrows-rotate',
|
|
91
|
-
backgroundColor:
|
|
92
|
-
color:
|
|
88
|
+
backgroundColor: (0, _cssColorFunction.convert)(`color(${primarySkinColor} a(0.07))`),
|
|
89
|
+
color: primarySkinColor,
|
|
93
90
|
size: 16
|
|
94
91
|
}
|
|
95
92
|
}
|
|
@@ -170,9 +167,6 @@ const MyLearning = (props, context) => {
|
|
|
170
167
|
const [searchValue, setSearchValue] = (0, _react.useState)('');
|
|
171
168
|
const [searchResults, setSearchResults] = (0, _react.useState)((0, _sortBy2.default)(skillRef => -(0, _getOr2.default)(0, [skillRef, 'stats', 'score'], skillsInformation), skills));
|
|
172
169
|
const [activeFilter, setActiveFilter] = (0, _react.useState)('all');
|
|
173
|
-
const [hovered, setHovered] = (0, _react.useState)(false);
|
|
174
|
-
const handleMouseOver = (0, _react.useCallback)(() => setHovered(true), [setHovered]);
|
|
175
|
-
const handleMouseLeave = (0, _react.useCallback)(() => setHovered(false), [setHovered]);
|
|
176
170
|
const skillsReviewReady = (0, _react.useMemo)(() => {
|
|
177
171
|
return searchResults.filter(skill => skillsInformation[skill] ? skillsInformation[skill].availableForReview : false);
|
|
178
172
|
}, [searchResults, skillsInformation]);
|
|
@@ -315,16 +309,14 @@ const MyLearning = (props, context) => {
|
|
|
315
309
|
className: _style.default.skillFocusEmptyTitle
|
|
316
310
|
}, translate('skills_focus_empty_title')), /*#__PURE__*/_react.default.createElement("div", {
|
|
317
311
|
className: _style.default.skillFocusEmptyDescription
|
|
318
|
-
}, translate('skills_focus_empty_description')), /*#__PURE__*/_react.default.createElement("div", {
|
|
319
|
-
onMouseOver: handleMouseOver,
|
|
320
|
-
onMouseLeave: handleMouseLeave
|
|
321
|
-
}, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
|
|
312
|
+
}, translate('skills_focus_empty_description')), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
|
|
322
313
|
label: translate('skills_choose_focus'),
|
|
323
314
|
type: "primary",
|
|
324
315
|
customStyle: {
|
|
325
316
|
width: 'fit-contain',
|
|
326
|
-
backgroundColor:
|
|
317
|
+
backgroundColor: primarySkinColor
|
|
327
318
|
},
|
|
319
|
+
hoverBackgroundColor: (0, _cssColorFunction.convert)(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`),
|
|
328
320
|
onClick: handleOpenSkillPicker
|
|
329
321
|
})))) : null, /*#__PURE__*/_react.default.createElement("header", {
|
|
330
322
|
className: _style.default.skillListHeader
|
|
@@ -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","skillRef","activeFilter","setActiveFilter","skillsReviewReady","useMemo","skill","availableForReview","graphDatas","toFixed","graphLegends","filters","all","review","sumKpi","kpi","skillFocusSelectedOnChartScore","stats","coursedCompletedData","questionsToReviewData","learningTimeData","skillChartPaneLegends","focusedSkill","skillChartPanelProps","title","value","legend","icon","iconName","formatMinutes","handleOnDotClick","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","defaultStats","score","contentCompleted","questionsToReview","handleReviewSkill","handleExploreSkill","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, sortBy} 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, primarySkinColor]\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 sortBy(skillRef => -getOr(0, [skillRef, 'stats', 'score'], skillsInformation), skills)\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 =>\n skillsInformation[skill] ? skillsInformation[skill].availableForReview : false\n );\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 const skillFocusSelectedOnChartScore = getOr(\n 0,\n [skillFocusSelectedOnChart, 'stats', `${kpi}`],\n skillsInformation\n );\n return skillFocusSelectedOnChart\n ? skillFocusSelectedOnChartScore\n : sumBy(\n skill => (skillsInformation[skill] ? skillsInformation[skill].stats[kpi] : 0),\n selectedSkillsList\n );\n },\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 const defaultStats = {\n score: 0,\n content: 0,\n contentCompleted: 0,\n questionsToReview: 0\n };\n\n function handleReviewSkill() {\n onReviewSkill(skill);\n }\n function handleExploreSkill() {\n onExploreSkill(skill);\n }\n const {score, content, questionsToReview, contentCompleted} = skillsInformation[\n skill\n ]\n ? skillsInformation[skill].stats\n : defaultStats;\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={\n skillsInformation[skill]\n ? skillsInformation[skill].availableForReview\n : false\n }\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","onClick","skin","translate","primarySkinColor","backgroundColor","convert","color","transition","position","faIcon","name","size","contextTypes","Provider","childContextTypes","propTypes","PropTypes","func","FilterButton","active","filter","skillTotal","Content","useCallback","style","skillFilterNumber","skillFilterNumberInActive","buttonProps","customStyle","width","content","bool","string","number","MyLearning","skills","selectedSkills","skillsInformation","skillsLocales","learnerFeature","isLoading","onSkillFocusConfirm","onReviewSkill","onExploreSkill","open","setOpen","useState","selectedSkillsList","setSelectedSkillsList","skillFocusSelectedOnChart","setSkillFocusSelectedOnChart","undefined","searchValue","setSearchValue","searchResults","setSearchResults","skillRef","activeFilter","setActiveFilter","skillsReviewReady","useMemo","skill","availableForReview","graphDatas","toFixed","graphLegends","filters","all","review","sumKpi","kpi","skillFocusSelectedOnChartScore","stats","coursedCompletedData","questionsToReviewData","learningTimeData","skillChartPaneLegends","focusedSkill","skillChartPanelProps","title","value","legend","icon","iconName","formatMinutes","handleOnDotClick","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","defaultStats","score","contentCompleted","questionsToReview","handleReviewSkill","handleExploreSkill","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, sortBy} 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 {onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\n\n return (\n <div data-name=\"button-explore-wrapper\">\n <ButtonLink\n customStyle={{\n backgroundColor: convert(`color(${primarySkinColor} a(0.07))`),\n color: primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n }}\n hoverBackgroundColor={primarySkinColor}\n hoverColor=\"#FFFFFF\"\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: convert(`color(${primarySkinColor} a(0.07))`),\n color: 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, primarySkinColor]\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 sortBy(skillRef => -getOr(0, [skillRef, 'stats', 'score'], skillsInformation), skills)\n );\n const [activeFilter, setActiveFilter] = useState('all');\n\n const skillsReviewReady = useMemo(() => {\n return searchResults.filter(skill =>\n skillsInformation[skill] ? skillsInformation[skill].availableForReview : false\n );\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 const skillFocusSelectedOnChartScore = getOr(\n 0,\n [skillFocusSelectedOnChart, 'stats', `${kpi}`],\n skillsInformation\n );\n return skillFocusSelectedOnChart\n ? skillFocusSelectedOnChartScore\n : sumBy(\n skill => (skillsInformation[skill] ? skillsInformation[skill].stats[kpi] : 0),\n selectedSkillsList\n );\n },\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>\n <ButtonLink\n label={translate('skills_choose_focus')}\n type=\"primary\"\n customStyle={{\n width: 'fit-contain',\n backgroundColor: primarySkinColor\n }}\n hoverBackgroundColor={convert(\n `hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`\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 const defaultStats = {\n score: 0,\n content: 0,\n contentCompleted: 0,\n questionsToReview: 0\n };\n\n function handleReviewSkill() {\n onReviewSkill(skill);\n }\n function handleExploreSkill() {\n onExploreSkill(skill);\n }\n const {score, content, questionsToReview, contentCompleted} = skillsInformation[\n skill\n ]\n ? skillsInformation[skill].stats\n : defaultStats;\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={\n skillsInformation[skill]\n ? skillsInformation[skill].availableForReview\n : false\n }\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/index.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/index.js"],"names":[],"mappings":";AAyDA,oEA+JC"}
|
|
@@ -36,7 +36,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
36
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
37
|
|
|
38
38
|
const ContinueLearningButton = (props, context) => {
|
|
39
|
-
const [hovered, setHovered] = (0, _react.useState)(false);
|
|
40
39
|
const {
|
|
41
40
|
ongoingCoursesAvailable,
|
|
42
41
|
onClick
|
|
@@ -46,19 +45,16 @@ const ContinueLearningButton = (props, context) => {
|
|
|
46
45
|
translate
|
|
47
46
|
} = context;
|
|
48
47
|
const primarySkinColor = (0, _get2.default)('common.primary', skin);
|
|
49
|
-
|
|
50
|
-
const handleMouseLeave = (0, _react.useCallback)(() => setHovered(false), [setHovered]);
|
|
51
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
52
|
-
onMouseOver: handleMouseOver,
|
|
53
|
-
onMouseLeave: handleMouseLeave
|
|
54
|
-
}, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
|
|
55
49
|
label: ongoingCoursesAvailable ? translate('continue_learning') : translate('start_learning'),
|
|
56
50
|
type: "primary",
|
|
57
51
|
customStyle: {
|
|
58
52
|
width: 'fit-content',
|
|
59
53
|
borderRadius: '12px',
|
|
60
|
-
backgroundColor:
|
|
54
|
+
backgroundColor: primarySkinColor
|
|
61
55
|
},
|
|
56
|
+
hoverBackgroundColor: (0, _cssColorFunction.convert)(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`),
|
|
57
|
+
hoverColor: "#FFFFFF",
|
|
62
58
|
icon: {
|
|
63
59
|
position: 'left',
|
|
64
60
|
faIcon: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["ContinueLearningButton","props","context","hovered","setHovered","useState","ongoingCoursesAvailable","onClick","skin","translate","primarySkinColor","handleMouseOver","useCallback","handleMouseLeave","width","borderRadius","backgroundColor","convert","position","faIcon","name","color","size","contextTypes","Provider","childContextTypes","propTypes","PropTypes","bool","func","SkillDetail","title","skillRef","description","metrics","focused","availableForReview","ongoingCourses","skillIncludedCourses","totalCourses","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","list","progressInformationsWrapper","progressTitle","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","progressInformations","progressInformation","progressInformationNumber","toFixed","string","isRequired","shape","number","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 {ongoingCoursesAvailable, 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={\n ongoingCoursesAvailable ? translate('continue_learning') : translate('start_learning')\n }\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 ongoingCoursesAvailable: PropTypes.bool,\n onClick: PropTypes.func\n};\n\nconst SkillDetail = (props, context) => {\n const {\n title,\n skillRef,\n description,\n metrics = {},\n focused,\n availableForReview,\n ongoingCourses,\n skillIncludedCourses,\n totalCourses,\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 }, [showMore, description]);\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} data-name={skillRef}>\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\n ongoingCoursesAvailable={!!ongoingCourses.list.length}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n {score !== undefined ? (\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 {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.toFixed(1)}%</span>\n </div>\n </>\n )}\n </div>\n </div>\n ) : null}\n <ContinueLearning ongoingCourses={ongoingCourses} />\n <AllCourses\n skillIncludedCourses={skillIncludedCourses}\n totalCourses={totalCourses}\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 skillRef: 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 totalCourses: PropTypes.number,\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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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["ContinueLearningButton","props","context","ongoingCoursesAvailable","onClick","skin","translate","primarySkinColor","width","borderRadius","backgroundColor","convert","position","faIcon","name","color","size","contextTypes","Provider","childContextTypes","propTypes","PropTypes","bool","func","SkillDetail","title","skillRef","description","metrics","focused","availableForReview","ongoingCourses","skillIncludedCourses","totalCourses","filters","sorting","onBackClick","onReviewClick","onContinueLearningClick","score","content","questionsToReview","contentCompleted","showMore","setShowMore","useState","handleShowMore","useCallback","Description","classnames","style","truncate","ProgressBar","undefined","progressBarColor","inlineProgressValueStyle","progressBarWrapper","progress","backgroundContainer","container","backButtonWrapper","faSize","wrapperSize","ctaContainer","skillFocusBadge","length","showMoreWrapper","ctaWrapper","list","progressInformationsWrapper","progressTitle","skillCoursesAndQuestionsWrapper","skillInformation","skillInformationNumber","progressInformations","progressInformation","progressInformationNumber","toFixed","string","isRequired","shape","number","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 {ongoingCoursesAvailable, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\n\n return (\n <div>\n <ButtonLink\n label={\n ongoingCoursesAvailable ? translate('continue_learning') : translate('start_learning')\n }\n type=\"primary\"\n customStyle={{\n width: 'fit-content',\n borderRadius: '12px',\n backgroundColor: primarySkinColor\n }}\n hoverBackgroundColor={convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`)}\n hoverColor=\"#FFFFFF\"\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 ongoingCoursesAvailable: PropTypes.bool,\n onClick: PropTypes.func\n};\n\nconst SkillDetail = (props, context) => {\n const {\n title,\n skillRef,\n description,\n metrics = {},\n focused,\n availableForReview,\n ongoingCourses,\n skillIncludedCourses,\n totalCourses,\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 }, [showMore, description]);\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} data-name={skillRef}>\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\n ongoingCoursesAvailable={!!ongoingCourses.list.length}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n {score !== undefined ? (\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 {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.toFixed(1)}%</span>\n </div>\n </>\n )}\n </div>\n </div>\n ) : null}\n <ContinueLearning ongoingCourses={ongoingCourses} />\n <AllCourses\n skillIncludedCourses={skillIncludedCourses}\n totalCourses={totalCourses}\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 skillRef: 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 totalCourses: PropTypes.number,\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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"}
|
package/locales/bs/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Zatvori",
|
|
17
17
|
"clue_stars_to_loose_plural": "Otključavanje traga smanjuje broj zvijezda koje možete dobiti za ovo pitanje za {{count}} (ako tačno odgovorite)",
|
|
18
18
|
"clue_stars_to_loose": "Otključavanjem traga smanjuje se broj zvijezda koje možete dobiti za ovo pitanje za {{count}} (ako tačno odgovorite)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "Jest li sigurni da želite da se odjavite?",
|
|
20
21
|
"cookies_details": "Ova web stranica koristi kolačiće kako bismo vam osigurali najbolje moguće iskustvo učenja. Više o kolačićima koje koristimo i o tome kako koristimo vaše podatke možete pročitati u ",
|
|
21
22
|
"cookies_policy": "Politika privatnosti i kolačića.",
|
package/locales/cs/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Zavřít",
|
|
17
17
|
"clue_stars_to_loose_plural": "Odemknutí nápovědy sníží počet hvězd, které můžete získat na této otázce, o {{count}} (pokud ji zodpovíte správně)",
|
|
18
18
|
"clue_stars_to_loose": "Odemknutí nápovědy sníží počet hvězd, které můžete získat na této otázce, o {{count}} (pokud ji zodpovíte správně)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "Opravdu chcete zrušit předplatné?",
|
|
20
21
|
"cookies_details": "Tyto webové stránky využívají soubory cookie, abychom vám mohli nabídnout to nejlepší učení. Máte-li zájem o další informace k využívaným souborům cookie a ke způsobu, jakým vaše údaje využíváme, přečtěte si",
|
|
21
22
|
"cookies_policy": "Zásady ochrany soukromí a pro soubory cookie.",
|
package/locales/de/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Schliessen",
|
|
17
17
|
"clue_stars_to_loose_plural": "Wenn Sie den Hinweis benutzen, reduziert sich die Anzahl Sterne, die Sie bei dieser Frage gewinnen können um {{count}} (wenn Sie richtig antworten)",
|
|
18
18
|
"clue_stars_to_loose": "Wenn Sie den Hinweis benutzen, reduziert sich die Anzahl Sterne, die Sie bei dieser Frage gewinnen können um {{count}} (wenn Sie richtig antworten)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "Möchten Sie sich wirklich abmelden?",
|
|
20
21
|
"cookies_details": "Diese Webseite verwendet Cookies, um Ihnen die bestmögliche Lernerfahrung zu bieten. Um mehr über die von uns verwendeten Cookies und wie wir Ihre Daten nutzen, zu erfahren, lesen Sie bitte unsere",
|
|
21
22
|
"cookies_policy": "Richtlinie zu Datenschutz und Cookies",
|
package/locales/en/global.json
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"all": "All",
|
|
3
3
|
"all_courses": "All courses",
|
|
4
|
+
"add_learning_priority": "Add learning priority",
|
|
4
5
|
"accepted_cards": "Credit or debit card",
|
|
6
|
+
"add": "Add",
|
|
5
7
|
"An Error Occurred": "An Error Occurred",
|
|
6
8
|
"Answer": "Answer",
|
|
7
9
|
"At the end of this level, you will be able to_": "At the end of this level, you will be able to:",
|
|
@@ -12,10 +14,13 @@
|
|
|
12
14
|
"cart_title": "Coorpacademy Subscription",
|
|
13
15
|
"challenges you on": "challenges you on",
|
|
14
16
|
"is challenging you": "{{username}} is challenging you {{courseName}}",
|
|
17
|
+
"items": "items",
|
|
18
|
+
"certificate": "Certificate",
|
|
15
19
|
"chapters": "chapters",
|
|
16
20
|
"Close": "Close",
|
|
17
21
|
"clue_stars_to_loose_plural": "Unlocking the clue reduces the stars you can gain on this question by {{count}} (if you get it right)",
|
|
18
22
|
"clue_stars_to_loose": "Unlocking the clue reduces the stars you can gain on this question by {{count}} (if you get it right)",
|
|
23
|
+
"completed": "Completed",
|
|
19
24
|
"confirm_unsubscribe": "Are you sure you want to unsubscribe?",
|
|
20
25
|
"cookies_details": "This website uses cookies so that we can provide you with the best possible learner experience. To read more about the cookies we use and about how we use your data, please read our",
|
|
21
26
|
"cookies_policy": "Privacy and Cookies Policy.",
|
|
@@ -24,6 +29,8 @@
|
|
|
24
29
|
"courses": "Courses",
|
|
25
30
|
"courses_completed": "Courses completed",
|
|
26
31
|
"continue_learning": "Continue learning",
|
|
32
|
+
"learning_priority_modal_title": "New learning priority",
|
|
33
|
+
"learning_priority_modal_description": "Create a learning priority by selecting either one skill, playlist or certification.",
|
|
27
34
|
"skills_change_focus": "Change skill focus",
|
|
28
35
|
"skills_choose_focus": "Choose your focus",
|
|
29
36
|
"cancel": "Cancel",
|
|
@@ -41,6 +48,8 @@
|
|
|
41
48
|
"empty_search_result_description": "Try adjusting your search to find what you are looking for.",
|
|
42
49
|
"empty_search_result_clear_search": "Clear search",
|
|
43
50
|
"keep_subscription": "Keep my subscription",
|
|
51
|
+
"learning_priorities": "Learning priorities",
|
|
52
|
+
"learning_priorities_brand_description": "Define learning priorities for your company with skills, playlists or certifications. They will appear on the My Learning page.",
|
|
44
53
|
"media_stars_to_win_plural": "Win {{count}} additional stars in this chapter the first time you view a lesson!",
|
|
45
54
|
"media_stars_to_win": "Win {{count}} additional star in this chapter the first time you view a lesson!",
|
|
46
55
|
"More": "More",
|
|
@@ -61,13 +70,16 @@
|
|
|
61
70
|
"product_desc_culture": "Digital culture: All levels completed",
|
|
62
71
|
"product_desc_forum": "Forum",
|
|
63
72
|
"product_desc_partnership": "All training courses of our partners",
|
|
73
|
+
"playlist": "Playlist",
|
|
64
74
|
"your_progress": "Your progress",
|
|
65
75
|
"Put back": "Put back",
|
|
66
76
|
"Reject": "Reject",
|
|
67
77
|
"Reload": "Reload",
|
|
68
78
|
"Review": "Review",
|
|
69
79
|
"Review lesson": "Review lesson",
|
|
80
|
+
"skill": "Skill",
|
|
70
81
|
"search_place_holder": "Search...",
|
|
82
|
+
"search_priority_place_holder": "Search for a skill, playlist, certification...",
|
|
71
83
|
"secured_payment": "Secure server",
|
|
72
84
|
"start_learning": "Start learning",
|
|
73
85
|
"sort_by": "Sort by:",
|
package/locales/es/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Cerrar",
|
|
17
17
|
"clue_stars_to_loose_plural": "Desbloquear la pista reduce en {{count}} las estrellas que puedes ganar por esta pregunta (si la aciertas)",
|
|
18
18
|
"clue_stars_to_loose": "Desbloquear la pista reduce en {{count}} las estrellas que puedes ganar por esta pregunta (si la aciertas)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "¿Estás seguro de que quieres cancelar la suscripción?",
|
|
20
21
|
"cookies_details": "Esta página web usa cookies para que podamos ofrecerte la mejor experiencia de aprendizaje posible. Para leer más sobre las cookies que utilizamos y sobre cómo utilizamos sus datos, por favor lee nuestra",
|
|
21
22
|
"cookies_policy": "Política de privacidad y cookies",
|
package/locales/et/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Sulge",
|
|
17
17
|
"clue_stars_to_loose_plural": "Vihje kasutamine vähendab saadavat punktisummat {{count}} võrra (juhul, kui vastad õigesti)",
|
|
18
18
|
"clue_stars_to_loose": "Vihje kasutamine vähendab saadavat punktisummat {{count}} võrra (juhul, kui vastad õigesti)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "Oled kindel, et tahad tellimust tühistada?",
|
|
20
21
|
"cookies_details": "Veebileht kasutab küpsiseid, et saaksime pakkuda teile parimat õppimiskogemust. Et lähemalt tutvuda kasutatavate küpsistega ning kuidas me teie andmaid töötleme, palun lugege",
|
|
21
22
|
"cookies_policy": "Privaatsus- ja küpsistepoliitika.",
|
package/locales/fi/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Sulje",
|
|
17
17
|
"clue_stars_to_loose_plural": "Jos avaat tämän vihjeen, voitat tästä kysymyksestä {{count}} tähteä vähemmän (jos saat sen oikein)",
|
|
18
18
|
"clue_stars_to_loose": "Jos avaat tämän vihjeen, voitat tästä kysymyksestä {{count}} tähteä vähemmän (jos saat sen oikein)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "Haluatko varmasti peruuttaa tilauksen?",
|
|
20
21
|
"cookies_details": "Tämä verkkosivusto käyttää evästeitä, jotta voisimme tarjota sinulle parhaan mahdollisen oppimiskokemuksen. Jos haluat tietää enemmän käyttämistämme evästeistä ja siitä, miten käytämme tietojasi, lue",
|
|
21
22
|
"cookies_policy": "Tietosuoja- ja evästekäytäntö.",
|
package/locales/fr/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Fermer",
|
|
17
17
|
"clue_stars_to_loose_plural": "En regardant l'indice, cette question vous rapportera {{count}} étoiles en moins (si vous y répondez correctement)",
|
|
18
18
|
"clue_stars_to_loose": "En regardant l'indice, cette question vous rapportera {{count}} étoile en moins (si vous y répondez correctement)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "Êtes-vous sûr de que vouloir vous désinscrire ?",
|
|
20
21
|
"cookies_details": "Ce site utilise des cookies pour vous fournir la meilleure expérience d'apprentissage possible. Pour en savoir plus sur les cookies que nous utilisons et comment nous utilisons vos données, veuillez lire notre",
|
|
21
22
|
"cookies_policy": "Politique de Confidentialité et de Cookies.",
|
|
@@ -70,7 +71,7 @@
|
|
|
70
71
|
"search_place_holder": "Rechercher...",
|
|
71
72
|
"secured_payment": "Serveur sécurisé",
|
|
72
73
|
"start_learning": "Commencer à apprendre",
|
|
73
|
-
"sort_by": "Trier par:",
|
|
74
|
+
"sort_by": "Trier par :",
|
|
74
75
|
"See clue": "Voir l'indice",
|
|
75
76
|
"See less": "Voir moins",
|
|
76
77
|
"See lesson": "Voir la leçon",
|
package/locales/hr/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Zatvorite",
|
|
17
17
|
"clue_stars_to_loose_plural": "Otključavanje pomoći smanjuje broj zvjezdica koje možete dobiti za ovo pitanje na {{count}} (ako točno odgovorite)",
|
|
18
18
|
"clue_stars_to_loose": "Otključavanje traga smanjuje zvjezdice koje možete dobiti na ovo pitanje do {{count}} (ako dobro shvatite)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "Jeste li sigurni da želite otkazati pretplatu?",
|
|
20
21
|
"cookies_details": "Ova mrežna stranica koristi kolačiće kako bismo vam mogli pružiti najbolje iskustvo učenja. Ako želite saznati više o kolačićima koje koristimo i o tome kako koristimo vaše podatke, pročitajte našu",
|
|
21
22
|
"cookies_policy": "Politika privatnosti i kolačića.",
|
package/locales/hu/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Bezár",
|
|
17
17
|
"clue_stars_to_loose_plural": "A tipp feloldása {{count}} csillaggal csökkentheti a nyereményét ennél a kérdésnél (ha jól válaszol)",
|
|
18
18
|
"clue_stars_to_loose": "A tipp feloldása {{count}} csillaggal csökkentheti a nyereményét ennél a kérdésnél (ha jól válaszol)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "Biztosan szeretne leiratkozni?",
|
|
20
21
|
"cookies_details": "Ez a weboldal sütiket használ, hogy a lehető legjobb tanulási élményt nyújtsuk Önnek. Ha többet szeretne tudni az általunk használt sütikről és arról, hogy hogyan használjuk fel az Ön adatait, kérjük, olvassa el a következő dokumentumunkat:",
|
|
21
22
|
"cookies_policy": "Adatvédelmi nyilatkozat és a sütik használata.",
|
package/locales/hy/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Փակել",
|
|
17
17
|
"clue_stars_to_loose_plural": "Հուշման բացումը նվազեցնում է աստղերը, որոնք դուք կարող եք ձեռք բերել այս հարցում {{count}}-ով (եթե ճիշտ եք պատասխանում)",
|
|
18
18
|
"clue_stars_to_loose": "Հուշման բացումը նվազեցնում է աստղերը, որոնք դուք կարող եք ձեռք բերել այս հարցում {{count}}-ով (եթե ճիշտ եք պատասխանում)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "Իսկապե՞ս ուզում եք չեղարկել բաժանորդագրությունը:",
|
|
20
21
|
"cookies_details": "Այս վեբկայքը օգտագործում է cookies, որպեսզի մենք կարողանանք ձեզ ապահովել ուսուցման լավագույն փորձով: Մեր կողմից օգտագործվող cookies-ի և ձեր տվյալների օգտագործման մասին ավելին կարդալու համար խնդրում ենք կարդալ մեր",
|
|
21
22
|
"cookies_policy": "Գաղտնիության և cookies քաղաքականություն:",
|
package/locales/it/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "Chiudi",
|
|
17
17
|
"clue_stars_to_loose_plural": "Sbloccare l'indizio riduce di {{count}} le stelle che puoi guadagnare per questa domanda (se rispondi correttamente)",
|
|
18
18
|
"clue_stars_to_loose": "Sbloccare l'indizio riduce di {{count}} le stelle che puoi guadagnare per questa domanda (se rispondi correttamente)",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "Sei sicuro di voler annullare l'abbonamento?",
|
|
20
21
|
"cookies_details": "Questo sito web utilizza i cookie per consentirci di offrirti la migliore esperienza di apprendimento possibile. Per maggiori informazioni sui cookie che utilizziamo e su come utilizziamo i tuoi dati, ti invitiamo a leggere la nostra",
|
|
21
22
|
"cookies_policy": "Informativa sulla privacy e sui cookie.",
|
package/locales/ja/global.json
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"Close": "閉じる",
|
|
17
17
|
"clue_stars_to_loose_plural": "ヒントを参照すると通常より獲得ができるスターの数が{{count}}つ減ります。",
|
|
18
18
|
"clue_stars_to_loose": "ヒントを参照すると通常より獲得ができるスターの数が{{count}}つ減ります。",
|
|
19
|
+
"completed": "Completed",
|
|
19
20
|
"confirm_unsubscribe": "購読を中止するよろしいですか。",
|
|
20
21
|
"cookies_details": "このウェブサイトはクッキーを使用しており、最高の学習体験を提供することができます。 私たちが使用しているクッキーとあなたのデータの使い方について詳しくは、",
|
|
21
22
|
"cookies_policy": "プライバシーとクッキーポリシーをご確認ください。",
|