@carbon/react 1.15.0 → 1.16.0-rc.0

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 (67) hide show
  1. package/es/components/CodeSnippet/CodeSnippet.js +2 -1
  2. package/es/components/ComboBox/ComboBox.js +45 -24
  3. package/es/components/DataTable/TableHeader.js +1 -1
  4. package/es/components/DatePicker/DatePicker.js +10 -8
  5. package/es/components/Dropdown/Dropdown.js +2 -2
  6. package/es/components/FluidComboBox/FluidComboBox.Skeleton.js +41 -0
  7. package/es/components/FluidComboBox/FluidComboBox.js +140 -0
  8. package/es/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +41 -0
  9. package/es/components/FluidMultiSelect/FluidMultiSelect.js +151 -0
  10. package/es/components/FluidSelect/FluidSelect.Skeleton.js +41 -0
  11. package/es/components/FluidSelect/FluidSelect.js +93 -0
  12. package/es/components/FluidTextArea/FluidTextArea.js +2 -1
  13. package/es/components/InlineLoading/InlineLoading.js +2 -4
  14. package/es/components/ListBox/ListBox.js +2 -1
  15. package/es/components/MultiSelect/FilterableMultiSelect.js +41 -21
  16. package/es/components/MultiSelect/MultiSelect.js +28 -12
  17. package/es/components/OverflowMenu/OverflowMenu.js +2 -2
  18. package/es/components/Pagination/Pagination.js +271 -270
  19. package/es/components/Pagination/index.js +1 -6
  20. package/es/components/Select/Select.js +23 -5
  21. package/es/components/TextArea/TextArea.js +2 -2
  22. package/es/components/TextInput/ControlledPasswordInput.js +2 -3
  23. package/es/components/TextInput/PasswordInput.js +3 -3
  24. package/es/components/TextInput/TextInput.js +6 -7
  25. package/es/components/Tile/next/Tile.js +18 -22
  26. package/es/components/Tooltip/next/DefinitionTooltip.js +11 -2
  27. package/es/components/UIShell/HeaderMenu.js +15 -4
  28. package/es/components/UIShell/SideNavMenu.js +2 -1
  29. package/es/index.js +14 -8
  30. package/es/internal/useNormalizedInputProps.js +2 -1
  31. package/lib/components/CodeSnippet/CodeSnippet.js +2 -1
  32. package/lib/components/ComboBox/ComboBox.js +44 -23
  33. package/lib/components/DataTable/TableHeader.js +1 -1
  34. package/lib/components/DatePicker/DatePicker.js +10 -8
  35. package/lib/components/Dropdown/Dropdown.js +2 -2
  36. package/lib/components/FluidComboBox/FluidComboBox.Skeleton.js +51 -0
  37. package/lib/components/FluidComboBox/FluidComboBox.js +150 -0
  38. package/lib/components/FluidMultiSelect/FluidMultiSelect.Skeleton.js +51 -0
  39. package/lib/components/FluidMultiSelect/FluidMultiSelect.js +161 -0
  40. package/lib/components/FluidSelect/FluidSelect.Skeleton.js +51 -0
  41. package/lib/components/FluidSelect/FluidSelect.js +103 -0
  42. package/lib/components/FluidTextArea/FluidTextArea.js +2 -1
  43. package/lib/components/InlineLoading/InlineLoading.js +2 -4
  44. package/lib/components/ListBox/ListBox.js +2 -1
  45. package/lib/components/MultiSelect/FilterableMultiSelect.js +40 -20
  46. package/lib/components/MultiSelect/MultiSelect.js +27 -11
  47. package/lib/components/OverflowMenu/OverflowMenu.js +2 -2
  48. package/lib/components/Pagination/Pagination.js +269 -268
  49. package/lib/components/Pagination/index.js +2 -24
  50. package/lib/components/Select/Select.js +21 -3
  51. package/lib/components/TextArea/TextArea.js +2 -2
  52. package/lib/components/TextInput/ControlledPasswordInput.js +2 -3
  53. package/lib/components/TextInput/PasswordInput.js +3 -3
  54. package/lib/components/TextInput/TextInput.js +6 -7
  55. package/lib/components/Tile/next/Tile.js +18 -22
  56. package/lib/components/Tooltip/next/DefinitionTooltip.js +11 -2
  57. package/lib/components/UIShell/HeaderMenu.js +15 -4
  58. package/lib/components/UIShell/SideNavMenu.js +2 -1
  59. package/lib/index.js +98 -86
  60. package/lib/internal/useNormalizedInputProps.js +2 -1
  61. package/package.json +4 -4
  62. package/scss/components/fluid-select/_fluid-select.scss +9 -0
  63. package/scss/components/fluid-select/_index.scss +9 -0
  64. package/es/components/FileUploader/index.js +0 -15
  65. package/es/components/Pagination/next/Pagination.js +0 -421
  66. package/lib/components/FileUploader/index.js +0 -39
  67. package/lib/components/Pagination/next/Pagination.js +0 -431
