@coorpacademy/components 11.18.7 → 11.18.8-alpha.12

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 (305) hide show
  1. package/es/atom/button-menu/index.d.ts.map +1 -1
  2. package/es/atom/button-menu/index.js +1 -1
  3. package/es/atom/button-menu/index.js.map +1 -1
  4. package/es/atom/button-menu/style.css +10 -0
  5. package/es/atom/button-menu/types.d.ts +1 -1
  6. package/es/atom/button-menu/types.d.ts.map +1 -1
  7. package/es/atom/button-menu/types.js +1 -1
  8. package/es/atom/button-menu/types.js.map +1 -1
  9. package/es/atom/empty-search-result/index.d.ts +1 -0
  10. package/es/atom/empty-search-result/index.d.ts.map +1 -1
  11. package/es/atom/empty-search-result/index.js +6 -4
  12. package/es/atom/empty-search-result/index.js.map +1 -1
  13. package/es/atom/empty-search-result/style.css +16 -1
  14. package/es/atom/status-item/index.d.ts +1 -0
  15. package/es/atom/status-item/index.d.ts.map +1 -1
  16. package/es/atom/status-item/index.js +3 -2
  17. package/es/atom/status-item/index.js.map +1 -1
  18. package/es/atom/status-item/style.css +15 -17
  19. package/es/atom/status-item/types.d.ts +2 -0
  20. package/es/atom/status-item/types.d.ts.map +1 -1
  21. package/es/atom/status-item/types.js +1 -0
  22. package/es/atom/status-item/types.js.map +1 -1
  23. package/es/atom/tag/index.js +4 -4
  24. package/es/atom/tag/index.js.map +1 -1
  25. package/es/atom/tag/style.css +11 -8
  26. package/es/atom/title/types.d.ts +9 -0
  27. package/es/atom/title/types.d.ts.map +1 -0
  28. package/es/atom/title/types.js +2 -0
  29. package/es/atom/title/types.js.map +1 -0
  30. package/es/molecule/banner/style.css +4 -2
  31. package/es/molecule/brand-tabs/index.d.ts +1 -0
  32. package/es/molecule/brand-tabs/index.d.ts.map +1 -1
  33. package/es/molecule/brand-tabs/index.js +10 -1
  34. package/es/molecule/brand-tabs/index.js.map +1 -1
  35. package/es/molecule/brand-tabs/style.css +7 -4
  36. package/es/molecule/bulk-progress-bar/index.d.ts.map +1 -1
  37. package/es/molecule/bulk-progress-bar/index.js +4 -2
  38. package/es/molecule/bulk-progress-bar/index.js.map +1 -1
  39. package/es/molecule/bulk-progress-bar/style.css +5 -0
  40. package/es/molecule/card/index.d.ts +53 -0
  41. package/es/molecule/card/index.d.ts.map +1 -1
  42. package/es/molecule/card/index.js +14 -12
  43. package/es/molecule/card/index.js.map +1 -1
  44. package/es/molecule/card/style.css +47 -5
  45. package/es/molecule/cm-popin/index.d.ts.map +1 -1
  46. package/es/molecule/cm-popin/index.js +46 -9
  47. package/es/molecule/cm-popin/index.js.map +1 -1
  48. package/es/molecule/cm-popin/style.css +32 -0
  49. package/es/molecule/cm-popin/types.d.ts +31 -1
  50. package/es/molecule/cm-popin/types.d.ts.map +1 -1
  51. package/es/molecule/cm-popin/types.js +13 -3
  52. package/es/molecule/cm-popin/types.js.map +1 -1
  53. package/es/molecule/dashboard/cards-list/index.d.ts +57 -1
  54. package/es/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  55. package/es/molecule/dashboard/cards-list/index.js +39 -5
  56. package/es/molecule/dashboard/cards-list/index.js.map +1 -1
  57. package/es/molecule/dashboard/cards-list/prop-types.d.ts +14 -0
  58. package/es/molecule/dashboard/cards-list/prop-types.d.ts.map +1 -0
  59. package/es/molecule/dashboard/cards-list/prop-types.js +2 -0
  60. package/es/molecule/dashboard/cards-list/prop-types.js.map +1 -0
  61. package/es/molecule/draggable-list/index.d.ts +32 -12
  62. package/es/molecule/expandible-actionable-table/index.d.ts +3 -0
  63. package/es/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  64. package/es/molecule/expandible-actionable-table/index.js +15 -2
  65. package/es/molecule/expandible-actionable-table/index.js.map +1 -1
  66. package/es/molecule/expandible-actionable-table/style.css +5 -0
  67. package/es/molecule/expandible-actionable-table/types.d.ts +5 -0
  68. package/es/molecule/expandible-actionable-table/types.d.ts.map +1 -1
  69. package/es/molecule/expandible-actionable-table/types.js +3 -1
  70. package/es/molecule/expandible-actionable-table/types.js.map +1 -1
  71. package/es/molecule/review-header-steps/index.d.ts.map +1 -1
  72. package/es/molecule/review-header-steps/index.js +3 -4
  73. package/es/molecule/review-header-steps/index.js.map +1 -1
  74. package/es/molecule/review-header-steps/prop-types.d.ts +1 -0
  75. package/es/molecule/review-header-steps/prop-types.d.ts.map +1 -1
  76. package/es/molecule/review-header-steps/style.css +6 -1
  77. package/es/molecule/title-and-checkbox-wrapper/index.d.ts +45 -0
  78. package/es/molecule/title-and-checkbox-wrapper/index.d.ts.map +1 -1
  79. package/es/molecule/title-and-checkbox-wrapper/index.js +15 -3
  80. package/es/molecule/title-and-checkbox-wrapper/index.js.map +1 -1
  81. package/es/organism/list-item/index.d.ts +44 -13
  82. package/es/organism/list-item/index.d.ts.map +1 -1
  83. package/es/organism/list-item/index.js +72 -38
  84. package/es/organism/list-item/index.js.map +1 -1
  85. package/es/organism/list-item/style.css +28 -5
  86. package/es/organism/list-items/index.d.ts +36 -12
  87. package/es/organism/list-items/index.d.ts.map +1 -1
  88. package/es/organism/list-items/index.js +19 -4
  89. package/es/organism/list-items/index.js.map +1 -1
  90. package/es/organism/list-items/style.css +42 -0
  91. package/es/organism/mooc-header/index.d.ts.map +1 -1
  92. package/es/organism/mooc-header/index.js +1 -0
  93. package/es/organism/mooc-header/index.js.map +1 -1
  94. package/es/organism/review-header/types.d.ts +1 -0
  95. package/es/organism/review-header/types.d.ts.map +1 -1
  96. package/es/organism/rewards-form/index.d.ts +45 -0
  97. package/es/organism/select-opponents/index.d.ts +67 -12
  98. package/es/organism/select-opponents/index.d.ts.map +1 -1
  99. package/es/organism/select-opponents/index.js +3 -3
  100. package/es/organism/select-opponents/index.js.map +1 -1
  101. package/es/organism/select-opponents/style.css +6 -0
  102. package/es/organism/select-opponents/types.d.ts +75 -14
  103. package/es/organism/select-opponents/types.d.ts.map +1 -1
  104. package/es/organism/select-opponents/types.js +2 -2
  105. package/es/organism/select-opponents/types.js.map +1 -1
  106. package/es/organism/sidebar/index.d.ts +3 -1
  107. package/es/organism/sidebar/index.d.ts.map +1 -1
  108. package/es/organism/sidebar/index.js +9 -5
  109. package/es/organism/sidebar/index.js.map +1 -1
  110. package/es/organism/sidebar/style.css +14 -0
  111. package/es/organism/title-and-input/index.d.ts +84 -29
  112. package/es/organism/title-and-input/index.d.ts.map +1 -1
  113. package/es/organism/title-and-input/types.d.ts +84 -29
  114. package/es/organism/title-and-input/types.d.ts.map +1 -1
  115. package/es/organism/wizard-contents/index.d.ts +112 -0
  116. package/es/organism/wizard-contents/index.d.ts.map +1 -1
  117. package/es/organism/wizard-contents/index.js +37 -4
  118. package/es/organism/wizard-contents/index.js.map +1 -1
  119. package/es/organism/wizard-contents/style.css +22 -0
  120. package/es/template/app-player/loading/index.d.ts +19 -1
  121. package/es/template/app-player/player/index.d.ts +38 -2
  122. package/es/template/app-player/player/slides/index.d.ts +19 -1
  123. package/es/template/app-player/player/slides/index.d.ts.map +1 -1
  124. package/es/template/app-player/popin-correction/index.d.ts +19 -1
  125. package/es/template/app-player/popin-correction/index.d.ts.map +1 -1
  126. package/es/template/app-player/popin-end/index.d.ts +72 -2
  127. package/es/template/app-player/popin-end/summary.d.ts +53 -1
  128. package/es/template/app-review/index.d.ts +20 -1
  129. package/es/template/app-review/index.d.ts.map +1 -1
  130. package/es/template/app-review/player/prop-types.d.ts +20 -1
  131. package/es/template/app-review/player/prop-types.d.ts.map +1 -1
  132. package/es/template/app-review/prop-types.d.ts +20 -1
  133. package/es/template/app-review/prop-types.d.ts.map +1 -1
  134. package/es/template/back-office/brand-update/index.d.ts +122 -13
  135. package/es/template/back-office/brand-update/index.d.ts.map +1 -1
  136. package/es/template/back-office/brand-update/index.js +4 -2
  137. package/es/template/back-office/brand-update/index.js.map +1 -1
  138. package/es/template/back-office/brand-update/style.css +4 -4
  139. package/es/template/common/dashboard/index.d.ts +89 -1
  140. package/es/template/common/dashboard/index.d.ts.map +1 -1
  141. package/es/template/common/dashboard/index.js +6 -2
  142. package/es/template/common/dashboard/index.js.map +1 -1
  143. package/es/template/common/dashboard/style.css +5 -0
  144. package/es/template/common/search-page/index.d.ts +123 -1
  145. package/es/template/common/search-page/index.d.ts.map +1 -1
  146. package/es/template/common/search-page/index.js +8 -3
  147. package/es/template/common/search-page/index.js.map +1 -1
  148. package/es/template/common/search-page/style.css +5 -0
  149. package/es/template/external-course/index.d.ts +19 -1
  150. package/es/template/teams-dashboard/index.d.ts +53 -1
  151. package/es/variables/colors.css +3 -2
  152. package/lib/atom/button-menu/index.d.ts.map +1 -1
  153. package/lib/atom/button-menu/index.js +1 -1
  154. package/lib/atom/button-menu/index.js.map +1 -1
  155. package/lib/atom/button-menu/style.css +10 -0
  156. package/lib/atom/button-menu/types.d.ts +1 -1
  157. package/lib/atom/button-menu/types.d.ts.map +1 -1
  158. package/lib/atom/button-menu/types.js +1 -1
  159. package/lib/atom/button-menu/types.js.map +1 -1
  160. package/lib/atom/empty-search-result/index.d.ts +1 -0
  161. package/lib/atom/empty-search-result/index.d.ts.map +1 -1
  162. package/lib/atom/empty-search-result/index.js +6 -4
  163. package/lib/atom/empty-search-result/index.js.map +1 -1
  164. package/lib/atom/empty-search-result/style.css +16 -1
  165. package/lib/atom/status-item/index.d.ts +1 -0
  166. package/lib/atom/status-item/index.d.ts.map +1 -1
  167. package/lib/atom/status-item/index.js +3 -2
  168. package/lib/atom/status-item/index.js.map +1 -1
  169. package/lib/atom/status-item/style.css +15 -17
  170. package/lib/atom/status-item/types.d.ts +2 -0
  171. package/lib/atom/status-item/types.d.ts.map +1 -1
  172. package/lib/atom/status-item/types.js +1 -0
  173. package/lib/atom/status-item/types.js.map +1 -1
  174. package/lib/atom/tag/index.js +4 -4
  175. package/lib/atom/tag/index.js.map +1 -1
  176. package/lib/atom/tag/style.css +11 -8
  177. package/lib/atom/title/types.d.ts +9 -0
  178. package/lib/atom/title/types.d.ts.map +1 -0
  179. package/lib/atom/title/types.js +2 -0
  180. package/lib/atom/title/types.js.map +1 -0
  181. package/lib/molecule/banner/style.css +4 -2
  182. package/lib/molecule/brand-tabs/index.d.ts +1 -0
  183. package/lib/molecule/brand-tabs/index.d.ts.map +1 -1
  184. package/lib/molecule/brand-tabs/index.js +11 -1
  185. package/lib/molecule/brand-tabs/index.js.map +1 -1
  186. package/lib/molecule/brand-tabs/style.css +7 -4
  187. package/lib/molecule/bulk-progress-bar/index.d.ts.map +1 -1
  188. package/lib/molecule/bulk-progress-bar/index.js +4 -2
  189. package/lib/molecule/bulk-progress-bar/index.js.map +1 -1
  190. package/lib/molecule/bulk-progress-bar/style.css +5 -0
  191. package/lib/molecule/card/index.d.ts +53 -0
  192. package/lib/molecule/card/index.d.ts.map +1 -1
  193. package/lib/molecule/card/index.js +15 -11
  194. package/lib/molecule/card/index.js.map +1 -1
  195. package/lib/molecule/card/style.css +47 -5
  196. package/lib/molecule/cm-popin/index.d.ts.map +1 -1
  197. package/lib/molecule/cm-popin/index.js +48 -8
  198. package/lib/molecule/cm-popin/index.js.map +1 -1
  199. package/lib/molecule/cm-popin/style.css +32 -0
  200. package/lib/molecule/cm-popin/types.d.ts +31 -1
  201. package/lib/molecule/cm-popin/types.d.ts.map +1 -1
  202. package/lib/molecule/cm-popin/types.js +15 -3
  203. package/lib/molecule/cm-popin/types.js.map +1 -1
  204. package/lib/molecule/dashboard/cards-list/index.d.ts +57 -1
  205. package/lib/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  206. package/lib/molecule/dashboard/cards-list/index.js +43 -5
  207. package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
  208. package/lib/molecule/dashboard/cards-list/prop-types.d.ts +14 -0
  209. package/lib/molecule/dashboard/cards-list/prop-types.d.ts.map +1 -0
  210. package/lib/molecule/dashboard/cards-list/prop-types.js +2 -0
  211. package/lib/molecule/dashboard/cards-list/prop-types.js.map +1 -0
  212. package/lib/molecule/draggable-list/index.d.ts +32 -12
  213. package/lib/molecule/expandible-actionable-table/index.d.ts +3 -0
  214. package/lib/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  215. package/lib/molecule/expandible-actionable-table/index.js +17 -2
  216. package/lib/molecule/expandible-actionable-table/index.js.map +1 -1
  217. package/lib/molecule/expandible-actionable-table/style.css +5 -0
  218. package/lib/molecule/expandible-actionable-table/types.d.ts +5 -0
  219. package/lib/molecule/expandible-actionable-table/types.d.ts.map +1 -1
  220. package/lib/molecule/expandible-actionable-table/types.js +3 -1
  221. package/lib/molecule/expandible-actionable-table/types.js.map +1 -1
  222. package/lib/molecule/review-header-steps/index.d.ts.map +1 -1
  223. package/lib/molecule/review-header-steps/index.js +3 -4
  224. package/lib/molecule/review-header-steps/index.js.map +1 -1
  225. package/lib/molecule/review-header-steps/prop-types.d.ts +1 -0
  226. package/lib/molecule/review-header-steps/prop-types.d.ts.map +1 -1
  227. package/lib/molecule/review-header-steps/style.css +6 -1
  228. package/lib/molecule/title-and-checkbox-wrapper/index.d.ts +45 -0
  229. package/lib/molecule/title-and-checkbox-wrapper/index.d.ts.map +1 -1
  230. package/lib/molecule/title-and-checkbox-wrapper/index.js +17 -3
  231. package/lib/molecule/title-and-checkbox-wrapper/index.js.map +1 -1
  232. package/lib/organism/list-item/index.d.ts +44 -13
  233. package/lib/organism/list-item/index.d.ts.map +1 -1
  234. package/lib/organism/list-item/index.js +73 -37
  235. package/lib/organism/list-item/index.js.map +1 -1
  236. package/lib/organism/list-item/style.css +28 -5
  237. package/lib/organism/list-items/index.d.ts +36 -12
  238. package/lib/organism/list-items/index.d.ts.map +1 -1
  239. package/lib/organism/list-items/index.js +21 -4
  240. package/lib/organism/list-items/index.js.map +1 -1
  241. package/lib/organism/list-items/style.css +42 -0
  242. package/lib/organism/mooc-header/index.d.ts.map +1 -1
  243. package/lib/organism/mooc-header/index.js +1 -0
  244. package/lib/organism/mooc-header/index.js.map +1 -1
  245. package/lib/organism/review-header/types.d.ts +1 -0
  246. package/lib/organism/review-header/types.d.ts.map +1 -1
  247. package/lib/organism/rewards-form/index.d.ts +45 -0
  248. package/lib/organism/select-opponents/index.d.ts +67 -12
  249. package/lib/organism/select-opponents/index.d.ts.map +1 -1
  250. package/lib/organism/select-opponents/index.js +3 -3
  251. package/lib/organism/select-opponents/index.js.map +1 -1
  252. package/lib/organism/select-opponents/style.css +6 -0
  253. package/lib/organism/select-opponents/types.d.ts +75 -14
  254. package/lib/organism/select-opponents/types.d.ts.map +1 -1
  255. package/lib/organism/select-opponents/types.js +2 -2
  256. package/lib/organism/select-opponents/types.js.map +1 -1
  257. package/lib/organism/sidebar/index.d.ts +3 -1
  258. package/lib/organism/sidebar/index.d.ts.map +1 -1
  259. package/lib/organism/sidebar/index.js +8 -4
  260. package/lib/organism/sidebar/index.js.map +1 -1
  261. package/lib/organism/sidebar/style.css +14 -0
  262. package/lib/organism/title-and-input/index.d.ts +84 -29
  263. package/lib/organism/title-and-input/index.d.ts.map +1 -1
  264. package/lib/organism/title-and-input/types.d.ts +84 -29
  265. package/lib/organism/title-and-input/types.d.ts.map +1 -1
  266. package/lib/organism/wizard-contents/index.d.ts +112 -0
  267. package/lib/organism/wizard-contents/index.d.ts.map +1 -1
  268. package/lib/organism/wizard-contents/index.js +39 -4
  269. package/lib/organism/wizard-contents/index.js.map +1 -1
  270. package/lib/organism/wizard-contents/style.css +22 -0
  271. package/lib/template/app-player/loading/index.d.ts +19 -1
  272. package/lib/template/app-player/player/index.d.ts +38 -2
  273. package/lib/template/app-player/player/slides/index.d.ts +19 -1
  274. package/lib/template/app-player/player/slides/index.d.ts.map +1 -1
  275. package/lib/template/app-player/popin-correction/index.d.ts +19 -1
  276. package/lib/template/app-player/popin-correction/index.d.ts.map +1 -1
  277. package/lib/template/app-player/popin-end/index.d.ts +72 -2
  278. package/lib/template/app-player/popin-end/summary.d.ts +53 -1
  279. package/lib/template/app-review/index.d.ts +20 -1
  280. package/lib/template/app-review/index.d.ts.map +1 -1
  281. package/lib/template/app-review/player/prop-types.d.ts +20 -1
  282. package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
  283. package/lib/template/app-review/prop-types.d.ts +20 -1
  284. package/lib/template/app-review/prop-types.d.ts.map +1 -1
  285. package/lib/template/back-office/brand-update/index.d.ts +122 -13
  286. package/lib/template/back-office/brand-update/index.d.ts.map +1 -1
  287. package/lib/template/back-office/brand-update/index.js +4 -2
  288. package/lib/template/back-office/brand-update/index.js.map +1 -1
  289. package/lib/template/back-office/brand-update/style.css +4 -4
  290. package/lib/template/common/dashboard/index.d.ts +89 -1
  291. package/lib/template/common/dashboard/index.d.ts.map +1 -1
  292. package/lib/template/common/dashboard/index.js +6 -2
  293. package/lib/template/common/dashboard/index.js.map +1 -1
  294. package/lib/template/common/dashboard/style.css +5 -0
  295. package/lib/template/common/search-page/index.d.ts +123 -1
  296. package/lib/template/common/search-page/index.d.ts.map +1 -1
  297. package/lib/template/common/search-page/index.js +9 -3
  298. package/lib/template/common/search-page/index.js.map +1 -1
  299. package/lib/template/common/search-page/style.css +5 -0
  300. package/lib/template/external-course/index.d.ts +19 -1
  301. package/lib/template/teams-dashboard/index.d.ts +53 -1
  302. package/lib/variables/colors.css +3 -2
  303. package/locales/.mtslconfig.json +1 -0
  304. package/locales/et/global.json +3 -3
  305. package/package.json +3 -3
