carbon-react 106.3.2 → 106.4.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.
- package/esm/components/select/filterable-select/filterable-select.component.js +1 -4
- package/esm/components/select/multi-select/multi-select.component.js +1 -4
- package/esm/components/select/select-list/select-list.component.js +1 -4
- package/esm/components/select/simple-select/simple-select.component.js +1 -4
- package/esm/components/select/utils/get-next-index-by-key.d.ts +1 -0
- package/esm/components/select/utils/get-next-index-by-key.js +50 -18
- package/esm/components/select/utils/is-navigation-key.d.ts +1 -0
- package/esm/components/select/utils/is-navigation-key.js +4 -0
- package/lib/components/select/filterable-select/filterable-select.component.js +3 -5
- package/lib/components/select/multi-select/multi-select.component.js +3 -5
- package/lib/components/select/select-list/select-list.component.js +3 -5
- package/lib/components/select/simple-select/simple-select.component.js +3 -5
- package/lib/components/select/utils/get-next-index-by-key.d.ts +1 -0
- package/lib/components/select/utils/get-next-index-by-key.js +52 -18
- package/lib/components/select/utils/is-navigation-key.d.ts +1 -0
- package/lib/components/select/utils/is-navigation-key.js +11 -0
- package/package.json +1 -1
|
@@ -10,6 +10,7 @@ import withFilter from "../utils/with-filter.hoc";
|
|
|
10
10
|
import StyledSelect from "../select.style";
|
|
11
11
|
import SelectList from "../select-list/select-list.component";
|
|
12
12
|
import isExpectedOption from "../utils/is-expected-option";
|
|
13
|
+
import isNavigationKey from "../utils/is-navigation-key";
|
|
13
14
|
const FilterableSelectList = withFilter(SelectList);
|
|
14
15
|
const FilterableSelect = /*#__PURE__*/React.forwardRef(({
|
|
15
16
|
value,
|
|
@@ -386,10 +387,6 @@ const FilterableSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
386
387
|
};
|
|
387
388
|
}
|
|
388
389
|
|
|
389
|
-
function isNavigationKey(key) {
|
|
390
|
-
return key === "ArrowDown" || key === "ArrowUp" || key === "Home" || key === "End";
|
|
391
|
-
}
|
|
392
|
-
|
|
393
390
|
const selectList = /*#__PURE__*/React.createElement(FilterableSelectList, {
|
|
394
391
|
ref: listboxRef,
|
|
395
392
|
id: selectListId.current,
|
|
@@ -12,6 +12,7 @@ import { StyledSelectPillContainer, StyledSelectMultiSelect, StyledAccessibility
|
|
|
12
12
|
import Pill from "../../pill";
|
|
13
13
|
import isExpectedOption from "../utils/is-expected-option";
|
|
14
14
|
import isExpectedValue from "../utils/is-expected-value";
|
|
15
|
+
import isNavigationKey from "../utils/is-navigation-key";
|
|
15
16
|
const FilterableSelectList = withFilter(SelectList);
|
|
16
17
|
const MultiSelect = /*#__PURE__*/React.forwardRef(({
|
|
17
18
|
value,
|
|
@@ -401,10 +402,6 @@ const MultiSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
401
402
|
};
|
|
402
403
|
}
|
|
403
404
|
|
|
404
|
-
function isNavigationKey(key) {
|
|
405
|
-
return key === "ArrowDown" || key === "ArrowUp" || key === "Home" || key === "End";
|
|
406
|
-
}
|
|
407
|
-
|
|
408
405
|
const selectList = /*#__PURE__*/React.createElement(FilterableSelectList, {
|
|
409
406
|
ref: listboxRef,
|
|
410
407
|
"aria-multiselectable": true,
|
|
@@ -9,6 +9,7 @@ import OptionRow from "../option-row/option-row.component";
|
|
|
9
9
|
import updateListScrollTop from "./update-list-scroll";
|
|
10
10
|
import getNextChildByText from "../utils/get-next-child-by-text";
|
|
11
11
|
import getNextIndexByKey from "../utils/get-next-index-by-key";
|
|
12
|
+
import isNavigationKey from "../utils/is-navigation-key";
|
|
12
13
|
import ListActionButton from "../list-action-button/list-action-button.component";
|
|
13
14
|
import StyledSelectListContainer from "./select-list-container.style";
|
|
14
15
|
import Loader from "../../loader";
|
|
@@ -276,10 +277,6 @@ const SelectList = /*#__PURE__*/React.forwardRef(({
|
|
|
276
277
|
enabled: flipEnabled
|
|
277
278
|
}], [flipEnabled]);
|
|
278
279
|
|
|
279
|
-
function isNavigationKey(keyEvent) {
|
|
280
|
-
return keyEvent === "ArrowDown" || keyEvent === "ArrowUp" || keyEvent === "Home" || keyEvent === "End";
|
|
281
|
-
}
|
|
282
|
-
|
|
283
280
|
const loader = () => /*#__PURE__*/React.createElement(StyledSelectLoaderContainer, {
|
|
284
281
|
key: "loader",
|
|
285
282
|
as: multiColumn ? "div" : "li"
|
|
@@ -11,6 +11,7 @@ import SelectList from "../select-list/select-list.component";
|
|
|
11
11
|
import guid from "../../../__internal__/utils/helpers/guid";
|
|
12
12
|
import getNextChildByText from "../utils/get-next-child-by-text";
|
|
13
13
|
import isExpectedOption from "../utils/is-expected-option";
|
|
14
|
+
import isNavigationKey from "../utils/is-navigation-key";
|
|
14
15
|
const SimpleSelect = /*#__PURE__*/React.forwardRef(({
|
|
15
16
|
value,
|
|
16
17
|
defaultValue,
|
|
@@ -285,10 +286,6 @@ const SimpleSelect = /*#__PURE__*/React.forwardRef(({
|
|
|
285
286
|
setOpenState(false);
|
|
286
287
|
}
|
|
287
288
|
|
|
288
|
-
function isNavigationKey(key) {
|
|
289
|
-
return key === "ArrowDown" || key === "ArrowUp" || key === "Home" || key === "End";
|
|
290
|
-
}
|
|
291
|
-
|
|
292
289
|
function assignInput(input) {
|
|
293
290
|
setTextboxRef(input.current);
|
|
294
291
|
|
|
@@ -1,27 +1,59 @@
|
|
|
1
|
+
export const PAGE_SIZE = 4;
|
|
1
2
|
export default function getNextIndexByKey(key, currentIndex, lastIndex, isLoading) {
|
|
2
3
|
const isNoOptionSelected = currentIndex === -1;
|
|
3
4
|
let newIndex = currentIndex;
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} else if (key === "End") {
|
|
8
|
-
newIndex = lastIndex;
|
|
9
|
-
} else if (key === "ArrowDown") {
|
|
10
|
-
if (isLoading && currentIndex === lastIndex) {
|
|
11
|
-
return lastIndex;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
if (currentIndex === lastIndex || isNoOptionSelected) {
|
|
6
|
+
switch (key) {
|
|
7
|
+
case "Home":
|
|
15
8
|
newIndex = 0;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
} else if (key === "ArrowUp") {
|
|
20
|
-
if (currentIndex === 0 || isNoOptionSelected) {
|
|
9
|
+
break;
|
|
10
|
+
|
|
11
|
+
case "End":
|
|
21
12
|
newIndex = lastIndex;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
13
|
+
break;
|
|
14
|
+
|
|
15
|
+
case "ArrowDown":
|
|
16
|
+
if (isLoading && currentIndex === lastIndex) {
|
|
17
|
+
return lastIndex;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
if (currentIndex === lastIndex || isNoOptionSelected) {
|
|
21
|
+
newIndex = 0;
|
|
22
|
+
} else {
|
|
23
|
+
newIndex = currentIndex + 1;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
break;
|
|
27
|
+
|
|
28
|
+
case "ArrowUp":
|
|
29
|
+
if (currentIndex === 0 || isNoOptionSelected) {
|
|
30
|
+
newIndex = lastIndex;
|
|
31
|
+
} else {
|
|
32
|
+
newIndex = currentIndex - 1;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
break;
|
|
36
|
+
|
|
37
|
+
case "PageDown":
|
|
38
|
+
if (isNoOptionSelected) {
|
|
39
|
+
newIndex = Math.min(PAGE_SIZE - 1, lastIndex);
|
|
40
|
+
} else {
|
|
41
|
+
newIndex = Math.min(currentIndex + PAGE_SIZE, lastIndex);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
break;
|
|
45
|
+
|
|
46
|
+
case "PageUp":
|
|
47
|
+
if (isNoOptionSelected) {
|
|
48
|
+
newIndex = Math.max(lastIndex + 1 - PAGE_SIZE, 0);
|
|
49
|
+
} else {
|
|
50
|
+
newIndex = Math.max(currentIndex - PAGE_SIZE, 0);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
break;
|
|
54
|
+
|
|
55
|
+
default:
|
|
56
|
+
break;
|
|
25
57
|
}
|
|
26
58
|
|
|
27
59
|
return newIndex;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isNavigationKey(key: any): boolean;
|
|
@@ -25,6 +25,8 @@ var _selectList = _interopRequireDefault(require("../select-list/select-list.com
|
|
|
25
25
|
|
|
26
26
|
var _isExpectedOption = _interopRequireDefault(require("../utils/is-expected-option"));
|
|
27
27
|
|
|
28
|
+
var _isNavigationKey = _interopRequireDefault(require("../utils/is-navigation-key"));
|
|
29
|
+
|
|
28
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
31
|
|
|
30
32
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
@@ -171,7 +173,7 @@ const FilterableSelect = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
171
173
|
return;
|
|
172
174
|
}
|
|
173
175
|
|
|
174
|
-
if (!event.defaultPrevented &&
|
|
176
|
+
if (!event.defaultPrevented && (0, _isNavigationKey.default)(key)) {
|
|
175
177
|
event.preventDefault();
|
|
176
178
|
setOpen(true);
|
|
177
179
|
}
|
|
@@ -410,10 +412,6 @@ const FilterableSelect = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
410
412
|
};
|
|
411
413
|
}
|
|
412
414
|
|
|
413
|
-
function isNavigationKey(key) {
|
|
414
|
-
return key === "ArrowDown" || key === "ArrowUp" || key === "Home" || key === "End";
|
|
415
|
-
}
|
|
416
|
-
|
|
417
415
|
const selectList = /*#__PURE__*/_react.default.createElement(FilterableSelectList, {
|
|
418
416
|
ref: listboxRef,
|
|
419
417
|
id: selectListId.current,
|
|
@@ -29,6 +29,8 @@ var _isExpectedOption = _interopRequireDefault(require("../utils/is-expected-opt
|
|
|
29
29
|
|
|
30
30
|
var _isExpectedValue = _interopRequireDefault(require("../utils/is-expected-value"));
|
|
31
31
|
|
|
32
|
+
var _isNavigationKey = _interopRequireDefault(require("../utils/is-navigation-key"));
|
|
33
|
+
|
|
32
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
33
35
|
|
|
34
36
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
@@ -155,7 +157,7 @@ const MultiSelect = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
155
157
|
return;
|
|
156
158
|
}
|
|
157
159
|
|
|
158
|
-
if (!event.defaultPrevented &&
|
|
160
|
+
if (!event.defaultPrevented && (0, _isNavigationKey.default)(key)) {
|
|
159
161
|
event.preventDefault();
|
|
160
162
|
setOpen();
|
|
161
163
|
}
|
|
@@ -428,10 +430,6 @@ const MultiSelect = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
428
430
|
};
|
|
429
431
|
}
|
|
430
432
|
|
|
431
|
-
function isNavigationKey(key) {
|
|
432
|
-
return key === "ArrowDown" || key === "ArrowUp" || key === "Home" || key === "End";
|
|
433
|
-
}
|
|
434
|
-
|
|
435
433
|
const selectList = /*#__PURE__*/_react.default.createElement(FilterableSelectList, {
|
|
436
434
|
ref: listboxRef,
|
|
437
435
|
"aria-multiselectable": true,
|
|
@@ -23,6 +23,8 @@ var _getNextChildByText = _interopRequireDefault(require("../utils/get-next-chil
|
|
|
23
23
|
|
|
24
24
|
var _getNextIndexByKey = _interopRequireDefault(require("../utils/get-next-index-by-key"));
|
|
25
25
|
|
|
26
|
+
var _isNavigationKey = _interopRequireDefault(require("../utils/is-navigation-key"));
|
|
27
|
+
|
|
26
28
|
var _listActionButton = _interopRequireDefault(require("../list-action-button/list-action-button.component"));
|
|
27
29
|
|
|
28
30
|
var _selectListContainer = _interopRequireDefault(require("./select-list-container.style"));
|
|
@@ -221,7 +223,7 @@ const SelectList = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
221
223
|
value,
|
|
222
224
|
selectionType: "enterKey"
|
|
223
225
|
});
|
|
224
|
-
} else if (
|
|
226
|
+
} else if ((0, _isNavigationKey.default)(key)) {
|
|
225
227
|
focusOnAnchor();
|
|
226
228
|
highlightNextItem(key);
|
|
227
229
|
}
|
|
@@ -305,10 +307,6 @@ const SelectList = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
305
307
|
enabled: flipEnabled
|
|
306
308
|
}], [flipEnabled]);
|
|
307
309
|
|
|
308
|
-
function isNavigationKey(keyEvent) {
|
|
309
|
-
return keyEvent === "ArrowDown" || keyEvent === "ArrowUp" || keyEvent === "Home" || keyEvent === "End";
|
|
310
|
-
}
|
|
311
|
-
|
|
312
310
|
const loader = () => /*#__PURE__*/_react.default.createElement(_selectList.StyledSelectLoaderContainer, {
|
|
313
311
|
key: "loader",
|
|
314
312
|
as: multiColumn ? "div" : "li"
|
|
@@ -27,6 +27,8 @@ var _getNextChildByText = _interopRequireDefault(require("../utils/get-next-chil
|
|
|
27
27
|
|
|
28
28
|
var _isExpectedOption = _interopRequireDefault(require("../utils/is-expected-option"));
|
|
29
29
|
|
|
30
|
+
var _isNavigationKey = _interopRequireDefault(require("../utils/is-navigation-key"));
|
|
31
|
+
|
|
30
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
33
|
|
|
32
34
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
@@ -145,7 +147,7 @@ const SimpleSelect = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
145
147
|
return;
|
|
146
148
|
}
|
|
147
149
|
|
|
148
|
-
if (key === "Enter" || key === " " ||
|
|
150
|
+
if (key === "Enter" || key === " " || (0, _isNavigationKey.default)(key)) {
|
|
149
151
|
event.preventDefault();
|
|
150
152
|
setOpenState(isAlreadyOpen => {
|
|
151
153
|
if (!isAlreadyOpen && onOpen) {
|
|
@@ -309,10 +311,6 @@ const SimpleSelect = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
309
311
|
setOpenState(false);
|
|
310
312
|
}
|
|
311
313
|
|
|
312
|
-
function isNavigationKey(key) {
|
|
313
|
-
return key === "ArrowDown" || key === "ArrowUp" || key === "Home" || key === "End";
|
|
314
|
-
}
|
|
315
|
-
|
|
316
314
|
function assignInput(input) {
|
|
317
315
|
setTextboxRef(input.current);
|
|
318
316
|
|
|
@@ -4,31 +4,65 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = getNextIndexByKey;
|
|
7
|
+
exports.PAGE_SIZE = void 0;
|
|
8
|
+
const PAGE_SIZE = 4;
|
|
9
|
+
exports.PAGE_SIZE = PAGE_SIZE;
|
|
7
10
|
|
|
8
11
|
function getNextIndexByKey(key, currentIndex, lastIndex, isLoading) {
|
|
9
12
|
const isNoOptionSelected = currentIndex === -1;
|
|
10
13
|
let newIndex = currentIndex;
|
|
11
14
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
} else if (key === "End") {
|
|
15
|
-
newIndex = lastIndex;
|
|
16
|
-
} else if (key === "ArrowDown") {
|
|
17
|
-
if (isLoading && currentIndex === lastIndex) {
|
|
18
|
-
return lastIndex;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (currentIndex === lastIndex || isNoOptionSelected) {
|
|
15
|
+
switch (key) {
|
|
16
|
+
case "Home":
|
|
22
17
|
newIndex = 0;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
} else if (key === "ArrowUp") {
|
|
27
|
-
if (currentIndex === 0 || isNoOptionSelected) {
|
|
18
|
+
break;
|
|
19
|
+
|
|
20
|
+
case "End":
|
|
28
21
|
newIndex = lastIndex;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
break;
|
|
23
|
+
|
|
24
|
+
case "ArrowDown":
|
|
25
|
+
if (isLoading && currentIndex === lastIndex) {
|
|
26
|
+
return lastIndex;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (currentIndex === lastIndex || isNoOptionSelected) {
|
|
30
|
+
newIndex = 0;
|
|
31
|
+
} else {
|
|
32
|
+
newIndex = currentIndex + 1;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
break;
|
|
36
|
+
|
|
37
|
+
case "ArrowUp":
|
|
38
|
+
if (currentIndex === 0 || isNoOptionSelected) {
|
|
39
|
+
newIndex = lastIndex;
|
|
40
|
+
} else {
|
|
41
|
+
newIndex = currentIndex - 1;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
break;
|
|
45
|
+
|
|
46
|
+
case "PageDown":
|
|
47
|
+
if (isNoOptionSelected) {
|
|
48
|
+
newIndex = Math.min(PAGE_SIZE - 1, lastIndex);
|
|
49
|
+
} else {
|
|
50
|
+
newIndex = Math.min(currentIndex + PAGE_SIZE, lastIndex);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
break;
|
|
54
|
+
|
|
55
|
+
case "PageUp":
|
|
56
|
+
if (isNoOptionSelected) {
|
|
57
|
+
newIndex = Math.max(lastIndex + 1 - PAGE_SIZE, 0);
|
|
58
|
+
} else {
|
|
59
|
+
newIndex = Math.max(currentIndex - PAGE_SIZE, 0);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
break;
|
|
63
|
+
|
|
64
|
+
default:
|
|
65
|
+
break;
|
|
32
66
|
}
|
|
33
67
|
|
|
34
68
|
return newIndex;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function isNavigationKey(key: any): boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = isNavigationKey;
|
|
7
|
+
|
|
8
|
+
function isNavigationKey(key) {
|
|
9
|
+
const navigationKeys = ["ArrowDown", "ArrowUp", "Home", "End", "PageUp", "PageDown"];
|
|
10
|
+
return navigationKeys.includes(key);
|
|
11
|
+
}
|