@occmundial/occ-atomic 3.0.0-beta.7 → 3.0.0-beta.71

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.
Files changed (171) hide show
  1. package/CHANGELOG.md +556 -0
  2. package/build/Avatar/Avatar.js +69 -21
  3. package/build/Avatar/Avatar.test.js +15 -8
  4. package/build/Avatar/AvatarContent/AvatarContent.js +61 -21
  5. package/build/Avatar/AvatarContent/AvatarContent.test.js +4 -18
  6. package/build/Avatar/AvatarContent/__snapshots__/AvatarContent.test.js.snap +75 -15
  7. package/build/Avatar/AvatarContent/styles.js +88 -21
  8. package/build/Avatar/__snapshots__/Avatar.test.js.snap +11 -2
  9. package/build/Avatar/styles.js +18 -7
  10. package/build/Banner/Banner.js +30 -40
  11. package/build/Banner/Banner.test.js +64 -17
  12. package/build/Banner/__snapshots__/Banner.test.js.snap +0 -28
  13. package/build/Banner/index.js +1 -6
  14. package/build/Button/Button.js +1 -1
  15. package/build/Button/Button.test.js +0 -11
  16. package/build/Button/__snapshots__/Button.test.js.snap +63 -67
  17. package/build/Button/styles.js +42 -75
  18. package/build/Checkbox/Checkbox.js +48 -3
  19. package/build/Checkbox/__snapshots__/Checkbox.test.js.snap +81 -49
  20. package/build/Checkbox/styles.js +91 -48
  21. package/build/Drawer/Drawer.js +40 -0
  22. package/build/{Header/Nav/Nav.js → Drawer/index.js} +54 -39
  23. package/build/Drawer/index.test.js +52 -0
  24. package/build/Drawer/styles.js +61 -0
  25. package/build/Droplist/__snapshots__/Droplist.test.js.snap +5 -5
  26. package/build/Fab/__snapshots__/Fab.test.js.snap +2 -2
  27. package/build/Footer/Footer.js +81 -87
  28. package/build/Footer/List/List.js +89 -124
  29. package/build/Footer/List/styles.js +85 -31
  30. package/build/Footer/__snapshots__/Footer.test.js.snap +109 -59
  31. package/build/Footer/styles.js +116 -51
  32. package/build/Grid/Col/__snapshots__/Col.test.js.snap +16 -2
  33. package/build/Grid/Col/styles.js +12 -6
  34. package/build/Grid/Row/__snapshots__/Row.test.js.snap +18 -2
  35. package/build/Grid/Row/styles.js +15 -5
  36. package/build/Grid/styles.js +26 -9
  37. package/build/Menu/Menu.js +96 -0
  38. package/build/Menu/index.js +34 -0
  39. package/build/Menu/styles.js +25 -0
  40. package/build/MenuDivider/MenuDivider.js +47 -0
  41. package/build/MenuDivider/index.js +18 -0
  42. package/build/MenuDivider/styles.js +21 -0
  43. package/build/MenuItem/MenuItem.js +160 -0
  44. package/build/{Header/Menu → MenuItem}/index.js +2 -2
  45. package/build/MenuItem/styles.js +25 -0
  46. package/build/MenuItemBase/MenuItemBase.js +94 -0
  47. package/build/MenuItemBase/index.js +18 -0
  48. package/build/MenuItemBase/styles.js +57 -0
  49. package/build/MenuList/MenuList.js +71 -0
  50. package/build/{Header → MenuList}/index.js +2 -2
  51. package/build/MenuList/styles.js +54 -0
  52. package/build/MenuUser/MenuUser.js +152 -0
  53. package/build/MenuUser/index.js +18 -0
  54. package/build/MenuUser/styles.js +22 -0
  55. package/build/Modal/Modal.js +94 -66
  56. package/build/Modal/Modal.test.js +14 -7
  57. package/build/Modal/__snapshots__/Modal.test.js.snap +155 -100
  58. package/build/Modal/styles.js +165 -143
  59. package/build/NavAside/NavAside.js +54 -113
  60. package/build/NavAside/NavAside.test.js +0 -57
  61. package/build/NavAside/__snapshots__/NavAside.test.js.snap +35 -43
  62. package/build/NavAside/index.js +6 -0
  63. package/build/NavAside/styles.js +45 -63
  64. package/build/NavAvatarButton/NavAvatarButton.js +134 -0
  65. package/build/{NavIcon → NavAvatarButton}/index.js +2 -2
  66. package/build/NavAvatarButton/styles.js +33 -0
  67. package/build/NavButton/NavButton.js +73 -0
  68. package/build/{Header/Nav → NavButton}/index.js +2 -2
  69. package/build/NavButton/styles.js +79 -0
  70. package/build/NavItem/styles.js +4 -4
  71. package/build/NavTab/NavTab.js +45 -32
  72. package/build/NavTab/styles.js +59 -27
  73. package/build/NavTop/styles.js +6 -6
  74. package/build/OrderBy/OrderBy.js +2 -1
  75. package/build/Pager/Page/Page.js +11 -6
  76. package/build/Pager/Page/Page.test.js +13 -9
  77. package/build/Pager/Page/__snapshots__/Page.test.js.snap +34 -10
  78. package/build/Pager/Page/styles.js +48 -14
  79. package/build/Pager/Pager.js +144 -235
  80. package/build/Pager/Pager.test.js +81 -36
  81. package/build/Pager/__snapshots__/Pager.test.js.snap +3 -36
  82. package/build/Pager/styles.js +5 -40
  83. package/build/Pill/Choice/Choice.js +6 -4
  84. package/build/Pill/Choice/styles.js +13 -10
  85. package/build/Pill/Group/styles.js +5 -5
  86. package/build/Pill/Stack/Stack.js +2 -2
  87. package/build/Pill/Stack/styles.js +5 -8
  88. package/build/Placeholder/Placeholder.js +29 -12
  89. package/build/Placeholder/Placeholder.test.js +4 -4
  90. package/build/Placeholder/__snapshots__/Placeholder.test.js.snap +81 -38
  91. package/build/Placeholder/styles.js +86 -42
  92. package/build/Provider/MenuListProvider.js +38 -0
  93. package/build/Provider/usePrevious.js +1 -1
  94. package/build/Radio/Radio.js +22 -7
  95. package/build/Radio/__snapshots__/Radio.test.js.snap +71 -79
  96. package/build/Radio/styles.js +84 -85
  97. package/build/SlideDown/SlideDown.js +167 -169
  98. package/build/SlideDown/SlideDown.test.js +49 -44
  99. package/build/SlideDown/__snapshots__/SlideDown.test.js.snap +44 -15
  100. package/build/SlideDown/styles.js +51 -20
  101. package/build/SlideToggle/SlideToggle.js +38 -6
  102. package/build/SlideToggle/SlideToggle.test.js +2 -2
  103. package/build/SlideToggle/__snapshots__/SlideToggle.test.js.snap +53 -38
  104. package/build/SlideToggle/styles.js +64 -45
  105. package/build/Tabs/Tab/Tab.js +73 -0
  106. package/build/Tabs/Tab/index.js +34 -0
  107. package/build/Tabs/Tab/index.test.js +132 -0
  108. package/build/Tabs/Tab/styles.js +74 -0
  109. package/build/Tabs/TabContent/TabContent.js +76 -0
  110. package/build/Tabs/TabContent/index.js +34 -0
  111. package/build/Tabs/TabContent/index.test.js +68 -0
  112. package/build/Tabs/TabContent/styles.js +23 -0
  113. package/build/Tabs/TabIndicator/TabIndicator.js +158 -0
  114. package/build/Tabs/TabIndicator/index.js +34 -0
  115. package/build/Tabs/TabIndicator/styles.js +24 -0
  116. package/build/Tabs/TabList/TabList.js +108 -0
  117. package/build/Tabs/TabList/index.js +34 -0
  118. package/build/{Pager/Break → Tabs/TabList}/styles.js +3 -2
  119. package/build/Tabs/Tabs.js +74 -0
  120. package/build/Tabs/context.js +94 -0
  121. package/build/Tabs/index.js +34 -0
  122. package/build/Tabs/index.test.js +157 -0
  123. package/build/Tabs/styles.js +19 -0
  124. package/build/Tag/Tag.js +2 -2
  125. package/build/Tag/__snapshots__/Tag.test.js.snap +40 -43
  126. package/build/Tag/styles.js +76 -82
  127. package/build/Text/Text.js +2 -1
  128. package/build/TextField/TextField.js +7 -6
  129. package/build/TextField/__snapshots__/TextField.test.js.snap +3 -0
  130. package/build/TextField/styles.js +3 -0
  131. package/build/Tip/Tip.js +62 -95
  132. package/build/Tip/Tip.test.js +29 -6
  133. package/build/Tip/TipText/index.js +32 -0
  134. package/build/Tip/__snapshots__/Tip.test.js.snap +127 -15
  135. package/build/Tip/styles.js +125 -31
  136. package/build/Toaster/Toast/Toast.js +76 -64
  137. package/build/Toaster/Toast/styles.js +118 -46
  138. package/build/Toaster/Toaster.js +3 -2
  139. package/build/Toaster/Toaster.test.js +5 -2
  140. package/build/Toaster/__snapshots__/Toaster.test.js.snap +1 -1
  141. package/build/Toaster/functions.js +4 -0
  142. package/build/Toaster/styles.js +3 -3
  143. package/build/Tooltip/Tooltip.js +73 -22
  144. package/build/Tooltip/__snapshots__/Tooltip.test.js.snap +22 -6
  145. package/build/Tooltip/styles.js +32 -10
  146. package/build/index.js +33 -19
  147. package/build/plugin/babel.js +0 -2
  148. package/build/subatomic/grid.js +5 -5
  149. package/build/tokens/colors.json +94 -60
  150. package/build/tokens/index.js +12 -31
  151. package/build/tokens/shadows.json +3 -3
  152. package/package.json +5 -2
  153. package/build/Banner/styles.js +0 -41
  154. package/build/Header/Header.js +0 -163
  155. package/build/Header/Header.test.js +0 -118
  156. package/build/Header/Menu/Menu.js +0 -135
  157. package/build/Header/Menu/Menu.test.js +0 -107
  158. package/build/Header/Menu/__snapshots__/Menu.test.js.snap +0 -113
  159. package/build/Header/Menu/styles.js +0 -123
  160. package/build/Header/Nav/Nav.test.js +0 -81
  161. package/build/Header/Nav/__snapshots__/Nav.test.js.snap +0 -101
  162. package/build/Header/Nav/styles.js +0 -110
  163. package/build/Header/__snapshots__/Header.test.js.snap +0 -79
  164. package/build/Header/styles.js +0 -94
  165. package/build/NavIcon/NavIcon.js +0 -112
  166. package/build/NavIcon/styles.js +0 -81
  167. package/build/Pager/Break/Break.js +0 -27
  168. package/build/Pager/Break/Break.test.js +0 -53
  169. package/build/Pager/Break/__snapshots__/Break.test.js.snap +0 -13
  170. package/build/Pager/Break/index.js +0 -18
  171. /package/build/Button/{Loading.js → Loading/index.js} +0 -0
