@coorpacademy/components 11.32.1-alpha.26 → 11.32.1

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 (148) hide show
  1. package/es/atom/button-link/index.d.ts +0 -1
  2. package/es/atom/button-link/index.d.ts.map +1 -1
  3. package/es/atom/button-link/index.js +5 -6
  4. package/es/atom/button-link/index.js.map +1 -1
  5. package/es/atom/button-link/types.d.ts +0 -3
  6. package/es/atom/button-link/types.d.ts.map +1 -1
  7. package/es/atom/button-link/types.js +0 -1
  8. package/es/atom/button-link/types.js.map +1 -1
  9. package/es/atom/icon/index.d.ts.map +1 -1
  10. package/es/atom/icon/index.js +0 -3
  11. package/es/atom/icon/index.js.map +1 -1
  12. package/es/atom/input-search/style.css +0 -1
  13. package/es/molecule/cm-popin/types.d.ts +0 -2
  14. package/es/molecule/cm-popin/types.d.ts.map +1 -1
  15. package/es/molecule/expandible-actionable-table/index.d.ts +0 -1
  16. package/es/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  17. package/es/molecule/expandible-actionable-table/types.d.ts +0 -1
  18. package/es/molecule/expandible-actionable-table/types.d.ts.map +1 -1
  19. package/es/molecule/learner-skill-card/index.d.ts +0 -2
  20. package/es/molecule/learner-skill-card/index.d.ts.map +1 -1
  21. package/es/molecule/learner-skill-card/index.js +2 -7
  22. package/es/molecule/learner-skill-card/index.js.map +1 -1
  23. package/es/molecule/learning-profile-radar-chart/index.d.ts +1 -1
  24. package/es/molecule/learning-profile-radar-chart/index.d.ts.map +1 -1
  25. package/es/molecule/learning-profile-radar-chart/index.js +13 -27
  26. package/es/molecule/learning-profile-radar-chart/index.js.map +1 -1
  27. package/es/molecule/learning-profile-radar-chart/style.css +40 -43
  28. package/es/molecule/learning-profile-radar-chart/types.d.ts +1 -7
  29. package/es/molecule/learning-profile-radar-chart/types.d.ts.map +1 -1
  30. package/es/molecule/learning-profile-radar-chart/types.js.map +1 -1
  31. package/es/molecule/skills-chart-side-information-panel/style.css +9 -25
  32. package/es/organism/list-items/index.d.ts +0 -2
  33. package/es/organism/review-no-skills/index.d.ts +1 -2
  34. package/es/organism/review-no-skills/index.d.ts.map +1 -1
  35. package/es/organism/review-no-skills/index.js +4 -8
  36. package/es/organism/review-no-skills/index.js.map +1 -1
  37. package/es/organism/review-no-skills/prop-types.d.ts +0 -2
  38. package/es/organism/review-no-skills/prop-types.d.ts.map +1 -1
  39. package/es/organism/review-no-skills/prop-types.js +1 -2
  40. package/es/organism/review-no-skills/prop-types.js.map +1 -1
  41. package/es/organism/review-no-skills/style.css +0 -7
  42. package/es/organism/setup-header/index.d.ts +0 -4
  43. package/es/organism/wizard-contents/index.d.ts +0 -3
  44. package/es/template/app-player/loading/index.d.ts +0 -2
  45. package/es/template/app-player/player/index.d.ts +0 -4
  46. package/es/template/app-player/player/slides/index.d.ts +0 -2
  47. package/es/template/app-player/player/slides/index.d.ts.map +1 -1
  48. package/es/template/app-player/popin-correction/index.d.ts +0 -2
  49. package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
  50. package/es/template/app-player/popin-end/index.d.ts +0 -2
  51. package/es/template/app-player/popin-header/style.css +1 -1
  52. package/es/template/app-review/index.d.ts +0 -2
  53. package/es/template/app-review/index.d.ts.map +1 -1
  54. package/es/template/app-review/player/prop-types.d.ts +0 -2
  55. package/es/template/app-review/player/prop-types.d.ts.map +1 -1
  56. package/es/template/app-review/prop-types.d.ts +0 -2
  57. package/es/template/app-review/prop-types.d.ts.map +1 -1
  58. package/es/template/back-office/brand-create/index.d.ts +0 -4
  59. package/es/template/back-office/brand-create/index.d.ts.map +1 -1
  60. package/es/template/back-office/brand-list/index.d.ts +0 -4
  61. package/es/template/back-office/brand-list/index.d.ts.map +1 -1
  62. package/es/template/back-office/brand-update/index.d.ts +0 -11
  63. package/es/template/back-office/dashboard-preview/index.d.ts +0 -4
  64. package/es/template/back-office/layout/index.d.ts +0 -4
  65. package/es/template/back-office/layout/index.d.ts.map +1 -1
  66. package/es/template/common/dashboard/index.d.ts +0 -4
  67. package/es/template/common/search-page/index.d.ts +0 -2
  68. package/es/template/external-course/index.d.ts +0 -2
  69. package/lib/atom/button-link/index.d.ts +0 -1
  70. package/lib/atom/button-link/index.d.ts.map +1 -1
  71. package/lib/atom/button-link/index.js +5 -6
  72. package/lib/atom/button-link/index.js.map +1 -1
  73. package/lib/atom/button-link/types.d.ts +0 -3
  74. package/lib/atom/button-link/types.d.ts.map +1 -1
  75. package/lib/atom/button-link/types.js +0 -1
  76. package/lib/atom/button-link/types.js.map +1 -1
  77. package/lib/atom/icon/index.d.ts.map +1 -1
  78. package/lib/atom/icon/index.js +0 -3
  79. package/lib/atom/icon/index.js.map +1 -1
  80. package/lib/atom/input-search/style.css +0 -1
  81. package/lib/molecule/cm-popin/types.d.ts +0 -2
  82. package/lib/molecule/cm-popin/types.d.ts.map +1 -1
  83. package/lib/molecule/expandible-actionable-table/index.d.ts +0 -1
  84. package/lib/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  85. package/lib/molecule/expandible-actionable-table/types.d.ts +0 -1
  86. package/lib/molecule/expandible-actionable-table/types.d.ts.map +1 -1
  87. package/lib/molecule/learner-skill-card/index.d.ts +0 -2
  88. package/lib/molecule/learner-skill-card/index.d.ts.map +1 -1
  89. package/lib/molecule/learner-skill-card/index.js +2 -7
  90. package/lib/molecule/learner-skill-card/index.js.map +1 -1
  91. package/lib/molecule/learning-profile-radar-chart/index.d.ts +1 -1
  92. package/lib/molecule/learning-profile-radar-chart/index.d.ts.map +1 -1
  93. package/lib/molecule/learning-profile-radar-chart/index.js +13 -27
  94. package/lib/molecule/learning-profile-radar-chart/index.js.map +1 -1
  95. package/lib/molecule/learning-profile-radar-chart/style.css +40 -43
  96. package/lib/molecule/learning-profile-radar-chart/types.d.ts +1 -7
  97. package/lib/molecule/learning-profile-radar-chart/types.d.ts.map +1 -1
  98. package/lib/molecule/learning-profile-radar-chart/types.js.map +1 -1
  99. package/lib/molecule/skills-chart-side-information-panel/style.css +9 -25
  100. package/lib/organism/list-items/index.d.ts +0 -2
  101. package/lib/organism/review-no-skills/index.d.ts +1 -2
  102. package/lib/organism/review-no-skills/index.d.ts.map +1 -1
  103. package/lib/organism/review-no-skills/index.js +4 -8
  104. package/lib/organism/review-no-skills/index.js.map +1 -1
  105. package/lib/organism/review-no-skills/prop-types.d.ts +0 -2
  106. package/lib/organism/review-no-skills/prop-types.d.ts.map +1 -1
  107. package/lib/organism/review-no-skills/prop-types.js +1 -2
  108. package/lib/organism/review-no-skills/prop-types.js.map +1 -1
  109. package/lib/organism/review-no-skills/style.css +0 -7
  110. package/lib/organism/setup-header/index.d.ts +0 -4
  111. package/lib/organism/wizard-contents/index.d.ts +0 -3
  112. package/lib/template/app-player/loading/index.d.ts +0 -2
  113. package/lib/template/app-player/player/index.d.ts +0 -4
  114. package/lib/template/app-player/player/slides/index.d.ts +0 -2
  115. package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
  116. package/lib/template/app-player/popin-correction/index.d.ts +0 -2
  117. package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
  118. package/lib/template/app-player/popin-end/index.d.ts +0 -2
  119. package/lib/template/app-player/popin-header/style.css +1 -1
  120. package/lib/template/app-review/index.d.ts +0 -2
  121. package/lib/template/app-review/index.d.ts.map +1 -1
  122. package/lib/template/app-review/player/prop-types.d.ts +0 -2
  123. package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
  124. package/lib/template/app-review/prop-types.d.ts +0 -2
  125. package/lib/template/app-review/prop-types.d.ts.map +1 -1
  126. package/lib/template/back-office/brand-create/index.d.ts +0 -4
  127. package/lib/template/back-office/brand-create/index.d.ts.map +1 -1
  128. package/lib/template/back-office/brand-list/index.d.ts +0 -4
  129. package/lib/template/back-office/brand-list/index.d.ts.map +1 -1
  130. package/lib/template/back-office/brand-update/index.d.ts +0 -11
  131. package/lib/template/back-office/dashboard-preview/index.d.ts +0 -4
  132. package/lib/template/back-office/layout/index.d.ts +0 -4
  133. package/lib/template/back-office/layout/index.d.ts.map +1 -1
  134. package/lib/template/common/dashboard/index.d.ts +0 -4
  135. package/lib/template/common/search-page/index.d.ts +0 -2
  136. package/lib/template/external-course/index.d.ts +0 -2
  137. package/locales/en/global.json +1 -27
  138. package/package.json +2 -2
  139. package/es/template/my-learning/index.d.ts +0 -33
  140. package/es/template/my-learning/index.d.ts.map +0 -1
  141. package/es/template/my-learning/index.js +0 -394
  142. package/es/template/my-learning/index.js.map +0 -1
  143. package/es/template/my-learning/style.css +0 -269
  144. package/lib/template/my-learning/index.d.ts +0 -33
  145. package/lib/template/my-learning/index.d.ts.map +0 -1
  146. package/lib/template/my-learning/index.js +0 -422
  147. package/lib/template/my-learning/index.js.map +0 -1
  148. package/lib/template/my-learning/style.css +0 -269