@@ -1,10 +1,16 @@
1
1
  import PropTypes from 'prop-types';
2
2
  import Cta from '../../atom/button-link';
3
3
  import InputSwitch from '../../atom/input-switch';
4
+ import Title from '../../atom/title';
5
+ import CardsGrid from '../../organism/cards-grid';
4
6
  const propTypes = {
5
7
  content: PropTypes.string,
6
- mode: PropTypes.oneOf(['alert', 'information', 'cookie']),
7
- header: PropTypes.string,
8
+ mode: PropTypes.oneOf(['alert', 'information', 'cookie', 'items']),
9
+ header: PropTypes.shape({
10
+ title: PropTypes.shape(Title.propTypes),
11
+ headerIcon: PropTypes.string,
12
+ backgroundImage: PropTypes.string
13
+ }),
8
14
  firstButton: PropTypes.shape({
9
15
  label: PropTypes.string,
10
16
  handleOnclick: PropTypes.func,
@@ -35,7 +41,11 @@ const propTypes = {
35
41
  descriptionText: PropTypes.string,
36
42
  cookieTitle: PropTypes.string,
37
43
  descriptionBtnTxt: PropTypes.string,
38
- listBtnSwicth: PropTypes.arrayOf(PropTypes.shape(InputSwitch.propTypes))
44
+ listBtnSwicth: PropTypes.arrayOf(PropTypes.shape(InputSwitch.propTypes)),
45
+ items: PropTypes.shape({
46
+ type: PropTypes.string,
47
+ list: PropTypes.shape(CardsGrid.propTypes)
48
+ })
39
49
  };
40
50
  export default propTypes;
41
51
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["PropTypes","Cta","InputSwitch","propTypes","content","string","mode","oneOf","header","firstButton","shape","label","handleOnclick","func","largeButton","bool","type","customStyle","secondButton","thirdButton","onClose","icon","backgroundImageUrl","descriptionText","cookieTitle","descriptionBtnTxt","listBtnSwicth","arrayOf"],"sources":["../../../src/molecule/cm-popin/types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\nimport Cta from '../../atom/button-link';\nimport InputSwitch from '../../atom/input-switch';\n\nconst propTypes = {\n content: PropTypes.string,\n mode: PropTypes.oneOf(['alert', 'information', 'cookie']),\n header: PropTypes.string,\n firstButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.bool,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary', 'tertiary']),\n customStyle: Cta.propTypes.customStyle\n }),\n secondButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.bool,\n customStyle: Cta.propTypes.customStyle\n }),\n thirdButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.bool,\n customStyle: Cta.propTypes.customStyle\n }),\n onClose: PropTypes.func,\n icon: PropTypes.string,\n backgroundImageUrl: PropTypes.string,\n descriptionText: PropTypes.string,\n cookieTitle: PropTypes.string,\n descriptionBtnTxt: PropTypes.string,\n listBtnSwicth: PropTypes.arrayOf(PropTypes.shape(InputSwitch.propTypes))\n};\n\nexport type QuitPopinButton = {\n 'aria-label'?: string;\n label: string;\n type: string;\n customStyle?: {\n backgroundColor?: string;\n color?: string;\n };\n handleOnclick: () => void;\n};\n\nexport type CMPopinProps = {\n content: string;\n icon: string;\n mode: string;\n descriptionText: string;\n firstButton?: QuitPopinButton;\n secondButton?: QuitPopinButton;\n};\n\nexport default propTypes;\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,GAAP,MAAgB,wBAAhB;AACA,OAAOC,WAAP,MAAwB,yBAAxB;AAEA,MAAMC,SAAS,GAAG;EAChBC,OAAO,EAAEJ,SAAS,CAACK,MADH;EAEhBC,IAAI,EAAEN,SAAS,CAACO,KAAV,CAAgB,CAAC,OAAD,EAAU,aAAV,EAAyB,QAAzB,CAAhB,CAFU;EAGhBC,MAAM,EAAER,SAAS,CAACK,MAHF;EAIhBI,WAAW,EAAET,SAAS,CAACU,KAAV,CAAgB;IAC3BC,KAAK,EAAEX,SAAS,CAACK,MADU;IAE3BO,aAAa,EAAEZ,SAAS,CAACa,IAFE;IAG3B,cAAcb,SAAS,CAACK,MAHG;IAI3BS,WAAW,EAAEd,SAAS,CAACe,IAJI;IAK3BC,IAAI,EAAEhB,SAAS,CAACO,KAAV,CAAgB,CAAC,WAAD,EAAc,SAAd,EAAyB,WAAzB,EAAsC,UAAtC,CAAhB,CALqB;IAM3BU,WAAW,EAAEhB,GAAG,CAACE,SAAJ,CAAcc;EANA,CAAhB,CAJG;EAYhBC,YAAY,EAAElB,SAAS,CAACU,KAAV,CAAgB;IAC5BC,KAAK,EAAEX,SAAS,CAACK,MADW;IAE5BO,aAAa,EAAEZ,SAAS,CAACa,IAFG;IAG5BG,IAAI,EAAEhB,SAAS,CAACO,KAAV,CAAgB,CAAC,WAAD,EAAc,SAAd,EAAyB,WAAzB,CAAhB,CAHsB;IAI5B,cAAcP,SAAS,CAACK,MAJI;IAK5BS,WAAW,EAAEd,SAAS,CAACe,IALK;IAM5BE,WAAW,EAAEhB,GAAG,CAACE,SAAJ,CAAcc;EANC,CAAhB,CAZE;EAoBhBE,WAAW,EAAEnB,SAAS,CAACU,KAAV,CAAgB;IAC3BC,KAAK,EAAEX,SAAS,CAACK,MADU;IAE3BO,aAAa,EAAEZ,SAAS,CAACa,IAFE;IAG3BG,IAAI,EAAEhB,SAAS,CAACO,KAAV,CAAgB,CAAC,WAAD,EAAc,SAAd,EAAyB,WAAzB,CAAhB,CAHqB;IAI3B,cAAcP,SAAS,CAACK,MAJG;IAK3BS,WAAW,EAAEd,SAAS,CAACe,IALI;IAM3BE,WAAW,EAAEhB,GAAG,CAACE,SAAJ,CAAcc;EANA,CAAhB,CApBG;EA4BhBG,OAAO,EAAEpB,SAAS,CAACa,IA5BH;EA6BhBQ,IAAI,EAAErB,SAAS,CAACK,MA7BA;EA8BhBiB,kBAAkB,EAAEtB,SAAS,CAACK,MA9Bd;EA+BhBkB,eAAe,EAAEvB,SAAS,CAACK,MA/BX;EAgChBmB,WAAW,EAAExB,SAAS,CAACK,MAhCP;EAiChBoB,iBAAiB,EAAEzB,SAAS,CAACK,MAjCb;EAkChBqB,aAAa,EAAE1B,SAAS,CAAC2B,OAAV,CAAkB3B,SAAS,CAACU,KAAV,CAAgBR,WAAW,CAACC,SAA5B,CAAlB;AAlCC,CAAlB;AAyDA,eAAeA,SAAf"}
1
+ {"version":3,"file":"types.js","names":["PropTypes","Cta","InputSwitch","Title","CardsGrid","propTypes","content","string","mode","oneOf","header","shape","title","headerIcon","backgroundImage","firstButton","label","handleOnclick","func","largeButton","bool","type","customStyle","secondButton","thirdButton","onClose","icon","backgroundImageUrl","descriptionText","cookieTitle","descriptionBtnTxt","listBtnSwicth","arrayOf","items","list"],"sources":["../../../src/molecule/cm-popin/types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\nimport Cta from '../../atom/button-link';\nimport InputSwitch from '../../atom/input-switch';\nimport Title from '../../atom/title';\nimport {TitleProps} from '../../atom/title/types';\nimport CardsGrid from '../../organism/cards-grid';\n\nconst propTypes = {\n content: PropTypes.string,\n mode: PropTypes.oneOf(['alert', 'information', 'cookie', 'items']),\n header: PropTypes.shape({\n title: PropTypes.shape(Title.propTypes),\n headerIcon: PropTypes.string,\n backgroundImage: PropTypes.string\n }),\n firstButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.bool,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary', 'tertiary']),\n customStyle: Cta.propTypes.customStyle\n }),\n secondButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.bool,\n customStyle: Cta.propTypes.customStyle\n }),\n thirdButton: PropTypes.shape({\n label: PropTypes.string,\n handleOnclick: PropTypes.func,\n type: PropTypes.oneOf(['dangerous', 'primary', 'secondary']),\n 'aria-label': PropTypes.string,\n largeButton: PropTypes.bool,\n customStyle: Cta.propTypes.customStyle\n }),\n onClose: PropTypes.func,\n icon: PropTypes.string,\n backgroundImageUrl: PropTypes.string,\n descriptionText: PropTypes.string,\n cookieTitle: PropTypes.string,\n descriptionBtnTxt: PropTypes.string,\n listBtnSwicth: PropTypes.arrayOf(PropTypes.shape(InputSwitch.propTypes)),\n items: PropTypes.shape({\n type: PropTypes.string,\n list: PropTypes.shape(CardsGrid.propTypes)\n })\n};\n\ntype PopinHeaderProps = {\n title: TitleProps;\n backgroundImage: string;\n headerIcon: string;\n};\n\nexport type QuitPopinButton = {\n 'aria-label'?: string;\n label: string;\n type: string;\n customStyle?: {\n backgroundColor?: string;\n color?: string;\n };\n handleOnclick: () => void;\n};\n\nexport type CMPopinProps = {\n content: string;\n icon: string;\n mode: string;\n popinHeader?: PopinHeaderProps;\n descriptionText: string;\n firstButton?: QuitPopinButton;\n secondButton?: QuitPopinButton;\n items?: {\n type: string;\n list: PropTypes.InferProps<typeof CardsGrid.propTypes>;\n };\n};\n\nexport default propTypes;\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,GAAP,MAAgB,wBAAhB;AACA,OAAOC,WAAP,MAAwB,yBAAxB;AACA,OAAOC,KAAP,MAAkB,kBAAlB;AAEA,OAAOC,SAAP,MAAsB,2BAAtB;AAEA,MAAMC,SAAS,GAAG;EAChBC,OAAO,EAAEN,SAAS,CAACO,MADH;EAEhBC,IAAI,EAAER,SAAS,CAACS,KAAV,CAAgB,CAAC,OAAD,EAAU,aAAV,EAAyB,QAAzB,EAAmC,OAAnC,CAAhB,CAFU;EAGhBC,MAAM,EAAEV,SAAS,CAACW,KAAV,CAAgB;IACtBC,KAAK,EAAEZ,SAAS,CAACW,KAAV,CAAgBR,KAAK,CAACE,SAAtB,CADe;IAEtBQ,UAAU,EAAEb,SAAS,CAACO,MAFA;IAGtBO,eAAe,EAAEd,SAAS,CAACO;EAHL,CAAhB,CAHQ;EAQhBQ,WAAW,EAAEf,SAAS,CAACW,KAAV,CAAgB;IAC3BK,KAAK,EAAEhB,SAAS,CAACO,MADU;IAE3BU,aAAa,EAAEjB,SAAS,CAACkB,IAFE;IAG3B,cAAclB,SAAS,CAACO,MAHG;IAI3BY,WAAW,EAAEnB,SAAS,CAACoB,IAJI;IAK3BC,IAAI,EAAErB,SAAS,CAACS,KAAV,CAAgB,CAAC,WAAD,EAAc,SAAd,EAAyB,WAAzB,EAAsC,UAAtC,CAAhB,CALqB;IAM3Ba,WAAW,EAAErB,GAAG,CAACI,SAAJ,CAAciB;EANA,CAAhB,CARG;EAgBhBC,YAAY,EAAEvB,SAAS,CAACW,KAAV,CAAgB;IAC5BK,KAAK,EAAEhB,SAAS,CAACO,MADW;IAE5BU,aAAa,EAAEjB,SAAS,CAACkB,IAFG;IAG5BG,IAAI,EAAErB,SAAS,CAACS,KAAV,CAAgB,CAAC,WAAD,EAAc,SAAd,EAAyB,WAAzB,CAAhB,CAHsB;IAI5B,cAAcT,SAAS,CAACO,MAJI;IAK5BY,WAAW,EAAEnB,SAAS,CAACoB,IALK;IAM5BE,WAAW,EAAErB,GAAG,CAACI,SAAJ,CAAciB;EANC,CAAhB,CAhBE;EAwBhBE,WAAW,EAAExB,SAAS,CAACW,KAAV,CAAgB;IAC3BK,KAAK,EAAEhB,SAAS,CAACO,MADU;IAE3BU,aAAa,EAAEjB,SAAS,CAACkB,IAFE;IAG3BG,IAAI,EAAErB,SAAS,CAACS,KAAV,CAAgB,CAAC,WAAD,EAAc,SAAd,EAAyB,WAAzB,CAAhB,CAHqB;IAI3B,cAAcT,SAAS,CAACO,MAJG;IAK3BY,WAAW,EAAEnB,SAAS,CAACoB,IALI;IAM3BE,WAAW,EAAErB,GAAG,CAACI,SAAJ,CAAciB;EANA,CAAhB,CAxBG;EAgChBG,OAAO,EAAEzB,SAAS,CAACkB,IAhCH;EAiChBQ,IAAI,EAAE1B,SAAS,CAACO,MAjCA;EAkChBoB,kBAAkB,EAAE3B,SAAS,CAACO,MAlCd;EAmChBqB,eAAe,EAAE5B,SAAS,CAACO,MAnCX;EAoChBsB,WAAW,EAAE7B,SAAS,CAACO,MApCP;EAqChBuB,iBAAiB,EAAE9B,SAAS,CAACO,MArCb;EAsChBwB,aAAa,EAAE/B,SAAS,CAACgC,OAAV,CAAkBhC,SAAS,CAACW,KAAV,CAAgBT,WAAW,CAACG,SAA5B,CAAlB,CAtCC;EAuChB4B,KAAK,EAAEjC,SAAS,CAACW,KAAV,CAAgB;IACrBU,IAAI,EAAErB,SAAS,CAACO,MADK;IAErB2B,IAAI,EAAElC,SAAS,CAACW,KAAV,CAAgBP,SAAS,CAACC,SAA1B;EAFe,CAAhB;AAvCS,CAAlB;AA4EA,eAAeA,SAAf"}
@@ -1,17 +1,73 @@
1
1
  export default CardsList;
2
2
  declare class CardsList extends React.PureComponent<any, any, any> {
3
+ /**
4
+ * IMPORTANT: update prop-types.ts too, 1st a migration of tests
5
+ * is intended, then, a TS + functional refactor is planned.
6
+ */
3
7
  static propTypes: {
4
8
  contentType: PropTypes.Requireable<string>;
5
9
  dataName: PropTypes.Requireable<string>;
6
10
  title: PropTypes.Requireable<string>;
7
11
  showMore: PropTypes.Requireable<string>;
8
- cards: PropTypes.Requireable<(PropTypes.InferProps<any> | null | undefined)[]>;
12
+ cards: PropTypes.Requireable<(PropTypes.InferProps<{
13
+ badge: PropTypes.Requireable<string>;
14
+ image: PropTypes.Requireable<string>;
15
+ disabled: PropTypes.Requireable<boolean>;
16
+ adaptiv: PropTypes.Requireable<boolean>;
17
+ type: PropTypes.Requireable<string>;
18
+ title: PropTypes.Requireable<string>;
19
+ author: PropTypes.Requireable<string>;
20
+ certifiedAuthor: PropTypes.Requireable<boolean>;
21
+ customer: PropTypes.Requireable<PropTypes.InferProps<{
22
+ theme: PropTypes.Requireable<string>;
23
+ type: PropTypes.Requireable<string>;
24
+ name: PropTypes.Requireable<string>;
25
+ coorpOriginal: PropTypes.Validator<boolean>;
26
+ disabled: PropTypes.Requireable<boolean>;
27
+ 'aria-label': PropTypes.Requireable<string>;
28
+ }>>;
29
+ progress: PropTypes.Requireable<number>;
30
+ favorite: PropTypes.Requireable<boolean>;
31
+ addFavoriteToolTip: PropTypes.Requireable<string>;
32
+ removeFavoriteToolTip: PropTypes.Requireable<string>;
33
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
34
+ onFavoriteClick: PropTypes.Requireable<(...args: any[]) => any>;
35
+ isSelected: PropTypes.Requireable<boolean>;
36
+ notification: PropTypes.Requireable<PropTypes.InferProps<{
37
+ message: PropTypes.Validator<string>;
38
+ icon: PropTypes.Validator<string>;
39
+ }>>;
40
+ badgeCategory: PropTypes.Requireable<string>;
41
+ badgeLabel: PropTypes.Requireable<string>;
42
+ theme: PropTypes.Requireable<string>;
43
+ disabledContent: PropTypes.Requireable<string>;
44
+ 'aria-label': PropTypes.Requireable<string>;
45
+ 'background-aria-label': PropTypes.Requireable<string>;
46
+ 'favorite-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
47
+ favorite: PropTypes.Requireable<string>;
48
+ addToFavorite: PropTypes.Requireable<string>;
49
+ removeFromFavorite: PropTypes.Requireable<string>;
50
+ }>>;
51
+ 'selectable-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
52
+ select: PropTypes.Requireable<string>;
53
+ unSelect: PropTypes.Requireable<string>;
54
+ }>>;
55
+ 'customer-aria-label': PropTypes.Requireable<string>;
56
+ 'badge-aria-label': PropTypes.Requireable<string>;
57
+ 'disabled-aria-label': PropTypes.Requireable<string>;
58
+ 'card-content-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
59
+ author: PropTypes.Requireable<string>;
60
+ progression: PropTypes.Requireable<string>;
61
+ adaptive: PropTypes.Requireable<string>;
62
+ }>>;
63
+ }> | null | undefined)[]>;
9
64
  onScroll: PropTypes.Requireable<(...args: any[]) => any>;
10
65
  onShowMore: PropTypes.Requireable<(...args: any[]) => any>;
11
66
  'arrows-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
12
67
  showMoreOnLeftAriaLabel: PropTypes.Requireable<string>;
13
68
  showMoreOnRightAriaLabel: PropTypes.Requireable<string>;
14
69
  }>>;
70
+ testingSizes: PropTypes.Requireable<any>;
15
71
  };
16
72
  static contextTypes: {
17
73
  skin: PropTypes.Requireable<PropTypes.InferProps<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";AAuFA;IACE;;;;;;;;;;;;MAYE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAuBC;IApBC;;;;;;;;MAQC;IAED,0DAAgE;IAuGlE,qBAiBC;IAED,qBAGC;IAED,sBAGC;IAED,0BASC;IAxIC,uEAA6D;IA0I/D,mCAIC;IA1DD,oCAMC;IAED,sCAIC;IA1DD,qBAGC;IAlCD,0BAMC;IAED,2BAYC;IAED,6BAOC;IAOD,wCAuCC;IAGC,kBAA2B;IA2D7B,sBAsFC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"names":[],"mappings":";AAuFA;IACE;;;OAGG;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAcE;IAEF;;;;;;;;;;;;;;;;;;;;;;;MAGE;IAEF,wBAkCC;IA/BC;;;;;;;;MAQC;IAED,0DAAgE;IAsHlE,qBAiBC;IAED,qBAGC;IAED,sBAGC;IAED,0BASC;IAvJC,uEAA6D;IAyJ/D,mCAIC;IA5DD,oCAMC;IAGD,sCAIC;IA5DD,qBAGC;IAnCD,0BAMC;IAED,2BAYC;IAED,6BAOC;IASD,wCAuCC;IAGC,kBAA2B;IA6D7B,sBAkGC;CACF"}
@@ -18,7 +18,7 @@ import React from 'react';
18
18
  import PropTypes from 'prop-types';
19
19
  import { NovaCompositionNavigationArrowLeft as ArrowLeft, NovaCompositionNavigationArrowRight as ArrowRight, NovaSolidContentContentBook1 as LearnerIcon, NovaCompositionCoorpacademyTimer as TimerIcon } from '@coorpacademy/nova-icons';
20
20
  import Provider from '../../../atom/provider';
21
- import Card from '../../card';
21
+ import Card, { cardPropTypes } from '../../card';
22
22
  import style from './style.css';
23
23
 
24
24
  const ShowMoreLink = props => {
@@ -91,6 +91,10 @@ IconView.propTypes = process.env.NODE_ENV !== "production" ? {
91
91
  } : {};
92
92
 
93
93
  class CardsList extends React.PureComponent {
94
+ /**
95
+ * IMPORTANT: update prop-types.ts too, 1st a migration of tests
96
+ * is intended, then, a TS + functional refactor is planned.
97
+ */
94
98
  constructor(props) {
95
99
  super(props);
96
100
  this.state = {
@@ -111,7 +115,22 @@ class CardsList extends React.PureComponent {
111
115
  this.updatePages = this.updatePages.bind(this);
112
116
  this.setCardsWrapper = this.setCardsWrapper.bind(this);
113
117
  this.getScrollWidth = this.getScrollWidth.bind(this);
114
- this.handleResize = this.handleResize.bind(this);
118
+ this.handleResize = this.handleResize.bind(this); // for testing purposes only - no other way to test this polluted component
119
+
120
+ if (props.testingSizes) {
121
+ const {
122
+ offsetWidth,
123
+ scrollLeft,
124
+ maxPages,
125
+ possiblePages,
126
+ possiblePositions
127
+ } = props.testingSizes;
128
+ this.state.offsetWidth = offsetWidth;
129
+ this.state.scrollLeft = scrollLeft;
130
+ this.state.maxPages = maxPages;
131
+ this.state.possiblePages = possiblePages;
132
+ this.state.possiblePositions = possiblePositions;
133
+ }
115
134
  }
116
135
 
117
136
  componentDidMount() {
@@ -151,6 +170,8 @@ class CardsList extends React.PureComponent {
151
170
 
152
171
  this.updateState.cancel();
153
172
  }
173
+ /* istanbul ignore next */
174
+
154
175
 
155
176
  handleResize() {
156
177
  const {
@@ -158,6 +179,8 @@ class CardsList extends React.PureComponent {
158
179
  } = this.props;
159
180
  this.updatePaginationState(cards);
160
181
  }
182
+ /* istanbul ignore next */
183
+
161
184
 
162
185
  updatePaginationState(cards) {
163
186
  const {
@@ -197,6 +220,8 @@ class CardsList extends React.PureComponent {
197
220
  offsetWidth: this.cardsWrapper?.offsetWidth
198
221
  });
199
222
  }
223
+ /* istanbul ignore next */
224
+
200
225
 
201
226
  getScrollWidth(index) {
202
227
  const {
@@ -205,6 +230,8 @@ class CardsList extends React.PureComponent {
205
230
  const card = cards[index];
206
231
  return computeWidth(card);
207
232
  }
233
+ /* istanbul ignore next */
234
+
208
235
 
209
236
  handleScroll() {
210
237
  const scrollLeft = this.cardsWrapper?.scrollLeft;
@@ -342,7 +369,11 @@ class CardsList extends React.PureComponent {
342
369
  }, showMoreView, leftArrowView, rightArrowView) : null;
343
370
  return /*#__PURE__*/React.createElement("div", {
344
371
  className: style.wrapper,
345
- "data-name": "cardsList"
372
+ "data-name": "cardsList",
373
+ "data-max-pages": `${maxPages}` // eslint-disable-next-line react/destructuring-assignment
374
+ ,
375
+ "data-actual-page": `${this.state.actualPage}`,
376
+ "data-scroll-left": this.cardsWrapper?.scrollLeft
346
377
  }, /*#__PURE__*/React.createElement("div", {
347
378
  className: style.list
348
379
  }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
@@ -350,6 +381,7 @@ class CardsList extends React.PureComponent {
350
381
  className: style.header
351
382
  }, titleView, switchPagesView), /*#__PURE__*/React.createElement("div", {
352
383
  className: style.cards,
384
+ "data-testid": "cards-view-wrapper",
353
385
  ref: this.setCardsWrapper
354
386
  }, cardsView))));
355
387
  }
@@ -365,13 +397,15 @@ CardsList.propTypes = process.env.NODE_ENV !== "production" ? {
365
397
  dataName: PropTypes.string,
366
398
  title: PropTypes.string,
367
399
  showMore: PropTypes.string,
368
- cards: PropTypes.arrayOf(PropTypes.shape(Card.protoTypes)),
400
+ cards: PropTypes.arrayOf(PropTypes.shape(cardPropTypes)),
369
401
  onScroll: PropTypes.func,
370
402
  onShowMore: PropTypes.func,
371
403
  'arrows-aria-label': PropTypes.shape({
372
404
  showMoreOnLeftAriaLabel: PropTypes.string,
373
405
  showMoreOnRightAriaLabel: PropTypes.string
374
- })
406
+ }),
407
+ // eslint-disable-next-line react/forbid-prop-types
408
+ testingSizes: PropTypes.any
375
409
  } : {};
376
410
  export default CardsList;
377
411
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","NovaCompositionNavigationArrowLeft","ArrowLeft","NovaCompositionNavigationArrowRight","ArrowRight","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyTimer","TimerIcon","Provider","Card","style","ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","childContextTypes","propTypes","func","string","IconView","context","contentType","ICONS","chapter","course","dark","IconType","color","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","PureComponent","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","updatePages","setCardsWrapper","getScrollWidth","handleResize","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","cardPositions","accWidth","cardWidth","acc","pageIndex","accPageWidth","pageWidth","skip","position","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","dataName","ariaLabel","titleStyle","titleLink","cardsView","key","leftArrowView","circle","left","showMoreOnLeftAriaLabel","rightArrowView","right","showMoreOnRightAriaLabel","titleView","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","translate","arrayOf","shape","protoTypes"],"sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"sourcesContent":["import React from 'react';\nimport {\n debounce,\n throttle,\n get,\n getOr,\n map,\n sum,\n last,\n pipe,\n toPairs,\n reduce,\n head,\n findIndex,\n findLastIndex\n} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card from '../../card';\nimport style from './style.css';\n\nconst ShowMoreLink = props => {\n const {onShowMore, showMore, className} = props;\n return (\n <div className={className} onClick={onShowMore}>\n {showMore}\n </div>\n );\n};\n\nShowMoreLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nShowMoreLink.propTypes = {\n onShowMore: PropTypes.func,\n showMore: PropTypes.string,\n className: PropTypes.string\n};\n\nconst IconView = (props, context) => {\n const {skin} = context;\n const {contentType} = props;\n const ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon\n };\n\n if (!contentType) {\n return null;\n }\n\n const dark = get('common.dark', skin);\n const IconType = ICONS[contentType];\n\n return (\n <div>\n <IconType style={{color: dark}} className={style.icon} data-contenttype={contentType} />\n </div>\n );\n};\n\nconst computeWidth = card => {\n switch (card && card.type) {\n case 'chapter':\n return 219;\n default:\n return 272;\n }\n};\n\nconst nextPage = (page, maxPages) => {\n if (page < 0) return maxPages;\n if (page > maxPages) return 0;\n return page;\n};\n\nIconView.propTypes = {\n contentType: PropTypes.string\n};\n\nclass CardsList extends React.PureComponent {\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.string,\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(PropTypes.shape(Card.protoTypes)),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func,\n 'arrows-aria-label': PropTypes.shape({\n showMoreOnLeftAriaLabel: PropTypes.string,\n showMoreOnRightAriaLabel: PropTypes.string\n })\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n actualPage: 0,\n maxPages: 0,\n scrollLeft: 0,\n offsetWidth: 0,\n possiblePositions: [],\n possiblePages: [],\n cardsWidth: 0\n };\n\n this.handleScroll_ = throttle(200, this.handleScroll.bind(this));\n this.handleScroll = this.handleScroll.bind(this);\n this.handleOnLeft = this.handleOnLeft.bind(this);\n this.handleOnRight = this.handleOnRight.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n this.updateState = debounce(200, this.updatePages.bind(this));\n this.updatePages = this.updatePages.bind(this);\n this.setCardsWrapper = this.setCardsWrapper.bind(this);\n this.getScrollWidth = this.getScrollWidth.bind(this);\n this.handleResize = this.handleResize.bind(this);\n }\n\n componentDidMount() {\n this.cardsWrapper.addEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.addEventListener('resize', this.handleResize);\n }\n }\n\n componentDidUpdate() {\n const {cards = []} = this.props;\n const {offsetWidth, cardsWidth} = this.state;\n const newCardsWidth = pipe(map(computeWidth), sum)(cards);\n\n if (newCardsWidth !== cardsWidth && offsetWidth !== 0) {\n this.updatePaginationState(cards);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n cardsWidth: newCardsWidth\n });\n }\n }\n\n componentWillUnmount() {\n this.cardsWrapper.removeEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.removeEventListener('resize', this.handleResize);\n }\n this.updateState.cancel();\n }\n\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n updatePaginationState(cards) {\n const {offsetWidth: wrapperWidth, scrollLeft: wrapperScrollLeft} = this.state;\n\n const cardWidths = map(computeWidth)(cards);\n\n const possiblePositions = pipe(\n reduce(\n ([cardPositions, accWidth], cardWidth) => [\n [...cardPositions, accWidth],\n cardWidth + accWidth\n ],\n [[], 0]\n ),\n head\n )(cardWidths);\n\n const possiblePages = pipe(\n reduce(\n ([acc, pageIndex, accPageWidth], cardWidth) => {\n const pageWidth = accPageWidth + cardWidth;\n if (pageWidth > wrapperWidth) {\n return [[...acc, pageIndex + 1], pageIndex + 1, cardWidth];\n }\n return [[...acc, pageIndex], pageIndex, pageWidth];\n },\n [[], 0, 0]\n ),\n head\n )(cardWidths);\n\n const skip = findIndex(position => position >= wrapperScrollLeft, possiblePositions);\n const actualPage = possiblePages[skip + 1];\n\n this.setState({\n possiblePositions,\n possiblePages,\n maxPages: last(possiblePages),\n actualPage\n });\n }\n\n setCardsWrapper(element) {\n this.cardsWrapper = element;\n this.setState({\n scrollLeft: this.cardsWrapper?.scrollLeft,\n offsetWidth: this.cardsWrapper?.offsetWidth\n });\n }\n\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n handleScroll() {\n const scrollLeft = this.cardsWrapper?.scrollLeft;\n this.setState({scrollLeft});\n\n const {possiblePositions, offsetWidth} = this.state;\n const {onScroll} = this.props;\n if (onScroll) {\n const leftBound = scrollLeft;\n const rightBound = scrollLeft + offsetWidth;\n\n const leftIndex = findIndex(position => position > leftBound, possiblePositions) - 1;\n const rightIndex = findLastIndex(position => position < rightBound, possiblePositions);\n const skip = leftIndex;\n const limit = rightIndex - skip + 1;\n\n onScroll(skip, limit);\n }\n }\n\n handleOnLeft() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage - 1, maxPages));\n }\n\n handleOnRight() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage + 1, maxPages));\n }\n\n scrollTo(page) {\n const {possiblePages, possiblePositions} = this.state;\n const indexOfNextFirstCard = possiblePages.indexOf(page);\n const nextPosition = possiblePositions[indexOfNextFirstCard];\n this.cardsWrapper.scrollLeft = nextPosition;\n this.updatePages(page);\n this.setState({\n scrollLeft: nextPosition\n });\n }\n\n updatePages(actualPage) {\n this.setState({\n actualPage\n });\n }\n\n render() {\n const {\n title,\n showMore,\n cards,\n onShowMore,\n dataName,\n contentType,\n 'arrows-aria-label': ariaLabel = {}\n } = this.props;\n const {skin} = this.context;\n const {maxPages} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const titleStyle = onShowMore ? style.titleLink : style.title;\n const cardsView = pipe(\n toPairs,\n map(([key, card]) => {\n return (\n <div className={style.card} key={key}>\n <Card {...card} dataName={`${dataName}-${key}`} />\n </div>\n );\n })\n )(cards);\n const leftArrowView = (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <ArrowLeft\n style={{color: dark}}\n className={style.left}\n width={10}\n height={10}\n aria-label={ariaLabel.showMoreOnLeftAriaLabel}\n />\n </div>\n );\n const rightArrowView = (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <ArrowRight\n style={{color: dark}}\n className={style.right}\n width={10}\n height={10}\n aria-label={ariaLabel.showMoreOnRightAriaLabel}\n />\n </div>\n );\n\n const titleView = (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n );\n\n const hasPages = maxPages > 0;\n const showMoreView =\n hasPages && showMore && onShowMore ? (\n <ShowMoreLink\n className={hasPages ? style.showMoreBar : style.showMore}\n onShowMore={onShowMore}\n showMore={showMore}\n />\n ) : null;\n\n const switchPagesView = hasPages ? (\n <div className={style.pagingWrapper}>\n {showMoreView}\n {leftArrowView}\n {rightArrowView}\n </div>\n ) : null;\n return (\n <div className={style.wrapper} data-name=\"cardsList\">\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div className={style.cards} ref={this.setCardsWrapper}>\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","NovaCompositionNavigationArrowLeft","ArrowLeft","NovaCompositionNavigationArrowRight","ArrowRight","NovaSolidContentContentBook1","LearnerIcon","NovaCompositionCoorpacademyTimer","TimerIcon","Provider","Card","cardPropTypes","style","ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","childContextTypes","propTypes","func","string","IconView","context","contentType","ICONS","chapter","course","dark","IconType","color","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","PureComponent","constructor","state","actualPage","scrollLeft","offsetWidth","possiblePositions","possiblePages","cardsWidth","handleScroll_","handleScroll","bind","handleOnLeft","handleOnRight","scrollTo","updateState","updatePages","setCardsWrapper","getScrollWidth","handleResize","testingSizes","componentDidMount","cardsWrapper","addEventListener","window","componentDidUpdate","cards","newCardsWidth","updatePaginationState","setState","componentWillUnmount","removeEventListener","cancel","wrapperWidth","wrapperScrollLeft","cardWidths","cardPositions","accWidth","cardWidth","acc","pageIndex","accPageWidth","pageWidth","skip","position","element","index","onScroll","leftBound","rightBound","leftIndex","rightIndex","limit","indexOfNextFirstCard","indexOf","nextPosition","render","title","dataName","ariaLabel","titleStyle","titleLink","cardsView","key","leftArrowView","circle","left","showMoreOnLeftAriaLabel","rightArrowView","right","showMoreOnRightAriaLabel","titleView","hasPages","showMoreView","showMoreBar","switchPagesView","pagingWrapper","wrapper","list","header","translate","arrayOf","shape","any"],"sources":["../../../../src/molecule/dashboard/cards-list/index.js"],"sourcesContent":["import React from 'react';\nimport {\n debounce,\n throttle,\n get,\n getOr,\n map,\n sum,\n last,\n pipe,\n toPairs,\n reduce,\n head,\n findIndex,\n findLastIndex\n} from 'lodash/fp';\nimport PropTypes from 'prop-types';\nimport {\n NovaCompositionNavigationArrowLeft as ArrowLeft,\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaSolidContentContentBook1 as LearnerIcon,\n NovaCompositionCoorpacademyTimer as TimerIcon\n} from '@coorpacademy/nova-icons';\nimport Provider from '../../../atom/provider';\nimport Card, {cardPropTypes} from '../../card';\nimport style from './style.css';\n\nconst ShowMoreLink = props => {\n const {onShowMore, showMore, className} = props;\n return (\n <div className={className} onClick={onShowMore}>\n {showMore}\n </div>\n );\n};\n\nShowMoreLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nShowMoreLink.propTypes = {\n onShowMore: PropTypes.func,\n showMore: PropTypes.string,\n className: PropTypes.string\n};\n\nconst IconView = (props, context) => {\n const {skin} = context;\n const {contentType} = props;\n const ICONS = {\n chapter: TimerIcon,\n course: LearnerIcon\n };\n\n if (!contentType) {\n return null;\n }\n\n const dark = get('common.dark', skin);\n const IconType = ICONS[contentType];\n\n return (\n <div>\n <IconType style={{color: dark}} className={style.icon} data-contenttype={contentType} />\n </div>\n );\n};\n\nconst computeWidth = card => {\n switch (card && card.type) {\n case 'chapter':\n return 219;\n default:\n return 272;\n }\n};\n\nconst nextPage = (page, maxPages) => {\n if (page < 0) return maxPages;\n if (page > maxPages) return 0;\n return page;\n};\n\nIconView.propTypes = {\n contentType: PropTypes.string\n};\n\nclass CardsList extends React.PureComponent {\n /**\n * IMPORTANT: update prop-types.ts too, 1st a migration of tests\n * is intended, then, a TS + functional refactor is planned.\n */\n static propTypes = {\n contentType: PropTypes.string,\n dataName: PropTypes.string,\n title: PropTypes.string,\n showMore: PropTypes.string,\n cards: PropTypes.arrayOf(PropTypes.shape(cardPropTypes)),\n onScroll: PropTypes.func,\n onShowMore: PropTypes.func,\n 'arrows-aria-label': PropTypes.shape({\n showMoreOnLeftAriaLabel: PropTypes.string,\n showMoreOnRightAriaLabel: PropTypes.string\n }),\n // eslint-disable-next-line react/forbid-prop-types\n testingSizes: PropTypes.any\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n actualPage: 0,\n maxPages: 0,\n scrollLeft: 0,\n offsetWidth: 0,\n possiblePositions: [],\n possiblePages: [],\n cardsWidth: 0\n };\n\n this.handleScroll_ = throttle(200, this.handleScroll.bind(this));\n this.handleScroll = this.handleScroll.bind(this);\n this.handleOnLeft = this.handleOnLeft.bind(this);\n this.handleOnRight = this.handleOnRight.bind(this);\n this.scrollTo = this.scrollTo.bind(this);\n this.updateState = debounce(200, this.updatePages.bind(this));\n this.updatePages = this.updatePages.bind(this);\n this.setCardsWrapper = this.setCardsWrapper.bind(this);\n this.getScrollWidth = this.getScrollWidth.bind(this);\n this.handleResize = this.handleResize.bind(this);\n\n // for testing purposes only - no other way to test this polluted component\n if (props.testingSizes) {\n const {offsetWidth, scrollLeft, maxPages, possiblePages, possiblePositions} =\n props.testingSizes;\n this.state.offsetWidth = offsetWidth;\n this.state.scrollLeft = scrollLeft;\n this.state.maxPages = maxPages;\n this.state.possiblePages = possiblePages;\n this.state.possiblePositions = possiblePositions;\n }\n }\n\n componentDidMount() {\n this.cardsWrapper.addEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.addEventListener('resize', this.handleResize);\n }\n }\n\n componentDidUpdate() {\n const {cards = []} = this.props;\n const {offsetWidth, cardsWidth} = this.state;\n const newCardsWidth = pipe(map(computeWidth), sum)(cards);\n\n if (newCardsWidth !== cardsWidth && offsetWidth !== 0) {\n this.updatePaginationState(cards);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n cardsWidth: newCardsWidth\n });\n }\n }\n\n componentWillUnmount() {\n this.cardsWrapper.removeEventListener('scroll', this.handleScroll_);\n\n if (window) {\n window.removeEventListener('resize', this.handleResize);\n }\n this.updateState.cancel();\n }\n\n /* istanbul ignore next */\n handleResize() {\n const {cards = []} = this.props;\n this.updatePaginationState(cards);\n }\n\n /* istanbul ignore next */\n updatePaginationState(cards) {\n const {offsetWidth: wrapperWidth, scrollLeft: wrapperScrollLeft} = this.state;\n\n const cardWidths = map(computeWidth)(cards);\n\n const possiblePositions = pipe(\n reduce(\n ([cardPositions, accWidth], cardWidth) => [\n [...cardPositions, accWidth],\n cardWidth + accWidth\n ],\n [[], 0]\n ),\n head\n )(cardWidths);\n\n const possiblePages = pipe(\n reduce(\n ([acc, pageIndex, accPageWidth], cardWidth) => {\n const pageWidth = accPageWidth + cardWidth;\n if (pageWidth > wrapperWidth) {\n return [[...acc, pageIndex + 1], pageIndex + 1, cardWidth];\n }\n return [[...acc, pageIndex], pageIndex, pageWidth];\n },\n [[], 0, 0]\n ),\n head\n )(cardWidths);\n\n const skip = findIndex(position => position >= wrapperScrollLeft, possiblePositions);\n const actualPage = possiblePages[skip + 1];\n\n this.setState({\n possiblePositions,\n possiblePages,\n maxPages: last(possiblePages),\n actualPage\n });\n }\n\n setCardsWrapper(element) {\n this.cardsWrapper = element;\n this.setState({\n scrollLeft: this.cardsWrapper?.scrollLeft,\n offsetWidth: this.cardsWrapper?.offsetWidth\n });\n }\n\n /* istanbul ignore next */\n getScrollWidth(index) {\n const {cards = []} = this.props;\n const card = cards[index];\n return computeWidth(card);\n }\n\n /* istanbul ignore next */\n handleScroll() {\n const scrollLeft = this.cardsWrapper?.scrollLeft;\n this.setState({scrollLeft});\n\n const {possiblePositions, offsetWidth} = this.state;\n const {onScroll} = this.props;\n if (onScroll) {\n const leftBound = scrollLeft;\n const rightBound = scrollLeft + offsetWidth;\n\n const leftIndex = findIndex(position => position > leftBound, possiblePositions) - 1;\n const rightIndex = findLastIndex(position => position < rightBound, possiblePositions);\n const skip = leftIndex;\n const limit = rightIndex - skip + 1;\n\n onScroll(skip, limit);\n }\n }\n\n handleOnLeft() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage - 1, maxPages));\n }\n\n handleOnRight() {\n const {actualPage, maxPages} = this.state;\n this.scrollTo(nextPage(actualPage + 1, maxPages));\n }\n\n scrollTo(page) {\n const {possiblePages, possiblePositions} = this.state;\n const indexOfNextFirstCard = possiblePages.indexOf(page);\n const nextPosition = possiblePositions[indexOfNextFirstCard];\n this.cardsWrapper.scrollLeft = nextPosition;\n this.updatePages(page);\n this.setState({\n scrollLeft: nextPosition\n });\n }\n\n updatePages(actualPage) {\n this.setState({\n actualPage\n });\n }\n\n render() {\n const {\n title,\n showMore,\n cards,\n onShowMore,\n dataName,\n contentType,\n 'arrows-aria-label': ariaLabel = {}\n } = this.props;\n const {skin} = this.context;\n const {maxPages} = this.state;\n const dark = getOr('#90A4AE', 'common.dark', skin);\n const titleStyle = onShowMore ? style.titleLink : style.title;\n const cardsView = pipe(\n toPairs,\n map(([key, card]) => {\n return (\n <div className={style.card} key={key}>\n <Card {...card} dataName={`${dataName}-${key}`} />\n </div>\n );\n })\n )(cards);\n const leftArrowView = (\n <div className={style.circle} onClick={this.handleOnLeft} data-name=\"card-list-left-arrow\">\n <ArrowLeft\n style={{color: dark}}\n className={style.left}\n width={10}\n height={10}\n aria-label={ariaLabel.showMoreOnLeftAriaLabel}\n />\n </div>\n );\n const rightArrowView = (\n <div className={style.circle} onClick={this.handleOnRight} data-name=\"card-list-right-arrow\">\n <ArrowRight\n style={{color: dark}}\n className={style.right}\n width={10}\n height={10}\n aria-label={ariaLabel.showMoreOnRightAriaLabel}\n />\n </div>\n );\n\n const titleView = (\n <span data-name=\"title\" className={titleStyle} onClick={onShowMore}>\n <IconView contentType={contentType} />\n <span>{title}</span>\n </span>\n );\n\n const hasPages = maxPages > 0;\n const showMoreView =\n hasPages && showMore && onShowMore ? (\n <ShowMoreLink\n className={hasPages ? style.showMoreBar : style.showMore}\n onShowMore={onShowMore}\n showMore={showMore}\n />\n ) : null;\n\n const switchPagesView = hasPages ? (\n <div className={style.pagingWrapper}>\n {showMoreView}\n {leftArrowView}\n {rightArrowView}\n </div>\n ) : null;\n\n return (\n <div\n className={style.wrapper}\n data-name=\"cardsList\"\n data-max-pages={`${maxPages}`}\n // eslint-disable-next-line react/destructuring-assignment\n data-actual-page={`${this.state.actualPage}`}\n data-scroll-left={this.cardsWrapper?.scrollLeft}\n >\n <div className={style.list}>\n <div>\n <div data-name=\"header\" className={style.header}>\n {titleView}\n {switchPagesView}\n </div>\n <div\n className={style.cards}\n data-testid=\"cards-view-wrapper\"\n ref={this.setCardsWrapper}\n >\n {cardsView}\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default CardsList;\n"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare type CardsListProps = {
2
+ contentType: string;
3
+ dataName: string;
4
+ title: string;
5
+ showMore: string;
6
+ cards: Record<string, unknown>[];
7
+ onScroll: (skip: number, limit: number) => void;
8
+ onShowMore: () => void;
9
+ 'arrows-aria-label': {
10
+ showMoreOnLeftAriaLabel: string;
11
+ showMoreOnRightAriaLabel: string;
12
+ };
13
+ };
14
+ //# sourceMappingURL=prop-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prop-types.d.ts","sourceRoot":"","sources":["../../../../src/molecule/dashboard/cards-list/prop-types.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,mBAAmB,EAAE;QACnB,uBAAuB,EAAE,MAAM,CAAC;QAChC,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;CACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prop-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prop-types.js","names":[],"sources":["../../../../src/molecule/dashboard/cards-list/prop-types.ts"],"sourcesContent":["export type CardsListProps = {\n contentType: string;\n dataName: string;\n title: string;\n showMore: string;\n cards: Record<string, unknown>[];\n onScroll: (skip: number, limit: number) => void;\n onShowMore: () => void;\n 'arrows-aria-label': {\n showMoreOnLeftAriaLabel: string;\n showMoreOnRightAriaLabel: string;\n };\n};\n"],"mappings":""}
@@ -60,17 +60,12 @@ declare namespace DraggableList {
60
60
  position: PropTypes.Requireable<number>;
61
61
  id: PropTypes.Requireable<string>;
62
62
  }> | PropTypes.InferProps<{
63
- bulletPointMenuButton: PropTypes.Requireable<PropTypes.InferProps<{
64
- buttonAriaLabel: PropTypes.Requireable<string>;
65
- menuAriaLabel: PropTypes.Requireable<string>;
66
- buttons: PropTypes.Requireable<(PropTypes.InferProps<{
67
- 'data-name': PropTypes.Requireable<string>;
68
- label: PropTypes.Requireable<string>;
69
- type: PropTypes.Requireable<string>;
70
- onClick: PropTypes.Requireable<(...args: any[]) => any>;
71
- }> | null | undefined)[]>;
72
- onClick: PropTypes.Requireable<(...args: any[]) => any>;
73
- }>>;
63
+ title: PropTypes.Validator<string>;
64
+ dataColumns: PropTypes.Requireable<(PropTypes.InferProps<{
65
+ label: PropTypes.Requireable<string>;
66
+ type: PropTypes.Requireable<string>;
67
+ className: PropTypes.Requireable<string>;
68
+ }> | null | undefined)[]>;
74
69
  buttonLink: PropTypes.Requireable<PropTypes.InferProps<{
75
70
  type: PropTypes.Requireable<string>;
76
71
  label: PropTypes.Requireable<string>;
@@ -82,11 +77,36 @@ declare namespace DraggableList {
82
77
  }>>;
83
78
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
84
79
  }>>;
80
+ buttonLinkIcon: PropTypes.Requireable<PropTypes.InferProps<{
81
+ size: PropTypes.Requireable<string>;
82
+ 'aria-label': PropTypes.Requireable<string>;
83
+ 'data-name': PropTypes.Requireable<string>;
84
+ icon: PropTypes.Requireable<string>;
85
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
86
+ link: PropTypes.Requireable<PropTypes.InferProps<{
87
+ href: PropTypes.Requireable<string>;
88
+ download: PropTypes.Requireable<boolean>;
89
+ target: PropTypes.Requireable<string>;
90
+ }>>;
91
+ disabled: PropTypes.Requireable<boolean>;
92
+ className: PropTypes.Requireable<string>;
93
+ }>>;
94
+ bulletPointMenuButton: PropTypes.Requireable<PropTypes.InferProps<{
95
+ buttonAriaLabel: PropTypes.Requireable<string>;
96
+ menuAriaLabel: PropTypes.Requireable<string>;
97
+ buttons: PropTypes.Requireable<(PropTypes.InferProps<{
98
+ 'data-name': PropTypes.Requireable<string>;
99
+ label: PropTypes.Requireable<string>;
100
+ type: PropTypes.Requireable<string>;
101
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
102
+ }> | null | undefined)[]>;
103
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
104
+ }>>;
85
105
  tags: PropTypes.Requireable<(PropTypes.InferProps<{
86
106
  label: PropTypes.Requireable<string>;
87
107
  type: PropTypes.Requireable<string>;
88
108
  }> | null | undefined)[]>;
89
- title: PropTypes.Validator<string>;
109
+ isBulkStyle: PropTypes.Requireable<boolean>;
90
110
  order: PropTypes.Requireable<number>;
91
111
  'aria-label': PropTypes.Requireable<string>;
92
112
  contentType: PropTypes.Requireable<string>;
@@ -35,6 +35,7 @@ declare const ActionableExpandableErrorsTable: {
35
35
  fields: import("prop-types").Requireable<(NonNullable<string | import("prop-types").InferProps<{
36
36
  type: import("prop-types").Requireable<string>;
37
37
  current: import("prop-types").Requireable<boolean>;
38
+ selected: import("prop-types").Requireable<boolean>;
38
39
  icon: import("prop-types").Requireable<string>;
39
40
  value: import("prop-types").Requireable<string>;
40
41
  }> | null | undefined> | null | undefined)[]>;
@@ -97,6 +98,8 @@ declare const ActionableExpandableErrorsTable: {
97
98
  isBulkMenu: import("prop-types").Requireable<boolean>;
98
99
  }> | null | undefined>>;
99
100
  isNestedTable: import("prop-types").Requireable<boolean>;
101
+ emptyStateFirstMessage: import("prop-types").Requireable<string>;
102
+ emptyStateSecondMessage: import("prop-types").Requireable<string>;
100
103
  };
101
104
  };
102
105
  export default ActionableExpandableErrorsTable;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandible-actionable-table/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAMjE,OAAO,EAA2C,KAAK,EAAY,MAAM,SAAS,CAAC;AAiCnF,QAAA,MAAM,+BAA+B;YAAW,KAAK,iBAAiB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsKrF,CAAC;AASF,eAAe,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandible-actionable-table/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAOjE,OAAO,EAA2C,KAAK,EAAY,MAAM,SAAS,CAAC;AAqCnF,QAAA,MAAM,+BAA+B;YAAW,KAAK,iBAAiB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoLrF,CAAC;AASF,eAAe,+BAA+B,CAAC"}
@@ -1,3 +1,4 @@
1
+ import _isEmpty from "lodash/fp/isEmpty";
1
2
  import _includes from "lodash/fp/includes";
2
3
  import _size from "lodash/fp/size";
3
4
  import _isString from "lodash/fp/isString";
@@ -14,6 +15,7 @@ import Provider, { GetTranslateFromContext } from '../../atom/provider';
14
15
  import BulletPointMenuButton from '../bullet-point-menu-button';
15
16
  import ButtonLink from '../../atom/button-link';
16
17
  import ErrorsTable from '../errors-table';
18
+ import EmptySearchResult from '../../atom/empty-search-result';
17
19
  import style from './style.css';
18
20
  import { propTypes } from './types';
19
21
 
@@ -25,7 +27,9 @@ const buildField = field => {
25
27
 
26
28
  switch (componentType) {
27
29
  case 'status':
28
- return /*#__PURE__*/React.createElement(StatusItem, field);
30
+ return /*#__PURE__*/React.createElement("div", {
31
+ className: style.statusItemWrapper
32
+ }, /*#__PURE__*/React.createElement(StatusItem, field));
29
33
 
30
34
  case 'progress-bar':
31
35
  return /*#__PURE__*/React.createElement(BulkProgressBar, field);
@@ -69,7 +73,9 @@ const ActionableExpandableErrorsTable = (props, legacyContext) => {
69
73
  stickyLastColumn = false,
70
74
  ariaDescribedby,
71
75
  columnWidth = `${100 / _size(columns)}%`,
72
- isNestedTable = false
76
+ isNestedTable = false,
77
+ emptyStateFistMessage = '',
78
+ emptyStateSecondMessage = ''
73
79
  } = props;
74
80
  const translate = GetTranslateFromContext(legacyContext);
75
81
  /**
@@ -83,6 +89,13 @@ const ActionableExpandableErrorsTable = (props, legacyContext) => {
83
89
  */
84
90
 
85
91
  const [expandState, setExpandState] = useState({});
92
+ if (_isEmpty(columns)) return /*#__PURE__*/React.createElement("div", {
93
+ className: style.wrapper
94
+ }, /*#__PURE__*/React.createElement(EmptySearchResult, {
95
+ firstMessage: emptyStateFistMessage,
96
+ secondMessage: emptyStateSecondMessage,
97
+ isBulk: true
98
+ }));
86
99
  /**
87
100
  * This function gets called when show/hide link is clicked.
88
101
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useState","classnames","ButtonLinkIconOnly","StatusItem","BulkProgressBar","Provider","GetTranslateFromContext","BulletPointMenuButton","ButtonLink","ErrorsTable","style","propTypes","buildField","field","componentType","buildLastField","lastField","buildNestedRow","row","ActionableExpandableErrorsTable","props","legacyContext","columns","rows","stickyFirstColumn","stickyLastColumn","ariaDescribedby","columnWidth","isNestedTable","translate","expandedRows","setExpandedRows","expandState","setExpandState","handleExpandRow","index","isRowExpanded","newExpandedRows","filter","id","concat","expandedState","forEach","headerRow","map","column","cIndex","title","headerFirstSticky","headerFirst","header","push","headerLastSticky","headerLast","headerView","bodyView","fields","isRowExpandible","bodyRow","fIndex","cellContent","columFirstWrapper","expandButtonWrapper","columnFirstSticky","columnFirst","col","width","columnLastSticky","columnLast","inspectButton","nestedRow","nestedRowCellule","includes","length","wrapper","table","theadNested","thead","contextTypes","skin","childContextTypes"],"sources":["../../../src/molecule/expandible-actionable-table/index.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport classnames from 'classnames';\nimport {get, isString, size, includes} from 'lodash/fp';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport StatusItem from '../../atom/status-item';\nimport BulkProgressBar from '../bulk-progress-bar';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport Provider, {GetTranslateFromContext} from '../../atom/provider';\nimport BulletPointMenuButton from '../bullet-point-menu-button';\nimport ButtonLink from '../../atom/button-link';\nimport ErrorsTable from '../errors-table';\nimport style from './style.css';\nimport {ExpandState, Field, LastField, NestedRow, Props, propTypes} from './types';\n\nconst buildField = (field: Field) => {\n if (isString(field)) return field;\n const {componentType} = field;\n switch (componentType) {\n case 'status':\n return <StatusItem {...field} />;\n case 'progress-bar':\n return <BulkProgressBar {...field} />;\n }\n};\n\nconst buildLastField = (lastField: LastField) => {\n const {componentType} = lastField;\n switch (componentType) {\n case 'menu':\n return <BulletPointMenuButton {...lastField} />;\n case 'button-link':\n return <ButtonLink {...lastField} />;\n }\n};\n\nconst buildNestedRow = (row: NestedRow) => {\n const {componentType} = row;\n switch (componentType) {\n case 'errors-table':\n return <ErrorsTable {...row} />;\n case 'expandible-errors-table':\n return <ActionableExpandableErrorsTable {...row} />;\n }\n};\n\nconst ActionableExpandableErrorsTable = (props: Props, legacyContext: WebContextValues) => {\n const {\n columns,\n rows = [],\n lastField,\n stickyFirstColumn = false,\n stickyLastColumn = false,\n ariaDescribedby,\n columnWidth = `${100 / size(columns)}%`,\n isNestedTable = false\n } = props;\n const translate = GetTranslateFromContext(legacyContext);\n\n /**\n * State variable to keep track of all the expanded rows\n * By default, nothing expanded. Hence initialized with empty array.\n */\n const [expandedRows, setExpandedRows] = useState<number[]>([]);\n\n /**\n * State variable to keep track which row is currently expanded.\n */\n const [expandState, setExpandState] = useState<ExpandState>({});\n\n /**\n * This function gets called when show/hide link is clicked.\n */\n const handleExpandRow = (index: number) => () => {\n const isRowExpanded = includes(index, expandedRows);\n\n /**\n * If the row is expanded, we are here to hide it. Hence remove\n * it from the state variable. Otherwise add to it.\n */\n const newExpandedRows = isRowExpanded\n ? expandedRows.filter(id => id !== index)\n : expandedRows.concat(index);\n\n setExpandedRows(newExpandedRows);\n\n /**\n * Create a new object to update the expanded state of all rows\n * Use the newExpandedRows array to set the state of all rows that are currently expanded\n */\n const expandedState: ExpandState = {};\n newExpandedRows.forEach(id => {\n expandedState[id] = true;\n });\n\n setExpandState(expandedState);\n };\n\n const headerRow = columns.map((column, cIndex) => {\n const {title} = column;\n return (\n <th\n className={\n cIndex === 0\n ? classnames(\n stickyFirstColumn ? style.headerFirstSticky : style.headerFirst,\n style.header\n )\n : style.header\n }\n key={`${title}-${cIndex}`}\n role=\"columnheader\"\n >\n {title}\n </th>\n );\n });\n\n headerRow.push(\n <th\n className={stickyLastColumn ? style.headerLastSticky : style.headerLast}\n key=\"action-header\"\n />\n );\n const headerView = [...headerRow];\n\n const bodyView = rows.map((row, index) => {\n const {fields, isRowExpandible = false} = row;\n const bodyRow = fields.map((field, fIndex) => {\n const cellContent =\n fIndex === 0 ? (\n <div className={style.columFirstWrapper}>\n <div className={style.expandButtonWrapper}>\n {isRowExpandible ? (\n <ButtonLinkIconOnly\n onClick={handleExpandRow(index)}\n data-name={`arrowUp-button-${index}`}\n icon=\"down\"\n className={expandState[index] ? 'bulkArrowUp' : 'bulkArrowDown'}\n aria-label={translate('bulk_import.show_errors')}\n />\n ) : null}\n </div>\n {buildField(field)}\n </div>\n ) : (\n buildField(field)\n );\n return (\n <td\n className={\n fIndex === 0\n ? classnames(\n stickyFirstColumn ? style.columnFirstSticky : style.columnFirst,\n style.col\n )\n : style.col\n }\n style={{width: columnWidth}}\n key={`${field}-${fIndex}`}\n >\n {cellContent}\n </td>\n );\n });\n\n bodyRow.push(\n <td\n className={stickyLastColumn ? style.columnLastSticky : style.columnLast}\n key=\"actionHeader\"\n >\n {lastField ? (\n <div\n className={classnames({\n [style.inspectButton]: get('className', lastField) === 'bulkInspectButton'\n })}\n >\n {buildLastField(lastField)}\n </div>\n ) : null}\n </td>\n );\n const nestedRow = get('nestedRow', row);\n const nestedRowCellule =\n nestedRow && expandedRows.includes(index) ? (\n <tr key={`line-${index}-error`}>\n <td className={style.nestedRowCellule} colSpan={fields.length + 2}>\n {buildNestedRow(nestedRow)}\n </td>\n </tr>\n ) : null;\n\n return nestedRowCellule\n ? [<tr key={`line-${index}`}>{bodyRow}</tr>, nestedRowCellule]\n : [<tr key={`line-${index}`}>{bodyRow}</tr>];\n });\n\n return (\n <div className={style.wrapper}>\n <table\n {...(ariaDescribedby ? {'aria-describedby': ariaDescribedby} : {})}\n className={style.table}\n data-testid=\"expandible-actionable-table\"\n data-name=\"expandible-actionable-table\"\n >\n <thead className={isNestedTable ? style.theadNested : style.thead}>\n <tr>{headerView}</tr>\n </thead>\n <tbody>{bodyView}</tbody>\n </table>\n </div>\n );\n};\n\nActionableExpandableErrorsTable.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nActionableExpandableErrorsTable.propTypes = propTypes;\n\nexport default ActionableExpandableErrorsTable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useState","classnames","ButtonLinkIconOnly","StatusItem","BulkProgressBar","Provider","GetTranslateFromContext","BulletPointMenuButton","ButtonLink","ErrorsTable","EmptySearchResult","style","propTypes","buildField","field","componentType","statusItemWrapper","buildLastField","lastField","buildNestedRow","row","ActionableExpandableErrorsTable","props","legacyContext","columns","rows","stickyFirstColumn","stickyLastColumn","ariaDescribedby","columnWidth","isNestedTable","emptyStateFistMessage","emptyStateSecondMessage","translate","expandedRows","setExpandedRows","expandState","setExpandState","wrapper","handleExpandRow","index","isRowExpanded","newExpandedRows","filter","id","concat","expandedState","forEach","headerRow","map","column","cIndex","title","headerFirstSticky","headerFirst","header","push","headerLastSticky","headerLast","headerView","bodyView","fields","isRowExpandible","bodyRow","fIndex","cellContent","columFirstWrapper","expandButtonWrapper","columnFirstSticky","columnFirst","col","width","columnLastSticky","columnLast","inspectButton","nestedRow","nestedRowCellule","includes","length","table","theadNested","thead","contextTypes","skin","childContextTypes"],"sources":["../../../src/molecule/expandible-actionable-table/index.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport classnames from 'classnames';\nimport {get, isString, size, includes, isEmpty} from 'lodash/fp';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport StatusItem from '../../atom/status-item';\nimport BulkProgressBar from '../bulk-progress-bar';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport Provider, {GetTranslateFromContext} from '../../atom/provider';\nimport BulletPointMenuButton from '../bullet-point-menu-button';\nimport ButtonLink from '../../atom/button-link';\nimport ErrorsTable from '../errors-table';\nimport EmptySearchResult from '../../atom/empty-search-result';\nimport style from './style.css';\nimport {ExpandState, Field, LastField, NestedRow, Props, propTypes} from './types';\n\nconst buildField = (field: Field) => {\n if (isString(field)) return field;\n const {componentType} = field;\n switch (componentType) {\n case 'status':\n return (\n <div className={style.statusItemWrapper}>\n <StatusItem {...field} />\n </div>\n );\n case 'progress-bar':\n return <BulkProgressBar {...field} />;\n }\n};\n\nconst buildLastField = (lastField: LastField) => {\n const {componentType} = lastField;\n switch (componentType) {\n case 'menu':\n return <BulletPointMenuButton {...lastField} />;\n case 'button-link':\n return <ButtonLink {...lastField} />;\n }\n};\n\nconst buildNestedRow = (row: NestedRow) => {\n const {componentType} = row;\n switch (componentType) {\n case 'errors-table':\n return <ErrorsTable {...row} />;\n case 'expandible-errors-table':\n return <ActionableExpandableErrorsTable {...row} />;\n }\n};\n\nconst ActionableExpandableErrorsTable = (props: Props, legacyContext: WebContextValues) => {\n const {\n columns,\n rows = [],\n lastField,\n stickyFirstColumn = false,\n stickyLastColumn = false,\n ariaDescribedby,\n columnWidth = `${100 / size(columns)}%`,\n isNestedTable = false,\n emptyStateFistMessage = '',\n emptyStateSecondMessage = ''\n } = props;\n\n const translate = GetTranslateFromContext(legacyContext);\n\n /**\n * State variable to keep track of all the expanded rows\n * By default, nothing expanded. Hence initialized with empty array.\n */\n const [expandedRows, setExpandedRows] = useState<number[]>([]);\n\n /**\n * State variable to keep track which row is currently expanded.\n */\n const [expandState, setExpandState] = useState<ExpandState>({});\n\n if (isEmpty(columns))\n return (\n <div className={style.wrapper}>\n <EmptySearchResult\n firstMessage={emptyStateFistMessage}\n secondMessage={emptyStateSecondMessage}\n isBulk\n />\n </div>\n );\n\n /**\n * This function gets called when show/hide link is clicked.\n */\n const handleExpandRow = (index: number) => () => {\n const isRowExpanded = includes(index, expandedRows);\n\n /**\n * If the row is expanded, we are here to hide it. Hence remove\n * it from the state variable. Otherwise add to it.\n */\n const newExpandedRows = isRowExpanded\n ? expandedRows.filter(id => id !== index)\n : expandedRows.concat(index);\n\n setExpandedRows(newExpandedRows);\n\n /**\n * Create a new object to update the expanded state of all rows\n * Use the newExpandedRows array to set the state of all rows that are currently expanded\n */\n const expandedState: ExpandState = {};\n newExpandedRows.forEach(id => {\n expandedState[id] = true;\n });\n\n setExpandState(expandedState);\n };\n\n const headerRow = columns.map((column, cIndex) => {\n const {title} = column;\n return (\n <th\n className={\n cIndex === 0\n ? classnames(\n stickyFirstColumn ? style.headerFirstSticky : style.headerFirst,\n style.header\n )\n : style.header\n }\n key={`${title}-${cIndex}`}\n role=\"columnheader\"\n >\n {title}\n </th>\n );\n });\n\n headerRow.push(\n <th\n className={stickyLastColumn ? style.headerLastSticky : style.headerLast}\n key=\"action-header\"\n />\n );\n const headerView = [...headerRow];\n\n const bodyView = rows.map((row, index) => {\n const {fields, isRowExpandible = false} = row;\n const bodyRow = fields.map((field, fIndex) => {\n const cellContent =\n fIndex === 0 ? (\n <div className={style.columFirstWrapper}>\n <div className={style.expandButtonWrapper}>\n {isRowExpandible ? (\n <ButtonLinkIconOnly\n onClick={handleExpandRow(index)}\n data-name={`arrowUp-button-${index}`}\n icon=\"down\"\n className={expandState[index] ? 'bulkArrowUp' : 'bulkArrowDown'}\n aria-label={translate('bulk_import.show_errors')}\n />\n ) : null}\n </div>\n {buildField(field)}\n </div>\n ) : (\n buildField(field)\n );\n return (\n <td\n className={\n fIndex === 0\n ? classnames(\n stickyFirstColumn ? style.columnFirstSticky : style.columnFirst,\n style.col\n )\n : style.col\n }\n style={{width: columnWidth}}\n key={`${field}-${fIndex}`}\n >\n {cellContent}\n </td>\n );\n });\n\n bodyRow.push(\n <td\n className={stickyLastColumn ? style.columnLastSticky : style.columnLast}\n key=\"actionHeader\"\n >\n {lastField ? (\n <div\n className={classnames({\n [style.inspectButton]: get('className', lastField) === 'bulkInspectButton'\n })}\n >\n {buildLastField(lastField)}\n </div>\n ) : null}\n </td>\n );\n const nestedRow = get('nestedRow', row);\n const nestedRowCellule =\n nestedRow && expandedRows.includes(index) ? (\n <tr key={`line-${index}-error`}>\n <td className={style.nestedRowCellule} colSpan={fields.length + 2}>\n {buildNestedRow(nestedRow)}\n </td>\n </tr>\n ) : null;\n\n return nestedRowCellule\n ? [<tr key={`line-${index}`}>{bodyRow}</tr>, nestedRowCellule]\n : [<tr key={`line-${index}`}>{bodyRow}</tr>];\n });\n\n return (\n <div className={style.wrapper}>\n <table\n {...(ariaDescribedby ? {'aria-describedby': ariaDescribedby} : {})}\n className={style.table}\n data-testid=\"expandible-actionable-table\"\n data-name=\"expandible-actionable-table\"\n >\n <thead className={isNestedTable ? style.theadNested : style.thead}>\n <tr>{headerView}</tr>\n </thead>\n <tbody>{bodyView}</tbody>\n </table>\n </div>\n );\n};\n\nActionableExpandableErrorsTable.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nActionableExpandableErrorsTable.propTypes = propTypes;\n\nexport default ActionableExpandableErrorsTable;\n"],"mappings":"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"}
@@ -132,3 +132,8 @@
132
132
  padding: 10px;
133
133
  border-top: 1px solid light;
134
134
  }
135
+
136
+ .statusItemWrapper {
137
+ width: 24px;
138
+ height: 24px;
139
+ }