@@ -10,293 +10,316 @@
10
10
  Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
12
  var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
13
+ var iconsReact = require('@carbon/icons-react');
14
+ var cx = require('classnames');
13
15
  var PropTypes = require('prop-types');
14
16
  var React = require('react');
15
- var cx = require('classnames');
16
- var iconsReact = require('@carbon/icons-react');
17
17
  var Select = require('../Select/Select.js');
18
18
  var SelectItem = require('../SelectItem/SelectItem.js');
19
19
  var array = require('../../tools/array.js');
20
- var Button = require('../Button/Button.js');
20
+ var useId = require('../../internal/useId.js');
21
21
  var usePrefix = require('../../internal/usePrefix.js');
22
+ var index = require('../IconButton/index.js');
22
23
 
23
24
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
25
 
26
+ var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
25
27
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
26
28
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
27
- var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
28
29
 
29
- var _excluded = ["backwardText", "className", "forwardText", "id", "itemsPerPageText", "itemRangeText", "pageRangeText", "pageSize", "pageSizes", "itemText", "pageText", "pageNumberText", "pagesUnknown", "isLastPage", "disabled", "pageInputDisabled", "pageSizeInputDisabled", "totalItems", "onChange", "page", "size", "forwardedRef"];
30
- var instanceId = 0;
30
+ var _CaretLeft, _CaretRight;
31
+
32
+ var _excluded = ["backwardText", "className", "disabled", "forwardText", "id", "isLastPage", "itemText", "itemRangeText", "itemsPerPageText", "onChange", "pageNumberText", "pageRangeText", "page", "pageInputDisabled", "pageSize", "pageSizeInputDisabled", "pageSizes", "pageText", "pagesUnknown", "size", "totalItems"];
31
33
 