@@ -1,394 +0,0 @@
1
- import _sumBy from "lodash/fp/sumBy";
2
- import _pipe from "lodash/fp/pipe";
3
- import _fromPairs from "lodash/fp/fromPairs";
4
- import _map from "lodash/fp/map";
5
- import _keys from "lodash/fp/keys";
6
- import _getOr from "lodash/fp/getOr";
7
- import React, { useCallback, useState, useMemo } from 'react';
8
- import PropTypes from 'prop-types';
9
- import { convert } from 'css-color-function';
10
- import Provider from '../../atom/provider';
11
- import Icon from '../../atom/icon';
12
- import Picture from '../../atom/picture';
13
- import ButtonLink from '../../atom/button-link';
14
- import ToolTip from '../../atom/tooltip';
15
- import ReviewNoSkills from '../../organism/review-no-skills';
16
- import SearchForm from '../../molecule/search-form';
17
- import SkillPickerModal from '../../molecule/skill-picker-modal';
18
- import ResponsiveLearningProfileRadarChart from '../../molecule/learning-profile-radar-chart';
19
- import SkillsChartSideInformationPanel from '../../molecule/skills-chart-side-information-panel';
20
- import LearnerSkillCard from '../../molecule/learner-skill-card';
21
- import style from './style.css';
22
-
23
- const ChangeSkillFocusButton = (props, context) => {
24
- const [hovered, setHovered] = useState(false);
25
- const {
26
- onClick
27
- } = props;
28
- const {
29
- skin,
30
- translate
31
- } = context;
32
-
33
- const primarySkinColor = _getOr('#0061FF', 'common.primary', skin);
34
-
35
- const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);
36
- const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);
37
- return /*#__PURE__*/React.createElement("div", {
38
- "data-name": "button-explore-wrapper",
39
- onMouseOver: handleMouseOver,
40
- onMouseLeave: handleMouseLeave
41
- }, /*#__PURE__*/React.createElement(ButtonLink, {
42
- customStyle: {
43
- backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),
44
- color: hovered ? '#FFFFFF' : primarySkinColor,
45
- transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'
46
- },
47
- onClick: onClick,
48
- label: translate('change_skill_focus'),
49
- "data-name": "change-skill-focus-button",
50
- icon: {
51
- position: 'left',
52
- faIcon: {
53
- name: 'arrows-rotate',
54
- backgroundColor: hovered ? primarySkinColor : convert(`color(${primarySkinColor} a(0.07))`),
55
- color: hovered ? '#FFFFFF' : primarySkinColor,
56
- size: 16
57
- }
58
- }
59
- }));
60
- };
61
-
62
- ChangeSkillFocusButton.contextTypes = {
63
- translate: Provider.childContextTypes.translate
64
- };
65
- ChangeSkillFocusButton.propTypes = process.env.NODE_ENV !== "production" ? {
66
- onClick: PropTypes.func
67
- } : {};
68
-
69
- const FilterButton = (props, context) => {
70
- const {
71
- active,
72
- filter,
73
- skillTotal,
74
- onClick
75
- } = props;
76
- const {
77
- skin,
78
- translate
79
- } = context;
80
-
81
- const primarySkinColor = _getOr('#0061FF', 'common.primary', skin);
82
-
83
- const Content = useCallback(() => /*#__PURE__*/React.createElement("div", null, filter, /*#__PURE__*/React.createElement("span", {
84
- className: active ? style.skillFilterNumber : style.skillFilterNumberInActive
85
- }, skillTotal)), [filter, skillTotal, active]);
86
- const buttonProps = {
87
- customStyle: {
88
- backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#FFFFFF',
89
- color: active ? primarySkinColor : '#9999A8',
90
- transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',
91
- width: filter === translate('review_mode_available') ? '200px' : 'fit-content'
92
- },
93
- onClick,
94
- content: /*#__PURE__*/React.createElement(Content, null),
95
- 'data-name': 'change-skill-focus-button'
96
- };
97
- return /*#__PURE__*/React.createElement(ButtonLink, buttonProps);
98
- };
99
-
100
- FilterButton.contextTypes = {
101
- translate: Provider.childContextTypes.translate
102
- };
103
- FilterButton.propTypes = process.env.NODE_ENV !== "production" ? {
104
- active: PropTypes.bool,
105
- filter: PropTypes.string,
106
- skillTotal: PropTypes.number,
107
- onClick: PropTypes.func
108
- } : {};
109
-
110
- const MyLearning = (props, context) => {
111
- const {
112
- skills,
113
- selectedSkills = [],
114
- skillsInformation,
115
- skillsLocales,
116
- learnerFeature = true,
117
- isLoading,
118
- onSkillFocusConfirm,
119
- onReviewSkill,
120
- onExploreSkill
121
- } = props;
122
- const {
123
- translate
124
- } = context;
125
- const [open, setOpen] = useState(false);
126
- const [selectedSkillsList, setSelectedSkillsList] = useState(selectedSkills);
127
- const [skillFocusSelectedOnChart, setSkillFocusSelectedOnChart] = useState(undefined);
128
- const [searchValue, setSearchValue] = useState('');
129
- const [searchResults, setSearchResults] = useState(skills);
130
- const [activeFilter, setActiveFilter] = useState('all');
131
- const skillsReviewReady = useMemo(() => {
132
- return searchResults.filter(skill => skillsInformation[skill].availableForReview);
133
- }, [searchResults, skillsInformation]);
134
- const graphDatas = useMemo(() => _pipe(_map(skill => [skill, skillsInformation[skill].stats.score]), _fromPairs)(selectedSkillsList), [selectedSkillsList, skillsInformation]);
135
- const graphLegends = useMemo(() => _pipe(_map(skill => [skill, skillsLocales[skill]]), _fromPairs)(selectedSkillsList), [selectedSkillsList, skillsLocales]);
136
- const filters = useMemo(() => {
137
- return {
138
- all: searchResults,
139
- review_mode_available: skillsReviewReady
140
- };
141
- }, [searchResults, skillsReviewReady]);
142
- const sumKpi = useCallback(kpi => skillFocusSelectedOnChart ? skillsInformation[skillFocusSelectedOnChart].stats[kpi] : _sumBy(skill => skillsInformation[skill].stats[kpi], selectedSkillsList), [skillFocusSelectedOnChart, skillsInformation, selectedSkillsList]);
143
- const coursedCompletedData = useMemo(() => sumKpi('coursesCompleted'), [sumKpi]);
144
- const questionsAnsweredData = useMemo(() => sumKpi('questionsAnswered'), [sumKpi]);
145
- const learningHoursData = useMemo(() => sumKpi('learningHours'), [sumKpi]);
146
- const skillChartPaneLegends = useMemo(() => translate('on', {
147
- focusedSkill: skillFocusSelectedOnChart ? skillsLocales[skillFocusSelectedOnChart] : translate('focused_skills')
148
- }), [translate, skillsLocales, skillFocusSelectedOnChart]);
149
- const skillChartPanelProps = [{
150
- title: translate('skill_chart_side_panel_courses_completed'),
151
- value: `${coursedCompletedData}`,
152
- legend: skillChartPaneLegends,
153
- icon: {
154
- iconName: 'book-open-cover',
155
- backgroundColor: '#D9F4F7'
156
- }
157
- }, {
158
- title: translate('skill_chart_side_panel_questions_answered'),
159
- value: `${questionsAnsweredData}`,
160
- legend: skillChartPaneLegends,
161
- icon: {
162
- iconName: 'circle-question',
163
- backgroundColor: '#FFDCD1'
164
- }
165
- }, {
166
- title: translate('skill_chart_side_panel_learning_hours'),
167
- value: `${learningHoursData}`,
168
- legend: skillChartPaneLegends,
169
- icon: {
170
- iconName: 'clock',
171
- backgroundColor: '#FAD6DE'
172
- }
173
- }];
174
- const handleOnDotClick = useCallback(skillRef => {
175
- skillRef && setSkillFocusSelectedOnChart(skillRef);
176
- }, [setSkillFocusSelectedOnChart]);
177
- const handleOpenSkillPicker = useCallback(() => setOpen(true), [setOpen]);
178
- const handleCloseSkillPicker = useCallback(() => setOpen(false), [setOpen]);
179
- const handleConfirmSkillPicker = useCallback(focusSkillList => {
180
- setSelectedSkillsList(focusSkillList);
181
- onSkillFocusConfirm(focusSkillList);
182
- setOpen(false);
183
- }, [onSkillFocusConfirm, setSelectedSkillsList, setOpen]);
184
- const handleSearch = useCallback(value => {
185
- setSearchValue(value);
186
- setSearchResults(skills.filter(skill => {
187
- return skillsLocales[skill].toLowerCase().includes(value.toLowerCase());
188
- }));
189
- }, [skills, skillsLocales, setSearchValue, setSearchResults]);
190
- const handleSearchReset = useCallback(() => {
191
- setSearchValue('');
192
- setSearchResults(skills);
193
- }, [skills, setSearchValue, setSearchResults]);
194
- const ReviewTooltipContent = useCallback(() => /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("b", null, translate('review_mode_tooltip_header'))), /*#__PURE__*/React.createElement("p", null, translate('review_mode_tooltip_content')), /*#__PURE__*/React.createElement("ol", null, /*#__PURE__*/React.createElement("li", null, translate('review_mode_tooltip_content_part1')), /*#__PURE__*/React.createElement("li", null, translate('review_mode_tooltip_content_part2')), /*#__PURE__*/React.createElement("li", null, translate('review_mode_tooltip_content_part3')), /*#__PURE__*/React.createElement("li", null, translate('review_mode_tooltip_content_part4')))), [translate]);
195
- return /*#__PURE__*/React.createElement("div", {
196
- className: style.backgroundContainer
197
- }, /*#__PURE__*/React.createElement("div", {
198
- className: style.container
199
- }, /*#__PURE__*/React.createElement(SkillPickerModal, {
200
- skills: skills,
201
- selectedSkills: selectedSkillsList,
202
- skillsLocales: skillsLocales,
203
- isOpen: open,
204
- isLoading: isLoading,
205
- onCancel: handleCloseSkillPicker,
206
- onConfirm: handleConfirmSkillPicker,
207
- onClose: handleCloseSkillPicker
208
- }), learnerFeature ? /*#__PURE__*/React.createElement("div", {
209
- className: style.skillFocusContainer
210
- }, /*#__PURE__*/React.createElement("header", {
211
- className: style.skillFocusHeader
212
- }, /*#__PURE__*/React.createElement("div", {
213
- className: style.skillFocusHeaderWrapper
214
- }, /*#__PURE__*/React.createElement("div", {
215
- className: style.skillFocusHeaderIcon
216
- }, /*#__PURE__*/React.createElement(Icon, {
217
- iconName: "bullseye-arrow",
218
- backgroundColor: "#DDD1FF",
219
- borderRadius: "12px",
220
- size: {
221
- faSize: 20,
222
- wrapperSize: 48
223
- }
224
- })), /*#__PURE__*/React.createElement("div", {
225
- className: style.skillFocusHeaderContent
226
- }, /*#__PURE__*/React.createElement("div", {
227
- className: style.skillFocusHeaderTitle
228
- }, translate('skill_focus')), /*#__PURE__*/React.createElement("div", {
229
- className: style.skillFocusHeaderDescription
230
- }, translate('skills_focus_description')))), selectedSkillsList.length > 0 ? /*#__PURE__*/React.createElement(ChangeSkillFocusButton, {
231
- onClick: handleOpenSkillPicker
232
- }) : null), selectedSkillsList.length > 0 ? /*#__PURE__*/React.createElement("div", {
233
- className: style.skillFocusContent
234
- }, /*#__PURE__*/React.createElement("div", {
235
- className: style.radarContainer
236
- }, /*#__PURE__*/React.createElement(ResponsiveLearningProfileRadarChart, {
237
- totalDataset: 1,
238
- height: 424,
239
- width: 680,
240
- data: graphDatas,
241
- legend: graphLegends,
242
- onClick: handleOnDotClick,
243
- colors: [{
244
- gradient: {
245
- fill: ['#0062ffff', '#8000ff85'],
246
- stroke: ['#0062ffff', '#8000FF']
247
- },
248
- percentage: {
249
- color: '#0061FF',
250
- background: 'linear-gradient(180deg, rgba(0, 97, 255, 0.10) 0%, rgba(147, 107, 255, 0.10) 100%)'
251
- },
252
- label: {
253
- color: '#020202ff'
254
- }
255
- }]
256
- })), /*#__PURE__*/React.createElement(SkillsChartSideInformationPanel, {
257
- sidePanelItems: skillChartPanelProps
258
- })) : /*#__PURE__*/React.createElement("div", {
259
- className: style.skillFocusEmpty
260
- }, /*#__PURE__*/React.createElement(Picture, {
261
- className: style.img,
262
- src: "https://static.coorpacademy.com/assets/images/mylearning-no-skill-selected-placeholder.svg",
263
- alt: "demo"
264
- }), /*#__PURE__*/React.createElement("div", {
265
- className: style.skillFocusEmptyTitle
266
- }, translate('skill_focus_empty_title')), /*#__PURE__*/React.createElement("div", {
267
- className: style.skillFocusEmptyDescription
268
- }, translate('skills_focus_empty_description')), /*#__PURE__*/React.createElement(ButtonLink, {
269
- label: translate('choose_your_focus'),
270
- type: "primary",
271
- customStyle: {
272
- width: '168px'
273
- },
274
- onClick: handleOpenSkillPicker
275
- }))) : null, /*#__PURE__*/React.createElement("header", {
276
- className: style.skillListHeader
277
- }, /*#__PURE__*/React.createElement("div", {
278
- className: style.skillListHeaderIcon
279
- }, /*#__PURE__*/React.createElement(Icon, {
280
- iconName: "dumbbell",
281
- backgroundColor: "#FFF9D1",
282
- size: {
283
- faSize: 20,
284
- wrapperSize: 48
285
- }
286
- })), /*#__PURE__*/React.createElement("div", {
287
- className: style.skillListHeaderContent
288
- }, /*#__PURE__*/React.createElement("div", {
289
- className: style.skillListHeaderTitle
290
- }, translate('skills')), /*#__PURE__*/React.createElement("div", {
291
- className: style.skillListHeaderDescription
292
- }, translate('Explore or review skills'), /*#__PURE__*/React.createElement(ToolTip, {
293
- fontSize: 12,
294
- iconContainerClassName: style.infoIconTooltip,
295
- tooltipClassName: style.tooltip,
296
- TooltipContent: ReviewTooltipContent,
297
- closeToolTipInformationTextAriaLabel: translate('Press the escape key to close the information text')
298
- })))), /*#__PURE__*/React.createElement("div", {
299
- className: style.toolBarContainer
300
- }, /*#__PURE__*/React.createElement("div", {
301
- className: style.skillFilterContainer
302
- }, _keys(filters).map((filter, index) => {
303
- function handleFilterClick() {
304
- setActiveFilter(filter);
305
- }
306
-
307
- return /*#__PURE__*/React.createElement("div", {
308
- key: index
309
- }, /*#__PURE__*/React.createElement(FilterButton, {
310
- active: activeFilter === filter,
311
- filter: translate(filter),
312
- skillTotal: filters[filter].length,
313
- onClick: handleFilterClick
314
- }));
315
- })), /*#__PURE__*/React.createElement("div", {
316
- className: style.searchWrapper
317
- }, /*#__PURE__*/React.createElement(SearchForm, {
318
- search: {
319
- placeholder: translate('search_place_holder'),
320
- value: searchValue,
321
- onChange: handleSearch
322
- },
323
- onReset: handleSearchReset
324
- }))), searchValue && searchResults.length === 0 ? /*#__PURE__*/React.createElement("div", {
325
- className: style.emptySearchResultContainer
326
- }, /*#__PURE__*/React.createElement("div", {
327
- className: style.emptySearchResultTitle
328
- }, translate('empty_search_result_title', {
329
- searchValue
330
- })), /*#__PURE__*/React.createElement("div", {
331
- className: style.emptySearchResultDescription
332
- }, translate('empty_search_result_description')), /*#__PURE__*/React.createElement("div", {
333
- className: style.emptySearchResultClearSearch,
334
- onClick: handleSearchReset
335
- }, translate('empty_search_result_clear_search'))) : /*#__PURE__*/React.createElement("div", {
336
- className: style.skillListContainer
337
- }, activeFilter === 'review_mode_available' && filters[activeFilter].length === 0 ? /*#__PURE__*/React.createElement("div", {
338
- className: style.skillListEmptyContainer
339
- }, /*#__PURE__*/React.createElement(ReviewNoSkills, {
340
- titleNoSkills: translate('review_skill_epmty'),
341
- textNoSkills: translate('review_skill_epmty_description'),
342
- iconSkillAriaLabel: translate('review_skill_epmty'),
343
- directionReverse: true
344
- })) : filters[activeFilter].map((skill, index) => {
345
- function handleReviewSkill() {
346
- onReviewSkill(skill);
347
- }
348
-
349
- function handleExploreSkill() {
350
- onExploreSkill(skill);
351
- }
352
-
353
- return /*#__PURE__*/React.createElement("div", {
354
- key: index
355
- }, /*#__PURE__*/React.createElement(LearnerSkillCard, {
356
- skillTitle: skillsLocales[skill],
357
- focus: selectedSkills.includes(skill),
358
- metrics: {
359
- skillCourses: skillsInformation[skill].stats.courses,
360
- skillQuestions: skillsInformation[skill].stats.questionsAnswered,
361
- completedCourses: skillsInformation[skill].stats.coursesCompleted
362
- },
363
- review: skillsInformation[skill].availableForReview,
364
- onReviewClick: handleReviewSkill,
365
- onExploreClick: handleExploreSkill
366
- }));
367
- }))));
368
- };
369
-
370
- MyLearning.contextTypes = {
371
- translate: Provider.childContextTypes.translate
372
- };
373
- MyLearning.propTypes = process.env.NODE_ENV !== "production" ? {
374
- skills: PropTypes.arrayOf(PropTypes.string),
375
- selectedSkills: PropTypes.arrayOf(PropTypes.string),
376
- skillsInformation: PropTypes.objectOf(PropTypes.shape({
377
- availableForReview: PropTypes.bool,
378
- stats: PropTypes.shape({
379
- score: PropTypes.number,
380
- courses: PropTypes.number,
381
- coursesCompleted: PropTypes.number,
382
- questionsAnswered: PropTypes.number,
383
- learningHours: PropTypes.number
384
- })
385
- })),
386
- skillsLocales: PropTypes.objectOf(PropTypes.string),
387
- learnerFeature: PropTypes.bool,
388
- isLoading: PropTypes.bool,
389
- onSkillFocusConfirm: PropTypes.func,
390
- onReviewSkill: PropTypes.func,
391
- onExploreSkill: PropTypes.func
392
- } : {};
393
- export default MyLearning;
394
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useState","useMemo","PropTypes","convert","Provider","Icon","Picture","ButtonLink","ToolTip","ReviewNoSkills","SearchForm","SkillPickerModal","ResponsiveLearningProfileRadarChart","SkillsChartSideInformationPanel","LearnerSkillCard","style","ChangeSkillFocusButton","props","context","hovered","setHovered","onClick","skin","translate","primarySkinColor","handleMouseOver","handleMouseLeave","backgroundColor","color","transition","position","faIcon","name","size","contextTypes","childContextTypes","propTypes","func","FilterButton","active","filter","skillTotal","Content","skillFilterNumber","skillFilterNumberInActive","buttonProps","customStyle","width","content","bool","string","number","MyLearning","skills","selectedSkills","skillsInformation","skillsLocales","learnerFeature","isLoading","onSkillFocusConfirm","onReviewSkill","onExploreSkill","open","setOpen","selectedSkillsList","setSelectedSkillsList","skillFocusSelectedOnChart","setSkillFocusSelectedOnChart","undefined","searchValue","setSearchValue","searchResults","setSearchResults","activeFilter","setActiveFilter","skillsReviewReady","skill","availableForReview","graphDatas","stats","score","graphLegends","filters","all","review_mode_available","sumKpi","kpi","coursedCompletedData","questionsAnsweredData","learningHoursData","skillChartPaneLegends","focusedSkill","skillChartPanelProps","title","value","legend","icon","iconName","handleOnDotClick","skillRef","handleOpenSkillPicker","handleCloseSkillPicker","handleConfirmSkillPicker","focusSkillList","handleSearch","toLowerCase","includes","handleSearchReset","ReviewTooltipContent","backgroundContainer","container","skillFocusContainer","skillFocusHeader","skillFocusHeaderWrapper","skillFocusHeaderIcon","faSize","wrapperSize","skillFocusHeaderContent","skillFocusHeaderTitle","skillFocusHeaderDescription","length","skillFocusContent","radarContainer","gradient","fill","stroke","percentage","background","label","skillFocusEmpty","img","skillFocusEmptyTitle","skillFocusEmptyDescription","skillListHeader","skillListHeaderIcon","skillListHeaderContent","skillListHeaderTitle","skillListHeaderDescription","infoIconTooltip","tooltip","toolBarContainer","skillFilterContainer","map","index","handleFilterClick","searchWrapper","placeholder","onChange","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","skillListContainer","skillListEmptyContainer","handleReviewSkill","handleExploreSkill","skillCourses","courses","skillQuestions","questionsAnswered","completedCourses","coursesCompleted","arrayOf","objectOf","shape","learningHours"],"sources":["../../../src/template/my-learning/index.js"],"sourcesContent":["import React, {useCallback, useState, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {convert} from 'css-color-function';\nimport {getOr, keys, map, fromPairs, pipe, sumBy} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport Picture from '../../atom/picture';\nimport ButtonLink from '../../atom/button-link';\nimport ToolTip from '../../atom/tooltip';\nimport ReviewNoSkills from '../../organism/review-no-skills';\nimport SearchForm from '../../molecule/search-form';\nimport SkillPickerModal from '../../molecule/skill-picker-modal';\nimport ResponsiveLearningProfileRadarChart from '../../molecule/learning-profile-radar-chart';\nimport SkillsChartSideInformationPanel from '../../molecule/skills-chart-side-information-panel';\nimport LearnerSkillCard from '../../molecule/learner-skill-card';\nimport style from './style.css';\n\nconst ChangeSkillFocusButton = (props, context) => {\n const [hovered, setHovered] = useState(false);\n const {onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const handleMouseOver = useCallback(() => setHovered(true), [setHovered]);\n\n const handleMouseLeave = useCallback(() => setHovered(false), [setHovered]);\n\n return (\n <div\n data-name=\"button-explore-wrapper\"\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n >\n <ButtonLink\n customStyle={{\n backgroundColor: hovered\n ? primarySkinColor\n : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out'\n }}\n onClick={onClick}\n label={translate('change_skill_focus')}\n data-name=\"change-skill-focus-button\"\n icon={{\n position: 'left',\n faIcon: {\n name: 'arrows-rotate',\n backgroundColor: hovered\n ? primarySkinColor\n : convert(`color(${primarySkinColor} a(0.07))`),\n color: hovered ? '#FFFFFF' : primarySkinColor,\n size: 16\n }\n }}\n />\n </div>\n );\n};\n\nChangeSkillFocusButton.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nChangeSkillFocusButton.propTypes = {\n onClick: PropTypes.func\n};\n\nconst FilterButton = (props, context) => {\n const {active, filter, skillTotal, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = getOr('#0061FF', 'common.primary', skin);\n\n const Content = useCallback(\n () => (\n <div>\n {filter}\n <span className={active ? style.skillFilterNumber : style.skillFilterNumberInActive}>\n {skillTotal}\n </span>\n </div>\n ),\n [filter, skillTotal, active]\n );\n\n const buttonProps = {\n customStyle: {\n backgroundColor: active ? convert(`color(${primarySkinColor} a(0.07))`) : '#FFFFFF',\n color: active ? primarySkinColor : '#9999A8',\n transition: 'background-color 0.15s ease-in-out, color 0.15s ease-in-out',\n width: filter === translate('review_mode_available') ? '200px' : 'fit-content'\n },\n onClick,\n content: <Content />,\n 'data-name': 'change-skill-focus-button'\n };\n\n return <ButtonLink {...buttonProps} />;\n};\n\nFilterButton.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nFilterButton.propTypes = {\n active: PropTypes.bool,\n filter: PropTypes.string,\n skillTotal: PropTypes.number,\n onClick: PropTypes.func\n};\n\nconst MyLearning = (props, context) => {\n const {\n skills,\n selectedSkills = [],\n skillsInformation,\n skillsLocales,\n learnerFeature = true,\n isLoading,\n onSkillFocusConfirm,\n onReviewSkill,\n onExploreSkill\n } = props;\n const {translate} = context;\n const [open, setOpen] = useState(false);\n const [selectedSkillsList, setSelectedSkillsList] = useState(selectedSkills);\n const [skillFocusSelectedOnChart, setSkillFocusSelectedOnChart] = useState(undefined);\n const [searchValue, setSearchValue] = useState('');\n const [searchResults, setSearchResults] = useState(skills);\n const [activeFilter, setActiveFilter] = useState('all');\n\n const skillsReviewReady = useMemo(() => {\n return searchResults.filter(skill => skillsInformation[skill].availableForReview);\n }, [searchResults, skillsInformation]);\n\n const graphDatas = useMemo(\n () =>\n pipe(\n map(skill => [skill, skillsInformation[skill].stats.score]),\n fromPairs\n )(selectedSkillsList),\n [selectedSkillsList, skillsInformation]\n );\n\n const graphLegends = useMemo(\n () =>\n pipe(\n map(skill => [skill, skillsLocales[skill]]),\n fromPairs\n )(selectedSkillsList),\n [selectedSkillsList, skillsLocales]\n );\n\n const filters = useMemo(() => {\n return {\n all: searchResults,\n review_mode_available: skillsReviewReady\n };\n }, [searchResults, skillsReviewReady]);\n\n const sumKpi = useCallback(\n kpi =>\n skillFocusSelectedOnChart\n ? skillsInformation[skillFocusSelectedOnChart].stats[kpi]\n : sumBy(skill => skillsInformation[skill].stats[kpi], selectedSkillsList),\n [skillFocusSelectedOnChart, skillsInformation, selectedSkillsList]\n );\n\n const coursedCompletedData = useMemo(() => sumKpi('coursesCompleted'), [sumKpi]);\n\n const questionsAnsweredData = useMemo(() => sumKpi('questionsAnswered'), [sumKpi]);\n\n const learningHoursData = useMemo(() => sumKpi('learningHours'), [sumKpi]);\n\n const skillChartPaneLegends = useMemo(\n () =>\n translate('on', {\n focusedSkill: skillFocusSelectedOnChart\n ? skillsLocales[skillFocusSelectedOnChart]\n : translate('focused_skills')\n }),\n [translate, skillsLocales, skillFocusSelectedOnChart]\n );\n const skillChartPanelProps = [\n {\n title: translate('skill_chart_side_panel_courses_completed'),\n value: `${coursedCompletedData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'book-open-cover', backgroundColor: '#D9F4F7'}\n },\n {\n title: translate('skill_chart_side_panel_questions_answered'),\n value: `${questionsAnsweredData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'circle-question', backgroundColor: '#FFDCD1'}\n },\n {\n title: translate('skill_chart_side_panel_learning_hours'),\n value: `${learningHoursData}`,\n legend: skillChartPaneLegends,\n icon: {iconName: 'clock', backgroundColor: '#FAD6DE'}\n }\n ];\n\n const handleOnDotClick = useCallback(\n skillRef => {\n skillRef && setSkillFocusSelectedOnChart(skillRef);\n },\n [setSkillFocusSelectedOnChart]\n );\n const handleOpenSkillPicker = useCallback(() => setOpen(true), [setOpen]);\n const handleCloseSkillPicker = useCallback(() => setOpen(false), [setOpen]);\n const handleConfirmSkillPicker = useCallback(\n focusSkillList => {\n setSelectedSkillsList(focusSkillList);\n onSkillFocusConfirm(focusSkillList);\n setOpen(false);\n },\n [onSkillFocusConfirm, setSelectedSkillsList, setOpen]\n );\n const handleSearch = useCallback(\n value => {\n setSearchValue(value);\n setSearchResults(\n skills.filter(skill => {\n return skillsLocales[skill].toLowerCase().includes(value.toLowerCase());\n })\n );\n },\n [skills, skillsLocales, setSearchValue, setSearchResults]\n );\n const handleSearchReset = useCallback(() => {\n setSearchValue('');\n setSearchResults(skills);\n }, [skills, setSearchValue, setSearchResults]);\n\n const ReviewTooltipContent = useCallback(\n () => (\n <div>\n <div>\n <b>{translate('review_mode_tooltip_header')}</b>\n </div>\n <p>{translate('review_mode_tooltip_content')}</p>\n <ol>\n <li>{translate('review_mode_tooltip_content_part1')}</li>\n <li>{translate('review_mode_tooltip_content_part2')}</li>\n <li>{translate('review_mode_tooltip_content_part3')}</li>\n <li>{translate('review_mode_tooltip_content_part4')}</li>\n </ol>\n </div>\n ),\n [translate]\n );\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container}>\n <SkillPickerModal\n skills={skills}\n selectedSkills={selectedSkillsList}\n skillsLocales={skillsLocales}\n isOpen={open}\n isLoading={isLoading}\n onCancel={handleCloseSkillPicker}\n onConfirm={handleConfirmSkillPicker}\n onClose={handleCloseSkillPicker}\n />\n {learnerFeature ? (\n <div className={style.skillFocusContainer}>\n <header className={style.skillFocusHeader}>\n <div className={style.skillFocusHeaderWrapper}>\n <div className={style.skillFocusHeaderIcon}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor=\"#DDD1FF\"\n borderRadius=\"12px\"\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n <div className={style.skillFocusHeaderContent}>\n <div className={style.skillFocusHeaderTitle}>{translate('skill_focus')}</div>\n <div className={style.skillFocusHeaderDescription}>\n {translate('skills_focus_description')}\n </div>\n </div>\n </div>\n {selectedSkillsList.length > 0 ? (\n <ChangeSkillFocusButton onClick={handleOpenSkillPicker} />\n ) : null}\n </header>\n {selectedSkillsList.length > 0 ? (\n <div className={style.skillFocusContent}>\n <div className={style.radarContainer}>\n <ResponsiveLearningProfileRadarChart\n totalDataset={1}\n height={424}\n width={680}\n data={graphDatas}\n legend={graphLegends}\n onClick={handleOnDotClick}\n colors={[\n {\n gradient: {\n fill: ['#0062ffff', '#8000ff85'],\n stroke: ['#0062ffff', '#8000FF']\n },\n percentage: {\n color: '#0061FF',\n background:\n 'linear-gradient(180deg, rgba(0, 97, 255, 0.10) 0%, rgba(147, 107, 255, 0.10) 100%)'\n },\n label: {\n color: '#020202ff'\n }\n }\n ]}\n />\n </div>\n <SkillsChartSideInformationPanel sidePanelItems={skillChartPanelProps} />\n </div>\n ) : (\n <div className={style.skillFocusEmpty}>\n <Picture\n className={style.img}\n src=\"https://static.coorpacademy.com/assets/images/mylearning-no-skill-selected-placeholder.svg\"\n alt=\"demo\"\n />\n <div className={style.skillFocusEmptyTitle}>\n {translate('skill_focus_empty_title')}\n </div>\n <div className={style.skillFocusEmptyDescription}>\n {translate('skills_focus_empty_description')}\n </div>\n <ButtonLink\n label={translate('choose_your_focus')}\n type=\"primary\"\n customStyle={{width: '168px'}}\n onClick={handleOpenSkillPicker}\n />\n </div>\n )}\n </div>\n ) : null}\n <header className={style.skillListHeader}>\n <div className={style.skillListHeaderIcon}>\n <Icon\n iconName=\"dumbbell\"\n backgroundColor=\"#FFF9D1\"\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n <div className={style.skillListHeaderContent}>\n <div className={style.skillListHeaderTitle}>{translate('skills')}</div>\n <div className={style.skillListHeaderDescription}>\n {translate('Explore or review skills')}\n <ToolTip\n fontSize={12}\n iconContainerClassName={style.infoIconTooltip}\n tooltipClassName={style.tooltip}\n TooltipContent={ReviewTooltipContent}\n closeToolTipInformationTextAriaLabel={translate(\n 'Press the escape key to close the information text'\n )}\n />\n </div>\n </div>\n </header>\n <div className={style.toolBarContainer}>\n <div className={style.skillFilterContainer}>\n {keys(filters).map((filter, index) => {\n function handleFilterClick() {\n setActiveFilter(filter);\n }\n\n return (\n <div key={index}>\n <FilterButton\n active={activeFilter === filter}\n filter={translate(filter)}\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_epmty')}\n textNoSkills={translate('review_skill_epmty_description')}\n iconSkillAriaLabel={translate('review_skill_epmty')}\n directionReverse\n />\n </div>\n ) : (\n filters[activeFilter].map((skill, index) => {\n function handleReviewSkill() {\n onReviewSkill(skill);\n }\n function handleExploreSkill() {\n onExploreSkill(skill);\n }\n return (\n <div key={index}>\n <LearnerSkillCard\n skillTitle={skillsLocales[skill]}\n focus={selectedSkills.includes(skill)}\n metrics={{\n skillCourses: skillsInformation[skill].stats.courses,\n skillQuestions: skillsInformation[skill].stats.questionsAnswered,\n completedCourses: skillsInformation[skill].stats.coursesCompleted\n }}\n review={skillsInformation[skill].availableForReview}\n onReviewClick={handleReviewSkill}\n onExploreClick={handleExploreSkill}\n />\n </div>\n );\n })\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nMyLearning.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nMyLearning.propTypes = {\n skills: PropTypes.arrayOf(PropTypes.string),\n selectedSkills: PropTypes.arrayOf(PropTypes.string),\n skillsInformation: PropTypes.objectOf(\n PropTypes.shape({\n availableForReview: PropTypes.bool,\n stats: PropTypes.shape({\n score: PropTypes.number,\n courses: PropTypes.number,\n coursesCompleted: PropTypes.number,\n questionsAnswered: PropTypes.number,\n learningHours: PropTypes.number\n })\n })\n ),\n skillsLocales: PropTypes.objectOf(PropTypes.string),\n learnerFeature: PropTypes.bool,\n isLoading: PropTypes.bool,\n onSkillFocusConfirm: PropTypes.func,\n onReviewSkill: PropTypes.func,\n onExploreSkill: PropTypes.func\n};\n\nexport default MyLearning;\n"],"mappings":"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"}