@coorpacademy/components 11.18.9-alpha.2 → 11.18.10

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 (181) 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/molecule/brand-tabs/index.d.ts +1 -0
  27. package/es/molecule/brand-tabs/index.d.ts.map +1 -1
  28. package/es/molecule/brand-tabs/index.js +10 -1
  29. package/es/molecule/brand-tabs/index.js.map +1 -1
  30. package/es/molecule/brand-tabs/style.css +7 -4
  31. package/es/molecule/bulk-progress-bar/index.d.ts.map +1 -1
  32. package/es/molecule/bulk-progress-bar/index.js +4 -2
  33. package/es/molecule/bulk-progress-bar/index.js.map +1 -1
  34. package/es/molecule/bulk-progress-bar/style.css +5 -0
  35. package/es/molecule/card/index.d.ts +52 -0
  36. package/es/molecule/card/index.d.ts.map +1 -1
  37. package/es/molecule/card/index.js +3 -2
  38. package/es/molecule/card/index.js.map +1 -1
  39. package/es/molecule/dashboard/cards-list/index.d.ts +56 -1
  40. package/es/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  41. package/es/molecule/dashboard/cards-list/index.js +39 -5
  42. package/es/molecule/dashboard/cards-list/index.js.map +1 -1
  43. package/es/molecule/dashboard/cards-list/prop-types.d.ts +14 -0
  44. package/es/molecule/dashboard/cards-list/prop-types.d.ts.map +1 -0
  45. package/es/molecule/dashboard/cards-list/prop-types.js +2 -0
  46. package/es/molecule/dashboard/cards-list/prop-types.js.map +1 -0
  47. package/es/molecule/draggable-list/index.d.ts +32 -12
  48. package/es/molecule/expandible-actionable-table/index.d.ts +3 -0
  49. package/es/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  50. package/es/molecule/expandible-actionable-table/index.js +15 -2
  51. package/es/molecule/expandible-actionable-table/index.js.map +1 -1
  52. package/es/molecule/expandible-actionable-table/style.css +5 -0
  53. package/es/molecule/expandible-actionable-table/types.d.ts +5 -0
  54. package/es/molecule/expandible-actionable-table/types.d.ts.map +1 -1
  55. package/es/molecule/expandible-actionable-table/types.js +3 -1
  56. package/es/molecule/expandible-actionable-table/types.js.map +1 -1
  57. package/es/molecule/review-header-steps/index.d.ts.map +1 -1
  58. package/es/molecule/review-header-steps/index.js +3 -4
  59. package/es/molecule/review-header-steps/index.js.map +1 -1
  60. package/es/molecule/review-header-steps/prop-types.d.ts +1 -0
  61. package/es/molecule/review-header-steps/prop-types.d.ts.map +1 -1
  62. package/es/molecule/review-header-steps/style.css +6 -1
  63. package/es/organism/list-item/index.d.ts +44 -13
  64. package/es/organism/list-item/index.d.ts.map +1 -1
  65. package/es/organism/list-item/index.js +72 -38
  66. package/es/organism/list-item/index.js.map +1 -1
  67. package/es/organism/list-item/style.css +28 -5
  68. package/es/organism/list-items/index.d.ts +36 -12
  69. package/es/organism/list-items/index.d.ts.map +1 -1
  70. package/es/organism/list-items/index.js +19 -4
  71. package/es/organism/list-items/index.js.map +1 -1
  72. package/es/organism/list-items/style.css +42 -0
  73. package/es/organism/review-header/types.d.ts +1 -0
  74. package/es/organism/review-header/types.d.ts.map +1 -1
  75. package/es/organism/wizard-contents/index.d.ts +67 -0
  76. package/es/organism/wizard-contents/index.d.ts.map +1 -1
  77. package/es/organism/wizard-contents/index.js +37 -4
  78. package/es/organism/wizard-contents/index.js.map +1 -1
  79. package/es/organism/wizard-contents/style.css +22 -0
  80. package/es/template/app-player/popin-end/index.d.ts +52 -1
  81. package/es/template/app-player/popin-end/summary.d.ts +52 -1
  82. package/es/template/app-review/index.d.ts +1 -0
  83. package/es/template/app-review/index.d.ts.map +1 -1
  84. package/es/template/app-review/player/prop-types.d.ts +1 -0
  85. package/es/template/app-review/player/prop-types.d.ts.map +1 -1
  86. package/es/template/app-review/prop-types.d.ts +1 -0
  87. package/es/template/app-review/prop-types.d.ts.map +1 -1
  88. package/es/template/back-office/brand-update/index.d.ts +103 -12
  89. package/es/template/common/search-page/index.d.ts +52 -1
  90. package/es/template/teams-dashboard/index.d.ts +52 -1
  91. package/lib/atom/button-menu/index.d.ts.map +1 -1
  92. package/lib/atom/button-menu/index.js +1 -1
  93. package/lib/atom/button-menu/index.js.map +1 -1
  94. package/lib/atom/button-menu/style.css +10 -0
  95. package/lib/atom/button-menu/types.d.ts +1 -1
  96. package/lib/atom/button-menu/types.d.ts.map +1 -1
  97. package/lib/atom/button-menu/types.js +1 -1
  98. package/lib/atom/button-menu/types.js.map +1 -1
  99. package/lib/atom/empty-search-result/index.d.ts +1 -0
  100. package/lib/atom/empty-search-result/index.d.ts.map +1 -1
  101. package/lib/atom/empty-search-result/index.js +6 -4
  102. package/lib/atom/empty-search-result/index.js.map +1 -1
  103. package/lib/atom/empty-search-result/style.css +16 -1
  104. package/lib/atom/status-item/index.d.ts +1 -0
  105. package/lib/atom/status-item/index.d.ts.map +1 -1
  106. package/lib/atom/status-item/index.js +3 -2
  107. package/lib/atom/status-item/index.js.map +1 -1
  108. package/lib/atom/status-item/style.css +15 -17
  109. package/lib/atom/status-item/types.d.ts +2 -0
  110. package/lib/atom/status-item/types.d.ts.map +1 -1
  111. package/lib/atom/status-item/types.js +1 -0
  112. package/lib/atom/status-item/types.js.map +1 -1
  113. package/lib/atom/tag/index.js +4 -4
  114. package/lib/atom/tag/index.js.map +1 -1
  115. package/lib/atom/tag/style.css +11 -8
  116. package/lib/molecule/brand-tabs/index.d.ts +1 -0
  117. package/lib/molecule/brand-tabs/index.d.ts.map +1 -1
  118. package/lib/molecule/brand-tabs/index.js +11 -1
  119. package/lib/molecule/brand-tabs/index.js.map +1 -1
  120. package/lib/molecule/brand-tabs/style.css +7 -4
  121. package/lib/molecule/bulk-progress-bar/index.d.ts.map +1 -1
  122. package/lib/molecule/bulk-progress-bar/index.js +4 -2
  123. package/lib/molecule/bulk-progress-bar/index.js.map +1 -1
  124. package/lib/molecule/bulk-progress-bar/style.css +5 -0
  125. package/lib/molecule/card/index.d.ts +52 -0
  126. package/lib/molecule/card/index.d.ts.map +1 -1
  127. package/lib/molecule/card/index.js +5 -3
  128. package/lib/molecule/card/index.js.map +1 -1
  129. package/lib/molecule/dashboard/cards-list/index.d.ts +56 -1
  130. package/lib/molecule/dashboard/cards-list/index.d.ts.map +1 -1
  131. package/lib/molecule/dashboard/cards-list/index.js +43 -5
  132. package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
  133. package/lib/molecule/dashboard/cards-list/prop-types.d.ts +14 -0
  134. package/lib/molecule/dashboard/cards-list/prop-types.d.ts.map +1 -0
  135. package/lib/molecule/dashboard/cards-list/prop-types.js +2 -0
  136. package/lib/molecule/dashboard/cards-list/prop-types.js.map +1 -0
  137. package/lib/molecule/draggable-list/index.d.ts +32 -12
  138. package/lib/molecule/expandible-actionable-table/index.d.ts +3 -0
  139. package/lib/molecule/expandible-actionable-table/index.d.ts.map +1 -1
  140. package/lib/molecule/expandible-actionable-table/index.js +17 -2
  141. package/lib/molecule/expandible-actionable-table/index.js.map +1 -1
  142. package/lib/molecule/expandible-actionable-table/style.css +5 -0
  143. package/lib/molecule/expandible-actionable-table/types.d.ts +5 -0
  144. package/lib/molecule/expandible-actionable-table/types.d.ts.map +1 -1
  145. package/lib/molecule/expandible-actionable-table/types.js +3 -1
  146. package/lib/molecule/expandible-actionable-table/types.js.map +1 -1
  147. package/lib/molecule/review-header-steps/index.d.ts.map +1 -1
  148. package/lib/molecule/review-header-steps/index.js +3 -4
  149. package/lib/molecule/review-header-steps/index.js.map +1 -1
  150. package/lib/molecule/review-header-steps/prop-types.d.ts +1 -0
  151. package/lib/molecule/review-header-steps/prop-types.d.ts.map +1 -1
  152. package/lib/molecule/review-header-steps/style.css +6 -1
  153. package/lib/organism/list-item/index.d.ts +44 -13
  154. package/lib/organism/list-item/index.d.ts.map +1 -1
  155. package/lib/organism/list-item/index.js +73 -37
  156. package/lib/organism/list-item/index.js.map +1 -1
  157. package/lib/organism/list-item/style.css +28 -5
  158. package/lib/organism/list-items/index.d.ts +36 -12
  159. package/lib/organism/list-items/index.d.ts.map +1 -1
  160. package/lib/organism/list-items/index.js +21 -4
  161. package/lib/organism/list-items/index.js.map +1 -1
  162. package/lib/organism/list-items/style.css +42 -0
  163. package/lib/organism/review-header/types.d.ts +1 -0
  164. package/lib/organism/review-header/types.d.ts.map +1 -1
  165. package/lib/organism/wizard-contents/index.d.ts +67 -0
  166. package/lib/organism/wizard-contents/index.d.ts.map +1 -1
  167. package/lib/organism/wizard-contents/index.js +39 -4
  168. package/lib/organism/wizard-contents/index.js.map +1 -1
  169. package/lib/organism/wizard-contents/style.css +22 -0
  170. package/lib/template/app-player/popin-end/index.d.ts +52 -1
  171. package/lib/template/app-player/popin-end/summary.d.ts +52 -1
  172. package/lib/template/app-review/index.d.ts +1 -0
  173. package/lib/template/app-review/index.d.ts.map +1 -1
  174. package/lib/template/app-review/player/prop-types.d.ts +1 -0
  175. package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
  176. package/lib/template/app-review/prop-types.d.ts +1 -0
  177. package/lib/template/app-review/prop-types.d.ts.map +1 -1
  178. package/lib/template/back-office/brand-update/index.d.ts +103 -12
  179. package/lib/template/common/search-page/index.d.ts +52 -1
  180. package/lib/template/teams-dashboard/index.d.ts +52 -1
  181. package/package.json +2 -2
