@occmundial/occ-atomic 3.0.0-beta.4 → 3.0.0-beta.40

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. package/CHANGELOG.md +331 -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 +54 -60
  17. package/build/Button/styles.js +42 -77
  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/Fab/__snapshots__/Fab.test.js.snap +2 -2
  22. package/build/Footer/Footer.js +4 -6
  23. package/build/Footer/__snapshots__/Footer.test.js.snap +0 -6
  24. package/build/Footer/styles.js +0 -6
  25. package/build/Grid/Col/__snapshots__/Col.test.js.snap +16 -2
  26. package/build/Grid/Col/styles.js +12 -6
  27. package/build/Grid/Row/__snapshots__/Row.test.js.snap +18 -2
  28. package/build/Grid/Row/styles.js +15 -5
  29. package/build/Grid/styles.js +26 -9
  30. package/build/Modal/Modal.js +94 -66
  31. package/build/Modal/Modal.test.js +14 -7
  32. package/build/Modal/__snapshots__/Modal.test.js.snap +152 -100
  33. package/build/Modal/styles.js +161 -142
  34. package/build/Pager/Page/Page.js +8 -5
  35. package/build/Pager/Page/Page.test.js +13 -9
  36. package/build/Pager/Page/__snapshots__/Page.test.js.snap +34 -10
  37. package/build/Pager/Page/styles.js +48 -14
  38. package/build/Pager/Pager.js +139 -235
  39. package/build/Pager/Pager.test.js +81 -36
  40. package/build/Pager/__snapshots__/Pager.test.js.snap +3 -36
  41. package/build/Pager/styles.js +5 -40
  42. package/build/Pill/Choice/Choice.js +6 -4
  43. package/build/Pill/Choice/styles.js +13 -10
  44. package/build/Pill/Group/styles.js +5 -5
  45. package/build/Pill/Stack/Stack.js +2 -2
  46. package/build/Pill/Stack/styles.js +5 -8
  47. package/build/Radio/Radio.js +42 -6
  48. package/build/Radio/__snapshots__/Radio.test.js.snap +81 -80
  49. package/build/Radio/styles.js +93 -85
  50. package/build/SlideToggle/SlideToggle.js +38 -6
  51. package/build/SlideToggle/SlideToggle.test.js +2 -2
  52. package/build/SlideToggle/__snapshots__/SlideToggle.test.js.snap +53 -37
  53. package/build/SlideToggle/styles.js +64 -45
  54. package/build/Tag/Tag.js +2 -2
  55. package/build/Tag/__snapshots__/Tag.test.js.snap +40 -43
  56. package/build/Tag/styles.js +76 -82
  57. package/build/Text/Text.js +4 -2
  58. package/build/TextField/TextField.js +7 -6
  59. package/build/TextField/__snapshots__/TextField.test.js.snap +3 -0
  60. package/build/TextField/styles.js +3 -0
  61. package/build/Tip/Tip.js +61 -95
  62. package/build/Tip/Tip.test.js +29 -6
  63. package/build/Tip/TipText/index.js +32 -0
  64. package/build/Tip/__snapshots__/Tip.test.js.snap +131 -15
  65. package/build/Tip/styles.js +126 -31
  66. package/build/Toaster/Toast/Toast.js +76 -64
  67. package/build/Toaster/Toast/styles.js +118 -46
  68. package/build/Toaster/Toaster.js +3 -2
  69. package/build/Toaster/Toaster.test.js +5 -2
  70. package/build/Toaster/__snapshots__/Toaster.test.js.snap +1 -1
  71. package/build/Toaster/functions.js +4 -0
  72. package/build/Toaster/styles.js +3 -3
  73. package/build/Tooltip/Tooltip.js +73 -22
  74. package/build/Tooltip/__snapshots__/Tooltip.test.js.snap +22 -6
  75. package/build/Tooltip/styles.js +32 -10
  76. package/build/subatomic/grid.js +5 -5
  77. package/build/tokens/colors.json +21 -3
  78. package/package.json +4 -1
  79. package/build/Banner/styles.js +0 -41
  80. package/build/Pager/Break/Break.js +0 -27
  81. package/build/Pager/Break/Break.test.js +0 -53
  82. package/build/Pager/Break/__snapshots__/Break.test.js.snap +0 -13
  83. package/build/Pager/Break/index.js +0 -18
  84. package/build/Pager/Break/styles.js +0 -12
  85. /package/build/Button/{Loading.js → Loading/index.js} +0 -0
