downshift 9.0.11 → 9.0.13
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/dist/downshift.cjs.js +40 -39
- package/dist/downshift.esm.js +41 -40
- package/dist/downshift.native.cjs.js +42 -34
- package/dist/downshift.nativeweb.cjs.js +40 -39
- package/dist/downshift.umd.js +40 -39
- 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/dist/src/hooks/utils.d.ts +1 -3
- package/package.json +1 -1
- package/preact/dist/downshift.cjs.js +40 -39
- package/preact/dist/downshift.esm.js +41 -40
- package/preact/dist/downshift.umd.js +40 -39
- 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/dist/downshift.cjs.js
CHANGED
|
@@ -1616,16 +1616,18 @@ var useElementIds = 'useId' in React // Avoid conditional useId call
|
|
|
1616
1616
|
if (!id) {
|
|
1617
1617
|
id = reactId;
|
|
1618
1618
|
}
|
|
1619
|
-
var
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1619
|
+
var elementIds = React.useMemo(function () {
|
|
1620
|
+
return {
|
|
1621
|
+
labelId: labelId || id + "-label",
|
|
1622
|
+
menuId: menuId || id + "-menu",
|
|
1623
|
+
getItemId: getItemId || function (index) {
|
|
1624
|
+
return id + "-item-" + index;
|
|
1625
|
+
},
|
|
1626
|
+
toggleButtonId: toggleButtonId || id + "-toggle-button",
|
|
1627
|
+
inputId: inputId || id + "-input"
|
|
1628
|
+
};
|
|
1629
|
+
}, [getItemId, id, inputId, labelId, menuId, toggleButtonId]);
|
|
1630
|
+
return elementIds;
|
|
1629
1631
|
} : function useElementIds(_ref2) {
|
|
1630
1632
|
var _ref2$id = _ref2.id,
|
|
1631
1633
|
id = _ref2$id === void 0 ? "downshift-" + generateId() : _ref2$id,
|
|
@@ -1634,16 +1636,18 @@ var useElementIds = 'useId' in React // Avoid conditional useId call
|
|
|
1634
1636
|
getItemId = _ref2.getItemId,
|
|
1635
1637
|
toggleButtonId = _ref2.toggleButtonId,
|
|
1636
1638
|
inputId = _ref2.inputId;
|
|
1637
|
-
var
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1639
|
+
var elementIds = React.useMemo(function () {
|
|
1640
|
+
return {
|
|
1641
|
+
labelId: labelId || id + "-label",
|
|
1642
|
+
menuId: menuId || id + "-menu",
|
|
1643
|
+
getItemId: getItemId || function (index) {
|
|
1644
|
+
return id + "-item-" + index;
|
|
1645
|
+
},
|
|
1646
|
+
toggleButtonId: toggleButtonId || id + "-toggle-button",
|
|
1647
|
+
inputId: inputId || id + "-input"
|
|
1648
|
+
};
|
|
1649
|
+
}, [getItemId, id, inputId, labelId, menuId, toggleButtonId]);
|
|
1650
|
+
return elementIds;
|
|
1647
1651
|
};
|
|
1648
1652
|
function getItemAndIndex(itemProp, indexProp, items, errorMessage) {
|
|
1649
1653
|
var item, index;
|
|
@@ -1826,19 +1830,17 @@ function getHighlightedIndexOnOpen(props, state, offset) {
|
|
|
1826
1830
|
* @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.
|
|
1827
1831
|
* @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.
|
|
1828
1832
|
*/
|
|
1829
|
-
function useMouseAndTouchTracker(environment, handleBlur,
|
|
1833
|
+
function useMouseAndTouchTracker(environment, handleBlur, downshiftRefs) {
|
|
1830
1834
|
var mouseAndTouchTrackersRef = React.useRef({
|
|
1831
1835
|
isMouseDown: false,
|
|
1832
1836
|
isTouchMove: false,
|
|
1833
1837
|
isTouchEnd: false
|
|
1834
1838
|
});
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
function getDownshiftElements() {
|
|
1838
|
-
return downshiftElementsRefs.map(function (ref) {
|
|
1839
|
+
var getDownshiftElements = React.useCallback(function () {
|
|
1840
|
+
return downshiftRefs.map(function (ref) {
|
|
1839
1841
|
return ref.current;
|
|
1840
1842
|
});
|
|
1841
|
-
}
|
|
1843
|
+
}, [downshiftRefs]);
|
|
1842
1844
|
React.useEffect(function () {
|
|
1843
1845
|
if (!environment) {
|
|
1844
1846
|
return noop;
|
|
@@ -1878,7 +1880,7 @@ function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs)
|
|
|
1878
1880
|
environment.removeEventListener('touchmove', onTouchMove);
|
|
1879
1881
|
environment.removeEventListener('touchend', onTouchEnd);
|
|
1880
1882
|
};
|
|
1881
|
-
}, [
|
|
1883
|
+
}, [environment, getDownshiftElements, handleBlur]);
|
|
1882
1884
|
return mouseAndTouchTrackersRef.current;
|
|
1883
1885
|
}
|
|
1884
1886
|
|
|
@@ -2466,17 +2468,17 @@ function useSelect(userProps) {
|
|
|
2466
2468
|
}
|
|
2467
2469
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2468
2470
|
}, []);
|
|
2469
|
-
var
|
|
2471
|
+
var handleBlurInTracker = React.useCallback(function handleBlur() {
|
|
2470
2472
|
if (latest.current.state.isOpen) {
|
|
2471
2473
|
dispatch({
|
|
2472
2474
|
type: ToggleButtonBlur
|
|
2473
2475
|
});
|
|
2474
2476
|
}
|
|
2475
|
-
}, [dispatch, latest])
|
|
2477
|
+
}, [dispatch, latest]);
|
|
2478
|
+
var downshiftRefs = React.useMemo(function () {
|
|
2476
2479
|
return [menuRef, toggleButtonRef];
|
|
2477
|
-
},
|
|
2478
|
-
|
|
2479
|
-
[]));
|
|
2480
|
+
}, []);
|
|
2481
|
+
var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
|
|
2480
2482
|
var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');
|
|
2481
2483
|
// Reset itemRefs on close.
|
|
2482
2484
|
React.useEffect(function () {
|
|
@@ -3089,18 +3091,17 @@ function useCombobox(userProps) {
|
|
|
3089
3091
|
previousResultCountRef.current = items.length;
|
|
3090
3092
|
}
|
|
3091
3093
|
});
|
|
3092
|
-
var
|
|
3094
|
+
var handleBlurInTracker = React.useCallback(function handleBlur() {
|
|
3093
3095
|
if (latest.current.state.isOpen) {
|
|
3094
3096
|
dispatch({
|
|
3095
|
-
type: InputBlur
|
|
3096
|
-
selectItem: false
|
|
3097
|
+
type: InputBlur
|
|
3097
3098
|
});
|
|
3098
3099
|
}
|
|
3099
|
-
}, [dispatch, latest])
|
|
3100
|
+
}, [dispatch, latest]);
|
|
3101
|
+
var downshiftRefs = React.useMemo(function () {
|
|
3100
3102
|
return [menuRef, toggleButtonRef, inputRef];
|
|
3101
|
-
},
|
|
3102
|
-
|
|
3103
|
-
[]));
|
|
3103
|
+
}, []);
|
|
3104
|
+
var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
|
|
3104
3105
|
var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');
|
|
3105
3106
|
// Reset itemRefs on close.
|
|
3106
3107
|
React.useEffect(function () {
|
package/dist/downshift.esm.js
CHANGED
|
@@ -2,7 +2,7 @@ import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWith
|
|
|
2
2
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
3
3
|
import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import React, { cloneElement, Component, useRef, useEffect, useLayoutEffect, useCallback, useReducer
|
|
5
|
+
import React, { cloneElement, Component, useMemo, useRef, useEffect, useLayoutEffect, useCallback, useReducer } from 'react';
|
|
6
6
|
import { isForwardRef } from 'react-is';
|
|
7
7
|
import { compute } from 'compute-scroll-into-view';
|
|
8
8
|
import { __assign } from 'tslib';
|
|
@@ -1612,16 +1612,18 @@ var useElementIds = 'useId' in React // Avoid conditional useId call
|
|
|
1612
1612
|
if (!id) {
|
|
1613
1613
|
id = reactId;
|
|
1614
1614
|
}
|
|
1615
|
-
var
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1615
|
+
var elementIds = useMemo(function () {
|
|
1616
|
+
return {
|
|
1617
|
+
labelId: labelId || id + "-label",
|
|
1618
|
+
menuId: menuId || id + "-menu",
|
|
1619
|
+
getItemId: getItemId || function (index) {
|
|
1620
|
+
return id + "-item-" + index;
|
|
1621
|
+
},
|
|
1622
|
+
toggleButtonId: toggleButtonId || id + "-toggle-button",
|
|
1623
|
+
inputId: inputId || id + "-input"
|
|
1624
|
+
};
|
|
1625
|
+
}, [getItemId, id, inputId, labelId, menuId, toggleButtonId]);
|
|
1626
|
+
return elementIds;
|
|
1625
1627
|
} : function useElementIds(_ref2) {
|
|
1626
1628
|
var _ref2$id = _ref2.id,
|
|
1627
1629
|
id = _ref2$id === void 0 ? "downshift-" + generateId() : _ref2$id,
|
|
@@ -1630,16 +1632,18 @@ var useElementIds = 'useId' in React // Avoid conditional useId call
|
|
|
1630
1632
|
getItemId = _ref2.getItemId,
|
|
1631
1633
|
toggleButtonId = _ref2.toggleButtonId,
|
|
1632
1634
|
inputId = _ref2.inputId;
|
|
1633
|
-
var
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1635
|
+
var elementIds = useMemo(function () {
|
|
1636
|
+
return {
|
|
1637
|
+
labelId: labelId || id + "-label",
|
|
1638
|
+
menuId: menuId || id + "-menu",
|
|
1639
|
+
getItemId: getItemId || function (index) {
|
|
1640
|
+
return id + "-item-" + index;
|
|
1641
|
+
},
|
|
1642
|
+
toggleButtonId: toggleButtonId || id + "-toggle-button",
|
|
1643
|
+
inputId: inputId || id + "-input"
|
|
1644
|
+
};
|
|
1645
|
+
}, [getItemId, id, inputId, labelId, menuId, toggleButtonId]);
|
|
1646
|
+
return elementIds;
|
|
1643
1647
|
};
|
|
1644
1648
|
function getItemAndIndex(itemProp, indexProp, items, errorMessage) {
|
|
1645
1649
|
var item, index;
|
|
@@ -1822,19 +1826,17 @@ function getHighlightedIndexOnOpen(props, state, offset) {
|
|
|
1822
1826
|
* @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.
|
|
1823
1827
|
* @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.
|
|
1824
1828
|
*/
|
|
1825
|
-
function useMouseAndTouchTracker(environment, handleBlur,
|
|
1829
|
+
function useMouseAndTouchTracker(environment, handleBlur, downshiftRefs) {
|
|
1826
1830
|
var mouseAndTouchTrackersRef = useRef({
|
|
1827
1831
|
isMouseDown: false,
|
|
1828
1832
|
isTouchMove: false,
|
|
1829
1833
|
isTouchEnd: false
|
|
1830
1834
|
});
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
function getDownshiftElements() {
|
|
1834
|
-
return downshiftElementsRefs.map(function (ref) {
|
|
1835
|
+
var getDownshiftElements = useCallback(function () {
|
|
1836
|
+
return downshiftRefs.map(function (ref) {
|
|
1835
1837
|
return ref.current;
|
|
1836
1838
|
});
|
|
1837
|
-
}
|
|
1839
|
+
}, [downshiftRefs]);
|
|
1838
1840
|
useEffect(function () {
|
|
1839
1841
|
if (!environment) {
|
|
1840
1842
|
return noop;
|
|
@@ -1874,7 +1876,7 @@ function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs)
|
|
|
1874
1876
|
environment.removeEventListener('touchmove', onTouchMove);
|
|
1875
1877
|
environment.removeEventListener('touchend', onTouchEnd);
|
|
1876
1878
|
};
|
|
1877
|
-
}, [
|
|
1879
|
+
}, [environment, getDownshiftElements, handleBlur]);
|
|
1878
1880
|
return mouseAndTouchTrackersRef.current;
|
|
1879
1881
|
}
|
|
1880
1882
|
|
|
@@ -2462,17 +2464,17 @@ function useSelect(userProps) {
|
|
|
2462
2464
|
}
|
|
2463
2465
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2464
2466
|
}, []);
|
|
2465
|
-
var
|
|
2467
|
+
var handleBlurInTracker = useCallback(function handleBlur() {
|
|
2466
2468
|
if (latest.current.state.isOpen) {
|
|
2467
2469
|
dispatch({
|
|
2468
2470
|
type: ToggleButtonBlur
|
|
2469
2471
|
});
|
|
2470
2472
|
}
|
|
2471
|
-
}, [dispatch, latest])
|
|
2473
|
+
}, [dispatch, latest]);
|
|
2474
|
+
var downshiftRefs = useMemo(function () {
|
|
2472
2475
|
return [menuRef, toggleButtonRef];
|
|
2473
|
-
},
|
|
2474
|
-
|
|
2475
|
-
[]));
|
|
2476
|
+
}, []);
|
|
2477
|
+
var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
|
|
2476
2478
|
var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');
|
|
2477
2479
|
// Reset itemRefs on close.
|
|
2478
2480
|
useEffect(function () {
|
|
@@ -3085,18 +3087,17 @@ function useCombobox(userProps) {
|
|
|
3085
3087
|
previousResultCountRef.current = items.length;
|
|
3086
3088
|
}
|
|
3087
3089
|
});
|
|
3088
|
-
var
|
|
3090
|
+
var handleBlurInTracker = useCallback(function handleBlur() {
|
|
3089
3091
|
if (latest.current.state.isOpen) {
|
|
3090
3092
|
dispatch({
|
|
3091
|
-
type: InputBlur
|
|
3092
|
-
selectItem: false
|
|
3093
|
+
type: InputBlur
|
|
3093
3094
|
});
|
|
3094
3095
|
}
|
|
3095
|
-
}, [dispatch, latest])
|
|
3096
|
+
}, [dispatch, latest]);
|
|
3097
|
+
var downshiftRefs = useMemo(function () {
|
|
3096
3098
|
return [menuRef, toggleButtonRef, inputRef];
|
|
3097
|
-
},
|
|
3098
|
-
|
|
3099
|
-
[]));
|
|
3099
|
+
}, []);
|
|
3100
|
+
var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
|
|
3100
3101
|
var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');
|
|
3101
3102
|
// Reset itemRefs on close.
|
|
3102
3103
|
useEffect(function () {
|
|
@@ -1506,16 +1506,18 @@ var useElementIds = 'useId' in React // Avoid conditional useId call
|
|
|
1506
1506
|
if (!id) {
|
|
1507
1507
|
id = reactId;
|
|
1508
1508
|
}
|
|
1509
|
-
var
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1509
|
+
var elementIds = React.useMemo(function () {
|
|
1510
|
+
return {
|
|
1511
|
+
labelId: labelId || id + "-label",
|
|
1512
|
+
menuId: menuId || id + "-menu",
|
|
1513
|
+
getItemId: getItemId || function (index) {
|
|
1514
|
+
return id + "-item-" + index;
|
|
1515
|
+
},
|
|
1516
|
+
toggleButtonId: toggleButtonId || id + "-toggle-button",
|
|
1517
|
+
inputId: inputId || id + "-input"
|
|
1518
|
+
};
|
|
1519
|
+
}, [getItemId, id, inputId, labelId, menuId, toggleButtonId]);
|
|
1520
|
+
return elementIds;
|
|
1519
1521
|
} : function useElementIds(_ref2) {
|
|
1520
1522
|
var _ref2$id = _ref2.id,
|
|
1521
1523
|
id = _ref2$id === void 0 ? "downshift-" + generateId() : _ref2$id,
|
|
@@ -1524,16 +1526,18 @@ var useElementIds = 'useId' in React // Avoid conditional useId call
|
|
|
1524
1526
|
getItemId = _ref2.getItemId,
|
|
1525
1527
|
toggleButtonId = _ref2.toggleButtonId,
|
|
1526
1528
|
inputId = _ref2.inputId;
|
|
1527
|
-
var
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1529
|
+
var elementIds = React.useMemo(function () {
|
|
1530
|
+
return {
|
|
1531
|
+
labelId: labelId || id + "-label",
|
|
1532
|
+
menuId: menuId || id + "-menu",
|
|
1533
|
+
getItemId: getItemId || function (index) {
|
|
1534
|
+
return id + "-item-" + index;
|
|
1535
|
+
},
|
|
1536
|
+
toggleButtonId: toggleButtonId || id + "-toggle-button",
|
|
1537
|
+
inputId: inputId || id + "-input"
|
|
1538
|
+
};
|
|
1539
|
+
}, [getItemId, id, inputId, labelId, menuId, toggleButtonId]);
|
|
1540
|
+
return elementIds;
|
|
1537
1541
|
};
|
|
1538
1542
|
function getItemAndIndex(itemProp, indexProp, items, errorMessage) {
|
|
1539
1543
|
var item, index;
|
|
@@ -1713,17 +1717,22 @@ function getHighlightedIndexOnOpen(props, state, offset) {
|
|
|
1713
1717
|
* @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.
|
|
1714
1718
|
* @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.
|
|
1715
1719
|
*/
|
|
1716
|
-
function useMouseAndTouchTracker(environment, handleBlur,
|
|
1720
|
+
function useMouseAndTouchTracker(environment, handleBlur, downshiftRefs) {
|
|
1717
1721
|
var mouseAndTouchTrackersRef = React.useRef({
|
|
1718
1722
|
isMouseDown: false,
|
|
1719
1723
|
isTouchMove: false,
|
|
1720
1724
|
isTouchEnd: false
|
|
1721
1725
|
});
|
|
1726
|
+
var getDownshiftElements = React.useCallback(function () {
|
|
1727
|
+
return downshiftRefs.map(function (ref) {
|
|
1728
|
+
return ref.current;
|
|
1729
|
+
});
|
|
1730
|
+
}, [downshiftRefs]);
|
|
1722
1731
|
React.useEffect(function () {
|
|
1723
1732
|
{
|
|
1724
1733
|
return noop;
|
|
1725
1734
|
}
|
|
1726
|
-
}, [
|
|
1735
|
+
}, [environment, getDownshiftElements, handleBlur]);
|
|
1727
1736
|
return mouseAndTouchTrackersRef.current;
|
|
1728
1737
|
}
|
|
1729
1738
|
|
|
@@ -2309,17 +2318,17 @@ function useSelect(userProps) {
|
|
|
2309
2318
|
}
|
|
2310
2319
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2311
2320
|
}, []);
|
|
2312
|
-
var
|
|
2321
|
+
var handleBlurInTracker = React.useCallback(function handleBlur() {
|
|
2313
2322
|
if (latest.current.state.isOpen) {
|
|
2314
2323
|
dispatch({
|
|
2315
2324
|
type: ToggleButtonBlur
|
|
2316
2325
|
});
|
|
2317
2326
|
}
|
|
2318
|
-
}, [dispatch, latest])
|
|
2327
|
+
}, [dispatch, latest]);
|
|
2328
|
+
var downshiftRefs = React.useMemo(function () {
|
|
2319
2329
|
return [menuRef, toggleButtonRef];
|
|
2320
|
-
},
|
|
2321
|
-
|
|
2322
|
-
[]));
|
|
2330
|
+
}, []);
|
|
2331
|
+
var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
|
|
2323
2332
|
var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');
|
|
2324
2333
|
// Reset itemRefs on close.
|
|
2325
2334
|
React.useEffect(function () {
|
|
@@ -2920,18 +2929,17 @@ function useCombobox(userProps) {
|
|
|
2920
2929
|
previousResultCountRef.current = items.length;
|
|
2921
2930
|
}
|
|
2922
2931
|
});
|
|
2923
|
-
var
|
|
2932
|
+
var handleBlurInTracker = React.useCallback(function handleBlur() {
|
|
2924
2933
|
if (latest.current.state.isOpen) {
|
|
2925
2934
|
dispatch({
|
|
2926
|
-
type: InputBlur
|
|
2927
|
-
selectItem: false
|
|
2935
|
+
type: InputBlur
|
|
2928
2936
|
});
|
|
2929
2937
|
}
|
|
2930
|
-
}, [dispatch, latest])
|
|
2938
|
+
}, [dispatch, latest]);
|
|
2939
|
+
var downshiftRefs = React.useMemo(function () {
|
|
2931
2940
|
return [menuRef, toggleButtonRef, inputRef];
|
|
2932
|
-
},
|
|
2933
|
-
|
|
2934
|
-
[]));
|
|
2941
|
+
}, []);
|
|
2942
|
+
var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
|
|
2935
2943
|
var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');
|
|
2936
2944
|
// Reset itemRefs on close.
|
|
2937
2945
|
React.useEffect(function () {
|
|
@@ -1614,16 +1614,18 @@ var useElementIds = 'useId' in React // Avoid conditional useId call
|
|
|
1614
1614
|
if (!id) {
|
|
1615
1615
|
id = reactId;
|
|
1616
1616
|
}
|
|
1617
|
-
var
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1617
|
+
var elementIds = React.useMemo(function () {
|
|
1618
|
+
return {
|
|
1619
|
+
labelId: labelId || id + "-label",
|
|
1620
|
+
menuId: menuId || id + "-menu",
|
|
1621
|
+
getItemId: getItemId || function (index) {
|
|
1622
|
+
return id + "-item-" + index;
|
|
1623
|
+
},
|
|
1624
|
+
toggleButtonId: toggleButtonId || id + "-toggle-button",
|
|
1625
|
+
inputId: inputId || id + "-input"
|
|
1626
|
+
};
|
|
1627
|
+
}, [getItemId, id, inputId, labelId, menuId, toggleButtonId]);
|
|
1628
|
+
return elementIds;
|
|
1627
1629
|
} : function useElementIds(_ref2) {
|
|
1628
1630
|
var _ref2$id = _ref2.id,
|
|
1629
1631
|
id = _ref2$id === void 0 ? "downshift-" + generateId() : _ref2$id,
|
|
@@ -1632,16 +1634,18 @@ var useElementIds = 'useId' in React // Avoid conditional useId call
|
|
|
1632
1634
|
getItemId = _ref2.getItemId,
|
|
1633
1635
|
toggleButtonId = _ref2.toggleButtonId,
|
|
1634
1636
|
inputId = _ref2.inputId;
|
|
1635
|
-
var
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1637
|
+
var elementIds = React.useMemo(function () {
|
|
1638
|
+
return {
|
|
1639
|
+
labelId: labelId || id + "-label",
|
|
1640
|
+
menuId: menuId || id + "-menu",
|
|
1641
|
+
getItemId: getItemId || function (index) {
|
|
1642
|
+
return id + "-item-" + index;
|
|
1643
|
+
},
|
|
1644
|
+
toggleButtonId: toggleButtonId || id + "-toggle-button",
|
|
1645
|
+
inputId: inputId || id + "-input"
|
|
1646
|
+
};
|
|
1647
|
+
}, [getItemId, id, inputId, labelId, menuId, toggleButtonId]);
|
|
1648
|
+
return elementIds;
|
|
1645
1649
|
};
|
|
1646
1650
|
function getItemAndIndex(itemProp, indexProp, items, errorMessage) {
|
|
1647
1651
|
var item, index;
|
|
@@ -1821,19 +1825,17 @@ function getHighlightedIndexOnOpen(props, state, offset) {
|
|
|
1821
1825
|
* @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.
|
|
1822
1826
|
* @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.
|
|
1823
1827
|
*/
|
|
1824
|
-
function useMouseAndTouchTracker(environment, handleBlur,
|
|
1828
|
+
function useMouseAndTouchTracker(environment, handleBlur, downshiftRefs) {
|
|
1825
1829
|
var mouseAndTouchTrackersRef = React.useRef({
|
|
1826
1830
|
isMouseDown: false,
|
|
1827
1831
|
isTouchMove: false,
|
|
1828
1832
|
isTouchEnd: false
|
|
1829
1833
|
});
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
function getDownshiftElements() {
|
|
1833
|
-
return downshiftElementsRefs.map(function (ref) {
|
|
1834
|
+
var getDownshiftElements = React.useCallback(function () {
|
|
1835
|
+
return downshiftRefs.map(function (ref) {
|
|
1834
1836
|
return ref.current;
|
|
1835
1837
|
});
|
|
1836
|
-
}
|
|
1838
|
+
}, [downshiftRefs]);
|
|
1837
1839
|
React.useEffect(function () {
|
|
1838
1840
|
if (!environment) {
|
|
1839
1841
|
return noop;
|
|
@@ -1873,7 +1875,7 @@ function useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs)
|
|
|
1873
1875
|
environment.removeEventListener('touchmove', onTouchMove);
|
|
1874
1876
|
environment.removeEventListener('touchend', onTouchEnd);
|
|
1875
1877
|
};
|
|
1876
|
-
}, [
|
|
1878
|
+
}, [environment, getDownshiftElements, handleBlur]);
|
|
1877
1879
|
return mouseAndTouchTrackersRef.current;
|
|
1878
1880
|
}
|
|
1879
1881
|
|
|
@@ -2461,17 +2463,17 @@ function useSelect(userProps) {
|
|
|
2461
2463
|
}
|
|
2462
2464
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2463
2465
|
}, []);
|
|
2464
|
-
var
|
|
2466
|
+
var handleBlurInTracker = React.useCallback(function handleBlur() {
|
|
2465
2467
|
if (latest.current.state.isOpen) {
|
|
2466
2468
|
dispatch({
|
|
2467
2469
|
type: ToggleButtonBlur
|
|
2468
2470
|
});
|
|
2469
2471
|
}
|
|
2470
|
-
}, [dispatch, latest])
|
|
2472
|
+
}, [dispatch, latest]);
|
|
2473
|
+
var downshiftRefs = React.useMemo(function () {
|
|
2471
2474
|
return [menuRef, toggleButtonRef];
|
|
2472
|
-
},
|
|
2473
|
-
|
|
2474
|
-
[]));
|
|
2475
|
+
}, []);
|
|
2476
|
+
var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
|
|
2475
2477
|
var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');
|
|
2476
2478
|
// Reset itemRefs on close.
|
|
2477
2479
|
React.useEffect(function () {
|
|
@@ -3072,18 +3074,17 @@ function useCombobox(userProps) {
|
|
|
3072
3074
|
previousResultCountRef.current = items.length;
|
|
3073
3075
|
}
|
|
3074
3076
|
});
|
|
3075
|
-
var
|
|
3077
|
+
var handleBlurInTracker = React.useCallback(function handleBlur() {
|
|
3076
3078
|
if (latest.current.state.isOpen) {
|
|
3077
3079
|
dispatch({
|
|
3078
|
-
type: InputBlur
|
|
3079
|
-
selectItem: false
|
|
3080
|
+
type: InputBlur
|
|
3080
3081
|
});
|
|
3081
3082
|
}
|
|
3082
|
-
}, [dispatch, latest])
|
|
3083
|
+
}, [dispatch, latest]);
|
|
3084
|
+
var downshiftRefs = React.useMemo(function () {
|
|
3083
3085
|
return [menuRef, toggleButtonRef, inputRef];
|
|
3084
|
-
},
|
|
3085
|
-
|
|
3086
|
-
[]));
|
|
3086
|
+
}, []);
|
|
3087
|
+
var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, handleBlurInTracker, downshiftRefs);
|
|
3087
3088
|
var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');
|
|
3088
3089
|
// Reset itemRefs on close.
|
|
3089
3090
|
React.useEffect(function () {
|