@@ -5,258 +5,185 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports["default"] = Pager;
9
9
 
10
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
- var _Icon = _interopRequireDefault(require("../Icon"));
14
+ var _Button = _interopRequireDefault(require("../Button"));
15
15
 
16
16
  var _Page = _interopRequireDefault(require("./Page"));
17
17
 
18
- var _Break = _interopRequireDefault(require("./Break"));
19
-
20
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
19
 
22
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
23
-
24
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
25
-
26
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
27
-
28
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
29
-
30
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
21
 
32
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
22
+ 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; }
33
23
 
34
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
35
-
36
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
37
-
38
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
24
+ /** This pager allows the user to navigate between pages with 'Next' and 'Previous' buttons and numerical buttons. */
25
+ function Pager(_ref) {
26
+ var classes = _ref.classes,
27
+ currentPage = _ref.currentPage,
28
+ onPageChange = _ref.onPageChange,
29
+ _ref$pageCount = _ref.pageCount,
30
+ pageCount = _ref$pageCount === void 0 ? 10 : _ref$pageCount,
31
+ _ref$centerPages = _ref.centerPages,
32
+ centerPages = _ref$centerPages === void 0 ? 3 : _ref$centerPages,
33
+ _ref$marginPages = _ref.marginPages,
34
+ marginPages = _ref$marginPages === void 0 ? 2 : _ref$marginPages,
35
+ _ref$previousLabel = _ref.previousLabel,
36
+ previousLabel = _ref$previousLabel === void 0 ? 'Previous' : _ref$previousLabel,
37
+ _ref$nextLabel = _ref.nextLabel,
38
+ nextLabel = _ref$nextLabel === void 0 ? 'Next' : _ref$nextLabel,
39
+ _ref$breakSymbol = _ref.breakSymbol,
40
+ breakSymbol = _ref$breakSymbol === void 0 ? '...' : _ref$breakSymbol,
41
+ hideNumbers = _ref.hideNumbers,
42
+ disabled = _ref.disabled,
43
+ className = _ref.className,
44
+ id = _ref.id;
45
+ var handlePageSelected = (0, _react.useCallback)(function (newPage) {
46
+ if (currentPage === newPage) return;
47
+ if (onPageChange) onPageChange(newPage);
48
+ }, [currentPage, onPageChange]);
49
+ (0, _react.useEffect)(function () {
50
+ if (currentPage > pageCount || currentPage < 1) {
51
+ handlePageSelected(1);
52
+ }
53
+ }, [currentPage, pageCount, handlePageSelected]);
39
54
 
40
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
55
+ var handlePrevPage = function handlePrevPage() {
56
+ if (currentPage > 1) handlePageSelected(currentPage - 1);
57
+ };
41
58
 
42
- /** This pager allows the user to navigate between pages with 'Next' and 'Previous' buttons and numerical buttons. */
43
- var Pager = /*#__PURE__*/function (_React$Component) {
44
- _inherits(Pager, _React$Component);
59
+ var handleNextPage = function handleNextPage() {
60
+ if (currentPage < pageCount) handlePageSelected(currentPage + 1);
61
+ };
45
62
 
46
- var _super = _createSuper(Pager);
63
+ var addPage = function addPage(page) {
64
+ var pageData = {
65
+ key: page.toString(),
66
+ type: 'page',
67
+ selected: currentPage === page
68
+ };
69
+ return pageData;
70
+ };
47
71
 
48
- function Pager(props) {
49
- var _this;
72
+ var getStartAndEndPages = function getStartAndEndPages() {
73
+ var startPage = Math.max(currentPage - Math.floor(centerPages / 2), marginPages + 1);
74
+ var endPage = Math.min(startPage + centerPages - 1, pageCount - marginPages);
50
75
 
51
- _classCallCheck(this, Pager);
76
+ if (endPage === pageCount - marginPages) {
77
+ startPage = Math.max(endPage - centerPages + 1, marginPages + 1);
78
+ }
52
79
 
53
- _this = _super.call(this, props);
54
- _this.state = {
55
- selected: props.initialPage ? props.initialPage : props.forcePage ? props.forcePage : 1
80
+ return {
81
+ startPage: startPage,
82
+ endPage: endPage
56
83
  };
57
- _this.callCallback = _this.callCallback.bind(_assertThisInitialized(_this));
58
- _this.handlePrevPage = _this.handlePrevPage.bind(_assertThisInitialized(_this));
59
- _this.handleNextPage = _this.handleNextPage.bind(_assertThisInitialized(_this));
60
- _this.handlePageSelected = _this.handlePageSelected.bind(_assertThisInitialized(_this));
61
- _this.getPageElement = _this.getPageElement.bind(_assertThisInitialized(_this));
62
- _this.pagination = _this.pagination.bind(_assertThisInitialized(_this));
63
- return _this;
64
- }
84
+ };
65
85
 
66
- _createClass(Pager, [{
67
- key: "componentDidMount",
68
- value: function componentDidMount() {
69
- var _this$props = this.props,
70
- initialPage = _this$props.initialPage,
71
- disableInitialCallback = _this$props.disableInitialCallback;
86
+ function getPagination() {
87
+ var elements = [];
72
88
 
73
- if (typeof initialPage != 'undefined' && !disableInitialCallback) {
74
- this.callCallback(initialPage);
89
+ if (pageCount <= centerPages + marginPages * 2) {
90
+ for (var i = 1; i <= pageCount; i++) {
91
+ elements.push(addPage(i));
75
92
  }
76
- }
77
- }, {
78
- key: "componentWillReceiveProps",
79
- value: function componentWillReceiveProps(props) {
80
- if (typeof props.forcePage != 'undefined' && this.props.forcePage != props.forcePage) {
81
- this.setState({
82
- selected: props.forcePage
83
- });
93
+ } else {
94
+ for (var _i = 1; _i <= marginPages; _i++) {
95
+ elements.push(addPage(_i));
84
96
  }
85
- }
86
- }, {
87
- key: "callCallback",
88
- value: function callCallback(selectedItem) {
89
- var onPageChange = this.props.onPageChange;
90
-
91
- if (typeof onPageChange != 'undefined' && typeof onPageChange == 'function') {
92
- onPageChange({
93
- selected: selectedItem
97
+
98
+ var _getStartAndEndPages = getStartAndEndPages(),
99
+ startPage = _getStartAndEndPages.startPage,
100
+ endPage = _getStartAndEndPages.endPage;
101
+
102
+ if (currentPage > marginPages + 1 && startPage > marginPages + 1) {
103
+ elements.push({
104
+ key: 'left-break',
105
+ type: 'break'
94
106
  });
95
107
  }
96
- }
97
- }, {
98
- key: "handlePrevPage",
99
- value: function handlePrevPage(e) {
100
- var selected = this.state.selected;
101
- e.preventDefault ? e.preventDefault() : e.returnValue = false;
102
-
103
- if (selected > 1) {
104
- this.handlePageSelected(selected - 1, e);
108
+
109
+ for (var _i2 = startPage; _i2 <= endPage; _i2++) {
110
+ elements.push(addPage(_i2));
105
111
  }
106
- }
107
- }, {
108
- key: "handleNextPage",
109
- value: function handleNextPage(e) {
110
- var selected = this.state.selected;
111
- var pageCount = this.props.pageCount;
112
- e.preventDefault ? e.preventDefault() : e.returnValue = false;
113
-
114
- if (selected < pageCount) {
115
- this.handlePageSelected(selected + 1, e);
112
+
113
+ if (currentPage < pageCount - marginPages - 1) {
114
+ elements.push({
115
+ key: 'right-break',
116
+ type: 'break'
117
+ });
118
+ }
119
+
120
+ for (var _i3 = pageCount - marginPages + 1; _i3 <= pageCount; _i3++) {
121
+ elements.push(addPage(_i3));
116
122
  }
117
123
  }
118
- }, {
119
- key: "handlePageSelected",
120
- value: function handlePageSelected(selected, e) {
121
- e.preventDefault ? e.preventDefault() : e.returnValue = false;
122
- if (this.state.selected == selected) return;
123
- this.setState({
124
- selected: selected
125
- });
126
- this.callCallback(selected);
127
- }
128
- }, {
129
- key: "getPageElement",
130
- value: function getPageElement(index) {
131
- var selected = this.state.selected;
124
+
125
+ return elements;
126
+ }
127
+
128
+ return /*#__PURE__*/_react["default"].createElement("div", {
129
+ className: "".concat(classes.pager).concat(className ? " ".concat(className) : '')
130
+ }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
131
+ className: classes.prev,
132
+ disabled: currentPage === 1 || disabled,
133
+ theme: "secondary",
134
+ onClick: handlePrevPage,
135
+ icon: "arrow-left",
136
+ size: !previousLabel ? 'lg' : 'sm',
137
+ id: id ? "".concat(id, "Previo") : undefined
138
+ }, previousLabel), !hideNumbers && getPagination().map(function (_ref2) {
139
+ var key = _ref2.key,
140
+ type = _ref2.type,
141
+ selected = _ref2.selected;
142
+
143
+ if (type === 'page') {
132
144
  return /*#__PURE__*/_react["default"].createElement(_Page["default"], {
133
- key: index,
134
- onClick: this.handlePageSelected.bind(null, index),
135
- selected: selected == index,
136
- page: index
145
+ key: key,
146
+ onClick: function onClick() {
147
+ return handlePageSelected(Number(key));
148
+ },
149
+ selected: selected,
150
+ page: Number(key),
151
+ disabled: disabled,
152
+ id: id
137
153
  });
138
154
  }
139
- }, {
140
- key: "pagination",
141
- value: function pagination() {
142
- var _this2 = this;
143
-
144
- var items = [];
145
- var selected = this.state.selected;
146
- var _this$props2 = this.props,
147
- pageRangeDisplayed = _this$props2.pageRangeDisplayed,
148
- pageCount = _this$props2.pageCount,
149
- marginPagesDisplayed = _this$props2.marginPagesDisplayed,
150
- breakLabel = _this$props2.breakLabel;
151
-
152
- if (pageCount <= pageRangeDisplayed) {
153
- for (var index = 1; index <= pageCount; index++) {
154
- items.push(this.getPageElement(index));
155
- }
156
- } else {
157
- var leftSide = pageRangeDisplayed / 2;
158
- var rightSide = pageRangeDisplayed - leftSide;
159
-
160
- if (selected > pageCount - pageRangeDisplayed / 2) {
161
- rightSide = pageCount - selected;
162
- leftSide = pageRangeDisplayed - rightSide;
163
- } else if (selected < pageRangeDisplayed / 2) {
164
- leftSide = selected;
165
- rightSide = pageRangeDisplayed - leftSide;
166
- }
167
-
168
- var _index;
169
-
170
- var page;
171
- var breakView;
172
-
173
- var createPage = function createPage(index) {
174
- return _this2.getPageElement(index);
175
- };
176
-
177
- for (_index = 1; _index <= pageCount; _index++) {
178
- page = _index;
179
-
180
- if (page <= marginPagesDisplayed) {
181
- items.push(createPage(_index));
182
- continue;
183
- }
184
-
185
- if (page > pageCount - marginPagesDisplayed) {
186
- items.push(createPage(_index));
187
- continue;
188
- }
189
-
190
- if (_index >= selected - leftSide && _index <= selected + rightSide) {
191
- items.push(createPage(_index));
192
- continue;
193
- }
194
-
195
- if (breakLabel && items[items.length - 1] != breakView) {
196
- breakView = /*#__PURE__*/_react["default"].createElement(_Break["default"], {
197
- key: _index,
198
- label: breakLabel
199
- });
200
- items.push(breakView);
201
- }
202
- }
203
- }
204
155
 
205
- return items;
206
- }
207
- }, {
208
- key: "render",
209
- value: function render() {
210
- var selected = this.state.selected;
211
- var _this$props3 = this.props,
212
- classes = _this$props3.classes,
213
- pageCount = _this$props3.pageCount,
214
- previousLabel = _this$props3.previousLabel,
215
- nextLabel = _this$props3.nextLabel,
216
- hideNumbers = _this$props3.hideNumbers,
217
- className = _this$props3.className;
218
- return /*#__PURE__*/_react["default"].createElement("ul", {
219
- className: "".concat(classes.pager).concat(className ? " ".concat(className) : '')
220
- }, /*#__PURE__*/_react["default"].createElement("li", {
221
- className: "".concat(classes.btn, " ").concat(classes.listItemPrevious).concat(selected == 1 ? " ".concat(classes.disabled) : ''),
222
- tabIndex: "0",
223
- onClick: this.handlePrevPage
224
- }, /*#__PURE__*/_react["default"].createElement("div", {
225
- className: classes.prev
226
- }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
227
- iconName: "chevron-left",
228
- width: 14,
229
- height: 14,
230
- colors: ['#adb4bb']
231
- }), previousLabel)), !hideNumbers && this.pagination(), /*#__PURE__*/_react["default"].createElement("li", {
232
- className: "".concat(classes.btn, " ").concat(classes.listItemNext).concat(selected == pageCount ? " ".concat(classes.disabled) : ''),
233
- tabIndex: "0",
234
- onClick: this.handleNextPage
235
- }, /*#__PURE__*/_react["default"].createElement("div", {
236
- className: classes.next
237
- }, nextLabel, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
238
- iconName: "chevron-right",
239
- width: 14,
240
- height: 14,
241
- colors: ['#adb4bb']
242
- }))));
243
- }
244
- }]);
245
-
246
- return Pager;
247
- }(_react["default"].Component);
156
+ return /*#__PURE__*/_react["default"].createElement(_Page["default"], {
157
+ key: key,
158
+ page: breakSymbol,
159
+ disabled: disabled,
160
+ id: id
161
+ });
162
+ }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
163
+ className: classes.next,
164
+ disabled: currentPage === pageCount || disabled,
165
+ theme: "secondary",
166
+ onClick: handleNextPage,
167
+ iconRight: "arrow-right",
168
+ size: !nextLabel ? 'lg' : 'sm',
169
+ id: id ? "".concat(id, "Siguiente") : undefined
170
+ }, nextLabel));
171
+ }
248
172
 
249
173
  Pager.propTypes = {
250
174
  classes: _propTypes["default"].object,
251
175
 
176
+ /** The current page number. */
177
+ currentPage: _propTypes["default"].number.isRequired,
178
+
252
179
  /** The total number of pages. */
253
- pageCount: _propTypes["default"].number.isRequired,
180
+ pageCount: _propTypes["default"].number,
254
181
 
255
182
  /** The number of page numbers displayed at the center, between the '...' separators. */
256
- pageRangeDisplayed: _propTypes["default"].number.isRequired,
183
+ centerPages: _propTypes["default"].number,
257
184
 
258
185
  /** The number of page numbers displayed on the sides of the pager. */
259
- marginPagesDisplayed: _propTypes["default"].number.isRequired,
186
+ marginPages: _propTypes["default"].number,
260
187
 
261
188
  /** The label for the 'Previous' button. */
262
189
  previousLabel: _propTypes["default"].node,
@@ -267,31 +194,13 @@ Pager.propTypes = {
267
194
  /** Function to call after clicking a button to change the page. */
268
195
  onPageChange: _propTypes["default"].func,
269
196
 
270
- /** Default page to start the Pager. */
271
- initialPage: _propTypes["default"].number,
272
-
273
- /** Force a page change externally. */
274
- forcePage: _propTypes["default"].number,
275
-
276
- /** By default, a callback triggers after mounting, calling the onPageChange function. Set this to false if you don't want that to happen. */
277
- disableInitialCallback: _propTypes["default"].bool,
278
-
279
197
  /** Hide the numerical buttons, leaving just the 'Next' and 'Previous' buttons to interact with. */
280
198
  hideNumbers: _propTypes["default"].bool,
281
199
 
282
200
  /** Label for the separators. */
283
- breakLabel: _propTypes["default"].string,
201
+ breakSymbol: _propTypes["default"].string,
202
+
203
+ /** Disable the pager */
204
+ disabled: _propTypes["default"].bool,
284
205
  className: _propTypes["default"].string
285
- };
286
- Pager.defaultProps = {
287
- pageCount: 10,
288
- pageRangeDisplayed: 2,
289
- marginPagesDisplayed: 3,
290
- previousLabel: 'Previous',
291
- nextLabel: 'Next',
292
- breakLabel: '...',
293
- disableInitialCallback: false,
294
- hideNumbers: false
295
- };
296
- var _default = Pager;
297
- exports["default"] = _default;
206
+ };
@@ -22,93 +22,138 @@ var classes = Object.keys(_styles["default"]).reduce(reduceClasses, {});
22
22
  describe("Pager", function () {
23
23
  it('matches the snapshot', function () {
24
24
  var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
25
- classes: classes
25
+ classes: classes,
26
+ currentPage: 1
26
27
  }));
27
28
  expect(wrapper).toMatchSnapshot();
28
29
  });
29
30
  it('renders the prev and next buttons', function () {
30
31
  var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
31
- classes: classes
32
+ classes: classes,
33
+ currentPage: 1
32
34
  }));
33
- expect(wrapper.find('.listItemPrevious').length).toBe(1);
34
- expect(wrapper.find('.listItemPrevious').text()).toEqual('<Jss(Icon) />Previous');
35
- expect(wrapper.find('.listItemNext').length).toBe(1);
36
- expect(wrapper.find('.listItemNext').text()).toEqual('Next<Jss(Icon) />');
35
+ expect(wrapper.find('.prev').length).toBe(1);
36
+ expect(wrapper.find('.prev').text()).toEqual('<Jss(Button) />');
37
+ expect(wrapper.find('.next').length).toBe(1);
38
+ expect(wrapper.find('.next').text()).toEqual('<Jss(Button) />');
37
39
  });