@@ -5,258 +5,180 @@ 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
+ var handlePageSelected = (0, _react.useCallback)(function (newPage) {
45
+ if (currentPage === newPage) return;
46
+ if (onPageChange) onPageChange(newPage);
47
+ }, [currentPage, onPageChange]);
48
+ (0, _react.useEffect)(function () {
49
+ if (currentPage > pageCount || currentPage < 1) {
50
+ handlePageSelected(1);
51
+ }
52
+ }, [currentPage, pageCount, handlePageSelected]);
39
53
 
40
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
54
+ var handlePrevPage = function handlePrevPage() {
55
+ if (currentPage > 1) handlePageSelected(currentPage - 1);
56
+ };
41
57
 
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);
58
+ var handleNextPage = function handleNextPage() {
59
+ if (currentPage < pageCount) handlePageSelected(currentPage + 1);
60
+ };
45
61
 
46
- var _super = _createSuper(Pager);
62
+ var addPage = function addPage(page) {
63
+ var pageData = {
64
+ key: page.toString(),
65
+ type: 'page',
66
+ selected: currentPage === page
67
+ };
68
+ return pageData;
69
+ };
47
70
 
48
- function Pager(props) {
49
- var _this;
71
+ var getStartAndEndPages = function getStartAndEndPages() {
72
+ var startPage = Math.max(currentPage - Math.floor(centerPages / 2), marginPages + 1);
73
+ var endPage = Math.min(startPage + centerPages - 1, pageCount - marginPages);
50
74
 
51
- _classCallCheck(this, Pager);
75
+ if (endPage === pageCount - marginPages) {
76
+ startPage = Math.max(endPage - centerPages + 1, marginPages + 1);
77
+ }
52
78
 
53
- _this = _super.call(this, props);
54
- _this.state = {
55
- selected: props.initialPage ? props.initialPage : props.forcePage ? props.forcePage : 1
79
+ return {
80
+ startPage: startPage,
81
+ endPage: endPage
56
82
  };
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
- }
83
+ };
65
84
 
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;
85
+ function getPagination() {
86
+ var elements = [];
72
87
 
73
- if (typeof initialPage != 'undefined' && !disableInitialCallback) {
74
- this.callCallback(initialPage);
88
+ if (pageCount <= centerPages + marginPages * 2) {
89
+ for (var i = 1; i <= pageCount; i++) {
90
+ elements.push(addPage(i));
75
91
  }
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
- });
92
+ } else {
93
+ for (var _i = 1; _i <= marginPages; _i++) {
94
+ elements.push(addPage(_i));
84
95
  }
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
96
+
97
+ var _getStartAndEndPages = getStartAndEndPages(),
98
+ startPage = _getStartAndEndPages.startPage,
99
+ endPage = _getStartAndEndPages.endPage;
100
+
101
+ if (currentPage > marginPages + 1 && startPage > marginPages + 1) {
102
+ elements.push({
103
+ key: 'left-break',
104
+ type: 'break'
94
105
  });
95
106
  }
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);
107
+
108
+ for (var _i2 = startPage; _i2 <= endPage; _i2++) {
109
+ elements.push(addPage(_i2));
105
110
  }
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);
111
+
112
+ if (currentPage < pageCount - marginPages - 1) {
113
+ elements.push({
114
+ key: 'right-break',
115
+ type: 'break'
116
+ });
117
+ }
118
+
119
+ for (var _i3 = pageCount - marginPages + 1; _i3 <= pageCount; _i3++) {
120
+ elements.push(addPage(_i3));
116
121
  }
