@dhis2-ui/pagination 8.2.0 → 8.2.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/build/cjs/__fixtures__/index.js +1 -1
- 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 +32 -29
- package/build/cjs/page-select.js +34 -28
- package/build/cjs/page-size-select.js +34 -28
- package/build/cjs/page-summary.js +13 -12
- package/build/cjs/pagination.js +23 -22
- package/build/cjs/pagination.stories.js +5 -15
- 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 +32 -29
- package/build/es/page-select.js +34 -28
- package/build/es/page-size-select.js +34 -28
- package/build/es/page-summary.js +13 -12
- package/build/es/pagination.js +23 -22
- package/build/es/pagination.stories.js +4 -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,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;
|
|
@@ -27,35 +27,38 @@ const translate = (prop, interpolationObject) => {
|
|
|
27
27
|
return prop;
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
const PageControls =
|
|
31
|
-
|
|
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 = {
|
package/build/cjs/page-select.js
CHANGED
|
@@ -32,34 +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
|
-
selected
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
+
};
|
|
63
69
|
|
|
64
70
|
exports.PageSelect = PageSelect;
|
|
65
71
|
PageSelect.propTypes = {
|
|
@@ -26,34 +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
|
-
selected
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
+
};
|
|
57
63
|
|
|
58
64
|
exports.PageSizeSelect = PageSizeSelect;
|
|
59
65
|
PageSizeSelect.propTypes = {
|
|
@@ -25,16 +25,17 @@ const translate = (prop, interpolationObject) => {
|
|
|
25
25
|
return prop;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
const PageSummary =
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
28
|
+
const PageSummary = _ref => {
|
|
29
|
+
let {
|
|
30
|
+
dataTest,
|
|
31
|
+
firstItem,
|
|
32
|
+
inactive,
|
|
33
|
+
lastItem,
|
|
34
|
+
page,
|
|
35
|
+
pageCount,
|
|
36
|
+
pageSummaryText,
|
|
37
|
+
total
|
|
38
|
+
} = _ref;
|
|
38
39
|
const summary = translate(pageSummaryText, {
|
|
39
40
|
firstItem,
|
|
40
41
|
lastItem,
|
|
@@ -43,7 +44,7 @@ const PageSummary = ({
|
|
|
43
44
|
total
|
|
44
45
|
});
|
|
45
46
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
46
|
-
"data-test":
|
|
47
|
+
"data-test": "".concat(dataTest, "-summary"),
|
|
47
48
|
className: _style.default.dynamic([["1022808428", [_uiConstants.spacers.dp12, _uiConstants.colors.grey700, _uiConstants.colors.grey500]]])
|
|
48
49
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
49
50
|
className: _style.default.dynamic([["1022808428", [_uiConstants.spacers.dp12, _uiConstants.colors.grey700, _uiConstants.colors.grey500]]]) + " " + ((0, _classnames.default)({
|
|
@@ -52,7 +53,7 @@ const PageSummary = ({
|
|
|
52
53
|
}, summary), /*#__PURE__*/_react.default.createElement(_style.default, {
|
|
53
54
|
id: "1022808428",
|
|
54
55
|
dynamic: [_uiConstants.spacers.dp12, _uiConstants.colors.grey700, _uiConstants.colors.grey500]
|
|
55
|
-
}, [
|
|
56
|
+
}, ["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, ";}"), "span.__jsx-style-dynamic-selector{color:".concat(_uiConstants.colors.grey700, ";font-size:14px;}"), "span.inactive.__jsx-style-dynamic-selector{color:".concat(_uiConstants.colors.grey500, ";}")]));
|
|
56
57
|
};
|
|
57
58
|
|
|
58
59
|
exports.PageSummary = PageSummary;
|
package/build/cjs/pagination.js
CHANGED
|
@@ -33,28 +33,29 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
33
33
|
|
|
34
34
|
const MAX_PAGE_COUNT = 2000;
|
|
35
35
|
|
|
36
|
-
const Pagination =
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
36
|
+
const Pagination = _ref => {
|
|
37
|
+
let {
|
|
38
|
+
className,
|
|
39
|
+
dataTest,
|
|
40
|
+
disabled,
|
|
41
|
+
hidePageSelect,
|
|
42
|
+
hidePageSizeSelect,
|
|
43
|
+
hidePageSummary,
|
|
44
|
+
isLastPage,
|
|
45
|
+
nextPageText,
|
|
46
|
+
onPageChange,
|
|
47
|
+
onPageSizeChange,
|
|
48
|
+
page,
|
|
49
|
+
pageCount,
|
|
50
|
+
pageLength,
|
|
51
|
+
pageSelectText,
|
|
52
|
+
pageSize,
|
|
53
|
+
pageSizes,
|
|
54
|
+
pageSizeSelectText,
|
|
55
|
+
pageSummaryText,
|
|
56
|
+
previousPageText,
|
|
57
|
+
total
|
|
58
|
+
} = _ref;
|
|
58
59
|
const {
|
|
59
60
|
firstItem,
|
|
60
61
|
lastItem
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.default = exports.WithoutPageSummary = exports.WithoutPageSizeSelect = exports.WithoutGoToPageSelect = exports.WithoutAnySelect = exports.WithCustomPageSummary = exports.PagerAtLastPage = exports.PagerAtFirstPage = exports.NoTotalAtLastPageWithoutPageLength = exports.NoTotalAtLastPage = exports.NoTotal = exports.Disabled = exports.Default = void 0;
|
|
7
7
|
|
|
8
8
|
var _d2I18n = _interopRequireDefault(require("@dhis2/d2-i18n"));
|
|
9
9
|
|
|
@@ -20,28 +20,18 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
20
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
21
|
|
|
22
22
|
const subtitle = 'Allows navigation through data displayed over several pages';
|
|
23
|
-
const description =
|
|
24
|
-
Pagination allows data to be split in pages. Paging large amounts of data avoids overwhelming users and should always be used wherever a lot of data is displayed. Pagination controls allow a user to browse through a set of data or navigate to a specific page depending on the type of pagination used.
|
|
25
|
-
|
|
26
|
-
**Do not rely on pagination for navigating datasets. A user should be able to search within, sort and filter datasets too, rather than needing to click through many pages looking for the right data item.**
|
|
27
|
-
|
|
28
|
-
\`\`\`js
|
|
29
|
-
import { Pagination } from '@dhis2/ui'
|
|
30
|
-
\`\`\`
|
|
31
|
-
|
|
32
|
-
_**Note**: Dropdown menus may not display properly on this page. View these demos in the 'Canvas' tab._
|
|
33
|
-
`;
|
|
23
|
+
const description = "\nPagination allows data to be split in pages. Paging large amounts of data avoids overwhelming users and should always be used wherever a lot of data is displayed. Pagination controls allow a user to browse through a set of data or navigate to a specific page depending on the type of pagination used.\n\n**Do not rely on pagination for navigating datasets. A user should be able to search within, sort and filter datasets too, rather than needing to click through many pages looking for the right data item.**\n\n```js\nimport { Pagination } from '@dhis2/ui'\n```\n\n_**Note**: Dropdown menus may not display properly on this page. View these demos in the 'Canvas' tab._\n";
|
|
34
24
|
|
|
35
25
|
const logOnPageChange = page => {
|
|
36
|
-
console.log(
|
|
26
|
+
console.log("Now navigate to page ".concat(page, "..."));
|
|
37
27
|
};
|
|
38
28
|
|
|
39
29
|
const logOnPageSizeChange = pageSize => {
|
|
40
|
-
console.log(
|
|
30
|
+
console.log("Now change page size to ".concat(pageSize, "..."));
|
|
41
31
|
};
|
|
42
32
|
|
|
43
33
|
var _default = {
|
|
44
|
-
title: '
|
|
34
|
+
title: 'Pagination',
|
|
45
35
|
component: _pagination.Pagination,
|
|
46
36
|
parameters: {
|
|
47
37
|
componentSubtitle: subtitle,
|
|
@@ -2,13 +2,15 @@ import i18n from './locales/index.js';
|
|
|
2
2
|
|
|
3
3
|
const isValidNumber = input => typeof input === 'number' && !isNaN(input);
|
|
4
4
|
|
|
5
|
-
export const getDefaultPageSummaryText =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
export const getDefaultPageSummaryText = _ref => {
|
|
6
|
+
let {
|
|
7
|
+
firstItem,
|
|
8
|
+
lastItem,
|
|
9
|
+
page,
|
|
10
|
+
pageCount,
|
|
11
|
+
total
|
|
12
|
+
} = _ref;
|
|
13
|
+
|
|
12
14
|
if (isValidNumber(total) && isValidNumber(lastItem)) {
|
|
13
15
|
return i18n.t('Page {{page}} of {{pageCount}}, items {{firstItem}}-{{lastItem}} of {{total}}', {
|
|
14
16
|
page,
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
export const getItemRange =
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
export const getItemRange = _ref => {
|
|
2
|
+
let {
|
|
3
|
+
isLastPage,
|
|
4
|
+
page,
|
|
5
|
+
pageLength,
|
|
6
|
+
pageSize,
|
|
7
|
+
total
|
|
8
|
+
} = _ref;
|
|
8
9
|
// page is 1-based
|
|
9
10
|
let firstItem = (page - 1) * pageSize + 1;
|
|
10
11
|
let lastItem = firstItem + pageSize - 1;
|
|
@@ -13,35 +13,38 @@ const translate = (prop, interpolationObject) => {
|
|
|
13
13
|
return prop;
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
const PageControls =
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
16
|
+
const PageControls = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
dataTest,
|
|
19
|
+
isNextDisabled,
|
|
20
|
+
isPreviousDisabled,
|
|
21
|
+
nextPageText,
|
|
22
|
+
page,
|
|
23
|
+
previousPageText,
|
|
24
|
+
onClick
|
|
25
|
+
} = _ref;
|
|
26
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
27
|
+
"data-test": "".concat(dataTest, "-pagecontrols"),
|
|
28
|
+
className: _JSXStyle.dynamic([["2407365506", [spacers.dp4]]])
|
|
29
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
30
|
+
secondary: true,
|
|
31
|
+
className: "button-previous",
|
|
32
|
+
small: true,
|
|
33
|
+
disabled: isPreviousDisabled,
|
|
34
|
+
onClick: () => onClick(page - 1),
|
|
35
|
+
dataTest: "".concat(dataTest, "-page-previous")
|
|
36
|
+
}, /*#__PURE__*/React.createElement(IconChevronLeft16, null), translate(previousPageText)), /*#__PURE__*/React.createElement(Button, {
|
|
37
|
+
secondary: true,
|
|
38
|
+
className: "button-next",
|
|
39
|
+
small: true,
|
|
40
|
+
disabled: isNextDisabled,
|
|
41
|
+
onClick: () => onClick(page + 1),
|
|
42
|
+
dataTest: "".concat(dataTest, "-page-next")
|
|
43
|
+
}, translate(nextPageText), /*#__PURE__*/React.createElement(IconChevronRight16, null)), /*#__PURE__*/React.createElement(_JSXStyle, {
|
|
44
|
+
id: "2407365506",
|
|
45
|
+
dynamic: [spacers.dp4]
|
|
46
|
+
}, ["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(spacers.dp4, ";}")]));
|
|
47
|
+
};
|
|
45
48
|
|
|
46
49
|
PageControls.propTypes = {
|
|
47
50
|
dataTest: PropTypes.string.isRequired,
|
package/build/es/page-select.js
CHANGED
|
@@ -16,34 +16,40 @@ const createAvailablePages = length => Array.from({
|
|
|
16
16
|
length
|
|
17
17
|
}, (_x, i) => (i + 1).toString());
|
|
18
18
|
|
|
19
|
-
const PageSelect =
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
selected
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
19
|
+
const PageSelect = _ref => {
|
|
20
|
+
let {
|
|
21
|
+
dataTest,
|
|
22
|
+
disabled,
|
|
23
|
+
pageSelectText,
|
|
24
|
+
onChange,
|
|
25
|
+
page,
|
|
26
|
+
pageCount
|
|
27
|
+
} = _ref;
|
|
28
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
29
|
+
"data-test": "".concat(dataTest, "-gotopage"),
|
|
30
|
+
className: _JSXStyle.dynamic([["485717002", [spacers.dp12]]])
|
|
31
|
+
}, /*#__PURE__*/React.createElement(SingleSelect, {
|
|
32
|
+
dense: true,
|
|
33
|
+
disabled: disabled,
|
|
34
|
+
selected: page.toString(),
|
|
35
|
+
onChange: _ref2 => {
|
|
36
|
+
let {
|
|
37
|
+
selected
|
|
38
|
+
} = _ref2;
|
|
39
|
+
return onChange(parseInt(selected, 10));
|
|
40
|
+
},
|
|
41
|
+
className: "select",
|
|
42
|
+
dataTest: "".concat(dataTest, "-page-select"),
|
|
43
|
+
prefix: translate(pageSelectText)
|
|
44
|
+
}, createAvailablePages(pageCount).map(availablePage => /*#__PURE__*/React.createElement(SingleSelectOption, {
|
|
45
|
+
key: availablePage,
|
|
46
|
+
value: availablePage,
|
|
47
|
+
label: availablePage
|
|
48
|
+
}))), /*#__PURE__*/React.createElement(_JSXStyle, {
|
|
49
|
+
id: "485717002",
|
|
50
|
+
dynamic: [spacers.dp12]
|
|
51
|
+
}, ["div.__jsx-style-dynamic-selector{margin-right:".concat(spacers.dp12, ";}")]));
|
|
52
|
+
};
|
|
47
53
|
|
|
48
54
|
PageSelect.propTypes = {
|
|
49
55
|
dataTest: PropTypes.string.isRequired,
|
|
@@ -12,34 +12,40 @@ const translate = (prop, interpolationObject) => {
|
|
|
12
12
|
return prop;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
const PageSizeSelect =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
selected
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
15
|
+
const PageSizeSelect = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
dataTest,
|
|
18
|
+
disabled,
|
|
19
|
+
pageSizeSelectText,
|
|
20
|
+
pageSize,
|
|
21
|
+
pageSizes,
|
|
22
|
+
onChange
|
|
23
|
+
} = _ref;
|
|
24
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
25
|
+
"data-test": "".concat(dataTest, "-pagesize"),
|
|
26
|
+
className: _JSXStyle.dynamic([["1934482915", [spacers.dp12]]])
|
|
27
|
+
}, /*#__PURE__*/React.createElement(SingleSelect, {
|
|
28
|
+
dense: true,
|
|
29
|
+
disabled: disabled,
|
|
30
|
+
selected: pageSize.toString(),
|
|
31
|
+
onChange: _ref2 => {
|
|
32
|
+
let {
|
|
33
|
+
selected
|
|
34
|
+
} = _ref2;
|
|
35
|
+
return onChange(parseInt(selected, 10));
|
|
36
|
+
},
|
|
37
|
+
className: "select",
|
|
38
|
+
dataTest: "".concat(dataTest, "-pagesize-select"),
|
|
39
|
+
prefix: translate(pageSizeSelectText)
|
|
40
|
+
}, pageSizes.map(length => /*#__PURE__*/React.createElement(SingleSelectOption, {
|
|
41
|
+
key: length,
|
|
42
|
+
value: length,
|
|
43
|
+
label: length
|
|
44
|
+
}))), /*#__PURE__*/React.createElement(_JSXStyle, {
|
|
45
|
+
id: "1934482915",
|
|
46
|
+
dynamic: [spacers.dp12]
|
|
47
|
+
}, ["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(spacers.dp12, ";-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}")]));
|
|
48
|
+
};
|
|
43
49
|
|
|
44
50
|
PageSizeSelect.propTypes = {
|
|
45
51
|
dataTest: PropTypes.string.isRequired,
|
package/build/es/page-summary.js
CHANGED
|
@@ -12,16 +12,17 @@ const translate = (prop, interpolationObject) => {
|
|
|
12
12
|
return prop;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
const PageSummary =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
const PageSummary = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
dataTest,
|
|
18
|
+
firstItem,
|
|
19
|
+
inactive,
|
|
20
|
+
lastItem,
|
|
21
|
+
page,
|
|
22
|
+
pageCount,
|
|
23
|
+
pageSummaryText,
|
|
24
|
+
total
|
|
25
|
+
} = _ref;
|
|
25
26
|
const summary = translate(pageSummaryText, {
|
|
26
27
|
firstItem,
|
|
27
28
|
lastItem,
|
|
@@ -30,7 +31,7 @@ const PageSummary = ({
|
|
|
30
31
|
total
|
|
31
32
|
});
|
|
32
33
|
return /*#__PURE__*/React.createElement("div", {
|
|
33
|
-
"data-test":
|
|
34
|
+
"data-test": "".concat(dataTest, "-summary"),
|
|
34
35
|
className: _JSXStyle.dynamic([["1022808428", [spacers.dp12, colors.grey700, colors.grey500]]])
|
|
35
36
|
}, /*#__PURE__*/React.createElement("span", {
|
|
36
37
|
className: _JSXStyle.dynamic([["1022808428", [spacers.dp12, colors.grey700, colors.grey500]]]) + " " + (cx({
|
|
@@ -39,7 +40,7 @@ const PageSummary = ({
|
|
|
39
40
|
}, summary), /*#__PURE__*/React.createElement(_JSXStyle, {
|
|
40
41
|
id: "1022808428",
|
|
41
42
|
dynamic: [spacers.dp12, colors.grey700, colors.grey500]
|
|
42
|
-
}, [
|
|
43
|
+
}, ["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(spacers.dp12, ";}"), "span.__jsx-style-dynamic-selector{color:".concat(colors.grey700, ";font-size:14px;}"), "span.inactive.__jsx-style-dynamic-selector{color:".concat(colors.grey500, ";}")]));
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
PageSummary.propTypes = {
|
package/build/es/pagination.js
CHANGED
|
@@ -12,28 +12,29 @@ import { PageSizeSelect } from './page-size-select.js';
|
|
|
12
12
|
import { PageSummary } from './page-summary.js';
|
|
13
13
|
const MAX_PAGE_COUNT = 2000;
|
|
14
14
|
|
|
15
|
-
const Pagination =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
15
|
+
const Pagination = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
className,
|
|
18
|
+
dataTest,
|
|
19
|
+
disabled,
|
|
20
|
+
hidePageSelect,
|
|
21
|
+
hidePageSizeSelect,
|
|
22
|
+
hidePageSummary,
|
|
23
|
+
isLastPage,
|
|
24
|
+
nextPageText,
|
|
25
|
+
onPageChange,
|
|
26
|
+
onPageSizeChange,
|
|
27
|
+
page,
|
|
28
|
+
pageCount,
|
|
29
|
+
pageLength,
|
|
30
|
+
pageSelectText,
|
|
31
|
+
pageSize,
|
|
32
|
+
pageSizes,
|
|
33
|
+
pageSizeSelectText,
|
|
34
|
+
pageSummaryText,
|
|
35
|
+
previousPageText,
|
|
36
|
+
total
|
|
37
|
+
} = _ref;
|
|
37
38
|
const {
|
|
38
39
|
firstItem,
|
|
39
40
|
lastItem
|
|
@@ -3,28 +3,18 @@ import React from 'react';
|
|
|
3
3
|
import * as pagers from './__fixtures__/index.js';
|
|
4
4
|
import { Pagination } from './pagination.js';
|
|
5
5
|
const subtitle = 'Allows navigation through data displayed over several pages';
|
|
6
|
-
const description =
|
|
7
|
-
Pagination allows data to be split in pages. Paging large amounts of data avoids overwhelming users and should always be used wherever a lot of data is displayed. Pagination controls allow a user to browse through a set of data or navigate to a specific page depending on the type of pagination used.
|
|
8
|
-
|
|
9
|
-
**Do not rely on pagination for navigating datasets. A user should be able to search within, sort and filter datasets too, rather than needing to click through many pages looking for the right data item.**
|
|
10
|
-
|
|
11
|
-
\`\`\`js
|
|
12
|
-
import { Pagination } from '@dhis2/ui'
|
|
13
|
-
\`\`\`
|
|
14
|
-
|
|
15
|
-
_**Note**: Dropdown menus may not display properly on this page. View these demos in the 'Canvas' tab._
|
|
16
|
-
`;
|
|
6
|
+
const description = "\nPagination allows data to be split in pages. Paging large amounts of data avoids overwhelming users and should always be used wherever a lot of data is displayed. Pagination controls allow a user to browse through a set of data or navigate to a specific page depending on the type of pagination used.\n\n**Do not rely on pagination for navigating datasets. A user should be able to search within, sort and filter datasets too, rather than needing to click through many pages looking for the right data item.**\n\n```js\nimport { Pagination } from '@dhis2/ui'\n```\n\n_**Note**: Dropdown menus may not display properly on this page. View these demos in the 'Canvas' tab._\n";
|
|
17
7
|
|
|
18
8
|
const logOnPageChange = page => {
|
|
19
|
-
console.log(
|
|
9
|
+
console.log("Now navigate to page ".concat(page, "..."));
|
|
20
10
|
};
|
|
21
11
|
|
|
22
12
|
const logOnPageSizeChange = pageSize => {
|
|
23
|
-
console.log(
|
|
13
|
+
console.log("Now change page size to ".concat(pageSize, "..."));
|
|
24
14
|
};
|
|
25
15
|
|
|
26
16
|
export default {
|
|
27
|
-
title: '
|
|
17
|
+
title: 'Pagination',
|
|
28
18
|
component: Pagination,
|
|
29
19
|
parameters: {
|
|
30
20
|
componentSubtitle: subtitle,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dhis2-ui/pagination",
|
|
3
|
-
"version": "8.2.
|
|
3
|
+
"version": "8.2.3",
|
|
4
4
|
"description": "UI Pagination",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@dhis2/prop-types": "^3.0.0-beta.1",
|
|
36
|
-
"@dhis2-ui/button": "8.2.
|
|
37
|
-
"@dhis2-ui/select": "8.2.
|
|
38
|
-
"@dhis2/ui-constants": "8.2.
|
|
39
|
-
"@dhis2/ui-icons": "8.2.
|
|
36
|
+
"@dhis2-ui/button": "8.2.3",
|
|
37
|
+
"@dhis2-ui/select": "8.2.3",
|
|
38
|
+
"@dhis2/ui-constants": "8.2.3",
|
|
39
|
+
"@dhis2/ui-icons": "8.2.3",
|
|
40
40
|
"classnames": "^2.3.1",
|
|
41
41
|
"prop-types": "^15.7.2"
|
|
42
42
|
},
|