38
40
  it('changes to previous page', function () {
39
- var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
40
- initialPage: 3,
41
- classes: classes
41
+ var onPageChange = jest.fn();
42
+ var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
43
+ currentPage: 3,
44
+ pageCount: 4,
45
+ classes: classes,
46
+ onPageChange: onPageChange
42
47
  }));
43
- expect(wrapper.state('selected')).toEqual(3);
44
- wrapper.find('.listItemPrevious').simulate('click', {
48
+ expect(onPageChange.mock.calls.length).toBe(0);
49
+ expect(wrapper.find('Page').at(1).prop('selected')).toBe(false);
50
+ expect(wrapper.find('Page').at(2).prop('selected')).toBe(true);
51
+ wrapper.find('.prev button').simulate('click', {
45
52
  target: {}
46
53
  });
47
- expect(wrapper.state('selected')).toEqual(2);
54
+ expect(onPageChange.mock.calls.length).toBe(1);
55
+ expect(onPageChange.mock.calls[0][0]).toBe(2);
56
+ wrapper.setProps({
57
+ currentPage: 2
58
+ });
59
+ expect(wrapper.find('Page').at(1).prop('selected')).toBe(true);
60
+ expect(wrapper.find('Page').at(2).prop('selected')).toBe(false);
48
61
  });