117
122
  }
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;
123
+
124
+ return elements;
125
+ }
126
+
127
+ return /*#__PURE__*/_react["default"].createElement("div", {
128
+ className: "".concat(classes.pager).concat(className ? " ".concat(className) : '')
129
+ }, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
130
+ className: classes.prev,
131
+ disabled: currentPage === 1 || disabled,
132
+ theme: "secondary",
133
+ onClick: handlePrevPage,
134
+ icon: "arrow-left",
135
+ size: !previousLabel ? 'lg' : 'sm'
136
+ }, previousLabel), !hideNumbers && getPagination().map(function (_ref2) {
137
+ var key = _ref2.key,
138
+ type = _ref2.type,
139
+ selected = _ref2.selected;
140
+
141
+ if (type === 'page') {
132
142
  return /*#__PURE__*/_react["default"].createElement(_Page["default"], {
133
- key: index,
134
- onClick: this.handlePageSelected.bind(null, index),
135
- selected: selected == index,
136
- page: index
143
+ key: key,
144
+ onClick: function onClick() {
145
+ return handlePageSelected(Number(key));
146
+ },
147
+ selected: selected,
148
+ page: Number(key),
149
+ disabled: disabled
137
150
  });
138
151
  }
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
152
 
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);
153
+ return /*#__PURE__*/_react["default"].createElement(_Page["default"], {
154
+ key: key,
155
+ page: breakSymbol,
156
+ disabled: disabled
157
+ });
158
+ }), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
159
+ className: classes.next,
160
+ disabled: currentPage === pageCount || disabled,
161
+ theme: "secondary",
162
+ onClick: handleNextPage,
163
+ iconRight: "arrow-right",
164
+ size: !nextLabel ? 'lg' : 'sm'
165
+ }, nextLabel));
166
+ }
248
167
 
249
168
  Pager.propTypes = {
250
169
  classes: _propTypes["default"].object,
251
170
 
171
+ /** The current page number. */
172
+ currentPage: _propTypes["default"].number.isRequired,
173
+
252
174
  /** The total number of pages. */
253
- pageCount: _propTypes["default"].number.isRequired,
175
+ pageCount: _propTypes["default"].number,
254
176
 
255
177
  /** The number of page numbers displayed at the center, between the '...' separators. */
256
- pageRangeDisplayed: _propTypes["default"].number.isRequired,
178
+ centerPages: _propTypes["default"].number,
257
179
 
258
180
  /** The number of page numbers displayed on the sides of the pager. */
259
- marginPagesDisplayed: _propTypes["default"].number.isRequired,
181
+ marginPages: _propTypes["default"].number,
260
182
 
261
183
  /** The label for the 'Previous' button. */
262
184
  previousLabel: _propTypes["default"].node,
@@ -267,31 +189,13 @@ Pager.propTypes = {
267
189
  /** Function to call after clicking a button to change the page. */
268
190
  onPageChange: _propTypes["default"].func,
269
191
 
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
192
  /** Hide the numerical buttons, leaving just the 'Next' and 'Previous' buttons to interact with. */
280
193
  hideNumbers: _propTypes["default"].bool,
281
194
 
282
195
  /** Label for the separators. */
283
- breakLabel: _propTypes["default"].string,
196
+ breakSymbol: _propTypes["default"].string,
197
+
198
+ /** Disable the pager */
199
+ disabled: _propTypes["default"].bool,
284
200
  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;
201
+ };
@@ -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);
@@ -4,48 +4,15 @@ exports[`Pager matches the snapshot 1`] = `ShallowWrapper {}`;
4
4
 
5
5
  exports[`Pager styles matches the snapshot 1`] = `
6
6
  Object {
7
- "btn": Object {
8
- "& span": Object {
9
- "marginBottom": "-2px",
10
- },
11
- "&:hover": Object {
12
- "background": "#ECECEE",
13
- "borderColor": "#ECECEE",
14
- },
15
- "border": "1px solid #bfbfbf",
16
- "borderRadius": "5px",
17
- "cursor": "pointer",
18
- "fontFamily": "'OccText', sans-serif",
19
- "outline": "0",
20
- "padding": "3px 13px",
21
- "transition": "0.3s all",
22
- },
23
- "disabled": Object {
24
- "opacity": "0.4",
25
- "pointerEvents": "none",
26
- },
27
- "listItemNext": Object {
28
- "marginLeft": "15px",
29
- },
30
- "listItemPrevious": Object {
31
- "marginRight": "15px",
32
- },
33
7
  "next": Object {
34
- "alignItems": "center",
35
- "display": "flex",
8
+ "marginLeft": "8px",
36
9
  },
37
10
  "pager": Object {
38
11
  "alignItems": "center",
39
- "color": "#727272",
40
- "display": "flex",
41
- "fontFamily": "'OccText', sans-serif",
42
- "fontSize": "14px",
43
- "listStyle": "none",
44
- "paddingLeft": "0",
12
+ "display": "inline-flex",
45
13
  },
46
14
  "prev": Object {
47
- "alignItems": "center",
48
- "display": "flex",
15
+ "marginRight": "8px",
49
16
  },
50
17
  }
51
18
  `;