downshift 7.0.5 → 7.1.1
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/README.md +185 -180
- package/dist/downshift.cjs.js +35 -17
- package/dist/downshift.esm.js +35 -17
- package/dist/downshift.native.cjs.js +35 -17
- package/dist/downshift.umd.js +35 -17
- package/dist/downshift.umd.js.map +1 -1
- package/dist/downshift.umd.min.js +1 -1
- package/dist/downshift.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/preact/dist/downshift.cjs.js +35 -17
- package/preact/dist/downshift.esm.js +35 -17
- package/preact/dist/downshift.umd.js +35 -17
- package/preact/dist/downshift.umd.js.map +1 -1
- package/preact/dist/downshift.umd.min.js +1 -1
- package/preact/dist/downshift.umd.min.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "downshift",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.1",
|
|
4
4
|
"description": "🏎 A set of primitives to build simple, flexible, WAI-ARIA compliant React autocomplete, combobox or select dropdown components.",
|
|
5
5
|
"main": "dist/downshift.cjs.js",
|
|
6
6
|
"react-native": "dist/downshift.native.cjs.js",
|
|
@@ -1965,12 +1965,11 @@ function getItemIndexByCharacterKey(_a) {
|
|
|
1965
1965
|
var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, getItemNodeFromIndex = _a.getItemNodeFromIndex;
|
|
1966
1966
|
var lowerCasedKeysSoFar = keysSoFar.toLowerCase();
|
|
1967
1967
|
for (var index = 0; index < items.length; index++) {
|
|
1968
|
-
|
|
1968
|
+
// if we already have a search query in progress, we also consider the current highlighted item.
|
|
1969
|
+
var offsetIndex = (index + highlightedIndex + (keysSoFar.length < 2 ? 1 : 0)) % items.length;
|
|
1969
1970
|
var item = items[offsetIndex];
|
|
1970
1971
|
if (item !== undefined &&
|
|
1971
|
-
itemToString(item)
|
|
1972
|
-
.toLowerCase()
|
|
1973
|
-
.startsWith(lowerCasedKeysSoFar)) {
|
|
1972
|
+
itemToString(item).toLowerCase().startsWith(lowerCasedKeysSoFar)) {
|
|
1974
1973
|
var element = getItemNodeFromIndex(offsetIndex);
|
|
1975
1974
|
if (!(element === null || element === void 0 ? void 0 : element.hasAttribute('disabled'))) {
|
|
1976
1975
|
return offsetIndex;
|
|
@@ -2415,9 +2414,24 @@ function useSelect(userProps) {
|
|
|
2415
2414
|
},
|
|
2416
2415
|
' '(event) {
|
|
2417
2416
|
event.preventDefault();
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2417
|
+
const currentState = latest.current.state;
|
|
2418
|
+
if (!currentState.isOpen) {
|
|
2419
|
+
dispatch({
|
|
2420
|
+
type: ToggleButtonClick$1
|
|
2421
|
+
});
|
|
2422
|
+
return;
|
|
2423
|
+
}
|
|
2424
|
+
if (currentState.inputValue) {
|
|
2425
|
+
dispatch({
|
|
2426
|
+
type: ToggleButtonKeyDownCharacter,
|
|
2427
|
+
key: ' ',
|
|
2428
|
+
getItemNodeFromIndex
|
|
2429
|
+
});
|
|
2430
|
+
} else {
|
|
2431
|
+
dispatch({
|
|
2432
|
+
type: ToggleButtonKeyDownSpaceButton
|
|
2433
|
+
});
|
|
2434
|
+
}
|
|
2421
2435
|
}
|
|
2422
2436
|
}), [dispatch, getItemNodeFromIndex, latest]);
|
|
2423
2437
|
|
|
@@ -3569,6 +3583,9 @@ function downshiftMultipleSelectionReducer(state, action) {
|
|
|
3569
3583
|
case SelectedItemKeyDownBackspace:
|
|
3570
3584
|
case SelectedItemKeyDownDelete:
|
|
3571
3585
|
{
|
|
3586
|
+
if (activeIndex < 0) {
|
|
3587
|
+
break;
|
|
3588
|
+
}
|
|
3572
3589
|
let newActiveIndex = activeIndex;
|
|
3573
3590
|
if (selectedItems.length === 1) {
|
|
3574
3591
|
newActiveIndex = -1;
|
|
@@ -3607,17 +3624,18 @@ function downshiftMultipleSelectionReducer(state, action) {
|
|
|
3607
3624
|
{
|
|
3608
3625
|
let newActiveIndex = activeIndex;
|
|
3609
3626
|
const selectedItemIndex = selectedItems.indexOf(selectedItem);
|
|
3610
|
-
if (selectedItemIndex
|
|
3611
|
-
|
|
3612
|
-
newActiveIndex = -1;
|
|
3613
|
-
} else if (selectedItemIndex === selectedItems.length - 1) {
|
|
3614
|
-
newActiveIndex = selectedItems.length - 2;
|
|
3615
|
-
}
|
|
3616
|
-
changes = {
|
|
3617
|
-
selectedItems: [...selectedItems.slice(0, selectedItemIndex), ...selectedItems.slice(selectedItemIndex + 1)],
|
|
3618
|
-
activeIndex: newActiveIndex
|
|
3619
|
-
};
|
|
3627
|
+
if (selectedItemIndex < 0) {
|
|
3628
|
+
break;
|
|
3620
3629
|
}
|
|
3630
|
+
if (selectedItems.length === 1) {
|
|
3631
|
+
newActiveIndex = -1;
|
|
3632
|
+
} else if (selectedItemIndex === selectedItems.length - 1) {
|
|
3633
|
+
newActiveIndex = selectedItems.length - 2;
|
|
3634
|
+
}
|
|
3635
|
+
changes = {
|
|
3636
|
+
selectedItems: [...selectedItems.slice(0, selectedItemIndex), ...selectedItems.slice(selectedItemIndex + 1)],
|
|
3637
|
+
activeIndex: newActiveIndex
|
|
3638
|
+
};
|
|
3621
3639
|
break;
|
|
3622
3640
|
}
|
|
3623
3641
|
case FunctionSetSelectedItems:
|
|
@@ -1956,12 +1956,11 @@ function getItemIndexByCharacterKey(_a) {
|
|
|
1956
1956
|
var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, getItemNodeFromIndex = _a.getItemNodeFromIndex;
|
|
1957
1957
|
var lowerCasedKeysSoFar = keysSoFar.toLowerCase();
|
|
1958
1958
|
for (var index = 0; index < items.length; index++) {
|
|
1959
|
-
|
|
1959
|
+
// if we already have a search query in progress, we also consider the current highlighted item.
|
|
1960
|
+
var offsetIndex = (index + highlightedIndex + (keysSoFar.length < 2 ? 1 : 0)) % items.length;
|
|
1960
1961
|
var item = items[offsetIndex];
|
|
1961
1962
|
if (item !== undefined &&
|
|
1962
|
-
itemToString(item)
|
|
1963
|
-
.toLowerCase()
|
|
1964
|
-
.startsWith(lowerCasedKeysSoFar)) {
|
|
1963
|
+
itemToString(item).toLowerCase().startsWith(lowerCasedKeysSoFar)) {
|
|
1965
1964
|
var element = getItemNodeFromIndex(offsetIndex);
|
|
1966
1965
|
if (!(element === null || element === void 0 ? void 0 : element.hasAttribute('disabled'))) {
|
|
1967
1966
|
return offsetIndex;
|
|
@@ -2406,9 +2405,24 @@ function useSelect(userProps) {
|
|
|
2406
2405
|
},
|
|
2407
2406
|
' '(event) {
|
|
2408
2407
|
event.preventDefault();
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2408
|
+
const currentState = latest.current.state;
|
|
2409
|
+
if (!currentState.isOpen) {
|
|
2410
|
+
dispatch({
|
|
2411
|
+
type: ToggleButtonClick$1
|
|
2412
|
+
});
|
|
2413
|
+
return;
|
|
2414
|
+
}
|
|
2415
|
+
if (currentState.inputValue) {
|
|
2416
|
+
dispatch({
|
|
2417
|
+
type: ToggleButtonKeyDownCharacter,
|
|
2418
|
+
key: ' ',
|
|
2419
|
+
getItemNodeFromIndex
|
|
2420
|
+
});
|
|
2421
|
+
} else {
|
|
2422
|
+
dispatch({
|
|
2423
|
+
type: ToggleButtonKeyDownSpaceButton
|
|
2424
|
+
});
|
|
2425
|
+
}
|
|
2412
2426
|
}
|
|
2413
2427
|
}), [dispatch, getItemNodeFromIndex, latest]);
|
|
2414
2428
|
|
|
@@ -3560,6 +3574,9 @@ function downshiftMultipleSelectionReducer(state, action) {
|
|
|
3560
3574
|
case SelectedItemKeyDownBackspace:
|
|
3561
3575
|
case SelectedItemKeyDownDelete:
|
|
3562
3576
|
{
|
|
3577
|
+
if (activeIndex < 0) {
|
|
3578
|
+
break;
|
|
3579
|
+
}
|
|
3563
3580
|
let newActiveIndex = activeIndex;
|
|
3564
3581
|
if (selectedItems.length === 1) {
|
|
3565
3582
|
newActiveIndex = -1;
|
|
@@ -3598,17 +3615,18 @@ function downshiftMultipleSelectionReducer(state, action) {
|
|
|
3598
3615
|
{
|
|
3599
3616
|
let newActiveIndex = activeIndex;
|
|
3600
3617
|
const selectedItemIndex = selectedItems.indexOf(selectedItem);
|
|
3601
|
-
if (selectedItemIndex
|
|
3602
|
-
|
|
3603
|
-
newActiveIndex = -1;
|
|
3604
|
-
} else if (selectedItemIndex === selectedItems.length - 1) {
|
|
3605
|
-
newActiveIndex = selectedItems.length - 2;
|
|
3606
|
-
}
|
|
3607
|
-
changes = {
|
|
3608
|
-
selectedItems: [...selectedItems.slice(0, selectedItemIndex), ...selectedItems.slice(selectedItemIndex + 1)],
|
|
3609
|
-
activeIndex: newActiveIndex
|
|
3610
|
-
};
|
|
3618
|
+
if (selectedItemIndex < 0) {
|
|
3619
|
+
break;
|
|
3611
3620
|
}
|
|
3621
|
+
if (selectedItems.length === 1) {
|
|
3622
|
+
newActiveIndex = -1;
|
|
3623
|
+
} else if (selectedItemIndex === selectedItems.length - 1) {
|
|
3624
|
+
newActiveIndex = selectedItems.length - 2;
|
|
3625
|
+
}
|
|
3626
|
+
changes = {
|
|
3627
|
+
selectedItems: [...selectedItems.slice(0, selectedItemIndex), ...selectedItems.slice(selectedItemIndex + 1)],
|
|
3628
|
+
activeIndex: newActiveIndex
|
|
3629
|
+
};
|
|
3612
3630
|
break;
|
|
3613
3631
|
}
|
|
3614
3632
|
case FunctionSetSelectedItems:
|
|
@@ -2220,12 +2220,11 @@
|
|
|
2220
2220
|
var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, getItemNodeFromIndex = _a.getItemNodeFromIndex;
|
|
2221
2221
|
var lowerCasedKeysSoFar = keysSoFar.toLowerCase();
|
|
2222
2222
|
for (var index = 0; index < items.length; index++) {
|
|
2223
|
-
|
|
2223
|
+
// if we already have a search query in progress, we also consider the current highlighted item.
|
|
2224
|
+
var offsetIndex = (index + highlightedIndex + (keysSoFar.length < 2 ? 1 : 0)) % items.length;
|
|
2224
2225
|
var item = items[offsetIndex];
|
|
2225
2226
|
if (item !== undefined &&
|
|
2226
|
-
itemToString(item)
|
|
2227
|
-
.toLowerCase()
|
|
2228
|
-
.startsWith(lowerCasedKeysSoFar)) {
|
|
2227
|
+
itemToString(item).toLowerCase().startsWith(lowerCasedKeysSoFar)) {
|
|
2229
2228
|
var element = getItemNodeFromIndex(offsetIndex);
|
|
2230
2229
|
if (!(element === null || element === void 0 ? void 0 : element.hasAttribute('disabled'))) {
|
|
2231
2230
|
return offsetIndex;
|
|
@@ -2670,9 +2669,24 @@
|
|
|
2670
2669
|
},
|
|
2671
2670
|
' '(event) {
|
|
2672
2671
|
event.preventDefault();
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2672
|
+
const currentState = latest.current.state;
|
|
2673
|
+
if (!currentState.isOpen) {
|
|
2674
|
+
dispatch({
|
|
2675
|
+
type: ToggleButtonClick$1
|
|
2676
|
+
});
|
|
2677
|
+
return;
|
|
2678
|
+
}
|
|
2679
|
+
if (currentState.inputValue) {
|
|
2680
|
+
dispatch({
|
|
2681
|
+
type: ToggleButtonKeyDownCharacter,
|
|
2682
|
+
key: ' ',
|
|
2683
|
+
getItemNodeFromIndex
|
|
2684
|
+
});
|
|
2685
|
+
} else {
|
|
2686
|
+
dispatch({
|
|
2687
|
+
type: ToggleButtonKeyDownSpaceButton
|
|
2688
|
+
});
|
|
2689
|
+
}
|
|
2676
2690
|
}
|
|
2677
2691
|
}), [dispatch, getItemNodeFromIndex, latest]);
|
|
2678
2692
|
|
|
@@ -3824,6 +3838,9 @@
|
|
|
3824
3838
|
case SelectedItemKeyDownBackspace:
|
|
3825
3839
|
case SelectedItemKeyDownDelete:
|
|
3826
3840
|
{
|
|
3841
|
+
if (activeIndex < 0) {
|
|
3842
|
+
break;
|
|
3843
|
+
}
|
|
3827
3844
|
let newActiveIndex = activeIndex;
|
|
3828
3845
|
if (selectedItems.length === 1) {
|
|
3829
3846
|
newActiveIndex = -1;
|
|
@@ -3862,17 +3879,18 @@
|
|
|
3862
3879
|
{
|
|
3863
3880
|
let newActiveIndex = activeIndex;
|
|
3864
3881
|
const selectedItemIndex = selectedItems.indexOf(selectedItem);
|
|
3865
|
-
if (selectedItemIndex
|
|
3866
|
-
|
|
3867
|
-
newActiveIndex = -1;
|
|
3868
|
-
} else if (selectedItemIndex === selectedItems.length - 1) {
|
|
3869
|
-
newActiveIndex = selectedItems.length - 2;
|
|
3870
|
-
}
|
|
3871
|
-
changes = {
|
|
3872
|
-
selectedItems: [...selectedItems.slice(0, selectedItemIndex), ...selectedItems.slice(selectedItemIndex + 1)],
|
|
3873
|
-
activeIndex: newActiveIndex
|
|
3874
|
-
};
|
|
3882
|
+
if (selectedItemIndex < 0) {
|
|
3883
|
+
break;
|
|
3875
3884
|
}
|
|
3885
|
+
if (selectedItems.length === 1) {
|
|
3886
|
+
newActiveIndex = -1;
|
|
3887
|
+
} else if (selectedItemIndex === selectedItems.length - 1) {
|
|
3888
|
+
newActiveIndex = selectedItems.length - 2;
|
|
3889
|
+
}
|
|
3890
|
+
changes = {
|
|
3891
|
+
selectedItems: [...selectedItems.slice(0, selectedItemIndex), ...selectedItems.slice(selectedItemIndex + 1)],
|
|
3892
|
+
activeIndex: newActiveIndex
|
|
3893
|
+
};
|
|
3876
3894
|
break;
|
|
3877
3895
|
}
|
|
3878
3896
|
case FunctionSetSelectedItems:
|