@@ -1,17 +1,72 @@
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
+ 'aria-label': PropTypes.Requireable<string>;
44
+ 'background-aria-label': PropTypes.Requireable<string>;
45
+ 'favorite-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
46
+ favorite: PropTypes.Requireable<string>;
47
+ addToFavorite: PropTypes.Requireable<string>;
48
+ removeFromFavorite: PropTypes.Requireable<string>;
49
+ }>>;
50
+ 'selectable-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
51
+ select: PropTypes.Requireable<string>;
52
+ unSelect: PropTypes.Requireable<string>;
53
+ }>>;
54
+ 'customer-aria-label': PropTypes.Requireable<string>;
55
+ 'badge-aria-label': PropTypes.Requireable<string>;
56
+ 'disabled-aria-label': PropTypes.Requireable<string>;
57
+ 'card-content-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
58
+ author: PropTypes.Requireable<string>;
59
+ progression: PropTypes.Requireable<string>;
60
+ adaptive: PropTypes.Requireable<string>;
61
+ }>>;
62
+ }> | null | undefined)[]>;
9
63
  onScroll: PropTypes.Requireable<(...args: any[]) => any>;
10
64
  onShowMore: PropTypes.Requireable<(...args: any[]) => any>;
11
65
  'arrows-aria-label': PropTypes.Requireable<PropTypes.InferProps<{
12
66
  showMoreOnLeftAriaLabel: PropTypes.Requireable<string>;
13
67
  showMoreOnRightAriaLabel: PropTypes.Requireable<string>;
14
68
  }>>;