49
62
  it('changes to next page', function () {
50
- var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
51
- initialPage: 3,
52
- classes: classes
63
+ var onPageChange = jest.fn();
64
+ var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
65
+ currentPage: 2,
66
+ pageCount: 4,
67
+ classes: classes,
68
+ onPageChange: onPageChange
53
69
  }));
54
- expect(wrapper.state('selected')).toEqual(3);
55
- wrapper.find('.listItemNext').simulate('click', {
70
+ expect(onPageChange.mock.calls.length).toBe(0);
71
+ expect(wrapper.find('Page').at(1).prop('selected')).toBe(true);
72
+ expect(wrapper.find('Page').at(2).prop('selected')).toBe(false);
73
+ wrapper.find('.next button').simulate('click', {
56
74
  target: {}
57
75
  });
58
- expect(wrapper.state('selected')).toEqual(4);
76
+ expect(onPageChange.mock.calls.length).toBe(1);
77
+ expect(onPageChange.mock.calls[0][0]).toBe(3);
78
+ wrapper.setProps({
79
+ currentPage: 3
80
+ });
81
+ expect(wrapper.find('Page').at(1).prop('selected')).toBe(false);
82
+ expect(wrapper.find('Page').at(2).prop('selected')).toBe(true);
59
83
  });
60
84
  it('renders the pagination', function () {
61
85
  var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
86
+ currentPage: 1,
62
87
  pageCount: 3,
63
- pageRangeDisplayed: 1,
64
- marginPagesDisplayed: 1,
88
+ centerPages: 1,
89
+ marginPages: 1,
65
90
  classes: classes
66
91
  }));
