@coorpacademy/components 11.35.2-alpha.4 → 11.35.2-forcedeploy.13

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 +81 -71
  127. package/es/template/skill-detail/index.d.ts.map +1 -1
  128. package/es/template/skill-detail/index.js +91 -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 +81 -71
  264. package/lib/template/skill-detail/index.d.ts.map +1 -1
  265. package/lib/template/skill-detail/index.js +91 -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,49 @@ 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
+ skillRef: string;
60
+ description?: string;
61
+ metrics?: Metrics;
62
+ focused?: boolean;
63
+ availableForReview?: boolean;
64
+ ongoingCoursesAvailable?: boolean;
65
+ skillIncludedCourses: CardsGridProps;
66
+ filters: {
67
+ onChange?: () => void;
68
+ options?: unknown[];
69
+ };
70
+ onBackClick?: () => void;
71
+ onReviewClick?: () => void;
72
+ onContinueLearningClick?: () => void;
73
+ search: {
74
+ oldValue: string;
75
+ onChange: () => void;
76
+ };
77
+ bannerMicrolearning?: BannerMicrolearning;
78
+ }
79
+ declare const SkillDetail: {
80
+ (props: SkillDetailProps, context: ProviderContext): JSX.Element;
81
+ contextTypes: {
82
+ translate: PropTypes.Requireable<(...args: any[]) => any>;
83
+ skin: PropTypes.Requireable<PropTypes.InferProps<{
38
84
  common: PropTypes.Requireable<{
39
85
  [x: string]: any;
40
86
  }>;
@@ -55,32 +101,27 @@ declare namespace SkillDetail {
55
101
  [x: string]: any;
56
102
  }>;
57
103
  }>>;
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<{
104
+ };
105
+ propTypes: {
106
+ title: PropTypes.Validator<string>;
107
+ skillRef: PropTypes.Validator<string>;
108
+ description: PropTypes.Requireable<string>;
109
+ metrics: PropTypes.Requireable<PropTypes.InferProps<{
68
110
  score: PropTypes.Requireable<number>;
69
111
  questionsToReview: PropTypes.Requireable<number>;
70
112
  totalContents: PropTypes.Requireable<number>;
71
113
  }>>;
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<{
114
+ focused: PropTypes.Requireable<boolean>;
115
+ availableForReview: PropTypes.Requireable<boolean>;
116
+ ongoingCoursesAvailable: PropTypes.Requireable<boolean>;
117
+ skillIncludedCourses: PropTypes.Requireable<PropTypes.InferProps<{
77
118
  list: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
78
119
  customStyle: PropTypes.Requireable<{
79
120
  [x: string]: string | null | undefined;
80
121
  }>;
81
122
  loading: PropTypes.Requireable<boolean>;
82
123
  }>>;
83
- export const filters: PropTypes.Requireable<PropTypes.InferProps<{
124
+ filters: PropTypes.Requireable<PropTypes.InferProps<{
84
125
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
85
126
  options: PropTypes.Requireable<(PropTypes.InferProps<{
86
127
  name: PropTypes.Validator<string>;
@@ -89,49 +130,18 @@ declare namespace SkillDetail {
89
130
  validOption: PropTypes.Requireable<boolean>;
90
131
  }> | null | undefined)[]>;
91
132
  }>>;
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<{
133
+ onBackClick: PropTypes.Requireable<(...args: any[]) => any>;
134
+ onReviewClick: PropTypes.Requireable<(...args: any[]) => any>;
135
+ onContinueLearningClick: PropTypes.Requireable<(...args: any[]) => any>;
136
+ search: PropTypes.Requireable<PropTypes.InferProps<{
127
137
  oldValue: PropTypes.Requireable<string>;
128
138
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
129
139
  }>>;
130
- export const bannerMicrolearning: PropTypes.Requireable<PropTypes.InferProps<{
140
+ bannerMicrolearning: PropTypes.Requireable<PropTypes.InferProps<{
131
141
  action: PropTypes.Requireable<(...args: any[]) => any>;
132
142
  oldSwitchValue: PropTypes.Requireable<boolean>;
133
143
  }>>;
134
- }
135
- export { propTypes_1 as propTypes };
136
- }
144
+ };
145
+ };
146
+ export default SkillDetail;
137
147
  //# 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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyMrE,CAAC;AAqCF,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,
@@ -63,29 +65,27 @@ const SkillDetail = (props, context) => {
63
65
  ongoingCoursesAvailable,
64
66
  skillIncludedCourses,
65
67
  filters,
66
- sorting,
67
68
  onBackClick,
68
69
  onReviewClick,
69
70
  onContinueLearningClick,
70
71
  search,
71
- bannerMicrolearning = {}
72
+ bannerMicrolearning
72
73
  } = props;
73
- const descriptionRef = useRef(null);
74
74
  const {
75
75
  score = 0,
76
- questionsToReview,
77
- totalContents
76
+ questionsToReview = 0,
77
+ totalContents = 0
78
78
  } = metrics;
79
79
  const {
80
80
  translate
81
81
  } = context;
82
- const {
83
- action: bannerMicrolearningAction,
84
- oldSwitchValue
85
- } = bannerMicrolearning;
82
+ const bannerMicrolearningAction = bannerMicrolearning?.action;
83
+ const descriptionRef = useRef(null);
86
84
  const [isDescriptionTruncated, setIsDescriptionTruncated] = useState(false);
87
85
  const [showMore, setShowMore] = useState(false);
88
- const handleShowMore = useCallback(() => setShowMore(!showMore), [setShowMore, showMore]);
86
+ const handleShowMore = useCallback(() => {
87
+ setShowMore(!showMore);
88
+ }, [showMore]);
89
89
  useEffect(() => {
90
90
  if (descriptionRef.current) {
91
91
  const {
@@ -99,29 +99,39 @@ const SkillDetail = (props, context) => {
99
99
  return /*#__PURE__*/React.createElement("div", {
100
100
  ref: descriptionRef,
101
101
  className: classnames(style.description, !showMore && style.truncate)
102
- }, /*#__PURE__*/React.createElement(Markdown, null, description));
102
+ }, description ? /*#__PURE__*/React.createElement(Markdown, null, description) : null);
103
103
  }, [showMore, description]);
104
104
  const ProgressBar = useCallback(() => {
105
- if (score === undefined) return null;
106
- const progressBarColor = '#3EC483';
107
- const inlineProgressValueStyle = {
105
+ if (typeof score !== 'number') return null;
106
+ const progressBarColor = COLORS.cm_positive_500;
107
+ const inlineProgressStyle = {
108
108
  backgroundColor: progressBarColor,
109
109
  width: `${score}%`
110
110
  };
111
111
  return /*#__PURE__*/React.createElement("div", {
112
+ className: style.progressBarRow
113
+ }, /*#__PURE__*/React.createElement("div", {
112
114
  className: style.progressBarWrapper
113
115
  }, /*#__PURE__*/React.createElement("div", {
114
116
  "data-name": "progress",
115
117
  className: style.progress,
116
- style: inlineProgressValueStyle,
117
- role: "progressbar"
118
- }));
118
+ style: inlineProgressStyle,
119
+ role: "progressbar",
120
+ "aria-valuenow": score,
121
+ "aria-valuemin": 0,
122
+ "aria-valuemax": 100
123
+ })), /*#__PURE__*/React.createElement("span", {
124
+ className: style.progressInformationNumber
125
+ }, score.toFixed(1), "%"));
119
126
  }, [score]);
127
+ const hasDescription = Boolean(description && description.trim().length > 0);
120
128
  return /*#__PURE__*/React.createElement("div", {
121
129
  className: style.backgroundContainer
122
130
  }, /*#__PURE__*/React.createElement("div", {
123
131
  className: style.container,
124
132
  "data-name": skillRef
133
+ }, /*#__PURE__*/React.createElement("div", {
134
+ className: style.topSection
125
135
  }, !_isNil(onBackClick) ? /*#__PURE__*/React.createElement(ButtonLinkIcon, {
126
136
  faIcon: "arrow-left",
127
137
  "data-name": "back-button",
@@ -129,67 +139,91 @@ const SkillDetail = (props, context) => {
129
139
  onClick: onBackClick,
130
140
  className: style.backButton,
131
141
  tooltipPlacement: "right"
132
- }) : null, /*#__PURE__*/React.createElement("div", {
133
- className: style.ctaContainer
134
- }, /*#__PURE__*/React.createElement("div", null, focused ? /*#__PURE__*/React.createElement("div", {
142
+ }) : null), /*#__PURE__*/React.createElement("div", {
143
+ className: style.mainSection
144
+ }, /*#__PURE__*/React.createElement("div", {
145
+ className: style.leftSide
146
+ }, /*#__PURE__*/React.createElement(IconPreview, {
147
+ icon: {
148
+ name: 'bullseye-arrow',
149
+ color: COLORS.purple_100
150
+ },
151
+ title: title
152
+ })), /*#__PURE__*/React.createElement("div", {
153
+ className: style.rightSide
154
+ }, focused ? /*#__PURE__*/React.createElement("div", {
135
155
  className: style.skillFocusBadge
136
156
  }, /*#__PURE__*/React.createElement(Icon, {
137
157
  iconName: "bullseye-arrow",
138
- backgroundColor: "#DDD1FF",
158
+ backgroundColor: COLORS.purple_100,
159
+ size: {
160
+ faSize: 10,
161
+ wrapperSize: 16
162
+ }
163
+ }), translate('skill_focus')) : /*#__PURE__*/React.createElement("div", {
164
+ className: style.skillBadge
165
+ }, /*#__PURE__*/React.createElement(Icon, {
166
+ iconName: "shapes",
167
+ backgroundColor: COLORS.gray,
139
168
  size: {
140
169
  faSize: 10,
141
170
  wrapperSize: 16
142
171
  }
143
- }), translate('skill_focus')) : null, /*#__PURE__*/React.createElement("div", {
172
+ }), translate('skill')), /*#__PURE__*/React.createElement("h2", {
144
173
  className: style.title
145
- }, title), description ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Description, null), isDescriptionTruncated ? /*#__PURE__*/React.createElement("div", {
174
+ }, title), description && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Description, null), isDescriptionTruncated ? /*#__PURE__*/React.createElement("div", {
146
175
  className: style.showMoreWrapper,
147
176
  onClick: handleShowMore
148
177
  }, showMore ? translate('Show less') : translate('Show more'), /*#__PURE__*/React.createElement(Icon, {
149
178
  iconName: showMore ? 'chevron-up' : 'chevron-down',
150
179
  size: {
151
180
  faSize: 14,
152
- wrapperSize: 16
181
+ wrapperSize: 14
182
+ },
183
+ customStyle: {
184
+ padding: '8px'
153
185
  }
154
- })) : null) : null), /*#__PURE__*/React.createElement("div", {
186
+ })) : null), questionsToReview > 0 ? /*#__PURE__*/React.createElement("div", {
187
+ className: style.skillInformation
188
+ }, /*#__PURE__*/React.createElement("span", null, questionsToReview), "\xA0", translate('skill_chart_side_panel_questions_to_review')) : null, /*#__PURE__*/React.createElement("div", {
189
+ className: classnames(style.progressContainer, !hasDescription && style.noDescriptionSpacing)
190
+ }, /*#__PURE__*/React.createElement(ProgressBar, null)), /*#__PURE__*/React.createElement("div", {
155
191
  className: style.ctaWrapper
156
- }, /*#__PURE__*/React.createElement(ButtonLink, {
192
+ }, /*#__PURE__*/React.createElement(ContinueLearningButton, {
193
+ ongoingCoursesAvailable: ongoingCoursesAvailable,
194
+ onClick: onContinueLearningClick
195
+ }), /*#__PURE__*/React.createElement(ButtonLink, {
157
196
  type: "secondary",
158
- onClick: onReviewClick,
159
197
  label: translate('review_this_skill'),
160
198
  disabled: !availableForReview,
199
+ onClick: onReviewClick,
200
+ icon: {
201
+ position: 'left',
202
+ faIcon: {
203
+ name: 'rotate-right',
204
+ color: COLORS.cm_grey_700,
205
+ size: 14
206
+ }
207
+ },
161
208
  customStyle: {
162
- width: 'fit-content',
163
- borderRadius: '12px'
209
+ borderRadius: '12px',
210
+ width: 'fit-content'
164
211
  }
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, {
212
+ })))), /*#__PURE__*/React.createElement(AllCourses, {
178
213
  content: skillIncludedCourses,
179
214
  filters: filters,
180
- sorting: sorting,
181
215
  totalContents: totalContents,
182
- bannerMicrolearning: bannerMicrolearningAction ? {
216
+ bannerMicrolearning: bannerMicrolearning && bannerMicrolearningAction ? {
183
217
  type: 'skill',
184
218
  action: bannerMicrolearningAction,
185
- oldSwitchValue
186
- } : {},
219
+ oldSwitchValue: bannerMicrolearning.oldSwitchValue
220
+ } : undefined,
187
221
  search: search
188
222
  })));
189
223
  };
190
224
  SkillDetail.contextTypes = {
191
- skin: Provider.childContextTypes.skin,
192
- translate: Provider.childContextTypes.translate
225
+ translate: Provider.childContextTypes.translate,
226
+ skin: Provider.childContextTypes.skin
193
227
  };
194
228
  SkillDetail.propTypes = process.env.NODE_ENV !== "production" ? {
195
229
  title: PropTypes.string.isRequired,
@@ -208,7 +242,6 @@ SkillDetail.propTypes = process.env.NODE_ENV !== "production" ? {
208
242
  onChange: PropTypes.func,
209
243
  options: PropTypes.arrayOf(PropTypes.shape(SelectOptionPropTypes))
210
244
  }),
211
- sorting: PropTypes.shape(Select.propTypes),
212
245
  onBackClick: PropTypes.func,
213
246
  onReviewClick: PropTypes.func,
214
247
  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","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","purple_100","rightSide","skillFocusBadge","iconName","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 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 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: 'bullseye-arrow',\n color: COLORS.purple_100\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 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":[]}