32
- var mapPageSizesToObject = function mapPageSizesToObject(sizes) {
34
+ function mapPageSizesToObject(sizes) {
33
35
  return _rollupPluginBabelHelpers["typeof"](sizes[0]) === 'object' && sizes[0] !== null ? sizes : sizes.map(function (size) {
34
36
  return {
35
37
  text: size,
36
38
  value: size
37
39
  };
38
40
  });
39
- };
40
-
41
- var Pagination = /*#__PURE__*/function (_Component) {
42
- _rollupPluginBabelHelpers.inherits(Pagination, _Component);
43
-
44
- var _super = _rollupPluginBabelHelpers.createSuper(Pagination);
45
-
46
- function Pagination(props) {
47
- var _this;
48
-
49
- _rollupPluginBabelHelpers.classCallCheck(this, Pagination);
41
+ }
42
+
43
+ function renderSelectItems(total) {
44
+ var counter = 1;
45
+ var itemArr = [];
46
+
47
+ while (counter <= total) {
48
+ itemArr.push( /*#__PURE__*/React__default["default"].createElement(SelectItem["default"], {
49
+ key: counter,
50
+ value: counter,
51
+ text: String(counter)
52
+ }));
53
+ counter++;
54
+ }
50
55
 
51
- _this = _super.call(this, props);
56
+ return itemArr;
57
+ }
52
58
 
53
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "handleSizeChange", function (evt) {
54
- var pageSize = Number(evt.target.value);
59
+ function getPageSize(pageSizes, pageSize) {
60
+ if (pageSize) {
61
+ var hasSize = pageSizes.find(function (size) {
62
+ return pageSize === size.value;
63
+ });
55
64
 
56
- _this.setState({
57
- pageSize: pageSize,
58
- page: 1
59
- });
65
+ if (hasSize) {
66
+ return pageSize;
67
+ }
68
+ }
60
69
 
61
- _this.props.onChange({
62
- page: 1,
63
- pageSize: pageSize
64
- });
65
- });
70
+ return pageSizes[0].value;
71
+ }
72
+
73
+ var Pagination = /*#__PURE__*/React__default["default"].forwardRef(function Pagination(_ref, ref) {
74
+ var _cx, _cx2, _cx3;
75
+
76
+ var _ref$backwardText = _ref.backwardText,
77
+ backwardText = _ref$backwardText === void 0 ? 'Previous page' : _ref$backwardText,
78
+ customClassName = _ref.className,
79
+ _ref$disabled = _ref.disabled,
80
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
81
+ _ref$forwardText = _ref.forwardText,
82
+ forwardText = _ref$forwardText === void 0 ? 'Next page' : _ref$forwardText,
83
+ id = _ref.id,
84
+ _ref$isLastPage = _ref.isLastPage,
85
+ isLastPage = _ref$isLastPage === void 0 ? false : _ref$isLastPage,
86
+ _ref$itemText = _ref.itemText,
87
+ itemText = _ref$itemText === void 0 ? function (min, max) {
88
+ return "".concat(min, "\u2013").concat(max, " items");
89
+ } : _ref$itemText,
90
+ _ref$itemRangeText = _ref.itemRangeText,
91
+ itemRangeText = _ref$itemRangeText === void 0 ? function (min, max, total) {
92
+ return "".concat(min, "\u2013").concat(max, " of ").concat(total, " items");
93
+ } : _ref$itemRangeText,
94
+ _ref$itemsPerPageText = _ref.itemsPerPageText,
95
+ itemsPerPageText = _ref$itemsPerPageText === void 0 ? 'Items per page:' : _ref$itemsPerPageText,
96
+ onChange = _ref.onChange;
97
+ _ref.pageNumberText;
98
+ var _ref$pageRangeText = _ref.pageRangeText,
99
+ pageRangeText = _ref$pageRangeText === void 0 ? function (_current, total) {
100
+ return "of ".concat(total, " ").concat(total === 1 ? 'page' : 'pages');
101
+ } : _ref$pageRangeText,
102
+ _ref$page = _ref.page,
103
+ controlledPage = _ref$page === void 0 ? 1 : _ref$page,
104
+ pageInputDisabled = _ref.pageInputDisabled,
105
+ controlledPageSize = _ref.pageSize,
106
+ pageSizeInputDisabled = _ref.pageSizeInputDisabled,
107
+ controlledPageSizes = _ref.pageSizes,
108
+ _ref$pageText = _ref.pageText,
109
+ pageText = _ref$pageText === void 0 ? function (page) {
110
+ return "page ".concat(page);
111
+ } : _ref$pageText,
112
+ _ref$pagesUnknown = _ref.pagesUnknown,
113
+ pagesUnknown = _ref$pagesUnknown === void 0 ? false : _ref$pagesUnknown,
114
+ _ref$size = _ref.size,
115
+ size = _ref$size === void 0 ? 'md' : _ref$size,
116
+ totalItems = _ref.totalItems,
117
+ rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
118
+
119
+ var prefix = usePrefix.usePrefix();
120
+ var inputId = useId.useFallbackId(id);
121
+ var backBtnRef = React.useRef(null);
122
+ var forwardBtnRef = React.useRef(null);
123
+
124
+ var _useState = React.useState(function () {
125
+ return mapPageSizesToObject(controlledPageSizes);
126
+ }),
127
+ _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
128
+ pageSizes = _useState2[0],
129
+ setPageSizes = _useState2[1];
130
+
131
+ var _useState3 = React.useState(controlledPageSizes),
132
+ _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
133
+ prevPageSizes = _useState4[0],
134
+ setPrevPageSizes = _useState4[1];
135
+
136
+ var _useState5 = React.useState(controlledPage),
137
+ _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
138
+ page = _useState6[0],
139
+ setPage = _useState6[1];
140
+
141
+ var _useState7 = React.useState(controlledPage),
142
+ _useState8 = _rollupPluginBabelHelpers.slicedToArray(_useState7, 2),
143
+ prevControlledPage = _useState8[0],
144
+ setPrevControlledPage = _useState8[1];
145
+
146
+ var _useState9 = React.useState(function () {
147
+ return getPageSize(pageSizes, controlledPageSize);
148
+ }),
149
+ _useState10 = _rollupPluginBabelHelpers.slicedToArray(_useState9, 2),
150
+ pageSize = _useState10[0],
151
+ setPageSize = _useState10[1];
152
+
153
+ var _useState11 = React.useState(controlledPageSize),
154
+ _useState12 = _rollupPluginBabelHelpers.slicedToArray(_useState11, 2),
155
+ prevControlledPageSize = _useState12[0],
156
+ setPrevControlledPageSize = _useState12[1];
157
+
158
+ var className = cx__default["default"]((_cx = {}, _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--pagination"), true), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--pagination--").concat(size), size), _rollupPluginBabelHelpers.defineProperty(_cx, customClassName, !!customClassName), _cx));
159
+ var totalPages = Math.max(Math.ceil(totalItems / pageSize), 1);
160
+ var backButtonDisabled = disabled || page === 1;
161
+ var backButtonClasses = cx__default["default"]((_cx2 = {}, _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--pagination__button"), true), _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--pagination__button--backward"), true), _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--pagination__button--no-index"), backButtonDisabled), _cx2));
162
+ var forwardButtonDisabled = disabled || page === totalPages;
163
+ var forwardButtonClasses = cx__default["default"]((_cx3 = {}, _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--pagination__button"), true), _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--pagination__button--forward"), true), _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--pagination__button--no-index"), forwardButtonDisabled), _cx3));
164
+ var selectItems = renderSelectItems(totalPages); // Sync state with props
165
+
166
+ if (controlledPage !== prevControlledPage) {
167
+ setPage(controlledPage);
168
+ setPrevControlledPage(controlledPage);
169
+ }
66
170
 
67
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "handlePageChange", function (evt) {
68
- _this.setState({
69
- page: evt.target.value
70
- });
71
- });
171
+ if (controlledPageSize !== prevControlledPageSize) {
172
+ setPageSize(getPageSize(pageSizes, controlledPageSize));
173
+ setPrevControlledPageSize(controlledPageSize);
174
+ }
72
175
 
