@atlaskit/dynamic-table 14.20.2 → 14.20.3
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/CHANGELOG.md +8 -0
- package/dist/cjs/components/stateless.js +190 -252
- package/dist/es2019/components/stateless.js +163 -219
- package/dist/esm/components/stateless.js +191 -253
- package/dist/types/components/stateless.d.ts +3 -57
- package/dist/types/styled/dynamic-table.d.ts +1 -1
- package/dist/types/styled/loading-container-advanced.d.ts +2 -2
- package/dist/types/styled/table-head.d.ts +1 -1
- package/dist/types-ts4.5/components/stateless.d.ts +3 -57
- package/dist/types-ts4.5/styled/dynamic-table.d.ts +1 -1
- package/dist/types-ts4.5/styled/loading-container-advanced.d.ts +2 -2
- package/dist/types-ts4.5/styled/table-head.d.ts +1 -1
- package/package.json +3 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @atlaskit/dynamic-table
|
|
2
2
|
|
|
3
|
+
## 14.20.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#137036](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/137036)
|
|
8
|
+
[`a4bc59c83b1d9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a4bc59c83b1d9) -
|
|
9
|
+
Internally refactors stateless variant from class component to function component
|
|
10
|
+
|
|
3
11
|
## 14.20.2
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -6,16 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = exports.DynamicTableWithoutAnalytics = void 0;
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
16
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
18
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
19
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
20
13
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
21
14
|
var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
@@ -32,10 +25,8 @@ var _tableHead = _interopRequireDefault(require("./table-head"));
|
|
|
32
25
|
var _excluded = ["isRankable", "isRanking", "onRankStart", "onRankEnd", "isRankingDisabled"];
|
|
33
26
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
34
27
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
35
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
36
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
37
28
|
var packageName = "@atlaskit/dynamic-table";
|
|
38
|
-
var packageVersion = "14.20.
|
|
29
|
+
var packageVersion = "14.20.3";
|
|
39
30
|
function toggleSortOrder(currentSortOrder) {
|
|
40
31
|
switch (currentSortOrder) {
|
|
41
32
|
case _constants.DESC:
|
|
@@ -46,265 +37,212 @@ function toggleSortOrder(currentSortOrder) {
|
|
|
46
37
|
return currentSortOrder;
|
|
47
38
|
}
|
|
48
39
|
}
|
|
49
|
-
var DynamicTable = exports.DynamicTableWithoutAnalytics =
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onRankEndHandler", function (params) {
|
|
107
|
-
_this.setState({
|
|
108
|
-
isRanking: false
|
|
109
|
-
});
|
|
110
|
-
if (_this.props.onRankEnd) {
|
|
111
|
-
_this.props.onRankEnd(params);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getSpinnerSize", function () {
|
|
115
|
-
var _this$props2 = _this.props,
|
|
116
|
-
page = _this$props2.page,
|
|
117
|
-
rows = _this$props2.rows,
|
|
118
|
-
rowsPerPage = _this$props2.rowsPerPage,
|
|
119
|
-
loadingSpinnerSize = _this$props2.loadingSpinnerSize;
|
|
120
|
-
if (loadingSpinnerSize) {
|
|
121
|
-
return loadingSpinnerSize;
|
|
40
|
+
var DynamicTable = exports.DynamicTableWithoutAnalytics = function DynamicTable(_ref) {
|
|
41
|
+
var caption = _ref.caption,
|
|
42
|
+
head = _ref.head,
|
|
43
|
+
highlightedRowIndex = _ref.highlightedRowIndex,
|
|
44
|
+
rows = _ref.rows,
|
|
45
|
+
sortKey = _ref.sortKey,
|
|
46
|
+
sortOrder = _ref.sortOrder,
|
|
47
|
+
loadingLabel = _ref.loadingLabel,
|
|
48
|
+
onPageRowsUpdate = _ref.onPageRowsUpdate,
|
|
49
|
+
testId = _ref.testId,
|
|
50
|
+
passedDownTotalRows = _ref.totalRows,
|
|
51
|
+
label = _ref.label,
|
|
52
|
+
_ref$isLoading = _ref.isLoading,
|
|
53
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
54
|
+
_ref$isFixedSize = _ref.isFixedSize,
|
|
55
|
+
isFixedSize = _ref$isFixedSize === void 0 ? false : _ref$isFixedSize,
|
|
56
|
+
_ref$rowsPerPage = _ref.rowsPerPage,
|
|
57
|
+
rowsPerPage = _ref$rowsPerPage === void 0 ? Infinity : _ref$rowsPerPage,
|
|
58
|
+
_ref$onSetPage = _ref.onSetPage,
|
|
59
|
+
onSetPage = _ref$onSetPage === void 0 ? _noop.default : _ref$onSetPage,
|
|
60
|
+
_ref$onSort = _ref.onSort,
|
|
61
|
+
onSort = _ref$onSort === void 0 ? _noop.default : _ref$onSort,
|
|
62
|
+
_ref$page = _ref.page,
|
|
63
|
+
page = _ref$page === void 0 ? 1 : _ref$page,
|
|
64
|
+
emptyView = _ref.emptyView,
|
|
65
|
+
_ref$isRankable = _ref.isRankable,
|
|
66
|
+
isRankable = _ref$isRankable === void 0 ? false : _ref$isRankable,
|
|
67
|
+
_ref$isRankingDisable = _ref.isRankingDisabled,
|
|
68
|
+
isRankingDisabled = _ref$isRankingDisable === void 0 ? false : _ref$isRankingDisable,
|
|
69
|
+
_ref$onRankStart = _ref.onRankStart,
|
|
70
|
+
onRankStart = _ref$onRankStart === void 0 ? _noop.default : _ref$onRankStart,
|
|
71
|
+
_ref$onRankEnd = _ref.onRankEnd,
|
|
72
|
+
onRankEnd = _ref$onRankEnd === void 0 ? _noop.default : _ref$onRankEnd,
|
|
73
|
+
loadingSpinnerSize = _ref.loadingSpinnerSize,
|
|
74
|
+
_ref$paginationi18n = _ref.paginationi18n,
|
|
75
|
+
paginationi18n = _ref$paginationi18n === void 0 ? {
|
|
76
|
+
prev: 'Previous',
|
|
77
|
+
next: 'Next',
|
|
78
|
+
label: 'Pagination',
|
|
79
|
+
pageLabel: 'Page'
|
|
80
|
+
} : _ref$paginationi18n;
|
|
81
|
+
var _useState = (0, _react.useState)(false),
|
|
82
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
83
|
+
isRanking = _useState2[0],
|
|
84
|
+
setIsRanking = _useState2[1];
|
|
85
|
+
var tableBodyRef = (0, _react.useRef)(null);
|
|
86
|
+
(0, _react.useEffect)(function () {
|
|
87
|
+
(0, _helpers.validateSortKey)(sortKey, head);
|
|
88
|
+
(0, _helpers.assertIsSortable)(head);
|
|
89
|
+
}, [sortKey, head]);
|
|
90
|
+
var onSortHandler = function onSortHandler(item) {
|
|
91
|
+
return function () {
|
|
92
|
+
var key = item.key;
|
|
93
|
+
if (!key) {
|
|
94
|
+
return;
|
|
122
95
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
isLoading = _this$props3.isLoading,
|
|
129
|
-
testId = _this$props3.testId;
|
|
130
|
-
if (isLoading) {
|
|
131
|
-
return /*#__PURE__*/_react.default.createElement(_emptyBody.EmptyViewWithFixedHeight, {
|
|
132
|
-
testId: testId
|
|
96
|
+
if (onSort && isRankable && key === sortKey && sortOrder === _constants.DESC) {
|
|
97
|
+
onSort({
|
|
98
|
+
key: null,
|
|
99
|
+
sortOrder: null,
|
|
100
|
+
item: item
|
|
133
101
|
});
|
|
102
|
+
return;
|
|
134
103
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
key: "UNSAFE_componentWillMount",
|
|
143
|
-
value: function UNSAFE_componentWillMount() {
|
|
144
|
-
(0, _helpers.validateSortKey)(this.props.sortKey, this.props.head);
|
|
145
|
-
(0, _helpers.assertIsSortable)(this.props.head);
|
|
146
|
-
}
|
|
147
|
-
}, {
|
|
148
|
-
key: "UNSAFE_componentWillReceiveProps",
|
|
149
|
-
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
150
|
-
if (this.props.sortKey !== nextProps.sortKey || this.props.head !== nextProps.head) {
|
|
151
|
-
(0, _helpers.validateSortKey)(nextProps.sortKey, nextProps.head);
|
|
152
|
-
}
|
|
153
|
-
if (this.props.head !== nextProps.head) {
|
|
154
|
-
(0, _helpers.assertIsSortable)(nextProps.head);
|
|
104
|
+
var sortOrderFormatted = key !== sortKey ? _constants.ASC : toggleSortOrder(sortOrder);
|
|
105
|
+
if (onSort) {
|
|
106
|
+
onSort({
|
|
107
|
+
key: key,
|
|
108
|
+
item: item,
|
|
109
|
+
sortOrder: sortOrderFormatted
|
|
110
|
+
});
|
|
155
111
|
}
|
|
112
|
+
};
|
|
113
|
+
};
|
|
114
|
+
var onSetPageHandler = function onSetPageHandler(page, event) {
|
|
115
|
+
onSetPage(page, event);
|
|
116
|
+
};
|
|
117
|
+
var onRankStartHandler = function onRankStartHandler(params) {
|
|
118
|
+
setIsRanking(true);
|
|
119
|
+
onRankStart(params);
|
|
120
|
+
};
|
|
121
|
+
var onRankEndHandler = function onRankEndHandler(params) {
|
|
122
|
+
setIsRanking(false);
|
|
123
|
+
onRankEnd(params);
|
|
124
|
+
};
|
|
125
|
+
var getSpinnerSize = function getSpinnerSize() {
|
|
126
|
+
if (loadingSpinnerSize) {
|
|
127
|
+
return loadingSpinnerSize;
|
|
156
128
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
caption = _this$props4.caption,
|
|
163
|
-
head = _this$props4.head,
|
|
164
|
-
highlightedRowIndex = _this$props4.highlightedRowIndex,
|
|
165
|
-
isFixedSize = _this$props4.isFixedSize,
|
|
166
|
-
page = _this$props4.page,
|
|
167
|
-
rows = _this$props4.rows,
|
|
168
|
-
rowsPerPage = _this$props4.rowsPerPage,
|
|
169
|
-
sortKey = _this$props4.sortKey,
|
|
170
|
-
sortOrder = _this$props4.sortOrder,
|
|
171
|
-
isLoading = _this$props4.isLoading,
|
|
172
|
-
loadingLabel = _this$props4.loadingLabel,
|
|
173
|
-
isRankable = _this$props4.isRankable,
|
|
174
|
-
isRankingDisabled = _this$props4.isRankingDisabled,
|
|
175
|
-
paginationi18n = _this$props4.paginationi18n,
|
|
176
|
-
onPageRowsUpdate = _this$props4.onPageRowsUpdate,
|
|
177
|
-
testId = _this$props4.testId,
|
|
178
|
-
passedDownTotalRows = _this$props4.totalRows,
|
|
179
|
-
label = _this$props4.label;
|
|
180
|
-
var rowsLength = rows && rows.length;
|
|
181
|
-
var totalPages;
|
|
182
|
-
// set a flag to denote the dynamic table might get only one page of data
|
|
183
|
-
// for paginated data
|
|
184
|
-
var isTotalPagesControlledExternally = false;
|
|
185
|
-
if (passedDownTotalRows && Number.isInteger(passedDownTotalRows) && rowsPerPage && rowsLength && rowsLength <= passedDownTotalRows) {
|
|
186
|
-
/**
|
|
187
|
-
* If total number of rows / records have been passed down as prop
|
|
188
|
-
* Then table is being fed paginated data from server or other sources
|
|
189
|
-
* In this case, we want to respect information passed down by server or external source
|
|
190
|
-
* Rather than relying on our computation based on number of rows
|
|
191
|
-
*/
|
|
192
|
-
totalPages = Math.ceil(passedDownTotalRows / rowsPerPage);
|
|
193
|
-
isTotalPagesControlledExternally = true;
|
|
194
|
-
} else {
|
|
195
|
-
totalPages = rowsLength && rowsPerPage ? Math.ceil(rowsLength / rowsPerPage) : 0;
|
|
196
|
-
}
|
|
197
|
-
totalPages = totalPages < 1 ? 1 : totalPages;
|
|
198
|
-
var getPageNumber = page > totalPages ? totalPages : page; // page! required, because typescript can't yet see defaultProps to know that this won't be undefined
|
|
199
|
-
|
|
200
|
-
var bodyProps = {
|
|
201
|
-
highlightedRowIndex: highlightedRowIndex,
|
|
202
|
-
rows: rows,
|
|
203
|
-
head: head,
|
|
204
|
-
sortKey: sortKey,
|
|
205
|
-
sortOrder: sortOrder,
|
|
206
|
-
rowsPerPage: rowsPerPage,
|
|
207
|
-
page: getPageNumber,
|
|
208
|
-
isFixedSize: isFixedSize || false,
|
|
209
|
-
onPageRowsUpdate: onPageRowsUpdate,
|
|
210
|
-
isTotalPagesControlledExternally: isTotalPagesControlledExternally,
|
|
211
|
-
ref: this.tableBody,
|
|
212
|
-
testId: testId
|
|
213
|
-
};
|
|
214
|
-
var rowsExist = !!rowsLength;
|
|
215
|
-
var spinnerSize = this.getSpinnerSize();
|
|
216
|
-
var emptyBody = this.renderEmptyBody();
|
|
217
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_loadingContainerAdvanced.default, {
|
|
218
|
-
isLoading: isLoading && rowsExist,
|
|
219
|
-
spinnerSize: spinnerSize,
|
|
220
|
-
targetRef: function targetRef() {
|
|
221
|
-
return _this2.tableBody.current;
|
|
222
|
-
},
|
|
223
|
-
testId: testId,
|
|
224
|
-
loadingLabel: loadingLabel
|
|
225
|
-
}, /*#__PURE__*/_react.default.createElement(_dynamicTable.Table, {
|
|
226
|
-
isFixedSize: isFixedSize,
|
|
227
|
-
"aria-label": label,
|
|
228
|
-
hasDataRow: rowsExist,
|
|
229
|
-
testId: testId,
|
|
230
|
-
isLoading: isLoading
|
|
231
|
-
}, !!caption && /*#__PURE__*/_react.default.createElement(_dynamicTable.Caption, null, caption), head && /*#__PURE__*/_react.default.createElement(_tableHead.default, {
|
|
232
|
-
head: head,
|
|
233
|
-
onSort: this.onSortHandler,
|
|
234
|
-
sortKey: sortKey,
|
|
235
|
-
sortOrder: sortOrder,
|
|
236
|
-
isRanking: this.state.isRanking,
|
|
237
|
-
isRankable: isRankable,
|
|
238
|
-
testId: testId
|
|
239
|
-
}), rowsExist && /*#__PURE__*/_react.default.createElement(TableBody, (0, _extends2.default)({}, bodyProps, {
|
|
240
|
-
isRankable: this.props.isRankable,
|
|
241
|
-
isRanking: this.state.isRanking,
|
|
242
|
-
onRankStart: this.onRankStartHandler,
|
|
243
|
-
onRankEnd: this.onRankEndHandler,
|
|
244
|
-
isRankingDisabled: isRankingDisabled || isLoading || false
|
|
245
|
-
})))), totalPages <= 1 ? null :
|
|
246
|
-
/*#__PURE__*/
|
|
247
|
-
// only show pagination if there's MORE than 1 page
|
|
248
|
-
_react.default.createElement(_dynamicTable.PaginationWrapper, {
|
|
249
|
-
testId: testId
|
|
250
|
-
}, /*#__PURE__*/_react.default.createElement(_managedPagination.default, {
|
|
251
|
-
value: getPageNumber,
|
|
252
|
-
onChange: this.onSetPageHandler,
|
|
253
|
-
total: totalPages,
|
|
254
|
-
i18n: paginationi18n,
|
|
255
|
-
isDisabled: isLoading,
|
|
129
|
+
return (0, _helpers.getPageRows)(rows || [], page, rowsPerPage).length > 2 ? _constants.LARGE : _constants.SMALL;
|
|
130
|
+
};
|
|
131
|
+
var renderEmptyBody = function renderEmptyBody() {
|
|
132
|
+
if (isLoading) {
|
|
133
|
+
return /*#__PURE__*/_react.default.createElement(_emptyBody.EmptyViewWithFixedHeight, {
|
|
256
134
|
testId: testId
|
|
257
|
-
})
|
|
258
|
-
isLoading: isLoading,
|
|
259
|
-
spinnerSize: _constants.LARGE,
|
|
260
|
-
testId: testId,
|
|
261
|
-
loadingLabel: loadingLabel
|
|
262
|
-
}, emptyBody));
|
|
135
|
+
});
|
|
263
136
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
137
|
+
return emptyView && /*#__PURE__*/_react.default.createElement(_emptyBody.EmptyViewContainer, {
|
|
138
|
+
testId: testId
|
|
139
|
+
}, emptyView);
|
|
140
|
+
};
|
|
141
|
+
var rowsLength = rows && rows.length;
|
|
142
|
+
var totalPages;
|
|
143
|
+
// set a flag to denote the dynamic table might get only one page of data
|
|
144
|
+
// for paginated data
|
|
145
|
+
var isTotalPagesControlledExternally = false;
|
|
146
|
+
if (passedDownTotalRows && Number.isInteger(passedDownTotalRows) && rowsPerPage && rowsLength && rowsLength <= passedDownTotalRows) {
|
|
147
|
+
/**
|
|
148
|
+
* If total number of rows / records have been passed down as prop
|
|
149
|
+
* Then table is being fed paginated data from server or other sources
|
|
150
|
+
* In this case, we want to respect information passed down by server or external source
|
|
151
|
+
* Rather than relying on our computation based on number of rows
|
|
152
|
+
*/
|
|
153
|
+
totalPages = Math.ceil(passedDownTotalRows / rowsPerPage);
|
|
154
|
+
isTotalPagesControlledExternally = true;
|
|
155
|
+
} else {
|
|
156
|
+
totalPages = rowsLength && rowsPerPage ? Math.ceil(rowsLength / rowsPerPage) : 0;
|
|
283
157
|
}
|
|
284
|
-
|
|
158
|
+
totalPages = totalPages < 1 ? 1 : totalPages;
|
|
159
|
+
var getPageNumber = page > totalPages ? totalPages : page; // page! required, because typescript can't yet see defaultProps to know that this won't be undefined
|
|
160
|
+
|
|
161
|
+
var rowsExist = !!rowsLength;
|
|
162
|
+
var spinnerSize = getSpinnerSize();
|
|
163
|
+
var emptyBody = renderEmptyBody();
|
|
164
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_loadingContainerAdvanced.default, {
|
|
165
|
+
isLoading: isLoading && rowsExist,
|
|
166
|
+
spinnerSize: spinnerSize,
|
|
167
|
+
targetRef: function targetRef() {
|
|
168
|
+
return tableBodyRef.current;
|
|
169
|
+
},
|
|
170
|
+
testId: testId,
|
|
171
|
+
loadingLabel: loadingLabel
|
|
172
|
+
}, /*#__PURE__*/_react.default.createElement(_dynamicTable.Table, {
|
|
173
|
+
isFixedSize: isFixedSize,
|
|
174
|
+
"aria-label": label,
|
|
175
|
+
hasDataRow: rowsExist,
|
|
176
|
+
testId: testId,
|
|
177
|
+
isLoading: isLoading
|
|
178
|
+
}, !!caption && /*#__PURE__*/_react.default.createElement(_dynamicTable.Caption, null, caption), head && /*#__PURE__*/_react.default.createElement(_tableHead.default, {
|
|
179
|
+
head: head,
|
|
180
|
+
onSort: onSortHandler,
|
|
181
|
+
sortKey: sortKey,
|
|
182
|
+
sortOrder: sortOrder,
|
|
183
|
+
isRanking: isRanking,
|
|
184
|
+
isRankable: isRankable,
|
|
185
|
+
testId: testId
|
|
186
|
+
}), rowsExist && /*#__PURE__*/_react.default.createElement(TableBody, {
|
|
187
|
+
ref: tableBodyRef,
|
|
188
|
+
highlightedRowIndex: highlightedRowIndex,
|
|
189
|
+
rows: rows,
|
|
190
|
+
head: head,
|
|
191
|
+
sortKey: sortKey,
|
|
192
|
+
sortOrder: sortOrder,
|
|
193
|
+
rowsPerPage: rowsPerPage,
|
|
194
|
+
page: getPageNumber,
|
|
195
|
+
isFixedSize: isFixedSize || false,
|
|
196
|
+
onPageRowsUpdate: onPageRowsUpdate,
|
|
197
|
+
isTotalPagesControlledExternally: isTotalPagesControlledExternally,
|
|
198
|
+
testId: testId,
|
|
199
|
+
isRankable: isRankable,
|
|
200
|
+
isRanking: isRanking,
|
|
201
|
+
onRankStart: onRankStartHandler,
|
|
202
|
+
onRankEnd: onRankEndHandler,
|
|
203
|
+
isRankingDisabled: isRankingDisabled || isLoading || false
|
|
204
|
+
}))), totalPages <= 1 ? null :
|
|
205
|
+
/*#__PURE__*/
|
|
206
|
+
// only show pagination if there's MORE than 1 page
|
|
207
|
+
_react.default.createElement(_dynamicTable.PaginationWrapper, {
|
|
208
|
+
testId: testId
|
|
209
|
+
}, /*#__PURE__*/_react.default.createElement(_managedPagination.default, {
|
|
210
|
+
value: getPageNumber,
|
|
211
|
+
onChange: onSetPageHandler,
|
|
212
|
+
total: totalPages,
|
|
213
|
+
i18n: paginationi18n,
|
|
214
|
+
isDisabled: isLoading,
|
|
215
|
+
testId: testId
|
|
216
|
+
})), !rowsExist && emptyBody && /*#__PURE__*/_react.default.createElement(_loadingContainer.default, {
|
|
217
|
+
isLoading: isLoading,
|
|
218
|
+
spinnerSize: _constants.LARGE,
|
|
219
|
+
testId: testId,
|
|
220
|
+
loadingLabel: loadingLabel
|
|
221
|
+
}, emptyBody));
|
|
222
|
+
};
|
|
285
223
|
var RankableTableBody = /*#__PURE__*/(0, _react.lazy)(function () {
|
|
286
224
|
return Promise.resolve().then(function () {
|
|
287
225
|
return _interopRequireWildcard(require( /* webpackChunkName: '@atlaskit-internal_dynamic-table' */'./rankable/body'));
|
|
288
226
|
});
|
|
289
227
|
});
|
|
290
|
-
var TableBody = /*#__PURE__*/(0, _react.forwardRef)(function TableBody(
|
|
291
|
-
var
|
|
292
|
-
isRankable =
|
|
293
|
-
isRanking =
|
|
294
|
-
onRankStart =
|
|
295
|
-
onRankEnd =
|
|
296
|
-
isRankingDisabled =
|
|
297
|
-
bodyProps = (0, _objectWithoutProperties2.default)(
|
|
228
|
+
var TableBody = /*#__PURE__*/(0, _react.forwardRef)(function TableBody(_ref2, ref) {
|
|
229
|
+
var _ref2$isRankable = _ref2.isRankable,
|
|
230
|
+
isRankable = _ref2$isRankable === void 0 ? false : _ref2$isRankable,
|
|
231
|
+
isRanking = _ref2.isRanking,
|
|
232
|
+
onRankStart = _ref2.onRankStart,
|
|
233
|
+
onRankEnd = _ref2.onRankEnd,
|
|
234
|
+
isRankingDisabled = _ref2.isRankingDisabled,
|
|
235
|
+
bodyProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
|
|
298
236
|
var canRank = isRankable && !bodyProps.sortKey;
|
|
299
237
|
|
|
300
238
|
/**
|
|
301
239
|
* React 16 does not support SSR for lazy components,
|
|
302
240
|
* so we avoid rendering the `Suspense` on the server.
|
|
303
241
|
*/
|
|
304
|
-
var
|
|
305
|
-
|
|
306
|
-
canRenderRankable =
|
|
307
|
-
setCanRenderRankable =
|
|
242
|
+
var _useState3 = (0, _react.useState)(false),
|
|
243
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
244
|
+
canRenderRankable = _useState4[0],
|
|
245
|
+
setCanRenderRankable = _useState4[1];
|
|
308
246
|
(0, _react.useEffect)(function () {
|
|
309
247
|
if (canRank) {
|
|
310
248
|
setCanRenderRankable(true);
|