react-bootstrap-typeahead
Version:
React typeahead with Bootstrap styling
71 lines (58 loc) • 2.43 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _classnames = _interopRequireDefault(require("classnames"));
var _getMenuItemId = _interopRequireDefault(require("./getMenuItemId"));
var getInputProps = function getInputProps(_ref) {
var activeIndex = _ref.activeIndex,
id = _ref.id,
isFocused = _ref.isFocused,
isMenuShown = _ref.isMenuShown,
multiple = _ref.multiple,
onFocus = _ref.onFocus,
placeholder = _ref.placeholder,
rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["activeIndex", "id", "isFocused", "isMenuShown", "multiple", "onFocus", "placeholder"]);
return function (_temp) {
var _cx;
var _ref2 = _temp === void 0 ? {} : _temp,
className = _ref2.className,
inputProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, ["className"]);
var props = (0, _extends2["default"])({
/* eslint-disable sort-keys */
// These props can be overridden by values in `inputProps`.
autoComplete: 'off',
placeholder: placeholder,
type: 'text'
}, inputProps, {}, rest, {
'aria-activedescendant': activeIndex >= 0 ? (0, _getMenuItemId["default"])(id, activeIndex) : undefined,
'aria-autocomplete': 'both',
'aria-expanded': isMenuShown,
'aria-haspopup': 'listbox',
'aria-owns': isMenuShown ? id : undefined,
className: (0, _classnames["default"])((_cx = {}, _cx[className || ''] = !multiple, _cx.focus = isFocused, _cx)),
// Re-open the menu, eg: if it's closed via ESC.
onClick: onFocus,
onFocus: onFocus,
// Comboboxes are single-select by definition:
// https://www.w3.org/TR/wai-aria-practices-1.1/#combobox
role: 'combobox'
/* eslint-enable sort-keys */
});
if (!multiple) {
return props;
}
return (0, _extends2["default"])({}, props, {
'aria-autocomplete': 'list',
'aria-expanded': undefined,
inputClassName: className,
role: undefined
});
};
};
var _default = getInputProps;
exports["default"] = _default;