73
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "handlePageInputChange", function (evt) {
74
- var page = Number(evt.target.value);
176
+ if (!array.equals(controlledPageSizes, prevPageSizes)) {
177
+ var _pageSizes = mapPageSizesToObject(controlledPageSizes);
75
178
 
76
- if (page > 0 && page <= Math.max(Math.ceil(_this.props.totalItems / _this.state.pageSize), 1)) {
77
- _this.setState({
78
- page: page
79
- });
179
+ var hasPageSize = _pageSizes.find(function (size) {
180
+ return size.value === pageSize;
181
+ }); // Reset page to 1 if the current pageSize is not included in the new page
182
+ // sizes
80
183
 
81
- _this.props.onChange({
82
- page: page,
83
- pageSize: _this.state.pageSize
84
- });
85
- }
86
- });
87
184
 
88
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "incrementPage", function () {
89
- var page = _this.state.page + 1;
185
+ if (!hasPageSize) {
186
+ setPage(1);
187
+ }
90
188
 
91
- _this.setState({
92
- page: page
93
- });
189
+ setPageSizes(_pageSizes);
190
+ setPrevPageSizes(controlledPageSizes);
191
+ }
94
192
 
95
- _this.props.onChange({
96
- page: page,
97
- pageSize: _this.state.pageSize
98
- });
99
- });
193
+ function handleSizeChange(event) {
194
+ var pageSize = Number(event.target.value);
195
+ var changes = {
196
+ pageSize: pageSize,
197
+ page: 1
198
+ };
199
+ setPage(changes.page);
200
+ setPageSize(changes.pageSize);
100
201
 
101
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "decrementPage", function () {
102
- var page = _this.state.page - 1;
202
+ if (onChange) {
203
+ onChange(changes);
204
+ }
205
+ }
103
206
 
104
- _this.setState({
105
- page: page
106
- });
207
+ function handlePageInputChange(event) {
208
+ var page = Number(event.target.value);
107
209
 
108
- _this.props.onChange({
109
- page: page,
110
- pageSize: _this.state.pageSize
111
- });
112
- });
210
+ if (page > 0 && page <= Math.max(Math.ceil(totalItems / pageSize), 1)) {
211
+ setPage(page);
113
212
 
114
- _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.assertThisInitialized(_this), "renderSelectItems", function (total) {
115
- var counter = 1;
116
- var itemArr = [];
117
-
118
- while (counter <= total) {
119
- itemArr.push( /*#__PURE__*/React__default["default"].createElement(SelectItem["default"], {
120
- key: counter,
121
- value: counter,
122
- text: String(counter)
123
- }));
124
- counter++;
213
+ if (onChange) {
214
+ onChange({
215
+ page: page,
216
+ pageSize: pageSize
217
+ });
125
218
  }
219
+ }
220
+ }
126
221
 
127
- return itemArr;
128
- });
222
+ function incrementPage() {
223
+ var nextPage = page + 1;
224
+ setPage(nextPage); // when the increment button reaches the last page,
225
+ // the icon button becomes disabled and the focus shifts to `main`
226
+ // this presents an a11y problem for keyboard & screen reader users
227
+ // instead, we want the focus to shift to the other pagination btn
129
228
 
130
- var _this$props = _this.props,
131
- _pageSizes = _this$props.pageSizes,
132
- _page = _this$props.page,
133
- _pageSize = _this$props.pageSize;
134
- var pageSizes = mapPageSizesToObject(_pageSizes);
135
- _this.state = {
136
- page: _page,
137
- pageSize: _pageSize && pageSizes.some(function (sizeObj) {
138
- return _pageSize === sizeObj.value;
139
- }) ? _pageSize : pageSizes[0].value,
140
- prevPageSizes: pageSizes,
141
- prevPage: _page,
142
- prevPageSize: _pageSize
143
- };
144
- _this.uniqueId = ++instanceId;
145
- return _this;
146
- }
229
+ if (nextPage === totalPages) {
230
+ backBtnRef.current.focus();
231
+ }
147
232
 
