@coorpacademy/components 11.35.2-alpha.4 → 11.35.2-forcedeploy2.15

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 (282) hide show
  1. package/es/atom/button-link/index.js +1 -1
  2. package/es/atom/button-link/index.js.map +1 -1
  3. package/es/atom/button-link/style.css +2 -2
  4. package/es/atom/icon/index.d.ts +35 -17
  5. package/es/atom/icon/index.d.ts.map +1 -1
  6. package/es/atom/icon/index.js +32 -15
  7. package/es/atom/icon/index.js.map +1 -1
  8. package/es/atom/radio-with-title/index.d.ts +13 -3
  9. package/es/atom/radio-with-title/index.d.ts.map +1 -1
  10. package/es/atom/radio-with-title/types.d.ts +13 -2
  11. package/es/atom/radio-with-title/types.d.ts.map +1 -1
  12. package/es/atom/status-item/index.native.js +1 -1
  13. package/es/atom/status-item/index.native.js.map +1 -1
  14. package/es/atom/tag/index.d.ts +12 -1
  15. package/es/atom/tag/style.css +1 -0
  16. package/es/atom/title/index.d.ts +13 -2
  17. package/es/molecule/banner/style.css +1 -0
  18. package/es/molecule/base-modal/style.css +0 -1
  19. package/es/molecule/bulk-progress-bar/index.js +2 -2
  20. package/es/molecule/bulk-progress-bar/index.js.map +1 -1
  21. package/es/molecule/certification-card/index.js +1 -1
  22. package/es/molecule/certification-card/index.js.map +1 -1
  23. package/es/molecule/cm-popin/types.d.ts +28 -7
  24. package/es/molecule/cm-popin/types.d.ts.map +1 -1
  25. package/es/molecule/cm-popin/types.js +1 -1
  26. package/es/molecule/cm-popin/types.js.map +1 -1
  27. package/es/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  28. package/es/molecule/dashboard/cards-list/index.js +2 -0
  29. package/es/molecule/dashboard/cards-list/index.js.map +1 -1
  30. package/es/molecule/learner-skill-card/index.d.ts +25 -40
  31. package/es/molecule/learner-skill-card/index.d.ts.map +1 -1
  32. package/es/molecule/learner-skill-card/index.js +95 -96
  33. package/es/molecule/learner-skill-card/index.js.map +1 -1
  34. package/es/molecule/learner-skill-card/prop-types.d.ts +37 -0
  35. package/es/molecule/learner-skill-card/prop-types.d.ts.map +1 -0
  36. package/es/molecule/learner-skill-card/prop-types.js +20 -0
  37. package/es/molecule/learner-skill-card/prop-types.js.map +1 -0
  38. package/es/molecule/learner-skill-card/style.css +62 -41
  39. package/es/molecule/learning-priority-modal/style.css +3 -2
  40. package/es/molecule/progress-wrapper/index.js +1 -1
  41. package/es/molecule/progress-wrapper/index.js.map +1 -1
  42. package/es/molecule/skills-chart-side-information-item/index.d.ts +1 -1
  43. package/es/molecule/skills-chart-side-information-panel/index.d.ts +1 -1
  44. package/es/molecule/title-and-checkbox-wrapper/index.d.ts +13 -2
  45. package/es/molecule/title-radio-wrapper/index.d.ts +13 -3
  46. package/es/molecule/title-radio-wrapper/index.d.ts.map +1 -1
  47. package/es/molecule/title-radio-wrapper/types.d.ts +13 -2
  48. package/es/molecule/title-radio-wrapper/types.d.ts.map +1 -1
  49. package/es/organism/cards-grid/index.d.ts +48 -10
  50. package/es/organism/cards-grid/index.d.ts.map +1 -1
  51. package/es/organism/cards-grid/index.js +3 -2
  52. package/es/organism/cards-grid/index.js.map +1 -1
  53. package/es/organism/content-skill-modal/index.d.ts +13 -3
  54. package/es/organism/content-skill-modal/index.d.ts.map +1 -1
  55. package/es/organism/content-skill-modal/types.d.ts +12 -2
  56. package/es/organism/content-skill-modal/types.d.ts.map +1 -1
  57. package/es/organism/header-with-actions/index.d.ts +8 -22
  58. package/es/organism/header-with-actions/index.d.ts.map +1 -1
  59. package/es/organism/header-with-actions/index.js +7 -85
  60. package/es/organism/header-with-actions/index.js.map +1 -1
  61. package/es/organism/header-with-actions/types.d.ts +13 -44
  62. package/es/organism/header-with-actions/types.d.ts.map +1 -1
  63. package/es/organism/header-with-actions/types.js +6 -22
  64. package/es/organism/header-with-actions/types.js.map +1 -1
  65. package/es/organism/list-item/index.js +5 -5
  66. package/es/organism/list-item/index.js.map +1 -1
  67. package/es/organism/list-item/style.css +23 -17
  68. package/es/organism/list-items/index.d.ts +13 -2
  69. package/es/organism/mooc-header/index.d.ts.map +1 -1
  70. package/es/organism/mooc-header/index.js +9 -7
  71. package/es/organism/mooc-header/index.js.map +1 -1
  72. package/es/organism/mooc-header/style.css +22 -18
  73. package/es/organism/rewards-form/index.d.ts +13 -2
  74. package/es/organism/select-opponents/index.d.ts +13 -3
  75. package/es/organism/select-opponents/index.d.ts.map +1 -1
  76. package/es/organism/select-opponents/types.d.ts +13 -2
  77. package/es/organism/select-opponents/types.d.ts.map +1 -1
  78. package/es/organism/sidebar/index.d.ts +2 -2
  79. package/es/organism/skill-edition/index.d.ts +37 -7
  80. package/es/organism/skill-edition/index.d.ts.map +1 -1
  81. package/es/organism/skill-edition/types.d.ts +37 -6
  82. package/es/organism/skill-edition/types.d.ts.map +1 -1
  83. package/es/organism/title-and-input/index.d.ts +25 -5
  84. package/es/organism/title-and-input/index.d.ts.map +1 -1
  85. package/es/organism/title-and-input/types.d.ts +24 -4
  86. package/es/organism/title-and-input/types.d.ts.map +1 -1
  87. package/es/organism/wizard-contents/index.d.ts +13 -2
  88. package/es/template/app-player/loading/index.d.ts +27 -6
  89. package/es/template/app-player/player/index.d.ts +53 -12
  90. package/es/template/app-player/player/slides/index.d.ts +27 -6
  91. package/es/template/app-player/player/slides/index.d.ts.map +1 -1
  92. package/es/template/app-player/popin-correction/index.d.ts +26 -6
  93. package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
  94. package/es/template/app-player/popin-end/index.d.ts +27 -6
  95. package/es/template/app-review/index.d.ts +27 -7
  96. package/es/template/app-review/index.d.ts.map +1 -1
  97. package/es/template/app-review/player/prop-types.d.ts +27 -6
  98. package/es/template/app-review/player/prop-types.d.ts.map +1 -1
  99. package/es/template/app-review/prop-types.d.ts +27 -6
  100. package/es/template/app-review/prop-types.d.ts.map +1 -1
  101. package/es/template/back-office/brand-update/index.d.ts +95 -38
  102. package/es/template/back-office/brand-update/index.d.ts.map +1 -1
  103. package/es/template/back-office/brand-update/index.js +2 -4
  104. package/es/template/back-office/brand-update/index.js.map +1 -1
  105. package/es/template/back-office/brand-update/style.css +1 -4
  106. package/es/template/back-office/brand-update/utils.d.ts +11 -39
  107. package/es/template/back-office/brand-update/utils.js +0 -19
  108. package/es/template/back-office/brand-update/utils.js.map +1 -1
  109. package/es/template/common/dashboard/index.d.ts +53 -12
  110. package/es/template/common/search-page/index.d.ts +27 -6
  111. package/es/template/external-course/index.d.ts +27 -6
  112. package/es/template/my-learning/index.d.ts +0 -1
  113. package/es/template/my-learning/index.d.ts.map +1 -1
  114. package/es/template/my-learning/index.js +26 -22
  115. package/es/template/my-learning/index.js.map +1 -1
  116. package/es/template/my-learning/style.css +9 -6
  117. package/es/template/skill-detail/all-courses.css +3 -2
  118. package/es/template/skill-detail/all-courses.d.ts +52 -17
  119. package/es/template/skill-detail/all-courses.d.ts.map +1 -1
  120. package/es/template/skill-detail/all-courses.js +12 -11
  121. package/es/template/skill-detail/all-courses.js.map +1 -1
  122. package/es/template/skill-detail/continue-learning.css +7 -2
  123. package/es/template/skill-detail/continue-learning.d.ts +25 -12
  124. package/es/template/skill-detail/continue-learning.d.ts.map +1 -1
  125. package/es/template/skill-detail/continue-learning.js.map +1 -1
  126. package/es/template/skill-detail/index.d.ts +89 -71
  127. package/es/template/skill-detail/index.d.ts.map +1 -1
  128. package/es/template/skill-detail/index.js +99 -58
  129. package/es/template/skill-detail/index.js.map +1 -1
  130. package/es/template/skill-detail/style.css +97 -39
  131. package/es/variables/colors.css +10 -1
  132. package/es/variables/colors.d.ts +13 -3
  133. package/es/variables/colors.d.ts.map +1 -1
  134. package/es/variables/colors.js +13 -3
  135. package/es/variables/colors.js.map +1 -1
  136. package/es/variables/theme.native.js +1 -1
  137. package/es/variables/theme.native.js.map +1 -1
  138. package/lib/atom/button-link/index.js +1 -1
  139. package/lib/atom/button-link/index.js.map +1 -1
  140. package/lib/atom/button-link/style.css +2 -2
  141. package/lib/atom/icon/index.d.ts +35 -17
  142. package/lib/atom/icon/index.d.ts.map +1 -1
  143. package/lib/atom/icon/index.js +34 -18
  144. package/lib/atom/icon/index.js.map +1 -1
  145. package/lib/atom/radio-with-title/index.d.ts +13 -3
  146. package/lib/atom/radio-with-title/index.d.ts.map +1 -1
  147. package/lib/atom/radio-with-title/types.d.ts +13 -2
  148. package/lib/atom/radio-with-title/types.d.ts.map +1 -1
  149. package/lib/atom/status-item/index.native.js +1 -1
  150. package/lib/atom/status-item/index.native.js.map +1 -1
  151. package/lib/atom/tag/index.d.ts +12 -1
  152. package/lib/atom/tag/style.css +1 -0
  153. package/lib/atom/title/index.d.ts +13 -2
  154. package/lib/molecule/banner/style.css +1 -0
  155. package/lib/molecule/base-modal/style.css +0 -1
  156. package/lib/molecule/bulk-progress-bar/index.js +2 -2
  157. package/lib/molecule/bulk-progress-bar/index.js.map +1 -1
  158. package/lib/molecule/certification-card/index.js +1 -1
  159. package/lib/molecule/certification-card/index.js.map +1 -1
  160. package/lib/molecule/cm-popin/types.d.ts +28 -7
  161. package/lib/molecule/cm-popin/types.d.ts.map +1 -1
  162. package/lib/molecule/cm-popin/types.js +1 -1
  163. package/lib/molecule/cm-popin/types.js.map +1 -1
  164. package/lib/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  165. package/lib/molecule/dashboard/cards-list/index.js +2 -0
  166. package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
  167. package/lib/molecule/learner-skill-card/index.d.ts +25 -40
  168. package/lib/molecule/learner-skill-card/index.d.ts.map +1 -1
  169. package/lib/molecule/learner-skill-card/index.js +98 -96
  170. package/lib/molecule/learner-skill-card/index.js.map +1 -1
  171. package/lib/molecule/learner-skill-card/prop-types.d.ts +37 -0
  172. package/lib/molecule/learner-skill-card/prop-types.d.ts.map +1 -0
  173. package/lib/molecule/learner-skill-card/prop-types.js +25 -0
  174. package/lib/molecule/learner-skill-card/prop-types.js.map +1 -0
  175. package/lib/molecule/learner-skill-card/style.css +62 -41
  176. package/lib/molecule/learning-priority-modal/style.css +3 -2
  177. package/lib/molecule/progress-wrapper/index.js +1 -1
  178. package/lib/molecule/progress-wrapper/index.js.map +1 -1
  179. package/lib/molecule/skills-chart-side-information-item/index.d.ts +1 -1
  180. package/lib/molecule/skills-chart-side-information-panel/index.d.ts +1 -1
  181. package/lib/molecule/title-and-checkbox-wrapper/index.d.ts +13 -2
  182. package/lib/molecule/title-radio-wrapper/index.d.ts +13 -3
  183. package/lib/molecule/title-radio-wrapper/index.d.ts.map +1 -1
  184. package/lib/molecule/title-radio-wrapper/types.d.ts +13 -2
  185. package/lib/molecule/title-radio-wrapper/types.d.ts.map +1 -1
  186. package/lib/organism/cards-grid/index.d.ts +48 -10
  187. package/lib/organism/cards-grid/index.d.ts.map +1 -1
  188. package/lib/organism/cards-grid/index.js +3 -2
  189. package/lib/organism/cards-grid/index.js.map +1 -1
  190. package/lib/organism/content-skill-modal/index.d.ts +13 -3
  191. package/lib/organism/content-skill-modal/index.d.ts.map +1 -1
  192. package/lib/organism/content-skill-modal/types.d.ts +12 -2
  193. package/lib/organism/content-skill-modal/types.d.ts.map +1 -1
  194. package/lib/organism/header-with-actions/index.d.ts +8 -22
  195. package/lib/organism/header-with-actions/index.d.ts.map +1 -1
  196. package/lib/organism/header-with-actions/index.js +7 -85
  197. package/lib/organism/header-with-actions/index.js.map +1 -1
  198. package/lib/organism/header-with-actions/types.d.ts +13 -44
  199. package/lib/organism/header-with-actions/types.d.ts.map +1 -1
  200. package/lib/organism/header-with-actions/types.js +6 -22
  201. package/lib/organism/header-with-actions/types.js.map +1 -1
  202. package/lib/organism/list-item/index.js +5 -5
  203. package/lib/organism/list-item/index.js.map +1 -1
  204. package/lib/organism/list-item/style.css +23 -17
  205. package/lib/organism/list-items/index.d.ts +13 -2
  206. package/lib/organism/mooc-header/index.d.ts.map +1 -1
  207. package/lib/organism/mooc-header/index.js +8 -6
  208. package/lib/organism/mooc-header/index.js.map +1 -1
  209. package/lib/organism/mooc-header/style.css +22 -18
  210. package/lib/organism/rewards-form/index.d.ts +13 -2
  211. package/lib/organism/select-opponents/index.d.ts +13 -3
  212. package/lib/organism/select-opponents/index.d.ts.map +1 -1
  213. package/lib/organism/select-opponents/types.d.ts +13 -2
  214. package/lib/organism/select-opponents/types.d.ts.map +1 -1
  215. package/lib/organism/sidebar/index.d.ts +2 -2
  216. package/lib/organism/skill-edition/index.d.ts +37 -7
  217. package/lib/organism/skill-edition/index.d.ts.map +1 -1
  218. package/lib/organism/skill-edition/types.d.ts +37 -6
  219. package/lib/organism/skill-edition/types.d.ts.map +1 -1
  220. package/lib/organism/title-and-input/index.d.ts +25 -5
  221. package/lib/organism/title-and-input/index.d.ts.map +1 -1
  222. package/lib/organism/title-and-input/types.d.ts +24 -4
  223. package/lib/organism/title-and-input/types.d.ts.map +1 -1
  224. package/lib/organism/wizard-contents/index.d.ts +13 -2
  225. package/lib/template/app-player/loading/index.d.ts +27 -6
  226. package/lib/template/app-player/player/index.d.ts +53 -12
  227. package/lib/template/app-player/player/slides/index.d.ts +27 -6
  228. package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
  229. package/lib/template/app-player/popin-correction/index.d.ts +26 -6
  230. package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
  231. package/lib/template/app-player/popin-end/index.d.ts +27 -6
  232. package/lib/template/app-review/index.d.ts +27 -7
  233. package/lib/template/app-review/index.d.ts.map +1 -1
  234. package/lib/template/app-review/player/prop-types.d.ts +27 -6
  235. package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
  236. package/lib/template/app-review/prop-types.d.ts +27 -6
  237. package/lib/template/app-review/prop-types.d.ts.map +1 -1
  238. package/lib/template/back-office/brand-update/index.d.ts +95 -38
  239. package/lib/template/back-office/brand-update/index.d.ts.map +1 -1
  240. package/lib/template/back-office/brand-update/index.js +2 -4
  241. package/lib/template/back-office/brand-update/index.js.map +1 -1
  242. package/lib/template/back-office/brand-update/style.css +1 -4
  243. package/lib/template/back-office/brand-update/utils.d.ts +11 -39
  244. package/lib/template/back-office/brand-update/utils.js +0 -19
  245. package/lib/template/back-office/brand-update/utils.js.map +1 -1
  246. package/lib/template/common/dashboard/index.d.ts +53 -12
  247. package/lib/template/common/search-page/index.d.ts +27 -6
  248. package/lib/template/external-course/index.d.ts +27 -6
  249. package/lib/template/my-learning/index.d.ts +0 -1
  250. package/lib/template/my-learning/index.d.ts.map +1 -1
  251. package/lib/template/my-learning/index.js +26 -22
  252. package/lib/template/my-learning/index.js.map +1 -1
  253. package/lib/template/my-learning/style.css +9 -6
  254. package/lib/template/skill-detail/all-courses.css +3 -2
  255. package/lib/template/skill-detail/all-courses.d.ts +52 -17
  256. package/lib/template/skill-detail/all-courses.d.ts.map +1 -1
  257. package/lib/template/skill-detail/all-courses.js +11 -11
  258. package/lib/template/skill-detail/all-courses.js.map +1 -1
  259. package/lib/template/skill-detail/continue-learning.css +7 -2
  260. package/lib/template/skill-detail/continue-learning.d.ts +25 -12
  261. package/lib/template/skill-detail/continue-learning.d.ts.map +1 -1
  262. package/lib/template/skill-detail/continue-learning.js.map +1 -1
  263. package/lib/template/skill-detail/index.d.ts +89 -71
  264. package/lib/template/skill-detail/index.d.ts.map +1 -1
  265. package/lib/template/skill-detail/index.js +99 -58
  266. package/lib/template/skill-detail/index.js.map +1 -1
  267. package/lib/template/skill-detail/style.css +97 -39
  268. package/lib/variables/colors.css +10 -1
  269. package/lib/variables/colors.d.ts +13 -3
  270. package/lib/variables/colors.d.ts.map +1 -1
  271. package/lib/variables/colors.js +13 -3
  272. package/lib/variables/colors.js.map +1 -1
  273. package/lib/variables/theme.native.js +1 -1
  274. package/lib/variables/theme.native.js.map +1 -1
  275. package/locales/cs/global.json +1 -0
  276. package/locales/en/global.json +1 -0
  277. package/locales/hr/global.json +1 -0
  278. package/locales/it/global.json +1 -0
  279. package/locales/ko/global.json +1 -0
  280. package/locales/ru/global.json +1 -0
  281. package/package.json +2 -2
  282. package/locales/.mtslconfig.json +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"continue-learning.js","names":["React","useCallback","PropTypes","Provider","CardsGrid","CardsList","style","ContinueLearning","props","context","ongoingCourses","translate","Title","createElement","Fragment","className","continueLearningTitle","continueLearningNumber","list","length","cards","_sortBy","course","_getOr","title","customStyle","padding","contextTypes","skin","childContextTypes","propTypes","process","env","NODE_ENV","shape"],"sources":["../../../src/template/skill-detail/continue-learning.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, sortBy} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport CardsGrid from '../../organism/cards-grid';\nimport CardsList from '../../molecule/dashboard/cards-list';\nimport style from './continue-learning.css';\n\nconst ContinueLearning = (props, context) => {\n const {ongoingCourses} = props;\n const {translate} = context;\n\n const Title = useCallback(\n () => (\n <>\n <span className={style.continueLearningTitle}>{translate('continue_learning')}</span>\n <span className={style.continueLearningNumber}>{ongoingCourses.list.length}</span>\n </>\n ),\n [ongoingCourses, translate]\n );\n\n if (ongoingCourses.list.length === 0) {\n return null;\n }\n\n return (\n <CardsList\n cards={sortBy(course => -getOr(0, ['progress'], course), ongoingCourses.list)}\n title={<Title />}\n // to override CardList wrapper padding\n customStyle={{padding: '0px'}}\n />\n );\n};\n\nContinueLearning.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContinueLearning.propTypes = {\n ongoingCourses: PropTypes.shape(CardsGrid.propTypes)\n};\n\nexport default ContinueLearning;\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAGC,WAAW,QAAO,OAAO;AACxC,OAAOC,SAAS,MAAM,YAAY;AAElC,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,OAAOC,SAAS,MAAM,2BAA2B;AACjD,OAAOC,SAAS,MAAM,qCAAqC;AAC3D,OAAOC,KAAK,MAAM,yBAAyB;AAE3C,MAAMC,gBAAgB,GAAGA,CAACC,KAAK,EAAEC,OAAO,KAAK;EAC3C,MAAM;IAACC;EAAc,CAAC,GAAGF,KAAK;EAC9B,MAAM;IAACG;EAAS,CAAC,GAAGF,OAAO;EAE3B,MAAMG,KAAK,GAAGX,WAAW,CACvB,mBACED,KAAA,CAAAa,aAAA,CAAAb,KAAA,CAAAc,QAAA,qBACEd,KAAA,CAAAa,aAAA;IAAME,SAAS,EAAET,KAAK,CAACU;EAAsB,GAAEL,SAAS,CAAC,mBAAmB,CAAQ,CAAC,eACrFX,KAAA,CAAAa,aAAA;IAAME,SAAS,EAAET,KAAK,CAACW;EAAuB,GAAEP,cAAc,CAACQ,IAAI,CAACC,MAAa,CACjF,CACH,EACD,CAACT,cAAc,EAAEC,SAAS,CAC5B,CAAC;EAED,IAAID,cAAc,CAACQ,IAAI,CAACC,MAAM,KAAK,CAAC,EAAE;IACpC,OAAO,IAAI;EACb;EAEA,oBACEnB,KAAA,CAAAa,aAAA,CAACR,SAAS;IACRe,KAAK,EAAEC,OAAA,CAAOC,MAAM,IAAI,CAACC,MAAA,CAAM,CAAC,EAAE,CAAC,UAAU,CAAC,EAAED,MAAM,CAAC,EAAEZ,cAAc,CAACQ,IAAI,CAAE;IAC9EM,KAAK,eAAExB,KAAA,CAAAa,aAAA,CAACD,KAAK,MAAE;IACf;IAAA;IACAa,WAAW,EAAE;MAACC,OAAO,EAAE;IAAK;EAAE,CAC/B,CAAC;AAEN,CAAC;AAEDnB,gBAAgB,CAACoB,YAAY,GAAG;EAC9BC,IAAI,EAAEzB,QAAQ,CAAC0B,iBAAiB,CAACD,IAAI;EACrCjB,SAAS,EAAER,QAAQ,CAAC0B,iBAAiB,CAAClB;AACxC,CAAC;AAEDJ,gBAAgB,CAACuB,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EAC3BvB,cAAc,EAAER,SAAS,CAACgC,KAAK,CAAC9B,SAAS,CAAC0B,SAAS;AACrD,CAAC;AAED,eAAevB,gBAAgB","ignoreList":[]}
