@micromag/core 0.3.420 → 0.3.423
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/components.js +44 -6
- package/lib/components.js +45 -6
- package/package.json +3 -2
package/es/components.js
CHANGED
|
@@ -15,6 +15,7 @@ import { useForm, useDocumentEvent, useIntersectionObserver, useDimensionObserve
|
|
|
15
15
|
import { useFieldsManager, useFieldComponent, FieldContextProvider, withModals, useModals, useUppy, withPanels, usePanels, ScreenSizeProvider, useScreenComponent, ScreenProvider, useScreenRenderContext, useScreenSize } from '@micromag/core/contexts';
|
|
16
16
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
17
17
|
import get from 'lodash/get';
|
|
18
|
+
import queryString from 'query-string';
|
|
18
19
|
import ReactDOM from 'react-dom';
|
|
19
20
|
import isArray from 'lodash/isArray';
|
|
20
21
|
import { faAngleDown } from '@fortawesome/free-solid-svg-icons/faAngleDown';
|
|
@@ -1554,8 +1555,12 @@ var messages = defineMessages({
|
|
|
1554
1555
|
});
|
|
1555
1556
|
var propTypes$x = {
|
|
1556
1557
|
page: PropTypes$1.number,
|
|
1558
|
+
lastPage: PropTypes$1.number,
|
|
1559
|
+
maxPages: PropTypes$1.number,
|
|
1557
1560
|
total: PropTypes$1.number,
|
|
1558
1561
|
url: PropTypes$1.string,
|
|
1562
|
+
query: PropTypes$1.object,
|
|
1563
|
+
// eslint-disable-line react/forbid-prop-types
|
|
1559
1564
|
withPreviousNext: PropTypes$1.bool,
|
|
1560
1565
|
className: PropTypes$1.string,
|
|
1561
1566
|
paginationClassName: PropTypes$1.string,
|
|
@@ -1565,8 +1570,11 @@ var propTypes$x = {
|
|
|
1565
1570
|
};
|
|
1566
1571
|
var defaultProps$x = {
|
|
1567
1572
|
page: 1,
|
|
1573
|
+
lastPage: 1,
|
|
1574
|
+
maxPages: 10,
|
|
1568
1575
|
total: 1,
|
|
1569
1576
|
url: null,
|
|
1577
|
+
query: null,
|
|
1570
1578
|
withPreviousNext: false,
|
|
1571
1579
|
className: null,
|
|
1572
1580
|
paginationClassName: null,
|
|
@@ -1575,9 +1583,12 @@ var defaultProps$x = {
|
|
|
1575
1583
|
onClickPage: null
|
|
1576
1584
|
};
|
|
1577
1585
|
var PaginationMenu = function PaginationMenu(_ref) {
|
|
1578
|
-
var
|
|
1579
|
-
|
|
1586
|
+
var parentPage = _ref.page,
|
|
1587
|
+
parentLastPage = _ref.lastPage,
|
|
1588
|
+
parentMaxPages = _ref.maxPages,
|
|
1589
|
+
parentTotal = _ref.total,
|
|
1580
1590
|
url = _ref.url,
|
|
1591
|
+
query = _ref.query,
|
|
1581
1592
|
withPreviousNext = _ref.withPreviousNext,
|
|
1582
1593
|
className = _ref.className,
|
|
1583
1594
|
paginationClassName = _ref.paginationClassName,
|
|
@@ -1585,11 +1596,38 @@ var PaginationMenu = function PaginationMenu(_ref) {
|
|
|
1585
1596
|
linkClassName = _ref.linkClassName,
|
|
1586
1597
|
onClickPage = _ref.onClickPage;
|
|
1587
1598
|
var getUrl = useCallback(function (currentPage) {
|
|
1588
|
-
return url !== null ? "".concat(url).concat(
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1599
|
+
return url !== null ? "".concat(url, "?").concat(queryString.stringify(_objectSpread(_objectSpread({}, query), {}, {
|
|
1600
|
+
page: currentPage
|
|
1601
|
+
}), {
|
|
1602
|
+
arrayFormat: 'bracket'
|
|
1603
|
+
})) : null;
|
|
1604
|
+
}, [url, query]);
|
|
1605
|
+
|
|
1606
|
+
// TODO: test this
|
|
1607
|
+
// const pages = [...Array(total).keys()].map((it) => it + 1);
|
|
1608
|
+
|
|
1609
|
+
var page = parseInt(parentPage, 10);
|
|
1610
|
+
var total = parseInt(parentTotal, 10);
|
|
1611
|
+
var maxPages = parseInt(parentMaxPages, 10);
|
|
1612
|
+
var lastPage = parseInt(parentLastPage, 10);
|
|
1613
|
+
var pageNumbers = Array.from({
|
|
1614
|
+
length: parseInt(lastPage, 10)
|
|
1615
|
+
}, function (_, i) {
|
|
1616
|
+
return i + 1;
|
|
1592
1617
|
});
|
|
1618
|
+
var stripPages = maxPages !== null && lastPage > maxPages;
|
|
1619
|
+
var startPage = stripPages ? Math.min(Math.max(page - maxPages / 2, 1), lastPage - maxPages) : null;
|
|
1620
|
+
var endPage = stripPages ? startPage + maxPages : null;
|
|
1621
|
+
var strippedPages = stripPages ? pageNumbers.reduce(function (selectedPages, pageNumber) {
|
|
1622
|
+
if (pageNumber === 1 && startPage - 1 > 1) {
|
|
1623
|
+
return [pageNumber, '...'];
|
|
1624
|
+
}
|
|
1625
|
+
if (pageNumber === lastPage && endPage + 1 < lastPage) {
|
|
1626
|
+
return [].concat(_toConsumableArray(selectedPages), ['...', pageNumber]);
|
|
1627
|
+
}
|
|
1628
|
+
return pageNumber >= startPage && pageNumber <= endPage ? [].concat(_toConsumableArray(selectedPages), [pageNumber]) : selectedPages;
|
|
1629
|
+
}, []) : pageNumbers;
|
|
1630
|
+
var pages = strippedPages.length > 0 ? strippedPages : [1];
|
|
1593
1631
|
return /*#__PURE__*/React.createElement("nav", {
|
|
1594
1632
|
className: classNames([styles$p.container, _defineProperty({}, className, className !== null)])
|
|
1595
1633
|
}, /*#__PURE__*/React.createElement("ul", {
|
package/lib/components.js
CHANGED
|
@@ -19,6 +19,7 @@ var hooks = require('@micromag/core/hooks');
|
|
|
19
19
|
var contexts = require('@micromag/core/contexts');
|
|
20
20
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
21
21
|
var get = require('lodash/get');
|
|
22
|
+
var queryString = require('query-string');
|
|
22
23
|
var ReactDOM = require('react-dom');
|
|
23
24
|
var isArray = require('lodash/isArray');
|
|
24
25
|
var faAngleDown = require('@fortawesome/free-solid-svg-icons/faAngleDown');
|
|
@@ -76,6 +77,7 @@ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumab
|
|
|
76
77
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
77
78
|
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
|
78
79
|
var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
|
|
80
|
+
var queryString__default = /*#__PURE__*/_interopDefaultLegacy(queryString);
|
|
79
81
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
80
82
|
var isArray__default = /*#__PURE__*/_interopDefaultLegacy(isArray);
|
|
81
83
|
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
@@ -1595,8 +1597,12 @@ var messages = reactIntl.defineMessages({
|
|
|
1595
1597
|
});
|
|
1596
1598
|
var propTypes$x = {
|
|
1597
1599
|
page: PropTypes__default["default"].number,
|
|
1600
|
+
lastPage: PropTypes__default["default"].number,
|
|
1601
|
+
maxPages: PropTypes__default["default"].number,
|
|
1598
1602
|
total: PropTypes__default["default"].number,
|
|
1599
1603
|
url: PropTypes__default["default"].string,
|
|
1604
|
+
query: PropTypes__default["default"].object,
|
|
1605
|
+
// eslint-disable-line react/forbid-prop-types
|
|
1600
1606
|
withPreviousNext: PropTypes__default["default"].bool,
|
|
1601
1607
|
className: PropTypes__default["default"].string,
|
|
1602
1608
|
paginationClassName: PropTypes__default["default"].string,
|
|
@@ -1606,8 +1612,11 @@ var propTypes$x = {
|
|
|
1606
1612
|
};
|
|
1607
1613
|
var defaultProps$x = {
|
|
1608
1614
|
page: 1,
|
|
1615
|
+
lastPage: 1,
|
|
1616
|
+
maxPages: 10,
|
|
1609
1617
|
total: 1,
|
|
1610
1618
|
url: null,
|
|
1619
|
+
query: null,
|
|
1611
1620
|
withPreviousNext: false,
|
|
1612
1621
|
className: null,
|
|
1613
1622
|
paginationClassName: null,
|
|
@@ -1616,9 +1625,12 @@ var defaultProps$x = {
|
|
|
1616
1625
|
onClickPage: null
|
|
1617
1626
|
};
|
|
1618
1627
|
var PaginationMenu = function PaginationMenu(_ref) {
|
|
1619
|
-
var
|
|
1620
|
-
|
|
1628
|
+
var parentPage = _ref.page,
|
|
1629
|
+
parentLastPage = _ref.lastPage,
|
|
1630
|
+
parentMaxPages = _ref.maxPages,
|
|
1631
|
+
parentTotal = _ref.total,
|
|
1621
1632
|
url = _ref.url,
|
|
1633
|
+
query = _ref.query,
|
|
1622
1634
|
withPreviousNext = _ref.withPreviousNext,
|
|
1623
1635
|
className = _ref.className,
|
|
1624
1636
|
paginationClassName = _ref.paginationClassName,
|
|
@@ -1626,11 +1638,38 @@ var PaginationMenu = function PaginationMenu(_ref) {
|
|
|
1626
1638
|
linkClassName = _ref.linkClassName,
|
|
1627
1639
|
onClickPage = _ref.onClickPage;
|
|
1628
1640
|
var getUrl = React.useCallback(function (currentPage) {
|
|
1629
|
-
return url !== null ? "".concat(url).concat(
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1641
|
+
return url !== null ? "".concat(url, "?").concat(queryString__default["default"].stringify(_objectSpread__default["default"](_objectSpread__default["default"]({}, query), {}, {
|
|
1642
|
+
page: currentPage
|
|
1643
|
+
}), {
|
|
1644
|
+
arrayFormat: 'bracket'
|
|
1645
|
+
})) : null;
|
|
1646
|
+
}, [url, query]);
|
|
1647
|
+
|
|
1648
|
+
// TODO: test this
|
|
1649
|
+
// const pages = [...Array(total).keys()].map((it) => it + 1);
|
|
1650
|
+
|
|
1651
|
+
var page = parseInt(parentPage, 10);
|
|
1652
|
+
var total = parseInt(parentTotal, 10);
|
|
1653
|
+
var maxPages = parseInt(parentMaxPages, 10);
|
|
1654
|
+
var lastPage = parseInt(parentLastPage, 10);
|
|
1655
|
+
var pageNumbers = Array.from({
|
|
1656
|
+
length: parseInt(lastPage, 10)
|
|
1657
|
+
}, function (_, i) {
|
|
1658
|
+
return i + 1;
|
|
1633
1659
|
});
|
|
1660
|
+
var stripPages = maxPages !== null && lastPage > maxPages;
|
|
1661
|
+
var startPage = stripPages ? Math.min(Math.max(page - maxPages / 2, 1), lastPage - maxPages) : null;
|
|
1662
|
+
var endPage = stripPages ? startPage + maxPages : null;
|
|
1663
|
+
var strippedPages = stripPages ? pageNumbers.reduce(function (selectedPages, pageNumber) {
|
|
1664
|
+
if (pageNumber === 1 && startPage - 1 > 1) {
|
|
1665
|
+
return [pageNumber, '...'];
|
|
1666
|
+
}
|
|
1667
|
+
if (pageNumber === lastPage && endPage + 1 < lastPage) {
|
|
1668
|
+
return [].concat(_toConsumableArray__default["default"](selectedPages), ['...', pageNumber]);
|
|
1669
|
+
}
|
|
1670
|
+
return pageNumber >= startPage && pageNumber <= endPage ? [].concat(_toConsumableArray__default["default"](selectedPages), [pageNumber]) : selectedPages;
|
|
1671
|
+
}, []) : pageNumbers;
|
|
1672
|
+
var pages = strippedPages.length > 0 ? strippedPages : [1];
|
|
1634
1673
|
return /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
1635
1674
|
className: classNames__default["default"]([styles$p.container, _defineProperty__default["default"]({}, className, className !== null)])
|
|
1636
1675
|
}, /*#__PURE__*/React__default["default"].createElement("ul", {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.423",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [
|
|
@@ -119,6 +119,7 @@
|
|
|
119
119
|
"lodash": "^4.17.21",
|
|
120
120
|
"param-case": "^3.0.4",
|
|
121
121
|
"prop-types": "^15.7.2",
|
|
122
|
+
"query-string": "^6.13.7",
|
|
122
123
|
"raf": "^3.4.1",
|
|
123
124
|
"react-helmet": "^6.1.0",
|
|
124
125
|
"react-intl": "^5.12.1",
|
|
@@ -136,5 +137,5 @@
|
|
|
136
137
|
"access": "public",
|
|
137
138
|
"registry": "https://registry.npmjs.org/"
|
|
138
139
|
},
|
|
139
|
-
"gitHead": "
|
|
140
|
+
"gitHead": "c02e69c23fd099d5684bc0b69e02f19825cecfd2"
|
|
140
141
|
}
|