148
- _rollupPluginBabelHelpers.createClass(Pagination, [{
149
- key: "render",
150
- value: function render() {
151
- var _this2 = this;
152
-
153
- var _this$props2 = this.props,
154
- backwardText = _this$props2.backwardText,
155
- className = _this$props2.className,
156
- forwardText = _this$props2.forwardText,
157
- id = _this$props2.id,
158
- itemsPerPageText = _this$props2.itemsPerPageText,
159
- itemRangeText = _this$props2.itemRangeText,
160
- pageRangeText = _this$props2.pageRangeText;
161
- _this$props2.pageSize;
162
- var _pageSizes = _this$props2.pageSizes,
163
- itemText = _this$props2.itemText,
164
- pageText = _this$props2.pageText;
165
- _this$props2.pageNumberText;
166
- var pagesUnknown = _this$props2.pagesUnknown,
167
- isLastPage = _this$props2.isLastPage,
168
- disabled = _this$props2.disabled,
169
- pageInputDisabled = _this$props2.pageInputDisabled,
170
- pageSizeInputDisabled = _this$props2.pageSizeInputDisabled,
171
- totalItems = _this$props2.totalItems;
172
- _this$props2.onChange;
173
- _this$props2.page;
174
- var size = _this$props2.size,
175
- forwardedRef = _this$props2.forwardedRef,
176
- other = _rollupPluginBabelHelpers.objectWithoutProperties(_this$props2, _excluded);
177
-
178
- return /*#__PURE__*/React__default["default"].createElement(usePrefix.PrefixContext.Consumer, null, function (prefix) {
179
- var classNames = cx__default["default"]("".concat(prefix, "--pagination"), className, _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--pagination--").concat(size), size));
180
- var inputId = id || _this2.uniqueId;
181
- var _this2$state = _this2.state,
182
- statePage = _this2$state.page,
183
- statePageSize = _this2$state.pageSize;
184
- var totalPages = Math.max(Math.ceil(totalItems / statePageSize), 1);
185
- var backButtonDisabled = disabled || statePage === 1;
186
- var backButtonClasses = cx__default["default"]("".concat(prefix, "--pagination__button"), "".concat(prefix, "--pagination__button--backward"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--pagination__button--no-index"), backButtonDisabled));
187
- var forwardButtonDisabled = disabled || statePage === totalPages;
188
- var forwardButtonClasses = cx__default["default"]("".concat(prefix, "--pagination__button"), "".concat(prefix, "--pagination__button--forward"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--pagination__button--no-index"), forwardButtonDisabled));
189
-
190
- var selectItems = _this2.renderSelectItems(totalPages);
191
-
192
- var pageSizes = mapPageSizesToObject(_pageSizes);
193
- return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
194
- className: classNames,
195
- ref: forwardedRef
196
- }, other), /*#__PURE__*/React__default["default"].createElement("div", {
197
- className: "".concat(prefix, "--pagination__left")
198
- }, /*#__PURE__*/React__default["default"].createElement("label", {
199
- id: "".concat(prefix, "-pagination-select-").concat(inputId, "-count-label"),
200
- className: "".concat(prefix, "--pagination__text"),
201
- htmlFor: "".concat(prefix, "-pagination-select-").concat(inputId)
202
- }, itemsPerPageText), /*#__PURE__*/React__default["default"].createElement(Select["default"], {
203
- id: "".concat(prefix, "-pagination-select-").concat(inputId),
204
- className: "".concat(prefix, "--select__item-count"),
205
- labelText: "",
206
- hideLabel: true,
207
- noLabel: true,
208
- inline: true,
209
- onChange: _this2.handleSizeChange,
210
- disabled: pageSizeInputDisabled || disabled,
211
- value: statePageSize
212
- }, pageSizes.map(function (sizeObj) {
213
- return /*#__PURE__*/React__default["default"].createElement(SelectItem["default"], {
214
- key: sizeObj.value,
215
- value: sizeObj.value,
216
- text: String(sizeObj.text)
217
- });
218
- })), /*#__PURE__*/React__default["default"].createElement("span", {
219
- className: "".concat(prefix, "--pagination__text ").concat(prefix, "--pagination__items-count")
220
- }, pagesUnknown ? itemText(statePageSize * (statePage - 1) + 1, statePage * statePageSize) : itemRangeText(Math.min(statePageSize * (statePage - 1) + 1, totalItems), Math.min(statePage * statePageSize, totalItems), totalItems))), /*#__PURE__*/React__default["default"].createElement("div", {
221
- className: "".concat(prefix, "--pagination__right")
222
- }, /*#__PURE__*/React__default["default"].createElement(Select["default"], {
223
- id: "".concat(prefix, "-pagination-select-").concat(inputId, "-right"),
224
- className: "".concat(prefix, "--select__page-number"),
225
- labelText: "Page number, of ".concat(totalPages, " pages"),
226
- inline: true,
227
- hideLabel: true,
228
- onChange: _this2.handlePageInputChange,
229
- value: statePage,
230
- disabled: pageInputDisabled || disabled
231
- }, selectItems), /*#__PURE__*/React__default["default"].createElement("span", {
232
- className: "".concat(prefix, "--pagination__text")
233
- }, pagesUnknown ? pageText(statePage) : pageRangeText(statePage, totalPages)), /*#__PURE__*/React__default["default"].createElement("div", {
234
- className: "".concat(prefix, "--pagination__control-buttons")
235
- }, /*#__PURE__*/React__default["default"].createElement(Button["default"], {
236
- kind: "ghost",
237
- className: backButtonClasses,
238
- hasIconOnly: true,
239
- renderIcon: iconsReact.CaretLeft,
240
- iconDescription: backwardText,
241
- tooltipAlignment: "center",
242
- tooltipPosition: "top",
243
- onClick: _this2.decrementPage,
244
- disabled: backButtonDisabled
245
- }), /*#__PURE__*/React__default["default"].createElement(Button["default"], {
246
- kind: "ghost",
247
- className: forwardButtonClasses,
248
- hasIconOnly: true,
249
- renderIcon: iconsReact.CaretRight,
250
- iconDescription: forwardText,
251
- tooltipAlignment: "end",
252
- tooltipPosition: "top",
253
- onClick: _this2.incrementPage,
254
- disabled: forwardButtonDisabled || isLastPage
255
- }))));
233
+ if (onChange) {
234
+ onChange({
235
+ page: nextPage,
236
+ pageSize: pageSize,
237
+ backBtnRef: backBtnRef
256
238
  });
257
239
  }
258
- }], [{
259
- key: "getDerivedStateFromProps",
260
- value: function getDerivedStateFromProps(_ref, state) {
261
- var _pageSizes = _ref.pageSizes,
262
- page = _ref.page,
263
- pageSize = _ref.pageSize;
264
- var prevPageSizes = state.prevPageSizes,
265
- prevPage = state.prevPage,
266
- prevPageSize = state.prevPageSize,
267
- currentPage = state.page,
268
- currentPageSize = state.pageSize;
269
- var pageSizes = mapPageSizesToObject(_pageSizes);
270
- var pageSizesValues = pageSizes.map(function (sizeObj) {
271
- return sizeObj.value;
272
- });
273
- var prevPageSizesValues = prevPageSizes.map(function (sizeObj) {
274
- return sizeObj.value;
275
- });
276
- var pageSizesChanged = !array.equals(pageSizesValues, prevPageSizesValues);
240
+ }
277
241
 
278
- if (pageSizesChanged && !pageSizes.some(function (sizeObj) {
279
- return pageSize === sizeObj.value;
280
- })) {
281
- pageSize = pageSizes[0].value;
282
- }
242
+ function decrementPage() {
243
+ var nextPage = page - 1;
244
+ setPage(nextPage); // when the decrement button reaches the first page,
245
+ // the icon button becomes disabled and the focus shifts to `main`
246
+ // this presents an a11y problem for keyboard & screen reader users
247
+ // instead, we want the focus to shift to the other pagination btn
283
248
 
284
- var pageChanged = page !== prevPage;
285
- var pageSizeChanged = pageSize !== prevPageSize;
286
- return !pageSizesChanged && !pageChanged && !pageSizeChanged ? null : {
287
- page: pageSizeChanged && 1 || pageChanged && page || currentPage,
288
- pageSize: pageSizeChanged ? pageSize : currentPageSize,
289
- prevPageSizes: pageSizes,
290
- prevPage: page,
291
- prevPageSize: pageSize
292
- };
249
+ if (nextPage === 1) {
250
+ forwardBtnRef.current.focus();
293
251
  }
294
- }]);
295
252
 
296
- return Pagination;
297
- }(React.Component);
253
+ if (onChange) {
254
+ onChange({
255
+ page: nextPage,
256
+ pageSize: pageSize,
257
+ forwardBtnRef: forwardBtnRef
258
+ });
259
+ }
260
+ }
298
261
 
299
- _rollupPluginBabelHelpers.defineProperty(Pagination, "propTypes", {
262
+ return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
263
+ className: className,
264
+ ref: ref
265
+ }, rest), /*#__PURE__*/React__default["default"].createElement("div", {
266
+ className: "".concat(prefix, "--pagination__left")
267
+ }, /*#__PURE__*/React__default["default"].createElement("label", {
268
+ id: "".concat(prefix, "-pagination-select-").concat(inputId, "-count-label"),
269
+ className: "".concat(prefix, "--pagination__text"),
270
+ htmlFor: "".concat(prefix, "-pagination-select-").concat(inputId)
271
+ }, itemsPerPageText), /*#__PURE__*/React__default["default"].createElement(Select["default"], {
272
+ id: "".concat(prefix, "-pagination-select-").concat(inputId),
273
+ className: "".concat(prefix, "--select__item-count"),
274
+ labelText: "",
275
+ hideLabel: true,
276
+ noLabel: true,
277
+ inline: true,
278
+ onChange: handleSizeChange,
279
+ disabled: pageSizeInputDisabled || disabled,
280
+ value: pageSize
281
+ }, pageSizes.map(function (sizeObj) {
282
+ return /*#__PURE__*/React__default["default"].createElement(SelectItem["default"], {
283
+ key: sizeObj.value,
284
+ value: sizeObj.value,
285
+ text: String(sizeObj.text)
286
+ });
287
+ })), /*#__PURE__*/React__default["default"].createElement("span", {
288
+ className: "".concat(prefix, "--pagination__text ").concat(prefix, "--pagination__items-count")
289
+ }, pagesUnknown ? itemText(pageSize * (page - 1) + 1, page * pageSize) : itemRangeText(Math.min(pageSize * (page - 1) + 1, totalItems), Math.min(page * pageSize, totalItems), totalItems))), /*#__PURE__*/React__default["default"].createElement("div", {
290
+ className: "".concat(prefix, "--pagination__right")
291
+ }, /*#__PURE__*/React__default["default"].createElement(Select["default"], {
292
+ id: "".concat(prefix, "-pagination-select-").concat(inputId, "-right"),
293
+ className: "".concat(prefix, "--select__page-number"),
294
+ labelText: "Page number, of ".concat(totalPages, " pages"),
295
+ inline: true,
296
+ hideLabel: true,
297
+ onChange: handlePageInputChange,
298
+ value: page,
299
+ disabled: pageInputDisabled || disabled
300
+ }, selectItems), /*#__PURE__*/React__default["default"].createElement("span", {
301
+ className: "".concat(prefix, "--pagination__text")
302
+ }, pagesUnknown ? pageText(page) : pageRangeText(page, totalPages)), /*#__PURE__*/React__default["default"].createElement("div", {
303
+ className: "".concat(prefix, "--pagination__control-buttons")
304
+ }, /*#__PURE__*/React__default["default"].createElement(index.IconButton, {
305
+ align: "top",
306
+ disabled: backButtonDisabled,
307
+ kind: "ghost",
308
+ className: backButtonClasses,
309
+ label: backwardText,
310
+ onClick: decrementPage,
311
+ ref: backBtnRef
312
+ }, _CaretLeft || (_CaretLeft = /*#__PURE__*/React__default["default"].createElement(iconsReact.CaretLeft, null))), /*#__PURE__*/React__default["default"].createElement(index.IconButton, {
313
+ align: "top-right",
314
+ disabled: forwardButtonDisabled || isLastPage,
315
+ kind: "ghost",
316
+ className: forwardButtonClasses,
317
+ label: forwardText,
318
+ onClick: incrementPage,
319
+ ref: forwardBtnRef
320
+ }, _CaretRight || (_CaretRight = /*#__PURE__*/React__default["default"].createElement(iconsReact.CaretRight, null))))));
321
+ });
322
+ Pagination.propTypes = {
300
323
  /**
301
324
  * The description for the backward icon.
302
325
  */
@@ -394,7 +417,7 @@ _rollupPluginBabelHelpers.defineProperty(Pagination, "propTypes", {
394
417
  pagesUnknown: PropTypes__default["default"].bool,
395
418
 
396
419
  /**
397
- * Specify the size of the Pagination. Currently supports either `sm`, 'md' (default) or 'lg` as an option.
420
+ * Specify the size of the Pagination.
398
421
  */
399
422
  size: PropTypes__default["default"].oneOf(['sm', 'md', 'lg']),
400
423
 
@@ -402,29 +425,7 @@ _rollupPluginBabelHelpers.defineProperty(Pagination, "propTypes", {
402
425
  * The total number of items.
403
426
  */
404
427
  totalItems: PropTypes__default["default"].number
405
- });
406
-
407
- _rollupPluginBabelHelpers.defineProperty(Pagination, "defaultProps", {
408
- backwardText: 'Previous page',
409
- itemRangeText: function itemRangeText(min, max, total) {
410
- return "".concat(min, "\u2013").concat(max, " of ").concat(total, " items");
411
- },
412
- forwardText: 'Next page',
413
- itemsPerPageText: 'Items per page:',
414
- pageNumberText: 'Page Number',
415
- pageRangeText: function pageRangeText(current, total) {
416
- return "of ".concat(total, " ").concat(total === 1 ? 'page' : 'pages');
417
- },
418
- disabled: false,
419
- page: 1,
420
- pagesUnknown: false,
421
- isLastPage: false,
422
- itemText: function itemText(min, max) {
423
- return "".concat(min, "\u2013").concat(max, " items");
424
- },
425
- pageText: function pageText(page) {
426
- return "page ".concat(page);
427
- }
428
- });
428
+ };
429
+ var Pagination$1 = Pagination;
429
430
 
430
- exports["default"] = Pagination;
431
+ exports["default"] = Pagination$1;
@@ -9,30 +9,8 @@
9
9
 
10
10
  Object.defineProperty(exports, '__esModule', { value: true });
11
11
 
12
- var FeatureFlags = require('@carbon/feature-flags');
13
- var Pagination$1 = require('./Pagination.js');
14
- var Pagination = require('./next/Pagination.js');
12
+ var Pagination = require('./Pagination.js');
15
13
 
16
- function _interopNamespace(e) {
17
- if (e && e.__esModule) return e;
18
- var n = Object.create(null);
19
- if (e) {
20
- Object.keys(e).forEach(function (k) {
21
- if (k !== 'default') {
22
- var d = Object.getOwnPropertyDescriptor(e, k);
23
- Object.defineProperty(n, k, d.get ? d : {
24
- enumerable: true,
25
- get: function () { return e[k]; }
26
- });
27
- }
28
- });
29
- }
30
- n["default"] = e;
31
- return Object.freeze(n);
32
- }
33
14
 
34
- var FeatureFlags__namespace = /*#__PURE__*/_interopNamespace(FeatureFlags);
35
15
 
36
- var index = FeatureFlags__namespace.enabled('enable-v11-release') ? Pagination["default"] : Pagination$1["default"];
37
-
38
- exports["default"] = index;
16
+ exports["default"] = Pagination["default"];