@dhis2-ui/pagination 8.1.11 → 8.2.2
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/build/cjs/__fixtures__/index.js +16 -2
- package/build/cjs/__tests__/get-item-range.test.js +9 -9
- package/build/cjs/__tests__/page-controls.test.js +11 -11
- package/build/cjs/__tests__/page-summary.test.js +3 -3
- package/build/cjs/__tests__/pagination.test.js +124 -32
- package/build/cjs/get-default-page-summary-text.js +9 -7
- package/build/cjs/get-item-range.js +8 -7
- package/build/cjs/page-controls.js +34 -30
- package/build/cjs/page-select.js +36 -27
- package/build/cjs/page-size-select.js +36 -27
- package/build/cjs/page-summary.js +22 -15
- package/build/cjs/pagination.js +30 -23
- package/build/cjs/pagination.stories.js +10 -15
- package/build/es/__fixtures__/index.js +13 -1
- package/build/es/__tests__/get-item-range.test.js +9 -9
- package/build/es/__tests__/page-controls.test.js +11 -11
- package/build/es/__tests__/page-summary.test.js +3 -3
- package/build/es/__tests__/pagination.test.js +122 -29
- package/build/es/get-default-page-summary-text.js +9 -7
- package/build/es/get-item-range.js +8 -7
- package/build/es/page-controls.js +35 -30
- package/build/es/page-select.js +36 -27
- package/build/es/page-size-select.js +36 -27
- package/build/es/page-summary.js +21 -15
- package/build/es/pagination.js +30 -23
- package/build/es/pagination.stories.js +8 -14
- package/package.json +5 -5
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.noTotalAtLastPage = exports.noTotal = exports.
|
|
6
|
+
exports.noTotalAtLastPage = exports.noTotal = exports.atTenthPage = exports.atSecondPage = exports.atPageBeforeLast = exports.atLastPage = exports.atFirstPage = void 0;
|
|
7
7
|
const atFirstPage = {
|
|
8
8
|
page: 1,
|
|
9
9
|
pageCount: 21,
|
|
@@ -11,6 +11,13 @@ const atFirstPage = {
|
|
|
11
11
|
pageSize: 50
|
|
12
12
|
};
|
|
13
13
|
exports.atFirstPage = atFirstPage;
|
|
14
|
+
const atSecondPage = {
|
|
15
|
+
page: 2,
|
|
16
|
+
pageCount: 21,
|
|
17
|
+
total: 1035,
|
|
18
|
+
pageSize: 50
|
|
19
|
+
};
|
|
20
|
+
exports.atSecondPage = atSecondPage;
|
|
14
21
|
const atTenthPage = {
|
|
15
22
|
page: 10,
|
|
16
23
|
pageCount: 21,
|
|
@@ -25,8 +32,15 @@ const atLastPage = {
|
|
|
25
32
|
pageSize: 50
|
|
26
33
|
};
|
|
27
34
|
exports.atLastPage = atLastPage;
|
|
35
|
+
const atPageBeforeLast = {
|
|
36
|
+
page: 20,
|
|
37
|
+
pageCount: 21,
|
|
38
|
+
total: 1035,
|
|
39
|
+
pageSize: 50
|
|
40
|
+
};
|
|
41
|
+
exports.atPageBeforeLast = atPageBeforeLast;
|
|
28
42
|
const noTotal = {
|
|
29
|
-
page:
|
|
43
|
+
page: 3,
|
|
30
44
|
pageSize: 50,
|
|
31
45
|
isLastPage: false
|
|
32
46
|
};
|
|
@@ -23,8 +23,8 @@ describe('getItemRange', () => {
|
|
|
23
23
|
pageSize,
|
|
24
24
|
total
|
|
25
25
|
});
|
|
26
|
-
expect(firstItem).
|
|
27
|
-
expect(lastItem).
|
|
26
|
+
expect(firstItem).toBe(451);
|
|
27
|
+
expect(lastItem).toBe(500);
|
|
28
28
|
});
|
|
29
29
|
it('returns 0 for firstItem and lastItem if the total is 0', () => {
|
|
30
30
|
const {
|
|
@@ -35,8 +35,8 @@ describe('getItemRange', () => {
|
|
|
35
35
|
pageSize: 50,
|
|
36
36
|
total: 0
|
|
37
37
|
});
|
|
38
|
-
expect(firstItem).
|
|
39
|
-
expect(lastItem).
|
|
38
|
+
expect(firstItem).toBe(0);
|
|
39
|
+
expect(lastItem).toBe(0);
|
|
40
40
|
});
|
|
41
41
|
it('uses the total count as lastItem when the last page is reached', () => {
|
|
42
42
|
const {
|
|
@@ -51,7 +51,7 @@ describe('getItemRange', () => {
|
|
|
51
51
|
pageSize,
|
|
52
52
|
total
|
|
53
53
|
});
|
|
54
|
-
expect(lastItem).
|
|
54
|
+
expect(lastItem).toBe(total);
|
|
55
55
|
});
|
|
56
56
|
it('handles pagers without totals', () => {
|
|
57
57
|
const {
|
|
@@ -61,8 +61,8 @@ describe('getItemRange', () => {
|
|
|
61
61
|
page: 3,
|
|
62
62
|
pageSize: 50
|
|
63
63
|
});
|
|
64
|
-
expect(firstItem).
|
|
65
|
-
expect(lastItem).
|
|
64
|
+
expect(firstItem).toBe(101);
|
|
65
|
+
expect(lastItem).toBe(150);
|
|
66
66
|
});
|
|
67
67
|
it('bases the lastItem on the pageLength for pagers without total when the last page is reached', () => {
|
|
68
68
|
const {
|
|
@@ -73,7 +73,7 @@ describe('getItemRange', () => {
|
|
|
73
73
|
pageLength: 21,
|
|
74
74
|
isLastPage: true
|
|
75
75
|
});
|
|
76
|
-
expect(lastItem).
|
|
76
|
+
expect(lastItem).toBe(121);
|
|
77
77
|
});
|
|
78
78
|
it('sets lastItem to NaN when on the last page and there is no total or pageLength', () => {
|
|
79
79
|
const {
|
|
@@ -83,6 +83,6 @@ describe('getItemRange', () => {
|
|
|
83
83
|
pageSize: 50,
|
|
84
84
|
isLastPage: true
|
|
85
85
|
});
|
|
86
|
-
expect(lastItem).
|
|
86
|
+
expect(lastItem).toBe(NaN);
|
|
87
87
|
});
|
|
88
88
|
});
|
|
@@ -25,24 +25,24 @@ describe('<PageControls />', () => {
|
|
|
25
25
|
it('renders without errors', () => {
|
|
26
26
|
(0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_pageControls.PageControls, props));
|
|
27
27
|
});
|
|
28
|
-
it('
|
|
28
|
+
it('enables all buttons on by default', () => {
|
|
29
29
|
const wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_pageControls.PageControls, props));
|
|
30
|
-
expect(wrapper.find('.button-previous').getElement().props.disabled).
|
|
31
|
-
expect(wrapper.find('.button-next').getElement().props.disabled).
|
|
30
|
+
expect(wrapper.find('.button-previous').getElement().props.disabled).toBeFalsy();
|
|
31
|
+
expect(wrapper.find('.button-next').getElement().props.disabled).toBeFalsy();
|
|
32
32
|
});
|
|
33
|
-
it('disables the previous page button
|
|
33
|
+
it('disables the previous page button when isPreviousDisabled is true', () => {
|
|
34
34
|
const wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_pageControls.PageControls, _extends({}, props, {
|
|
35
|
-
|
|
35
|
+
isPreviousDisabled: true
|
|
36
36
|
})));
|
|
37
|
-
expect(wrapper.find('.button-previous').getElement().props.disabled).
|
|
38
|
-
expect(wrapper.find('.button-next').getElement().props.disabled).
|
|
37
|
+
expect(wrapper.find('.button-previous').getElement().props.disabled).toBe(true);
|
|
38
|
+
expect(wrapper.find('.button-next').getElement().props.disabled).toBeFalsy();
|
|
39
39
|
});
|
|
40
|
-
it('disables the next page button
|
|
40
|
+
it('disables the next page button when isNextDisabled is true', () => {
|
|
41
41
|
const wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_pageControls.PageControls, _extends({}, props, {
|
|
42
|
-
|
|
42
|
+
isNextDisabled: true
|
|
43
43
|
})));
|
|
44
|
-
expect(wrapper.find('.button-previous').getElement().props.disabled).
|
|
45
|
-
expect(wrapper.find('.button-next').getElement().props.disabled).
|
|
44
|
+
expect(wrapper.find('.button-previous').getElement().props.disabled).toBeFalsy();
|
|
45
|
+
expect(wrapper.find('.button-next').getElement().props.disabled).toBe(true);
|
|
46
46
|
});
|
|
47
47
|
it('calls the onClick handler with the value for the next page when next is clicked', () => {
|
|
48
48
|
const wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_pageControls.PageControls, props));
|
|
@@ -35,7 +35,7 @@ describe('<PageSummary />', () => {
|
|
|
35
35
|
total: 224
|
|
36
36
|
})));
|
|
37
37
|
const expectedString = 'Page 2 of 5, items 51-100 of 224';
|
|
38
|
-
expect(wrapper.find('span').text()).
|
|
38
|
+
expect(wrapper.find('span').text()).toBe(expectedString);
|
|
39
39
|
});
|
|
40
40
|
it('renders the correct message when only lastItem is provided', () => {
|
|
41
41
|
const wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_pageSummary.PageSummary, _extends({}, props, {
|
|
@@ -45,7 +45,7 @@ describe('<PageSummary />', () => {
|
|
|
45
45
|
pageCount: 5
|
|
46
46
|
})));
|
|
47
47
|
const expectedString = 'Page 2, items 51-100';
|
|
48
|
-
expect(wrapper.find('span').text()).
|
|
48
|
+
expect(wrapper.find('span').text()).toBe(expectedString);
|
|
49
49
|
});
|
|
50
50
|
it('renders the correct message when total is missing and lastItem is not a number', () => {
|
|
51
51
|
const wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react.default.createElement(_pageSummary.PageSummary, _extends({}, props, {
|
|
@@ -55,6 +55,6 @@ describe('<PageSummary />', () => {
|
|
|
55
55
|
pageCount: 5
|
|
56
56
|
})));
|
|
57
57
|
const expectedString = 'Page 2';
|
|
58
|
-
expect(wrapper.find('span').text()).
|
|
58
|
+
expect(wrapper.find('span').text()).toBe(expectedString);
|
|
59
59
|
});
|
|
60
60
|
});
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
require("@testing-library/dom");
|
|
4
4
|
|
|
5
|
-
var _react =
|
|
5
|
+
var _react = require("@testing-library/react");
|
|
6
6
|
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
var _pageSelect = require("../page-select.js");
|
|
7
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
10
8
|
|
|
11
|
-
var
|
|
9
|
+
var mockPagers = _interopRequireWildcard(require("../__fixtures__/index.js"));
|
|
12
10
|
|
|
13
11
|
var _pagination = require("../pagination.js");
|
|
14
12
|
|
|
@@ -27,69 +25,163 @@ describe('<Pagination />', () => {
|
|
|
27
25
|
onPageSizeChange: () => {}
|
|
28
26
|
};
|
|
29
27
|
it('renders without errors', () => {
|
|
30
|
-
(0,
|
|
28
|
+
(0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, props));
|
|
31
29
|
});
|
|
32
30
|
it('renders a PageSelect and PageSizeSelect by default', () => {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
const {
|
|
32
|
+
getByTestId
|
|
33
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, props));
|
|
34
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-page-select')).toBeInTheDocument();
|
|
35
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-pagesize')).toBeInTheDocument();
|
|
36
36
|
});
|
|
37
37
|
it('renders without a PageSelect when hidePageSelect is true', () => {
|
|
38
|
-
const
|
|
38
|
+
const {
|
|
39
|
+
getByTestId,
|
|
40
|
+
queryByTestId
|
|
41
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, _extends({}, props, {
|
|
39
42
|
hidePageSelect: true
|
|
40
43
|
})));
|
|
41
|
-
expect(
|
|
42
|
-
expect(
|
|
44
|
+
expect(queryByTestId('dhis2-uiwidgets-pagination-page-select')).not.toBeInTheDocument();
|
|
45
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-pagesize')).toBeInTheDocument();
|
|
43
46
|
});
|
|
44
47
|
it('renders without a PageSelect when pageCount is not provided', () => {
|
|
45
|
-
const
|
|
48
|
+
const {
|
|
49
|
+
getByTestId,
|
|
50
|
+
queryByTestId
|
|
51
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, _extends({}, props, {
|
|
46
52
|
pageCount: undefined
|
|
47
53
|
})));
|
|
48
|
-
expect(
|
|
49
|
-
expect(
|
|
54
|
+
expect(queryByTestId('dhis2-uiwidgets-pagination-page-select')).not.toBeInTheDocument();
|
|
55
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-pagesize')).toBeInTheDocument();
|
|
50
56
|
});
|
|
51
57
|
it('renders without a PageSelect when pageCount is 1', () => {
|
|
52
|
-
const
|
|
58
|
+
const {
|
|
59
|
+
getByTestId,
|
|
60
|
+
queryByTestId
|
|
61
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, _extends({}, props, {
|
|
53
62
|
pageCount: 1
|
|
54
63
|
})));
|
|
55
|
-
expect(
|
|
56
|
-
expect(
|
|
64
|
+
expect(queryByTestId('dhis2-uiwidgets-pagination-page-select')).not.toBeInTheDocument();
|
|
65
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-pagesize')).toBeInTheDocument();
|
|
57
66
|
});
|
|
58
67
|
it('renders without a PageSelect when pageCount is over 2000', () => {
|
|
59
|
-
const
|
|
68
|
+
const {
|
|
69
|
+
getByTestId,
|
|
70
|
+
queryByTestId
|
|
71
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, _extends({}, props, {
|
|
60
72
|
pageCount: 2001
|
|
61
73
|
})));
|
|
62
|
-
expect(
|
|
63
|
-
expect(
|
|
74
|
+
expect(queryByTestId('dhis2-uiwidgets-pagination-page-select')).not.toBeInTheDocument();
|
|
75
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-pagesize')).toBeInTheDocument();
|
|
64
76
|
});
|
|
65
77
|
it('renders without a PageSizeSelect when hidePageSizeSelect is true', () => {
|
|
66
|
-
const
|
|
78
|
+
const {
|
|
79
|
+
getByTestId,
|
|
80
|
+
queryByTestId
|
|
81
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, _extends({}, props, {
|
|
67
82
|
hidePageSizeSelect: true
|
|
68
83
|
})));
|
|
69
|
-
expect(
|
|
70
|
-
expect(
|
|
84
|
+
expect(queryByTestId('dhis2-uiwidgets-pagination-pagesize')).not.toBeInTheDocument();
|
|
85
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-page-select')).toBeInTheDocument();
|
|
71
86
|
});
|
|
72
87
|
it('renders without PageSelect and PageSizeSelect when both are true', () => {
|
|
73
|
-
const
|
|
88
|
+
const {
|
|
89
|
+
queryByTestId
|
|
90
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, _extends({}, props, {
|
|
74
91
|
hidePageSelect: true,
|
|
75
92
|
hidePageSizeSelect: true
|
|
76
93
|
})));
|
|
77
|
-
expect(
|
|
78
|
-
expect(
|
|
94
|
+
expect(queryByTestId('dhis2-uiwidgets-pagination-pagesize')).not.toBeInTheDocument();
|
|
95
|
+
expect(queryByTestId('dhis2-uiwidgets-pagination-page-select')).not.toBeInTheDocument();
|
|
96
|
+
});
|
|
97
|
+
it('enables all elements when disabled is falsy', () => {
|
|
98
|
+
const {
|
|
99
|
+
getByTestId,
|
|
100
|
+
getByRole
|
|
101
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, props));
|
|
102
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-pagesize').querySelector('.select .root')).not.toHaveClass('disabled');
|
|
103
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-summary').querySelector('span')).not.toHaveClass('inactive');
|
|
104
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-page-select').querySelector('.select .root')).not.toHaveClass('disabled');
|
|
105
|
+
expect(getByRole('button', {
|
|
106
|
+
name: 'Previous'
|
|
107
|
+
})).not.toBeDisabled();
|
|
108
|
+
expect(getByRole('button', {
|
|
109
|
+
name: 'Next'
|
|
110
|
+
})).not.toBeDisabled();
|
|
111
|
+
});
|
|
112
|
+
it('disables all elements when disabled is true', () => {
|
|
113
|
+
const {
|
|
114
|
+
getByTestId,
|
|
115
|
+
getByRole
|
|
116
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, _extends({}, props, {
|
|
117
|
+
disabled: true
|
|
118
|
+
})));
|
|
119
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-pagesize').querySelector('.select .root')).toHaveClass('disabled');
|
|
120
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-summary').querySelector('span')).toHaveClass('inactive');
|
|
121
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-page-select').querySelector('.select .root')).toHaveClass('disabled');
|
|
122
|
+
expect(getByRole('button', {
|
|
123
|
+
name: 'Previous'
|
|
124
|
+
})).toBeDisabled();
|
|
125
|
+
expect(getByRole('button', {
|
|
126
|
+
name: 'Next'
|
|
127
|
+
})).toBeDisabled();
|
|
128
|
+
});
|
|
129
|
+
it('disables previous button when on the first page', () => {
|
|
130
|
+
const {
|
|
131
|
+
getByRole
|
|
132
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, _extends({}, mockPagers.atFirstPage, {
|
|
133
|
+
onPageChange: () => {},
|
|
134
|
+
onPageSizeChange: () => {}
|
|
135
|
+
})));
|
|
136
|
+
expect(getByRole('button', {
|
|
137
|
+
name: 'Previous'
|
|
138
|
+
})).toBeDisabled();
|
|
139
|
+
expect(getByRole('button', {
|
|
140
|
+
name: 'Next'
|
|
141
|
+
})).not.toBeDisabled();
|
|
142
|
+
});
|
|
143
|
+
it('disables next button when on the last page', () => {
|
|
144
|
+
const {
|
|
145
|
+
getByRole
|
|
146
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, _extends({}, mockPagers.atLastPage, {
|
|
147
|
+
onPageChange: () => {},
|
|
148
|
+
onPageSizeChange: () => {}
|
|
149
|
+
})));
|
|
150
|
+
expect(getByRole('button', {
|
|
151
|
+
name: 'Previous'
|
|
152
|
+
})).not.toBeDisabled();
|
|
153
|
+
expect(getByRole('button', {
|
|
154
|
+
name: 'Next'
|
|
155
|
+
})).toBeDisabled();
|
|
79
156
|
});
|
|
80
157
|
});
|
|
81
158
|
describe('Pagination without total and totalPages', () => {
|
|
82
159
|
const props = { ...mockPagers.noTotal,
|
|
160
|
+
pageLength: mockPagers.noTotal.pageSize,
|
|
83
161
|
onPageChange: () => {},
|
|
84
162
|
onPageSizeChange: () => {}
|
|
85
163
|
};
|
|
86
164
|
it('renders without errors', () => {
|
|
87
|
-
(0,
|
|
165
|
+
(0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, props));
|
|
88
166
|
});
|
|
89
167
|
it('renders with a PageSizeSelect but without a PageSelect', () => {
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
168
|
+
const {
|
|
169
|
+
queryByTestId,
|
|
170
|
+
getByTestId
|
|
171
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, props));
|
|
172
|
+
expect(getByTestId('dhis2-uiwidgets-pagination-pagesize')).toBeInTheDocument();
|
|
173
|
+
expect(queryByTestId('dhis2-uiwidgets-pagination-page-select')).not.toBeInTheDocument();
|
|
174
|
+
});
|
|
175
|
+
it('prevents forward navigation when on the last page', () => {
|
|
176
|
+
const {
|
|
177
|
+
getByRole
|
|
178
|
+
} = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_pagination.Pagination, _extends({}, props, mockPagers.noTotalAtLastPage)));
|
|
179
|
+
expect(getByRole('button', {
|
|
180
|
+
name: 'Previous'
|
|
181
|
+
})).not.toBeDisabled();
|
|
182
|
+
expect(getByRole('button', {
|
|
183
|
+
name: 'Next'
|
|
184
|
+
})).toBeDisabled();
|
|
93
185
|
});
|
|
94
186
|
});
|
|
95
187
|
});
|
|
@@ -11,13 +11,15 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
11
11
|
|
|
12
12
|
const isValidNumber = input => typeof input === 'number' && !isNaN(input);
|
|
13
13
|
|
|
14
|
-
const getDefaultPageSummaryText =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
const getDefaultPageSummaryText = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
firstItem,
|
|
17
|
+
lastItem,
|
|
18
|
+
page,
|
|
19
|
+
pageCount,
|
|
20
|
+
total
|
|
21
|
+
} = _ref;
|
|
22
|
+
|
|
21
23
|
if (isValidNumber(total) && isValidNumber(lastItem)) {
|
|
22
24
|
return _index.default.t('Page {{page}} of {{pageCount}}, items {{firstItem}}-{{lastItem}} of {{total}}', {
|
|
23
25
|
page,
|
|
@@ -5,13 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.getItemRange = void 0;
|
|
7
7
|
|
|
8
|
-
const getItemRange =
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
const getItemRange = _ref => {
|
|
9
|
+
let {
|
|
10
|
+
isLastPage,
|
|
11
|
+
page,
|
|
12
|
+
pageLength,
|
|
13
|
+
pageSize,
|
|
14
|
+
total
|
|
15
|
+
} = _ref;
|
|
15
16
|
// page is 1-based
|
|
16
17
|
let firstItem = (page - 1) * pageSize + 1;
|
|
17
18
|
let lastItem = firstItem + pageSize - 1;
|
|
@@ -19,7 +19,6 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
19
19
|
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
|
|
22
|
-
// TODO: i18n translate
|
|
23
22
|
const translate = (prop, interpolationObject) => {
|
|
24
23
|
if (typeof prop === 'function') {
|
|
25
24
|
return prop(interpolationObject);
|
|
@@ -28,34 +27,38 @@ const translate = (prop, interpolationObject) => {
|
|
|
28
27
|
return prop;
|
|
29
28
|
};
|
|
30
29
|
|
|
31
|
-
const PageControls =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
},
|
|
30
|
+
const PageControls = _ref => {
|
|
31
|
+
let {
|
|
32
|
+
dataTest,
|
|
33
|
+
isNextDisabled,
|
|
34
|
+
isPreviousDisabled,
|
|
35
|
+
nextPageText,
|
|
36
|
+
page,
|
|
37
|
+
previousPageText,
|
|
38
|
+
onClick
|
|
39
|
+
} = _ref;
|
|
40
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
41
|
+
"data-test": "".concat(dataTest, "-pagecontrols"),
|
|
42
|
+
className: _style.default.dynamic([["2407365506", [_uiConstants.spacers.dp4]]])
|
|
43
|
+
}, /*#__PURE__*/_react.default.createElement(_button.Button, {
|
|
44
|
+
secondary: true,
|
|
45
|
+
className: "button-previous",
|
|
46
|
+
small: true,
|
|
47
|
+
disabled: isPreviousDisabled,
|
|
48
|
+
onClick: () => onClick(page - 1),
|
|
49
|
+
dataTest: "".concat(dataTest, "-page-previous")
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement(_uiIcons.IconChevronLeft16, null), translate(previousPageText)), /*#__PURE__*/_react.default.createElement(_button.Button, {
|
|
51
|
+
secondary: true,
|
|
52
|
+
className: "button-next",
|
|
53
|
+
small: true,
|
|
54
|
+
disabled: isNextDisabled,
|
|
55
|
+
onClick: () => onClick(page + 1),
|
|
56
|
+
dataTest: "".concat(dataTest, "-page-next")
|
|
57
|
+
}, translate(nextPageText), /*#__PURE__*/_react.default.createElement(_uiIcons.IconChevronRight16, null)), /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
58
|
+
id: "2407365506",
|
|
59
|
+
dynamic: [_uiConstants.spacers.dp4]
|
|
60
|
+
}, ["div.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", "div.__jsx-style-dynamic-selector .button-previous{height:32px;padding-left:0;}", "div.__jsx-style-dynamic-selector .button-next{height:32px;padding-right:0;margin-left:".concat(_uiConstants.spacers.dp4, ";}")]));
|
|
61
|
+
};
|
|
59
62
|
|
|
60
63
|
exports.PageControls = PageControls;
|
|
61
64
|
PageControls.propTypes = {
|
|
@@ -64,5 +67,6 @@ PageControls.propTypes = {
|
|
|
64
67
|
page: _propTypes.default.number.isRequired,
|
|
65
68
|
previousPageText: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]).isRequired,
|
|
66
69
|
onClick: _propTypes.default.func.isRequired,
|
|
67
|
-
|
|
70
|
+
isNextDisabled: _propTypes.default.bool,
|
|
71
|
+
isPreviousDisabled: _propTypes.default.bool
|
|
68
72
|
};
|
package/build/cjs/page-select.js
CHANGED
|
@@ -32,32 +32,40 @@ const createAvailablePages = length => Array.from({
|
|
|
32
32
|
|
|
33
33
|
exports.createAvailablePages = createAvailablePages;
|
|
34
34
|
|
|
35
|
-
const PageSelect =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
},
|
|
35
|
+
const PageSelect = _ref => {
|
|
36
|
+
let {
|
|
37
|
+
dataTest,
|
|
38
|
+
disabled,
|
|
39
|
+
pageSelectText,
|
|
40
|
+
onChange,
|
|
41
|
+
page,
|
|
42
|
+
pageCount
|
|
43
|
+
} = _ref;
|
|
44
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
45
|
+
"data-test": "".concat(dataTest, "-gotopage"),
|
|
46
|
+
className: _style.default.dynamic([["485717002", [_uiConstants.spacers.dp12]]])
|
|
47
|
+
}, /*#__PURE__*/_react.default.createElement(_select.SingleSelect, {
|
|
48
|
+
dense: true,
|
|
49
|
+
disabled: disabled,
|
|
50
|
+
selected: page.toString(),
|
|
51
|
+
onChange: _ref2 => {
|
|
52
|
+
let {
|
|
53
|
+
selected
|
|
54
|
+
} = _ref2;
|
|
55
|
+
return onChange(parseInt(selected, 10));
|
|
56
|
+
},
|
|
57
|
+
className: "select",
|
|
58
|
+
dataTest: "".concat(dataTest, "-page-select"),
|
|
59
|
+
prefix: translate(pageSelectText)
|
|
60
|
+
}, createAvailablePages(pageCount).map(availablePage => /*#__PURE__*/_react.default.createElement(_select.SingleSelectOption, {
|
|
61
|
+
key: availablePage,
|
|
62
|
+
value: availablePage,
|
|
63
|
+
label: availablePage
|
|
64
|
+
}))), /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
65
|
+
id: "485717002",
|
|
66
|
+
dynamic: [_uiConstants.spacers.dp12]
|
|
67
|
+
}, ["div.__jsx-style-dynamic-selector{margin-right:".concat(_uiConstants.spacers.dp12, ";}")]));
|
|
68
|
+
};
|
|
61
69
|
|
|
62
70
|
exports.PageSelect = PageSelect;
|
|
63
71
|
PageSelect.propTypes = {
|
|
@@ -65,5 +73,6 @@ PageSelect.propTypes = {
|
|
|
65
73
|
page: _propTypes.default.number.isRequired,
|
|
66
74
|
pageCount: _propTypes.default.number.isRequired,
|
|
67
75
|
pageSelectText: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]).isRequired,
|
|
68
|
-
onChange: _propTypes.default.func.isRequired
|
|
76
|
+
onChange: _propTypes.default.func.isRequired,
|
|
77
|
+
disabled: _propTypes.default.bool
|
|
69
78
|
};
|
|
@@ -26,32 +26,40 @@ const translate = (prop, interpolationObject) => {
|
|
|
26
26
|
return prop;
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
const PageSizeSelect =
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
},
|
|
29
|
+
const PageSizeSelect = _ref => {
|
|
30
|
+
let {
|
|
31
|
+
dataTest,
|
|
32
|
+
disabled,
|
|
33
|
+
pageSizeSelectText,
|
|
34
|
+
pageSize,
|
|
35
|
+
pageSizes,
|
|
36
|
+
onChange
|
|
37
|
+
} = _ref;
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
39
|
+
"data-test": "".concat(dataTest, "-pagesize"),
|
|
40
|
+
className: _style.default.dynamic([["1934482915", [_uiConstants.spacers.dp12]]])
|
|
41
|
+
}, /*#__PURE__*/_react.default.createElement(_select.SingleSelect, {
|
|
42
|
+
dense: true,
|
|
43
|
+
disabled: disabled,
|
|
44
|
+
selected: pageSize.toString(),
|
|
45
|
+
onChange: _ref2 => {
|
|
46
|
+
let {
|
|
47
|
+
selected
|
|
48
|
+
} = _ref2;
|
|
49
|
+
return onChange(parseInt(selected, 10));
|
|
50
|
+
},
|
|
51
|
+
className: "select",
|
|
52
|
+
dataTest: "".concat(dataTest, "-pagesize-select"),
|
|
53
|
+
prefix: translate(pageSizeSelectText)
|
|
54
|
+
}, pageSizes.map(length => /*#__PURE__*/_react.default.createElement(_select.SingleSelectOption, {
|
|
55
|
+
key: length,
|
|
56
|
+
value: length,
|
|
57
|
+
label: length
|
|
58
|
+
}))), /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
59
|
+
id: "1934482915",
|
|
60
|
+
dynamic: [_uiConstants.spacers.dp12]
|
|
61
|
+
}, ["div.__jsx-style-dynamic-selector{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;min-height:32px;margin-right:".concat(_uiConstants.spacers.dp12, ";-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}")]));
|
|
62
|
+
};
|
|
55
63
|
|
|
56
64
|
exports.PageSizeSelect = PageSizeSelect;
|
|
57
65
|
PageSizeSelect.propTypes = {
|
|
@@ -59,5 +67,6 @@ PageSizeSelect.propTypes = {
|
|
|
59
67
|
pageSize: _propTypes.default.number.isRequired,
|
|
60
68
|
pageSizeSelectText: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.func]).isRequired,
|
|
61
69
|
pageSizes: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
62
|
-
onChange: _propTypes.default.func.isRequired
|
|
70
|
+
onChange: _propTypes.default.func.isRequired,
|
|
71
|
+
disabled: _propTypes.default.bool
|
|
63
72
|
};
|