67
- expect(wrapper.find('li').length).toBe(5);
92
+ expect(wrapper.find('Page').length).toBe(3);
93
+ wrapper.setProps({
94
+ pageCount: 10
95
+ });
96
+ expect(wrapper.find('Page').length).toBe(4);
97
+ wrapper.setProps({
98
+ currentPage: 3
99
+ });
100
+ expect(wrapper.find('Page').length).toBe(5);
68
101
  });
69
102
  it('changes to a specific page', function () {
103
+ var onPageChange = jest.fn();
70
104
  var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
105
+ currentPage: 1,
71
106
  pageCount: 5,
72
- pageRangeDisplayed: 1,
73
- marginPagesDisplayed: 1,
74
- classes: classes
107
+ centerPages: 1,
108
+ marginPages: 1,
109
+ classes: classes,
110
+ onPageChange: onPageChange
75
111
  }));
76
- expect(wrapper.state('selected')).toEqual(1);
77
- wrapper.find('li').at(3).simulate('click', {
112
+ expect(onPageChange.mock.calls.length).toBe(0);
113
+ expect(wrapper.find('Page').at(0).prop('selected')).toBe(true);
114
+ expect(wrapper.find('Page').at(1).prop('selected')).toBe(false);
115
+ wrapper.find('Page').at(1).simulate('click', {
78
116
  target: {}
79
117
  });
80
- expect(wrapper.state('selected')).toEqual(5);
118
+ expect(onPageChange.mock.calls.length).toBe(1);
119
+ expect(onPageChange.mock.calls[0][0]).toBe(2);
120
+ wrapper.setProps({
121
+ currentPage: 2
122
+ });
123
+ expect(wrapper.find('Page').at(0).prop('selected')).toBe(false);
124
+ expect(wrapper.find('Page').at(1).prop('selected')).toBe(true);
81
125
  });
