@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.
- package/es/atom/button-menu/index.d.ts.map +1 -1
- package/es/atom/button-menu/index.js +1 -1
- package/es/atom/button-menu/index.js.map +1 -1
- package/es/atom/button-menu/style.css +10 -0
- package/es/atom/button-menu/types.d.ts +1 -1
- package/es/atom/button-menu/types.d.ts.map +1 -1
- package/es/atom/button-menu/types.js +1 -1
- package/es/atom/button-menu/types.js.map +1 -1
- package/es/atom/empty-search-result/index.d.ts +1 -0
- package/es/atom/empty-search-result/index.d.ts.map +1 -1
- package/es/atom/empty-search-result/index.js +6 -4
- package/es/atom/empty-search-result/index.js.map +1 -1
- package/es/atom/empty-search-result/style.css +16 -1
- package/es/atom/status-item/index.d.ts +1 -0
- package/es/atom/status-item/index.d.ts.map +1 -1
- package/es/atom/status-item/index.js +3 -2
- package/es/atom/status-item/index.js.map +1 -1
- package/es/atom/status-item/style.css +15 -17
- package/es/atom/status-item/types.d.ts +2 -0
- package/es/atom/status-item/types.d.ts.map +1 -1
- package/es/atom/status-item/types.js +1 -0
- package/es/atom/status-item/types.js.map +1 -1
- package/es/atom/tag/index.js +4 -4
- package/es/atom/tag/index.js.map +1 -1
- package/es/atom/tag/style.css +11 -8
- package/es/molecule/brand-tabs/index.d.ts +1 -0
- package/es/molecule/brand-tabs/index.d.ts.map +1 -1
- package/es/molecule/brand-tabs/index.js +10 -1
- package/es/molecule/brand-tabs/index.js.map +1 -1
- package/es/molecule/brand-tabs/style.css +7 -4
- package/es/molecule/bulk-progress-bar/index.d.ts.map +1 -1
- package/es/molecule/bulk-progress-bar/index.js +4 -2
- package/es/molecule/bulk-progress-bar/index.js.map +1 -1
- package/es/molecule/bulk-progress-bar/style.css +5 -0
- package/es/molecule/card/index.d.ts +52 -0
- package/es/molecule/card/index.d.ts.map +1 -1
- package/es/molecule/card/index.js +3 -2
- package/es/molecule/card/index.js.map +1 -1
- package/es/molecule/dashboard/cards-list/index.d.ts +56 -1
- package/es/molecule/dashboard/cards-list/index.d.ts.map +1 -1
- package/es/molecule/dashboard/cards-list/index.js +39 -5
- package/es/molecule/dashboard/cards-list/index.js.map +1 -1
- package/es/molecule/dashboard/cards-list/prop-types.d.ts +14 -0
- package/es/molecule/dashboard/cards-list/prop-types.d.ts.map +1 -0
- package/es/molecule/dashboard/cards-list/prop-types.js +2 -0
- package/es/molecule/dashboard/cards-list/prop-types.js.map +1 -0
- package/es/molecule/draggable-list/index.d.ts +32 -12
- package/es/molecule/expandible-actionable-table/index.d.ts +3 -0
- package/es/molecule/expandible-actionable-table/index.d.ts.map +1 -1
- package/es/molecule/expandible-actionable-table/index.js +15 -2
- package/es/molecule/expandible-actionable-table/index.js.map +1 -1
- package/es/molecule/expandible-actionable-table/style.css +5 -0
- package/es/molecule/expandible-actionable-table/types.d.ts +5 -0
- package/es/molecule/expandible-actionable-table/types.d.ts.map +1 -1
- package/es/molecule/expandible-actionable-table/types.js +3 -1
- package/es/molecule/expandible-actionable-table/types.js.map +1 -1
- package/es/molecule/review-header-steps/index.d.ts.map +1 -1
- package/es/molecule/review-header-steps/index.js +3 -4
- package/es/molecule/review-header-steps/index.js.map +1 -1
- package/es/molecule/review-header-steps/prop-types.d.ts +1 -0
- package/es/molecule/review-header-steps/prop-types.d.ts.map +1 -1
- package/es/molecule/review-header-steps/style.css +6 -1
- package/es/organism/list-item/index.d.ts +44 -13
- package/es/organism/list-item/index.d.ts.map +1 -1
- package/es/organism/list-item/index.js +72 -38
- package/es/organism/list-item/index.js.map +1 -1
- package/es/organism/list-item/style.css +28 -5
- package/es/organism/list-items/index.d.ts +36 -12
- package/es/organism/list-items/index.d.ts.map +1 -1
- package/es/organism/list-items/index.js +19 -4
- package/es/organism/list-items/index.js.map +1 -1
- package/es/organism/list-items/style.css +42 -0
- package/es/organism/review-header/types.d.ts +1 -0
- package/es/organism/review-header/types.d.ts.map +1 -1
- package/es/organism/wizard-contents/index.d.ts +67 -0
- package/es/organism/wizard-contents/index.d.ts.map +1 -1
- package/es/organism/wizard-contents/index.js +37 -4
- package/es/organism/wizard-contents/index.js.map +1 -1
- package/es/organism/wizard-contents/style.css +22 -0
- package/es/template/app-player/popin-end/index.d.ts +52 -1
- package/es/template/app-player/popin-end/summary.d.ts +52 -1
- package/es/template/app-review/index.d.ts +1 -0
- package/es/template/app-review/index.d.ts.map +1 -1
- package/es/template/app-review/player/prop-types.d.ts +1 -0
- package/es/template/app-review/player/prop-types.d.ts.map +1 -1
- package/es/template/app-review/prop-types.d.ts +1 -0
- package/es/template/app-review/prop-types.d.ts.map +1 -1
- package/es/template/back-office/brand-update/index.d.ts +103 -12
- package/es/template/common/search-page/index.d.ts +52 -1
- package/es/template/teams-dashboard/index.d.ts +52 -1
- package/lib/atom/button-menu/index.d.ts.map +1 -1
- package/lib/atom/button-menu/index.js +1 -1
- package/lib/atom/button-menu/index.js.map +1 -1
- package/lib/atom/button-menu/style.css +10 -0
- package/lib/atom/button-menu/types.d.ts +1 -1
- package/lib/atom/button-menu/types.d.ts.map +1 -1
- package/lib/atom/button-menu/types.js +1 -1
- package/lib/atom/button-menu/types.js.map +1 -1
- package/lib/atom/empty-search-result/index.d.ts +1 -0
- package/lib/atom/empty-search-result/index.d.ts.map +1 -1
- package/lib/atom/empty-search-result/index.js +6 -4
- package/lib/atom/empty-search-result/index.js.map +1 -1
- package/lib/atom/empty-search-result/style.css +16 -1
- package/lib/atom/status-item/index.d.ts +1 -0
- package/lib/atom/status-item/index.d.ts.map +1 -1
- package/lib/atom/status-item/index.js +3 -2
- package/lib/atom/status-item/index.js.map +1 -1
- package/lib/atom/status-item/style.css +15 -17
- package/lib/atom/status-item/types.d.ts +2 -0
- package/lib/atom/status-item/types.d.ts.map +1 -1
- package/lib/atom/status-item/types.js +1 -0
- package/lib/atom/status-item/types.js.map +1 -1
- package/lib/atom/tag/index.js +4 -4
- package/lib/atom/tag/index.js.map +1 -1
- package/lib/atom/tag/style.css +11 -8
- package/lib/molecule/brand-tabs/index.d.ts +1 -0
- package/lib/molecule/brand-tabs/index.d.ts.map +1 -1
- package/lib/molecule/brand-tabs/index.js +11 -1
- package/lib/molecule/brand-tabs/index.js.map +1 -1
- package/lib/molecule/brand-tabs/style.css +7 -4
- package/lib/molecule/bulk-progress-bar/index.d.ts.map +1 -1
- package/lib/molecule/bulk-progress-bar/index.js +4 -2
- package/lib/molecule/bulk-progress-bar/index.js.map +1 -1
- package/lib/molecule/bulk-progress-bar/style.css +5 -0
- package/lib/molecule/card/index.d.ts +52 -0
- package/lib/molecule/card/index.d.ts.map +1 -1
- package/lib/molecule/card/index.js +5 -3
- package/lib/molecule/card/index.js.map +1 -1
- package/lib/molecule/dashboard/cards-list/index.d.ts +56 -1
- package/lib/molecule/dashboard/cards-list/index.d.ts.map +1 -1
- package/lib/molecule/dashboard/cards-list/index.js +43 -5
- package/lib/molecule/dashboard/cards-list/index.js.map +1 -1
- package/lib/molecule/dashboard/cards-list/prop-types.d.ts +14 -0
- package/lib/molecule/dashboard/cards-list/prop-types.d.ts.map +1 -0
- package/lib/molecule/dashboard/cards-list/prop-types.js +2 -0
- package/lib/molecule/dashboard/cards-list/prop-types.js.map +1 -0
- package/lib/molecule/draggable-list/index.d.ts +32 -12
- package/lib/molecule/expandible-actionable-table/index.d.ts +3 -0
- package/lib/molecule/expandible-actionable-table/index.d.ts.map +1 -1
- package/lib/molecule/expandible-actionable-table/index.js +17 -2
- package/lib/molecule/expandible-actionable-table/index.js.map +1 -1
- package/lib/molecule/expandible-actionable-table/style.css +5 -0
- package/lib/molecule/expandible-actionable-table/types.d.ts +5 -0
- package/lib/molecule/expandible-actionable-table/types.d.ts.map +1 -1
- package/lib/molecule/expandible-actionable-table/types.js +3 -1
- package/lib/molecule/expandible-actionable-table/types.js.map +1 -1
- package/lib/molecule/review-header-steps/index.d.ts.map +1 -1
- package/lib/molecule/review-header-steps/index.js +3 -4
- package/lib/molecule/review-header-steps/index.js.map +1 -1
- package/lib/molecule/review-header-steps/prop-types.d.ts +1 -0
- package/lib/molecule/review-header-steps/prop-types.d.ts.map +1 -1
- package/lib/molecule/review-header-steps/style.css +6 -1
- package/lib/organism/list-item/index.d.ts +44 -13
- package/lib/organism/list-item/index.d.ts.map +1 -1
- package/lib/organism/list-item/index.js +73 -37
- package/lib/organism/list-item/index.js.map +1 -1
- package/lib/organism/list-item/style.css +28 -5
- package/lib/organism/list-items/index.d.ts +36 -12
- package/lib/organism/list-items/index.d.ts.map +1 -1
- package/lib/organism/list-items/index.js +21 -4
- package/lib/organism/list-items/index.js.map +1 -1
- package/lib/organism/list-items/style.css +42 -0
- package/lib/organism/review-header/types.d.ts +1 -0
- package/lib/organism/review-header/types.d.ts.map +1 -1
- package/lib/organism/wizard-contents/index.d.ts +67 -0
- package/lib/organism/wizard-contents/index.d.ts.map +1 -1
- package/lib/organism/wizard-contents/index.js +39 -4
- package/lib/organism/wizard-contents/index.js.map +1 -1
- package/lib/organism/wizard-contents/style.css +22 -0
- package/lib/template/app-player/popin-end/index.d.ts +52 -1
- package/lib/template/app-player/popin-end/summary.d.ts +52 -1
- package/lib/template/app-review/index.d.ts +1 -0
- package/lib/template/app-review/index.d.ts.map +1 -1
- package/lib/template/app-review/player/prop-types.d.ts +1 -0
- package/lib/template/app-review/player/prop-types.d.ts.map +1 -1
- package/lib/template/app-review/prop-types.d.ts +1 -0
- package/lib/template/app-review/prop-types.d.ts.map +1 -1
- package/lib/template/back-office/brand-update/index.d.ts +103 -12
- package/lib/template/common/search-page/index.d.ts +52 -1
- package/lib/template/teams-dashboard/index.d.ts +52 -1
- 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<
|
|
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
|
|
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 =
|
|
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.
|
|
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 @@
|
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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
|
-
|
|
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;
|
|
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(
|
|
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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"}
|
|
@@ -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
|
|
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
|