69
+ testingSizes: PropTypes.Requireable<any>;
15
70
  };
16
71
  static contextTypes: {
17
72
  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"}
@@ -37,10 +37,14 @@ var _novaIcons = require("@coorpacademy/nova-icons");
37
37
 
38
38
  var _provider = _interopRequireDefault(require("../../../atom/provider"));
39
39
 
40
- var _card = _interopRequireDefault(require("../../card"));
40
+ var _card = _interopRequireWildcard(require("../../card"));
41
41
 
42
42
  var _style = _interopRequireDefault(require("./style.css"));
43
43
 
44
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
45
+
46
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
+
44
48
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
45
49
 
46
50
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -114,6 +118,10 @@ IconView.propTypes = process.env.NODE_ENV !== "production" ? {
114
118
  } : {};
115
119
 
116
120
  class CardsList extends _react.default.PureComponent {
121
+ /**
122
+ * IMPORTANT: update prop-types.ts too, 1st a migration of tests
123
+ * is intended, then, a TS + functional refactor is planned.
124
+ */
117
125
  constructor(props) {
118
126
  super(props);
119
127
  this.state = {
@@ -134,7 +142,22 @@ class CardsList extends _react.default.PureComponent {
134
142
  this.updatePages = this.updatePages.bind(this);
135
143
  this.setCardsWrapper = this.setCardsWrapper.bind(this);
136
144
  this.getScrollWidth = this.getScrollWidth.bind(this);
137
- this.handleResize = this.handleResize.bind(this);
145
+ this.handleResize = this.handleResize.bind(this); // for testing purposes only - no other way to test this polluted component
146
+
147
+ if (props.testingSizes) {
148
+ const {
149
+ offsetWidth,
150
+ scrollLeft,
151
+ maxPages,
152
+ possiblePages,
153
+ possiblePositions
154
+ } = props.testingSizes;
155
+ this.state.offsetWidth = offsetWidth;
156
+ this.state.scrollLeft = scrollLeft;
157
+ this.state.maxPages = maxPages;
158
+ this.state.possiblePages = possiblePages;
159
+ this.state.possiblePositions = possiblePositions;
160
+ }
138
161
  }
139
162
 
140
163
  componentDidMount() {
@@ -173,6 +196,8 @@ class CardsList extends _react.default.PureComponent {
173
196
 
174
197
  this.updateState.cancel();
175
198
  }
199
+ /* istanbul ignore next */
200
+
176
201
 
177
202
  handleResize() {
178
203
  const {
@@ -180,6 +205,8 @@ class CardsList extends _react.default.PureComponent {
180
205
  } = this.props;
181
206
  this.updatePaginationState(cards);
182
207
  }
208
+ /* istanbul ignore next */
209
+
183
210
 
184
211
  updatePaginationState(cards) {
185
212
  const {
@@ -214,6 +241,8 @@ class CardsList extends _react.default.PureComponent {
214
241
  offsetWidth: this.cardsWrapper?.offsetWidth
215
242
  });
216
243
  }
244
+ /* istanbul ignore next */
245
+
217
246
 
218
247
  getScrollWidth(index) {
219
248
  const {
@@ -222,6 +251,8 @@ class CardsList extends _react.default.PureComponent {
222
251
  const card = cards[index];
223
252
  return computeWidth(card);
224
253
  }
254
+ /* istanbul ignore next */
255
+
225
256
 
226
257
  handleScroll() {
227
258
  const scrollLeft = this.cardsWrapper?.scrollLeft;
@@ -357,7 +388,11 @@ class CardsList extends _react.default.PureComponent {
357
388
  }, showMoreView, leftArrowView, rightArrowView) : null;
358
389
  return /*#__PURE__*/_react.default.createElement("div", {
359
390
  className: _style.default.wrapper,
360
- "data-name": "cardsList"
391
+ "data-name": "cardsList",
392
+ "data-max-pages": `${maxPages}` // eslint-disable-next-line react/destructuring-assignment
393
+ ,
394
+ "data-actual-page": `${this.state.actualPage}`,
395
+ "data-scroll-left": this.cardsWrapper?.scrollLeft
361
396
  }, /*#__PURE__*/_react.default.createElement("div", {
362
397
  className: _style.default.list
363
398
  }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
@@ -365,6 +400,7 @@ class CardsList extends _react.default.PureComponent {
365
400
  className: _style.default.header
366
401
  }, titleView, switchPagesView), /*#__PURE__*/_react.default.createElement("div", {
367
402
  className: _style.default.cards,
403
+ "data-testid": "cards-view-wrapper",
368
404
  ref: this.setCardsWrapper
369
405
  }, cardsView))));
370
406
  }
@@ -380,13 +416,15 @@ CardsList.propTypes = process.env.NODE_ENV !== "production" ? {
380
416
  dataName: _propTypes.default.string,
381
417
  title: _propTypes.default.string,
382
418
  showMore: _propTypes.default.string,
383
- cards: _propTypes.default.arrayOf(_propTypes.default.shape(_card.default.protoTypes)),
419
+ cards: _propTypes.default.arrayOf(_propTypes.default.shape(_card.cardPropTypes)),
384
420
  onScroll: _propTypes.default.func,
385
421
  onShowMore: _propTypes.default.func,
386
422
  'arrows-aria-label': _propTypes.default.shape({
387
423
  showMoreOnLeftAriaLabel: _propTypes.default.string,
388
424
  showMoreOnRightAriaLabel: _propTypes.default.string
389
- })
425
+ }),
426
+ // eslint-disable-next-line react/forbid-prop-types
427
+ testingSizes: _propTypes.default.any
390
428
  } : {};
391
429
  var _default = CardsList;
392
430
  exports.default = _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","Provider","childContextTypes","propTypes","PropTypes","func","string","IconView","context","contentType","ICONS","chapter","TimerIcon","course","LearnerIcon","dark","IconType","color","style","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","React","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","Card","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":["ShowMoreLink","props","onShowMore","showMore","className","contextTypes","skin","Provider","childContextTypes","propTypes","PropTypes","func","string","IconView","context","contentType","ICONS","chapter","TimerIcon","course","LearnerIcon","dark","IconType","color","style","icon","computeWidth","card","type","nextPage","page","maxPages","CardsList","React","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","cardPropTypes","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
+ "use strict";
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"}
@@ -3,6 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
 
6
+ var _isEmpty2 = _interopRequireDefault(require("lodash/fp/isEmpty"));
7
+
6
8
  var _includes2 = _interopRequireDefault(require("lodash/fp/includes"));
7
9
 
8
10
  var _size2 = _interopRequireDefault(require("lodash/fp/size"));
@@ -29,6 +31,8 @@ var _buttonLink = _interopRequireDefault(require("../../atom/button-link"));
29
31
 
30
32
  var _errorsTable = _interopRequireDefault(require("../errors-table"));
31
33
 
34
+ var _emptySearchResult = _interopRequireDefault(require("../../atom/empty-search-result"));
35
+
32
36
  var _style = _interopRequireDefault(require("./style.css"));
33
37
 
34
38
  var _types = require("./types");
@@ -49,7 +53,9 @@ const buildField = field => {
49
53
 
50
54
  switch (componentType) {
51
55
  case 'status':
52
- return /*#__PURE__*/_react.default.createElement(_statusItem.default, field);
56
+ return /*#__PURE__*/_react.default.createElement("div", {
57
+ className: _style.default.statusItemWrapper
58
+ }, /*#__PURE__*/_react.default.createElement(_statusItem.default, field));
53
59
 
54
60
  case 'progress-bar':
55
61
  return /*#__PURE__*/_react.default.createElement(_bulkProgressBar.default, field);
@@ -93,7 +99,9 @@ const ActionableExpandableErrorsTable = (props, legacyContext) => {
93
99
  stickyLastColumn = false,
94
100
  ariaDescribedby,
95
101
  columnWidth = `${100 / (0, _size2.default)(columns)}%`,
96
- isNestedTable = false
102
+ isNestedTable = false,
103
+ emptyStateFistMessage = '',
104
+ emptyStateSecondMessage = ''
97
105
  } = props;
98
106
  const translate = (0, _provider.GetTranslateFromContext)(legacyContext);
99
107
  /**
@@ -107,6 +115,13 @@ const ActionableExpandableErrorsTable = (props, legacyContext) => {
107
115
  */
108
116
 
109
117
  const [expandState, setExpandState] = (0, _react.useState)({});
118
+ if ((0, _isEmpty2.default)(columns)) return /*#__PURE__*/_react.default.createElement("div", {
119
+ className: _style.default.wrapper
120
+ }, /*#__PURE__*/_react.default.createElement(_emptySearchResult.default, {
121
+ firstMessage: emptyStateFistMessage,
122
+ secondMessage: emptyStateSecondMessage,
123
+ isBulk: true
124
+ }));
110
125
  /**
111
126
  * This function gets called when show/hide link is clicked.
112
127
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["buildField","field","componentType","buildLastField","lastField","buildNestedRow","row","ActionableExpandableErrorsTable","props","legacyContext","columns","rows","stickyFirstColumn","stickyLastColumn","ariaDescribedby","columnWidth","isNestedTable","translate","GetTranslateFromContext","expandedRows","setExpandedRows","useState","expandState","setExpandState","handleExpandRow","index","isRowExpanded","newExpandedRows","filter","id","concat","expandedState","forEach","headerRow","map","column","cIndex","title","classnames","style","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","Provider","childContextTypes","propTypes"],"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":["buildField","field","componentType","style","statusItemWrapper","buildLastField","lastField","buildNestedRow","row","ActionableExpandableErrorsTable","props","legacyContext","columns","rows","stickyFirstColumn","stickyLastColumn","ariaDescribedby","columnWidth","isNestedTable","emptyStateFistMessage","emptyStateSecondMessage","translate","GetTranslateFromContext","expandedRows","setExpandedRows","useState","expandState","setExpandState","wrapper","handleExpandRow","index","isRowExpanded","newExpandedRows","filter","id","concat","expandedState","forEach","headerRow","map","column","cIndex","title","classnames","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","Provider","childContextTypes","propTypes"],"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
+ }
@@ -12,6 +12,7 @@ export declare const propTypes: {
12
12
  fields: PropTypes.Requireable<(NonNullable<string | PropTypes.InferProps<{
13
13
  type: PropTypes.Requireable<string>;
14
14
  current: PropTypes.Requireable<boolean>;
15
+ selected: PropTypes.Requireable<boolean>;
15
16
  icon: PropTypes.Requireable<string>;
16
17
  value: PropTypes.Requireable<string>;
17
18
  }> | null | undefined> | null | undefined)[]>;
@@ -74,6 +75,8 @@ export declare const propTypes: {
74
75
  isBulkMenu: PropTypes.Requireable<boolean>;
75
76
  }> | null | undefined>>;
76
77
  isNestedTable: PropTypes.Requireable<boolean>;
78
+ emptyStateFirstMessage: PropTypes.Requireable<string>;
79
+ emptyStateSecondMessage: PropTypes.Requireable<string>;
77
80
  };
78
81
  export declare type Field = string | (StatusItemProps & {
79
82
  componentType: 'status';
@@ -109,6 +112,8 @@ export declare type Props = {
109
112
  ariaDescribedby?: string;
110
113
  lastField?: LastField;
111
114
  isNestedTable?: boolean;
115
+ emptyStateFistMessage?: string;
116
+ emptyStateSecondMessage?: string;
112
117
  };
113
118
  export declare type ExpandState = {
114
119
  [key: number]: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandible-actionable-table/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAInC,OAAO,EAAC,0BAA0B,EAAC,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,KAAK,IAAI,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAC,KAAK,IAAI,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AA0BzE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBrB,CAAC;AAEF,oBAAY,KAAK,GACb,MAAM,GACN,CAAC,eAAe,GAAG;IACjB,aAAa,EAAE,QAAQ,CAAC;CACzB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC,CAAC;AAEP,oBAAY,SAAS,GACjB,CAAC,eAAe,GAAG;IACjB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC,GACF,CAAC,0BAA0B,GAAG;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEP,oBAAY,SAAS,GACjB,CAAC,gBAAgB,GAAG;IAClB,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC,GACF,CAAC,KAAK,GAAG;IACP,aAAa,EAAE,yBAAyB,CAAC;CAC1C,CAAC,CAAC;AAEP,oBAAY,MAAM,GAAG;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC;AACrC,oBAAY,GAAG,GAAG;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AACF,oBAAY,OAAO,GAAG,MAAM,EAAE,CAAC;AAC/B,oBAAY,IAAI,GAAG,GAAG,EAAE,CAAC;AAEzB,oBAAY,KAAK,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,oBAAY,WAAW,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandible-actionable-table/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAInC,OAAO,EAAC,0BAA0B,EAAC,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAC,KAAK,IAAI,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAC,KAAK,IAAI,oBAAoB,EAAC,MAAM,4BAA4B,CAAC;AA0BzE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBrB,CAAC;AAEF,oBAAY,KAAK,GACb,MAAM,GACN,CAAC,eAAe,GAAG;IACjB,aAAa,EAAE,QAAQ,CAAC;CACzB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC,CAAC;AAEP,oBAAY,SAAS,GACjB,CAAC,eAAe,GAAG;IACjB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC,GACF,CAAC,0BAA0B,GAAG;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEP,oBAAY,SAAS,GACjB,CAAC,gBAAgB,GAAG;IAClB,aAAa,EAAE,cAAc,CAAC;CAC/B,CAAC,GACF,CAAC,KAAK,GAAG;IACP,aAAa,EAAE,yBAAyB,CAAC;CAC1C,CAAC,CAAC;AAEP,oBAAY,MAAM,GAAG;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC;AACrC,oBAAY,GAAG,GAAG;IAChB,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AACF,oBAAY,OAAO,GAAG,MAAM,EAAE,CAAC;AAC/B,oBAAY,IAAI,GAAG,GAAG,EAAE,CAAC;AAEzB,oBAAY,KAAK,GAAG;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,oBAAY,WAAW,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC"}
@@ -41,7 +41,9 @@ const propTypes = {
41
41
  })), _propTypes.default.shape(_extends({}, _bulletPointMenuButton.default.propTypes, {
42
42
  componentType: _propTypes.default.oneOf(['menu'])
43
43
  }))]),
44
- isNestedTable: _propTypes.default.bool
44
+ isNestedTable: _propTypes.default.bool,
45
+ emptyStateFirstMessage: _propTypes.default.string,
46
+ emptyStateSecondMessage: _propTypes.default.string
45
47
  };
46
48
  exports.propTypes = propTypes;
47
49
  //# sourceMappingURL=types.js.map