82
126
  it('disables the previous page button', function () {
83
127
  var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
84
- initialPage: 1,
128
+ currentPage: 1,
85
129
  classes: classes
86
130
  }));
87
- expect(wrapper.find('.listItemPrevious').hasClass('disabled')).toEqual(true);
131
+ expect(wrapper.find('.prev').prop('disabled')).toEqual(true);
88
132
  wrapper.setProps({
89
- forcePage: 5
133
+ currentPage: 5
90
134
  });
91
- expect(wrapper.find('.listItemPrevious').hasClass('disabled')).toEqual(false);
135
+ expect(wrapper.find('.prev').prop('disabled')).toEqual(false);
92
136
  });
93
137
  it('disables the next page button', function () {
94
138
  var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
95
139
  pageCount: 5,
96
- initialPage: 5,
140
+ currentPage: 5,
97
141
  classes: classes
98
142
  }));
99
- expect(wrapper.find('.listItemNext').hasClass('disabled')).toEqual(true);
143
+ expect(wrapper.find('.next').prop('disabled')).toEqual(true);
100
144
  wrapper.setProps({
101
- forcePage: 1
145
+ currentPage: 1
102
146
  });
103
- expect(wrapper.find('.listItemNext').hasClass('disabled')).toEqual(false);
147
+ expect(wrapper.find('.next').prop('disabled')).toEqual(false);
104
148
  });
105
149
  it('calls the onPageChange function', function () {
106
150
  var onPageChange = jest.fn();
107
151
  var wrapper = (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_Pager["default"], {
152
+ currentPage: 1,
108
153
  onPageChange: onPageChange,
109
154
  classes: classes
110
155
  }));
111
- wrapper.find('.listItemNext').simulate('click', {
156
+ wrapper.find('.next').simulate('click', {
112
157
  target: {}
113
158
  });
114
159
  expect(onPageChange.mock.calls.length).toBe(1);