1
+ {"version":3,"file":"continue-learning.js","names":["React","useCallback","PropTypes","Provider","CardsGrid","CardsList","style","ContinueLearning","props","context","ongoingCourses","translate","Title","createElement","Fragment","className","continueLearningTitle","continueLearningNumber","list","length","cards","_sortBy","course","_getOr","title","customStyle","padding","contextTypes","skin","childContextTypes","propTypes","process","env","NODE_ENV","shape"],"sources":["../../../src/template/skill-detail/continue-learning.tsx"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, sortBy} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport CardsGrid, {CardsGridProps} from '../../organism/cards-grid';\nimport CardsList from '../../molecule/dashboard/cards-list';\nimport style from './continue-learning.css';\n\ninterface ProviderContext {\n skin: {\n common: {\n primary: string;\n secondary: string;\n };\n };\n translate: (key: string, options?: any) => string;\n}\n\nconst ContinueLearning = (props: {ongoingCourses: CardsGridProps}, context: ProviderContext) => {\n const {ongoingCourses} = props;\n const {translate} = context;\n\n const Title = useCallback(\n () => (\n <>\n <span className={style.continueLearningTitle}>{translate('continue_learning')}</span>\n <span className={style.continueLearningNumber}>{ongoingCourses.list.length}</span>\n </>\n ),\n [ongoingCourses, translate]\n );\n\n if (ongoingCourses.list.length === 0) {\n return null;\n }\n\n return (\n <CardsList\n cards={sortBy(course => -getOr(0, ['progress'], course), ongoingCourses.list)}\n title={<Title />}\n // to override CardList wrapper padding\n customStyle={{padding: '0px'}}\n />\n );\n};\n\nContinueLearning.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nContinueLearning.propTypes = {\n ongoingCourses: PropTypes.shape(CardsGrid.propTypes)\n};\n\nexport default ContinueLearning;\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAGC,WAAW,QAAO,OAAO;AACxC,OAAOC,SAAS,MAAM,YAAY;AAElC,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,OAAOC,SAAS,MAAwB,2BAA2B;AACnE,OAAOC,SAAS,MAAM,qCAAqC;AAC3D,OAAOC,KAAK,MAAM,yBAAyB;AAY3C,MAAMC,gBAAgB,GAAGA,CAACC,KAAuC,EAAEC,OAAwB,KAAK;EAC9F,MAAM;IAACC;EAAc,CAAC,GAAGF,KAAK;EAC9B,MAAM;IAACG;EAAS,CAAC,GAAGF,OAAO;EAE3B,MAAMG,KAAK,GAAGX,WAAW,CACvB,mBACED,KAAA,CAAAa,aAAA,CAAAb,KAAA,CAAAc,QAAA,qBACEd,KAAA,CAAAa,aAAA;IAAME,SAAS,EAAET,KAAK,CAACU;EAAsB,GAAEL,SAAS,CAAC,mBAAmB,CAAQ,CAAC,eACrFX,KAAA,CAAAa,aAAA;IAAME,SAAS,EAAET,KAAK,CAACW;EAAuB,GAAEP,cAAc,CAACQ,IAAI,CAACC,MAAa,CACjF,CACH,EACD,CAACT,cAAc,EAAEC,SAAS,CAC5B,CAAC;EAED,IAAID,cAAc,CAACQ,IAAI,CAACC,MAAM,KAAK,CAAC,EAAE;IACpC,OAAO,IAAI;EACb;EAEA,oBACEnB,KAAA,CAAAa,aAAA,CAACR,SAAS;IACRe,KAAK,EAAEC,OAAA,CAAOC,MAAM,IAAI,CAACC,MAAA,CAAM,CAAC,EAAE,CAAC,UAAU,CAAC,EAAED,MAAM,CAAC,EAAEZ,cAAc,CAACQ,IAAI,CAAE;IAC9EM,KAAK,eAAExB,KAAA,CAAAa,aAAA,CAACD,KAAK,MAAE;IACf;IAAA;IACAa,WAAW,EAAE;MAACC,OAAO,EAAE;IAAK;EAAE,CAC/B,CAAC;AAEN,CAAC;AAEDnB,gBAAgB,CAACoB,YAAY,GAAG;EAC9BC,IAAI,EAAEzB,QAAQ,CAAC0B,iBAAiB,CAACD,IAAI;EACrCjB,SAAS,EAAER,QAAQ,CAAC0B,iBAAiB,CAAClB;AACxC,CAAC;AAEDJ,gBAAgB,CAACuB,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EAC3BvB,cAAc,EAAER,SAAS,CAACgC,KAAK,CAAC9B,SAAS,CAAC0B,SAAS;AACrD,CAAC;AAED,eAAevB,gBAAgB","ignoreList":[]}
@@ -1,7 +1,23 @@
1
- export function ContinueLearningButton(props: any, context: any): JSX.Element;
2
- export namespace ContinueLearningButton {
3
- namespace contextTypes {
4
- const skin: PropTypes.Requireable<PropTypes.InferProps<{
1
+ /// <reference types="react" />
2
+ import PropTypes from 'prop-types';
3
+ import { CardsGridProps } from '../../organism/cards-grid';
4
+ interface ContinueLearningButtonProps {
5
+ ongoingCoursesAvailable?: boolean;
6
+ onClick?: () => void;
7
+ }
8
+ interface ProviderContext {
9
+ skin: {
10
+ common: {
11
+ primary: string;
12
+ secondary: string;
13
+ };
14
+ };
15
+ translate: (key: string) => string;
16
+ }
17
+ export declare const ContinueLearningButton: {
18
+ (props: ContinueLearningButtonProps, context: ProviderContext): JSX.Element;
19
+ contextTypes: {
20
+ skin: PropTypes.Requireable<PropTypes.InferProps<{
5
21
  common: PropTypes.Requireable<{
6
22
  [x: string]: any;
7
23
  }>;
@@ -22,19 +38,53 @@ export namespace ContinueLearningButton {
22
38
  [x: string]: any;
23
39
  }>;
24
40
  }>>;
25
- const translate: PropTypes.Requireable<(...args: any[]) => any>;
26
- }
27
- namespace propTypes {
28
- const ongoingCoursesAvailable: PropTypes.Requireable<boolean>;
29
- const onClick: PropTypes.Requireable<(...args: any[]) => any>;
30
- }
41
+ translate: PropTypes.Requireable<(...args: any[]) => any>;
42
+ };
43
+ propTypes: {
44
+ ongoingCoursesAvailable: PropTypes.Requireable<boolean>;
45
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
46
+ };
47
+ };
48
+ interface Metrics {
49
+ score?: number;
50
+ questionsToReview?: number;
51
+ totalContents?: number;
31
52
  }
32
- export default SkillDetail;
33
- import PropTypes from "prop-types";
34
- declare function SkillDetail(props: any, context: any): JSX.Element;
35
- declare namespace SkillDetail {
36
- export namespace contextTypes_1 {
37
- const skin_1: PropTypes.Requireable<PropTypes.InferProps<{
53
+ declare type BannerMicrolearning = Record<string, never> | {
54
+ action: () => void;
55
+ oldSwitchValue: boolean;
56
+ };
57
+ interface SkillDetailProps {
58
+ title: string;
59
+ icon: {
60
+ name: string;
61
+ color: string;
62
+ };
63
+ skillRef: string;
64
+ description?: string;
65
+ metrics?: Metrics;
66
+ focused?: boolean;
67
+ availableForReview?: boolean;
68
+ ongoingCoursesAvailable?: boolean;
69
+ skillIncludedCourses: CardsGridProps;
70
+ filters: {
71
+ onChange?: () => void;
72
+ options?: unknown[];
73
+ };
74
+ onBackClick?: () => void;
75
+ onReviewClick?: () => void;
76
+ onContinueLearningClick?: () => void;
77
+ search: {
78
+ oldValue: string;
79
+ onChange: () => void;
80
+ };
81
+ bannerMicrolearning?: BannerMicrolearning;
82
+ }
83
+ declare const SkillDetail: {
84
+ (props: SkillDetailProps, context: ProviderContext): JSX.Element;
85
+ contextTypes: {
86
+ translate: PropTypes.Requireable<(...args: any[]) => any>;
87
+ skin: PropTypes.Requireable<PropTypes.InferProps<{
38
88
  common: PropTypes.Requireable<{
39
89
  [x: string]: any;
40
90
  }>;
@@ -55,32 +105,31 @@ declare namespace SkillDetail {
55
105
  [x: string]: any;
56
106
  }>;
57
107
  }>>;
58
- export { skin_1 as skin };
59
- const translate_1: PropTypes.Requireable<(...args: any[]) => any>;
60
- export { translate_1 as translate };
61
- }
62
- export { contextTypes_1 as contextTypes };
63
- export namespace propTypes_1 {
64
- export const title: PropTypes.Validator<string>;
65
- export const skillRef: PropTypes.Validator<string>;
66
- export const description: PropTypes.Requireable<string>;
67
- export const metrics: PropTypes.Requireable<PropTypes.InferProps<{
108
+ };
109
+ propTypes: {
110
+ title: PropTypes.Validator<string>;
111
+ icon: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
112
+ name: PropTypes.Requireable<string>;
113
+ color: PropTypes.Requireable<string>;
114
+ }>>>;
115
+ skillRef: PropTypes.Validator<string>;
116
+ description: PropTypes.Requireable<string>;
117
+ metrics: PropTypes.Requireable<PropTypes.InferProps<{
68
118
  score: PropTypes.Requireable<number>;
69
119
  questionsToReview: PropTypes.Requireable<number>;
70
120
  totalContents: PropTypes.Requireable<number>;
71
121
  }>>;
72
- export const focused: PropTypes.Requireable<boolean>;
73
- export const availableForReview: PropTypes.Requireable<boolean>;
74
- const ongoingCoursesAvailable_1: PropTypes.Requireable<boolean>;
75
- export { ongoingCoursesAvailable_1 as ongoingCoursesAvailable };
76
- export const skillIncludedCourses: PropTypes.Requireable<PropTypes.InferProps<{
122
+ focused: PropTypes.Requireable<boolean>;
123
+ availableForReview: PropTypes.Requireable<boolean>;
124
+ ongoingCoursesAvailable: PropTypes.Requireable<boolean>;
125
+ skillIncludedCourses: PropTypes.Requireable<PropTypes.InferProps<{
77
126
  list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
78
127
  customStyle: PropTypes.Requireable<{
79
128
  [x: string]: string | null | undefined;
80
129
  }>;
81
130
  loading: PropTypes.Requireable<boolean>;
82
131
  }>>;
83
- export const filters: PropTypes.Requireable<PropTypes.InferProps<{
132
+ filters: PropTypes.Requireable<PropTypes.InferProps<{
84
133
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
85
134
  options: PropTypes.Requireable<(PropTypes.InferProps<{
86
135
  name: PropTypes.Validator<string>;
@@ -89,49 +138,18 @@ declare namespace SkillDetail {
89
138
  validOption: PropTypes.Requireable<boolean>;
90
139
  }> | null | undefined)[]>;
91
140
  }>>;
92
- export const sorting: PropTypes.Requireable<PropTypes.InferProps<{
93
- title: PropTypes.Requireable<string>;
94
- name: PropTypes.Requireable<string>;
95
- className: PropTypes.Requireable<string>;
96
- borderClassName: PropTypes.Requireable<string>;
97
- disabled: PropTypes.Requireable<boolean>;
98
- multiple: PropTypes.Requireable<boolean>;
99
- description: PropTypes.Requireable<string>;
100
- required: PropTypes.Requireable<boolean>;
101
- onChange: PropTypes.Requireable<(...args: any[]) => any>;
102
- theme: PropTypes.Requireable<string>;
103
- options: PropTypes.Requireable<(PropTypes.InferProps<{
104
- name: PropTypes.Validator<string>;
105
- value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
106
- selected: PropTypes.Requireable<boolean>;
107
- validOption: PropTypes.Requireable<boolean>;
108
- }> | null | undefined)[]>;
109
- optgroups: PropTypes.Requireable<(PropTypes.InferProps<{
110
- label: PropTypes.Validator<string>;
111
- options: PropTypes.Requireable<(PropTypes.InferProps<{
112
- name: PropTypes.Validator<string>;
113
- value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
114
- selected: PropTypes.Requireable<boolean>;
115
- validOption: PropTypes.Requireable<boolean>;
116
- }> | null | undefined)[]>;
117
- }> | null | undefined)[]>;
118
- modified: PropTypes.Requireable<boolean>;
119
- error: PropTypes.Requireable<boolean>;
120
- 'aria-label': PropTypes.Requireable<string>;
121
- 'aria-labelledby': PropTypes.Requireable<string>;
122
- }>>;
123
- export const onBackClick: PropTypes.Requireable<(...args: any[]) => any>;
124
- export const onReviewClick: PropTypes.Requireable<(...args: any[]) => any>;
125
- export const onContinueLearningClick: PropTypes.Requireable<(...args: any[]) => any>;
126
- export const search: PropTypes.Requireable<PropTypes.InferProps<{
141
+ onBackClick: PropTypes.Requireable<(...args: any[]) => any>;
142
+ onReviewClick: PropTypes.Requireable<(...args: any[]) => any>;
143
+ onContinueLearningClick: PropTypes.Requireable<(...args: any[]) => any>;
144
+ search: PropTypes.Requireable<PropTypes.InferProps<{
127
145
  oldValue: PropTypes.Requireable<string>;
128
146
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
129
147
  }>>;
130
- export const bannerMicrolearning: PropTypes.Requireable<PropTypes.InferProps<{
148
+ bannerMicrolearning: PropTypes.Requireable<PropTypes.InferProps<{
131
149
  action: PropTypes.Requireable<(...args: any[]) => any>;
132
150
  oldSwitchValue: PropTypes.Requireable<boolean>;
133
151
  }>>;
134
- }
135
- export { propTypes_1 as propTypes };
136
- }
152
+ };
153
+ };
154
+ export default SkillDetail;
137
155
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/index.js"],"names":[],"mappings":"AAeO,8EA+BN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYD,oEAgKC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/template/skill-detail/index.tsx"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,YAAY,CAAC;AAUnC,OAAkB,EAAC,cAAc,EAAC,MAAM,2BAA2B,CAAC;AAMpE,UAAU,2BAA2B;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AACD,UAAU,eAAe;IACvB,IAAI,EAAE;QACJ,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,sBAAsB;YAC1B,2BAA2B,WACzB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BzB,CAAC;AAYF,UAAU,OAAO;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,aAAK,mBAAmB,GACpB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACrB;IACE,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AACN,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,EAAE,cAAc,CAAC;IACrC,OAAO,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;QACtB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;KACrB,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;KACtB,CAAC;IACF,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AACD,QAAA,MAAM,WAAW;YAAW,gBAAgB,WAAW,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0MrE,CAAC;AAyCF,eAAe,WAAW,CAAC"}
@@ -2,17 +2,19 @@ import _isNil from "lodash/fp/isNil";
2
2
  import _get from "lodash/fp/get";
3
3
  import React, { useCallback, useState, useRef, useEffect } from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import { convert } from 'css-color-function';
6
5
  import classnames from 'classnames';
7
6
  import Markdown from 'markdown-to-jsx';
7
+ import { convert } from 'css-color-function';
8
8
  import Provider from '../../atom/provider';
9
- import Select, { SelectOptionPropTypes } from '../../atom/select';
10
- import ButtonLink from '../../atom/button-link';
11
9
  import ButtonLinkIcon from '../../atom/button-link-icon';
12
10
  import Icon from '../../atom/icon';
11
+ import IconPreview from '../../molecule/icon-preview';
12
+ import ButtonLink from '../../atom/button-link';
13
13
  import CardsGrid from '../../organism/cards-grid';
14
- import style from './style.css';
14
+ import { COLORS } from '../../variables/colors';
15
+ import { SelectOptionPropTypes } from '../../atom/select';
15
16
  import AllCourses from './all-courses';
17
+ import style from './style.css';
16
18
  export const ContinueLearningButton = (props, context) => {
17
19
  const {
18
20
  ongoingCoursesAvailable,
@@ -23,7 +25,7 @@ export const ContinueLearningButton = (props, context) => {
23
25
  translate
24
26
  } = context;
25
27
  const primarySkinColor = _get('common.primary', skin);
26
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ButtonLink, {
28
+ return /*#__PURE__*/React.createElement(ButtonLink, {
27
29
  label: ongoingCoursesAvailable ? translate('continue_learning') : translate('start_learning'),
28
30
  type: "primary",
29
31
  customStyle: {
@@ -32,17 +34,17 @@ export const ContinueLearningButton = (props, context) => {
32
34
  backgroundColor: primarySkinColor
33
35
  },
34
36
  hoverBackgroundColor: convert(`hsl(from ${primarySkinColor} h s calc(l*(1 - 0.08)))`),
35
- hoverColor: "#FFFFFF",
37
+ hoverColor: COLORS.white,
36
38
  icon: {
37
39
  position: 'left',
38
40
  faIcon: {
39
41
  name: 'play',
40
- color: '#FFFFFF',
41
- size: 16
42
+ color: COLORS.white,
43
+ size: 14
42
44
  }
43
45
  },
44
46
  onClick: onClick
45
- }));
47
+ });
46
48
  };
47
49
  ContinueLearningButton.contextTypes = {
48
50
  skin: Provider.childContextTypes.skin,
@@ -55,6 +57,10 @@ ContinueLearningButton.propTypes = process.env.NODE_ENV !== "production" ? {
55
57
  const SkillDetail = (props, context) => {
56
58
  const {
57
59
  title,
60
+ icon: {
61
+ color: iconColor,
62
+ name: iconName
63
+ },
58
64
  skillRef,
59
65
  description,
60
66
  metrics = {},
@@ -63,29 +69,27 @@ const SkillDetail = (props, context) => {
63
69
  ongoingCoursesAvailable,
64
70
  skillIncludedCourses,
65
71
  filters,
66
- sorting,
67
72
  onBackClick,
68
73
  onReviewClick,
69
74
  onContinueLearningClick,
70
75
  search,
71
- bannerMicrolearning = {}
76
+ bannerMicrolearning
72
77
  } = props;
73
- const descriptionRef = useRef(null);
74
78
  const {
75
79
  score = 0,
76
- questionsToReview,
77
- totalContents
80
+ questionsToReview = 0,
81
+ totalContents = 0
78
82
  } = metrics;
79
83
  const {
80
84
  translate
81
85
  } = context;
82
- const {
83
- action: bannerMicrolearningAction,
84
- oldSwitchValue
85
- } = bannerMicrolearning;
86
+ const bannerMicrolearningAction = bannerMicrolearning?.action;
87
+ const descriptionRef = useRef(null);
86
88
  const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);
87
89
  const [showMore, setShowMore] = useState(false);
88
- const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);
90
+ const handleShowMore = useCallback(() => {
91
+ setShowMore(!showMore);
92
+ }, [showMore]);
89
93
  useEffect(() => {
90
94
  if (descriptionRef.current) {
91
95
  const {
@@ -99,29 +103,39 @@ const SkillDetail = (props, context) => {
99
103
  return /*#__PURE__*/React.createElement("div", {
100
104
  ref: descriptionRef,
101
105
  className: classnames(style.description, !showMore && style.truncate)
102
- }, /*#__PURE__*/React.createElement(Markdown, null, description));
106
+ }, description ? /*#__PURE__*/React.createElement(Markdown, null, description) : null);
103
107
  }, [showMore, description]);
104
108
  const ProgressBar = useCallback(() => {
105
- if (score === undefined) return null;
106
- const progressBarColor = '#3EC483';
107
- const inlineProgressValueStyle = {
109
+ if (typeof score !== 'number') return null;
110
+ const progressBarColor = COLORS.cm_positive_500;
111
+ const inlineProgressStyle = {
108
112
  backgroundColor: progressBarColor,
109
113
  width: `${score}%`
110
114
  };
111
115
  return /*#__PURE__*/React.createElement("div", {
116
+ className: style.progressBarRow
117
+ }, /*#__PURE__*/React.createElement("div", {
112
118
  className: style.progressBarWrapper
113
119
  }, /*#__PURE__*/React.createElement("div", {
114
120
  "data-name": "progress",
115
121
  className: style.progress,
116
- style: inlineProgressValueStyle,
117
- role: "progressbar"
118
- }));
122
+ style: inlineProgressStyle,
123
+ role: "progressbar",
124
+ "aria-valuenow": score,
125
+ "aria-valuemin": 0,
126
+ "aria-valuemax": 100
127
+ })), /*#__PURE__*/React.createElement("span", {
128
+ className: style.progressInformationNumber
129
+ }, score.toFixed(1), "%"));
119
130
  }, [score]);
131
+ const hasDescription = Boolean(description && description.trim().length > 0);
120
132
  return /*#__PURE__*/React.createElement("div", {
121
133
  className: style.backgroundContainer
122
134
  }, /*#__PURE__*/React.createElement("div", {
123
135
  className: style.container,
124
136
  "data-name": skillRef
137
+ }, /*#__PURE__*/React.createElement("div", {
138
+ className: style.topSection
125
139
  }, !_isNil(onBackClick) ? /*#__PURE__*/React.createElement(ButtonLinkIcon, {
126
140
  faIcon: "arrow-left",
127
141
  "data-name": "back-button",
@@ -129,70 +143,98 @@ const SkillDetail = (props, context) => {
129
143
  onClick: onBackClick,
130
144
  className: style.backButton,
131
145
  tooltipPlacement: "right"
132
- }) : null, /*#__PURE__*/React.createElement("div", {
133
- className: style.ctaContainer
134
- }, /*#__PURE__*/React.createElement("div", null, focused ? /*#__PURE__*/React.createElement("div", {
146
+ }) : null), /*#__PURE__*/React.createElement("div", {
147
+ className: style.mainSection
148
+ }, /*#__PURE__*/React.createElement("div", {
149
+ className: style.leftSide
150
+ }, /*#__PURE__*/React.createElement(IconPreview, {
151
+ icon: {
152
+ name: iconName,
153
+ color: iconColor
154
+ },
155
+ title: title
156
+ })), /*#__PURE__*/React.createElement("div", {
157
+ className: style.rightSide
158
+ }, focused ? /*#__PURE__*/React.createElement("div", {
135
159
  className: style.skillFocusBadge
136
160
  }, /*#__PURE__*/React.createElement(Icon, {
137
161
  iconName: "bullseye-arrow",
138
- backgroundColor: "#DDD1FF",
162
+ backgroundColor: COLORS.purple_100,
139
163
  size: {
140
164
  faSize: 10,
141
165
  wrapperSize: 16
142
166
  }
143
- }), translate('skill_focus')) : null, /*#__PURE__*/React.createElement("div", {
167
+ }), translate('skill_focus')) : /*#__PURE__*/React.createElement("div", {
168
+ className: style.skillBadge
169
+ }, /*#__PURE__*/React.createElement(Icon, {
170
+ iconName: "shapes",
171
+ backgroundColor: COLORS.gray,
172
+ size: {
173
+ faSize: 10,
174
+ wrapperSize: 16
175
+ }
176
+ }), translate('skill')), /*#__PURE__*/React.createElement("h2", {
144
177
  className: style.title
145
- }, title), description ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Description, null), isDescriptionTruncated ? /*#__PURE__*/React.createElement("div", {
178
+ }, title), description && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Description, null), isDescriptionTruncated ? /*#__PURE__*/React.createElement("div", {
146
179
  className: style.showMoreWrapper,
147
180
  onClick: handleShowMore
148
181
  }, showMore ? translate('Show less') : translate('Show more'), /*#__PURE__*/React.createElement(Icon, {
149
182
  iconName: showMore ? 'chevron-up' : 'chevron-down',
150
183
  size: {
151
184
  faSize: 14,
152
- wrapperSize: 16
185
+ wrapperSize: 14
186
+ },
187
+ customStyle: {
188
+ padding: '8px'
153
189
  }
154
- })) : null) : null), /*#__PURE__*/React.createElement("div", {
190
+ })) : null), questionsToReview > 0 ? /*#__PURE__*/React.createElement("div", {
191
+ className: style.skillInformation
192
+ }, /*#__PURE__*/React.createElement("span", null, questionsToReview), "\xA0", translate('skill_chart_side_panel_questions_to_review')) : null, /*#__PURE__*/React.createElement("div", {
193
+ className: classnames(style.progressContainer, !hasDescription && style.noDescriptionSpacing)
194
+ }, /*#__PURE__*/React.createElement(ProgressBar, null)), /*#__PURE__*/React.createElement("div", {
155
195
  className: style.ctaWrapper
156
- }, /*#__PURE__*/React.createElement(ButtonLink, {
196
+ }, /*#__PURE__*/React.createElement(ContinueLearningButton, {
197
+ ongoingCoursesAvailable: ongoingCoursesAvailable,
198
+ onClick: onContinueLearningClick
199
+ }), /*#__PURE__*/React.createElement(ButtonLink, {
157
200
  type: "secondary",
158
- onClick: onReviewClick,
159
201
  label: translate('review_this_skill'),
160
202
  disabled: !availableForReview,
203
+ onClick: onReviewClick,
204
+ icon: {
205
+ position: 'left',
206
+ faIcon: {
207
+ name: 'rotate-right',
208
+ color: COLORS.cm_grey_700,
209
+ size: 14
210
+ }
211
+ },
161
212
  customStyle: {
162
- width: 'fit-content',
163
- borderRadius: '12px'
213
+ borderRadius: '12px',
214
+ width: 'fit-content'
164
215
  }
165
- }), /*#__PURE__*/React.createElement(ContinueLearningButton, {
166
- ongoingCoursesAvailable: ongoingCoursesAvailable,
167
- onClick: onContinueLearningClick
168
- }))), questionsToReview > 0 ? /*#__PURE__*/React.createElement("div", {
169
- className: style.skillInformation,
170
- "data-name": "skill-questions"
171
- }, /*#__PURE__*/React.createElement("span", {
172
- className: style.skillInformationNumber
173
- }, questionsToReview), "\xA0", translate('skill_chart_side_panel_questions_to_review')) : null, /*#__PURE__*/React.createElement("div", {
174
- className: style.progressContainer
175
- }, /*#__PURE__*/React.createElement(ProgressBar, null), /*#__PURE__*/React.createElement("span", {
176
- className: style.progressInformationNumber
177
- }, score.toFixed(1), "%")), /*#__PURE__*/React.createElement(AllCourses, {
216
+ })))), /*#__PURE__*/React.createElement(AllCourses, {
178
217
  content: skillIncludedCourses,
179
218
  filters: filters,
180
- sorting: sorting,
181
219
  totalContents: totalContents,
182
- bannerMicrolearning: bannerMicrolearningAction ? {
220
+ bannerMicrolearning: bannerMicrolearning && bannerMicrolearningAction ? {
183
221
  type: 'skill',
184
222
  action: bannerMicrolearningAction,
185
- oldSwitchValue
186
- } : {},
223
+ oldSwitchValue: bannerMicrolearning.oldSwitchValue
224
+ } : undefined,
187
225
  search: search
188
226
  })));
189
227
  };
190
228
  SkillDetail.contextTypes = {
191
- skin: Provider.childContextTypes.skin,
192
- translate: Provider.childContextTypes.translate
229
+ translate: Provider.childContextTypes.translate,
230
+ skin: Provider.childContextTypes.skin
193
231
  };
194
232
  SkillDetail.propTypes = process.env.NODE_ENV !== "production" ? {
195
233
  title: PropTypes.string.isRequired,
234
+ icon: PropTypes.shape({
235
+ name: PropTypes.string,
236
+ color: PropTypes.string
237
+ }).isRequired,
196
238
  skillRef: PropTypes.string.isRequired,
197
239
  description: PropTypes.string,
198
240
  metrics: PropTypes.shape({
@@ -208,7 +250,6 @@ SkillDetail.propTypes = process.env.NODE_ENV !== "production" ? {
208
250
  onChange: PropTypes.func,
209
251
  options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))
210
252
  }),
211
- sorting: PropTypes.shape(Select.propTypes),
212
253
  onBackClick: PropTypes.func,
213
254
  onReviewClick: PropTypes.func,
214
255
  onContinueLearningClick: PropTypes.func,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useState","useRef","useEffect","PropTypes","convert","classnames","Markdown","Provider","Select","SelectOptionPropTypes","ButtonLink","ButtonLinkIcon","Icon","CardsGrid","style","AllCourses","ContinueLearningButton","props","context","ongoingCoursesAvailable","onClick","skin","translate","primarySkinColor","_get","createElement","label","type","customStyle","width","borderRadius","backgroundColor","hoverBackgroundColor","hoverColor","icon","position","faIcon","name","color","size","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","bool","func","SkillDetail","title","skillRef","description","metrics","focused","availableForReview","skillIncludedCourses","filters","sorting","onBackClick","onReviewClick","onContinueLearningClick","search","bannerMicrolearning","descriptionRef","score","questionsToReview","totalContents","action","bannerMicrolearningAction","oldSwitchValue","isDescriptionTruncated","setIsDescriptionTruncated","showMore","setShowMore","handleShowMore","current","clientHeight","scrollHeight","Description","ref","className","truncate","ProgressBar","undefined","progressBarColor","inlineProgressValueStyle","progressBarWrapper","progress","role","backgroundContainer","container","_isNil","backButton","tooltipPlacement","ctaContainer","skillFocusBadge","iconName","faSize","wrapperSize","Fragment","showMoreWrapper","ctaWrapper","disabled","skillInformation","skillInformationNumber","progressContainer","progressInformationNumber","toFixed","content","string","isRequired","shape","number","onChange","options","arrayOf","oldValue"],"sources":["../../../src/template/skill-detail/index.js"],"sourcesContent":["import React, {useCallback, useState, useRef, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport {get, isNil} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport Provider from '../../atom/provider';\nimport Select, {SelectOptionPropTypes} from '../../atom/select';\nimport ButtonLink from '../../atom/button-link';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport CardsGrid from '../../organism/cards-grid';\nimport style from './style.css';\nimport AllCourses from './all-courses';\n\nexport const 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 ongoingCoursesAvailable,\n skillIncludedCourses,\n filters,\n sorting,\n onBackClick,\n onReviewClick,\n onContinueLearningClick,\n search,\n bannerMicrolearning = {}\n } = props;\n const descriptionRef = useRef(null);\n const {score = 0, questionsToReview, totalContents} = metrics;\n const {translate} = context;\n const {action: bannerMicrolearningAction, oldSwitchValue} = bannerMicrolearning;\n\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n <Markdown>{description}</Markdown>\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 {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\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 {isDescriptionTruncated ? (\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={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n </div>\n </div>\n {questionsToReview > 0 ? (\n <div className={style.skillInformation} data-name=\"skill-questions\">\n <span className={style.skillInformationNumber}>{questionsToReview}</span>\n &nbsp;{translate('skill_chart_side_panel_questions_to_review')}\n </div>\n ) : null}\n <div className={style.progressContainer}>\n <ProgressBar />\n <span className={style.progressInformationNumber}>{score.toFixed(1)}%</span>\n </div>\n <AllCourses\n content={skillIncludedCourses}\n filters={filters}\n sorting={sorting}\n totalContents={totalContents}\n bannerMicrolearning={\n bannerMicrolearningAction\n ? {\n type: 'skill',\n action: bannerMicrolearningAction,\n oldSwitchValue\n }\n : {}\n }\n search={search}\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 questionsToReview: PropTypes.number,\n totalContents: PropTypes.number\n }),\n focused: PropTypes.bool,\n availableForReview: PropTypes.bool,\n ongoingCoursesAvailable: PropTypes.bool,\n skillIncludedCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n sorting: PropTypes.shape(Select.propTypes),\n onBackClick: PropTypes.func,\n onReviewClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n }),\n bannerMicrolearning: PropTypes.shape({\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n })\n};\n\nexport default SkillDetail;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useState","useRef","useEffect","PropTypes","classnames","Markdown","convert","Provider","ButtonLinkIcon","Icon","IconPreview","ButtonLink","CardsGrid","COLORS","SelectOptionPropTypes","AllCourses","style","ContinueLearningButton","props","context","ongoingCoursesAvailable","onClick","skin","translate","primarySkinColor","_get","createElement","label","type","customStyle","width","borderRadius","backgroundColor","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","color","size","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","bool","func","SkillDetail","title","iconColor","iconName","skillRef","description","metrics","focused","availableForReview","skillIncludedCourses","filters","onBackClick","onReviewClick","onContinueLearningClick","search","bannerMicrolearning","score","questionsToReview","totalContents","bannerMicrolearningAction","action","descriptionRef","isDescriptionTruncated","setIsDescriptionTruncated","showMore","setShowMore","handleShowMore","current","clientHeight","scrollHeight","Description","ref","className","truncate","ProgressBar","progressBarColor","cm_positive_500","inlineProgressStyle","progressBarRow","progressBarWrapper","progress","role","progressInformationNumber","toFixed","hasDescription","Boolean","trim","length","backgroundContainer","container","topSection","_isNil","backButton","tooltipPlacement","mainSection","leftSide","rightSide","skillFocusBadge","purple_100","faSize","wrapperSize","skillBadge","gray","Fragment","showMoreWrapper","padding","skillInformation","progressContainer","noDescriptionSpacing","ctaWrapper","disabled","cm_grey_700","content","oldSwitchValue","undefined","string","isRequired","shape","number","onChange","options","arrayOf","oldValue"],"sources":["../../../src/template/skill-detail/index.tsx"],"sourcesContent":["import React, {useCallback, useState, useRef, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get, isNil} from 'lodash/fp';\nimport Markdown from 'markdown-to-jsx';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport ButtonLinkIcon from '../../atom/button-link-icon';\nimport Icon from '../../atom/icon';\nimport IconPreview from '../../molecule/icon-preview';\nimport ButtonLink from '../../atom/button-link';\nimport CardsGrid, {CardsGridProps} from '../../organism/cards-grid';\nimport {COLORS} from '../../variables/colors';\nimport {SelectOptionPropTypes} from '../../atom/select';\nimport AllCourses from './all-courses';\nimport style from './style.css';\n\ninterface ContinueLearningButtonProps {\n ongoingCoursesAvailable?: boolean;\n onClick?: () => void;\n}\ninterface ProviderContext {\n skin: {\n common: {\n primary: string;\n secondary: string;\n };\n };\n translate: (key: string) => string;\n}\n\nexport const ContinueLearningButton = (\n props: ContinueLearningButtonProps,\n context: ProviderContext\n) => {\n const {ongoingCoursesAvailable, onClick} = props;\n const {skin, translate} = context;\n const primarySkinColor = get('common.primary', skin);\n\n return (\n <ButtonLink\n label={ongoingCoursesAvailable ? translate('continue_learning') : translate('start_learning')}\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={COLORS.white}\n icon={{\n position: 'left',\n faIcon: {\n name: 'play',\n color: COLORS.white,\n size: 14\n }\n }}\n onClick={onClick}\n />\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\ninterface Metrics {\n score?: number;\n questionsToReview?: number;\n totalContents?: number;\n}\n\ntype BannerMicrolearning =\n | Record<string, never>\n | {\n action: () => void;\n oldSwitchValue: boolean;\n };\ninterface SkillDetailProps {\n title: string;\n icon: {name: string; color: string};\n skillRef: string;\n description?: string;\n metrics?: Metrics;\n focused?: boolean;\n availableForReview?: boolean;\n ongoingCoursesAvailable?: boolean;\n skillIncludedCourses: CardsGridProps;\n filters: {\n onChange?: () => void;\n options?: unknown[];\n };\n onBackClick?: () => void;\n onReviewClick?: () => void;\n onContinueLearningClick?: () => void;\n search: {\n oldValue: string;\n onChange: () => void;\n };\n bannerMicrolearning?: BannerMicrolearning;\n}\nconst SkillDetail = (props: SkillDetailProps, context: ProviderContext) => {\n const {\n title,\n icon: {color: iconColor, name: iconName},\n skillRef,\n description,\n metrics = {},\n focused,\n availableForReview,\n ongoingCoursesAvailable,\n skillIncludedCourses,\n filters,\n onBackClick,\n onReviewClick,\n onContinueLearningClick,\n search,\n bannerMicrolearning\n } = props;\n\n const {score = 0, questionsToReview = 0, totalContents = 0} = metrics;\n const {translate} = context;\n const bannerMicrolearningAction = bannerMicrolearning?.action;\n const descriptionRef = useRef(null);\n const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);\n const [showMore, setShowMore] = useState(false);\n\n const handleShowMore = useCallback(() => {\n setShowMore(!showMore);\n }, [showMore]);\n\n useEffect(() => {\n if (descriptionRef.current) {\n const {clientHeight = 0, scrollHeight = 0} = descriptionRef.current;\n setIsDescriptionTruncated(scrollHeight > clientHeight);\n }\n }, [description]);\n\n const Description = useCallback(() => {\n return (\n <div\n ref={descriptionRef}\n className={classnames(style.description, !showMore && style.truncate)}\n >\n {description ? <Markdown>{description}</Markdown> : null}\n </div>\n );\n }, [showMore, description]);\n\n const ProgressBar = useCallback(() => {\n if (typeof score !== 'number') return null;\n\n const progressBarColor = COLORS.cm_positive_500;\n const inlineProgressStyle = {\n backgroundColor: progressBarColor,\n width: `${score}%`\n };\n\n return (\n <div className={style.progressBarRow}>\n <div className={style.progressBarWrapper}>\n <div\n data-name=\"progress\"\n className={style.progress}\n style={inlineProgressStyle}\n role=\"progressbar\"\n aria-valuenow={score}\n aria-valuemin={0}\n aria-valuemax={100}\n />\n </div>\n <span className={style.progressInformationNumber}>{score.toFixed(1)}%</span>\n </div>\n );\n }, [score]);\n const hasDescription = Boolean(description && description.trim().length > 0);\n\n return (\n <div className={style.backgroundContainer}>\n <div className={style.container} data-name={skillRef}>\n {/* Top section for the back arrow (optional) */}\n <div className={style.topSection}>\n {!isNil(onBackClick) ? (\n <ButtonLinkIcon\n faIcon=\"arrow-left\"\n data-name=\"back-button\"\n aria-label={translate('back')}\n onClick={onBackClick}\n className={style.backButton}\n tooltipPlacement=\"right\"\n />\n ) : null}\n </div>\n\n {/* Main section: icon on the left, skill info on the right */}\n <div className={style.mainSection}>\n <div className={style.leftSide}>\n <IconPreview\n icon={{\n name: iconName,\n color: iconColor\n }}\n title={title}\n />\n </div>\n <div className={style.rightSide}>\n {focused ? (\n <div className={style.skillFocusBadge}>\n <Icon\n iconName=\"bullseye-arrow\"\n backgroundColor={COLORS.purple_100}\n size={{faSize: 10, wrapperSize: 16}}\n />\n {translate('skill_focus')}\n </div>\n ) : (\n <div className={style.skillBadge}>\n <Icon\n iconName=\"shapes\"\n backgroundColor={COLORS.gray}\n size={{faSize: 10, wrapperSize: 16}}\n />\n {translate('skill')}\n </div>\n )}\n\n <h2 className={style.title}>{title}</h2>\n\n {description && (\n <>\n <Description />\n {isDescriptionTruncated ? (\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={{faSize: 14, wrapperSize: 14}}\n customStyle={{padding: '8px'}}\n />\n </div>\n ) : null}\n </>\n )}\n\n {questionsToReview > 0 ? (\n <div className={style.skillInformation}>\n <span>{questionsToReview}</span>\n &nbsp;{translate('skill_chart_side_panel_questions_to_review')}\n </div>\n ) : null}\n\n <div\n className={classnames(\n style.progressContainer,\n !hasDescription && style.noDescriptionSpacing\n )}\n >\n <ProgressBar />\n </div>\n\n <div className={style.ctaWrapper}>\n <ContinueLearningButton\n ongoingCoursesAvailable={ongoingCoursesAvailable}\n onClick={onContinueLearningClick}\n />\n <ButtonLink\n type=\"secondary\"\n label={translate('review_this_skill')}\n disabled={!availableForReview}\n onClick={onReviewClick}\n icon={{\n position: 'left',\n faIcon: {\n name: 'rotate-right',\n color: COLORS.cm_grey_700,\n size: 14\n }\n }}\n customStyle={{borderRadius: '12px', width: 'fit-content'}}\n />\n </div>\n </div>\n </div>\n\n {/* Courses section below */}\n <AllCourses\n content={skillIncludedCourses}\n filters={filters}\n totalContents={totalContents}\n bannerMicrolearning={\n bannerMicrolearning && bannerMicrolearningAction\n ? {\n type: 'skill',\n action: bannerMicrolearningAction,\n oldSwitchValue: bannerMicrolearning.oldSwitchValue\n }\n : undefined\n }\n search={search}\n />\n </div>\n </div>\n );\n};\n\nSkillDetail.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nSkillDetail.propTypes = {\n title: PropTypes.string.isRequired,\n icon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string\n }).isRequired,\n skillRef: PropTypes.string.isRequired,\n description: PropTypes.string,\n metrics: PropTypes.shape({\n score: PropTypes.number,\n questionsToReview: PropTypes.number,\n totalContents: PropTypes.number\n }),\n focused: PropTypes.bool,\n availableForReview: PropTypes.bool,\n ongoingCoursesAvailable: PropTypes.bool,\n skillIncludedCourses: PropTypes.shape(CardsGrid.propTypes),\n filters: PropTypes.shape({\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))\n }),\n onBackClick: PropTypes.func,\n onReviewClick: PropTypes.func,\n onContinueLearningClick: PropTypes.func,\n search: PropTypes.shape({\n oldValue: PropTypes.string,\n onChange: PropTypes.func\n }),\n bannerMicrolearning: PropTypes.shape({\n action: PropTypes.func,\n oldSwitchValue: PropTypes.bool\n })\n};\n\nexport default SkillDetail;\n"],"mappings":"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","ignoreList":[]}