📅 You're Invited: Meet the Socket team at RSAC (April 28 – May 1).RSVP
Socket
Sign inDemoInstall
Socket

react-bootstrap-typeahead

Package Overview
Dependencies
Maintainers
1
Versions
182
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-bootstrap-typeahead - npm Package Compare versions

Comparing version

to
6.0.0-alpha.1

es/utils/hasOwnProperty.js

46

es/behaviors/async.js

@@ -15,5 +15,4 @@ import _extends from "@babel/runtime/helpers/extends";

import usePrevious from '@restart/hooks/usePrevious';
import Typeahead from '../core/Typeahead';
import { optionType } from '../propTypes';
import { getDisplayName, isFunction, warn } from '../utils';
import { getDisplayName, isFunction } from '../utils';
var propTypes = {

@@ -62,10 +61,2 @@ /**

};
var defaultProps = {
delay: 200,
minLength: 2,
options: [],
promptText: 'Type to search...',
searchText: 'Searching...',
useCache: true
};

@@ -82,16 +73,22 @@ /**

var allowNew = props.allowNew,
delay = props.delay,
_props$delay = props.delay,
delay = _props$delay === void 0 ? 200 : _props$delay,
emptyLabel = props.emptyLabel,
isLoading = props.isLoading,
minLength = props.minLength,
_props$minLength = props.minLength,
minLength = _props$minLength === void 0 ? 2 : _props$minLength,
onInputChange = props.onInputChange,
onSearch = props.onSearch,
options = props.options,
promptText = props.promptText,
searchText = props.searchText,
useCache = props.useCache,
_props$options = props.options,
options = _props$options === void 0 ? [] : _props$options,
_props$promptText = props.promptText,
promptText = _props$promptText === void 0 ? 'Type to search...' : _props$promptText,
_props$searchText = props.searchText,
searchText = _props$searchText === void 0 ? 'Searching...' : _props$searchText,
_props$useCache = props.useCache,
useCache = _props$useCache === void 0 ? true : _props$useCache,
otherProps = _objectWithoutProperties(props, _excluded);
var cacheRef = useRef({});
var handleSearchDebouncedRef = useRef();
var handleSearchDebouncedRef = useRef(null);
var queryRef = useRef(props.defaultInputValue || '');

@@ -162,19 +159,10 @@ var forceUpdate = useForceUpdate();

var AsyncTypeahead = /*#__PURE__*/forwardRef(function (props, ref) {
return /*#__PURE__*/React.createElement(Component, _extends({}, useAsync(props), {
return /*#__PURE__*/React.createElement(Component, _extends({}, props, useAsync(props), {
ref: ref
}));
});
AsyncTypeahead.displayName = "withAsync(".concat(getDisplayName(Component), ")"); // $FlowFixMe
AsyncTypeahead.displayName = "withAsync(".concat(getDisplayName(Component), ")"); // @ts-ignore
AsyncTypeahead.propTypes = propTypes; // $FlowFixMe
AsyncTypeahead.defaultProps = defaultProps;
AsyncTypeahead.propTypes = propTypes;
return AsyncTypeahead;
}
export default function asyncContainer(Component) {
/* istanbul ignore next */
warn(false, 'The `asyncContainer` export is deprecated; use `withAsync` instead.');
/* istanbul ignore next */
return withAsync(Component);
}
import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _inherits from "@babel/runtime/helpers/inherits";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
var _excluded = ["className", "isInvalid", "isValid", "size"];
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
/* eslint-disable @typescript-eslint/no-explicit-any */
import cx from 'classnames';

@@ -20,42 +11,20 @@ import React from 'react';

function withClassNames(Component) {
// Use a class instead of function component to support refs.
var WrappedComponent = function WrappedComponent(_ref) {
var className = _ref.className,
isInvalid = _ref.isInvalid,
isValid = _ref.isValid,
size = _ref.size,
props = _objectWithoutProperties(_ref, _excluded);
/* eslint-disable-next-line react/prefer-stateless-function */
var WrappedComponent = /*#__PURE__*/function (_React$Component) {
_inherits(WrappedComponent, _React$Component);
return /*#__PURE__*/React.createElement(Component, _extends({}, props, {
className: cx('form-control', 'rbt-input', {
'form-control-lg': isSizeLarge(size),
'form-control-sm': isSizeSmall(size),
'is-invalid': isInvalid,
'is-valid': isValid
}, className)
}));
};
var _super = _createSuper(WrappedComponent);
function WrappedComponent() {
_classCallCheck(this, WrappedComponent);
return _super.apply(this, arguments);
}
_createClass(WrappedComponent, [{
key: "render",
value: function render() {
var _this$props = this.props,
className = _this$props.className,
isInvalid = _this$props.isInvalid,
isValid = _this$props.isValid,
size = _this$props.size,
props = _objectWithoutProperties(_this$props, _excluded);
return /*#__PURE__*/React.createElement(Component, _extends({}, props, {
className: cx('form-control', 'rbt-input', {
'form-control-lg': isSizeLarge(size),
'form-control-sm': isSizeSmall(size),
'is-invalid': isInvalid,
'is-valid': isValid
}, className)
}));
}
}]);
return WrappedComponent;
}(React.Component);
_defineProperty(WrappedComponent, "displayName", "withClassNames(".concat(getDisplayName(Component), ")"));
WrappedComponent.displayName = "withClassNames(".concat(getDisplayName(Component), ")");
return WrappedComponent;

@@ -62,0 +31,0 @@ }

@@ -1,14 +0,7 @@

import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["label", "onClick", "option", "position"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
import _extends from "@babel/runtime/helpers/extends";
import PropTypes from 'prop-types';
import React, { useCallback, useEffect, useRef } from 'react';
import scrollIntoView from 'scroll-into-view-if-needed';
import React, { useCallback, useEffect, useRef } from 'react';
import PropTypes from 'prop-types';
import { useTypeaheadContext } from '../core/Context';
import { getDisplayName, getMenuItemId, preventInputBlur, warn } from '../utils';
import { getDisplayName, getMenuItemId, preventInputBlur } from '../utils';
import { optionType } from '../propTypes';

@@ -19,8 +12,7 @@ var propTypes = {

};
export var useItem = function useItem(_ref) {
export function useItem(_ref) {
var label = _ref.label,
onClick = _ref.onClick,
option = _ref.option,
position = _ref.position,
props = _objectWithoutProperties(_ref, _excluded);
position = _ref.position;

@@ -49,3 +41,3 @@ var _useTypeaheadContext = useTypeaheadContext(),

block: 'nearest',
boundary: node.parentNode,
boundary: node === null || node === void 0 ? void 0 : node.parentNode,
inline: 'nearest',

@@ -63,3 +55,3 @@ scrollMode: 'if-needed'

setItem(option, position);
return _objectSpread(_objectSpread({}, props), {}, {
return {
active: active,

@@ -73,21 +65,14 @@ 'aria-label': label,

role: 'option'
});
};
export var withItem = function withItem(Component) {
var displayName = "withItem(".concat(getDisplayName(Component), ")");
};
}
/* istanbul ignore next */
export function withItem(Component) {
var WrappedMenuItem = function WrappedMenuItem(props) {
return /*#__PURE__*/React.createElement(Component, useItem(props));
return /*#__PURE__*/React.createElement(Component, _extends({}, props, useItem(props)));
};
WrappedMenuItem.displayName = displayName;
WrappedMenuItem.displayName = "withItem(".concat(getDisplayName(Component), ")");
WrappedMenuItem.propTypes = propTypes;
return WrappedMenuItem;
};
export default function menuItemContainer(Component) {
/* istanbul ignore next */
warn(false, 'The `menuItemContainer` export is deprecated; use `withItem` instead.');
/* istanbul ignore next */
return withItem(Component);
}

@@ -0,1 +1,2 @@

import _extends from "@babel/runtime/helpers/extends";
import _defineProperty from "@babel/runtime/helpers/defineProperty";

@@ -13,4 +14,3 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";

import useRootClose from "react-overlays/useRootClose";
import { getDisplayName, isFunction, warn } from '../utils';
import { BACKSPACE } from '../constants';
import { getDisplayName, isFunction } from '../utils';
import { optionType } from '../propTypes';

@@ -24,3 +24,3 @@ var propTypes = {

};
export var useToken = function useToken(_ref) {
export function useToken(_ref) {
var onBlur = _ref.onBlur,

@@ -43,18 +43,18 @@ onClick = _ref.onClick,

var handleActiveChange = function handleActiveChange(e, isActive, callback) {
var handleBlur = function handleBlur(e) {
e.stopPropagation();
setActive(isActive);
typeof callback === 'function' && callback(e);
setActive(false);
onBlur && onBlur(e);
};
var handleBlur = function handleBlur(e) {
handleActiveChange(e, false, onBlur);
};
var handleClick = function handleClick(e) {
handleActiveChange(e, true, onClick);
e.stopPropagation();
setActive(true);
onClick && onClick(e);
};
var handleFocus = function handleFocus(e) {
handleActiveChange(e, true, onFocus);
e.stopPropagation();
setActive(true);
onFocus && onFocus(e);
};

@@ -67,4 +67,4 @@

var handleKeyDown = function handleKeyDown(e) {
switch (e.keyCode) {
case BACKSPACE:
switch (e.key) {
case 'Backspace':
if (active) {

@@ -87,3 +87,3 @@ // Prevent backspace keypress from triggering the browser "back"

}));
return _objectSpread(_objectSpread({}, props), {}, {
return {
active: active,

@@ -96,9 +96,11 @@ onBlur: handleBlur,

ref: attachRef
});
};
export var withToken = function withToken(Component) {
};
}
/* istanbul ignore next */
export function withToken(Component) {
var displayName = "withToken(".concat(getDisplayName(Component), ")");
var WrappedToken = function WrappedToken(props) {
return /*#__PURE__*/React.createElement(Component, useToken(props));
return /*#__PURE__*/React.createElement(Component, _extends({}, props, useToken(props)));
};

@@ -109,9 +111,2 @@

return WrappedToken;
};
export default function tokenContainer(Component) {
/* istanbul ignore next */
warn(false, 'The `tokenContainer` export is deprecated; use `withToken` instead.');
/* istanbul ignore next */
return withToken(Component);
}

@@ -5,7 +5,6 @@ import _extends from "@babel/runtime/helpers/extends";

import cx from 'classnames';
import PropTypes from 'prop-types';
import React from 'react';
import PropTypes from 'prop-types';
import { isSizeLarge, noop } from '../utils';
import { sizeType } from '../propTypes';
import { BACKSPACE } from '../constants';
var propTypes = {

@@ -48,3 +47,3 @@ label: PropTypes.string,

// Prevent browser from navigating back.
if (e.keyCode === BACKSPACE) {
if (e.key === 'Backspace') {
e.preventDefault();

@@ -51,0 +50,0 @@ }

@@ -13,3 +13,2 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";

import { isSelectable } from '../utils';
import { RETURN, RIGHT, TAB } from '../constants';

@@ -28,3 +27,3 @@ // IE doesn't seem to get the composite computed value (eg: 'padding',

return ['Top', 'Right', 'Bottom', 'Left'].map(function (dir) {
return styles[attr + dir + subattr];
return styles["".concat(attr).concat(dir).concat(subattr)];
}).join(' ');

@@ -51,8 +50,8 @@ }

export function defaultShouldSelect(e, state) {
export function defaultShouldSelect(e, shouldSelect) {
var shouldSelectHint = false;
var currentTarget = e.currentTarget,
keyCode = e.keyCode;
key = e.key;
if (keyCode === RIGHT) {
if (key === 'ArrowRight') {
// For selectable input types ("text", "search"), only select the hint if

@@ -64,3 +63,3 @@ // it's at the end of the input value. For non-selectable types ("email",

if (keyCode === TAB) {
if (key === 'Tab') {
// Prevent input from blurring on TAB.

@@ -71,7 +70,3 @@ e.preventDefault();

if (keyCode === RETURN) {
shouldSelectHint = !!state.selectHintOnEnter;
}
return typeof state.shouldSelect === 'function' ? state.shouldSelect(shouldSelectHint, e) : shouldSelectHint;
return typeof shouldSelect === 'function' ? shouldSelect(shouldSelectHint, e) : shouldSelectHint;
}

@@ -87,4 +82,3 @@ export var useHint = function useHint(_ref) {

inputNode = _useTypeaheadContext.inputNode,
onAdd = _useTypeaheadContext.onAdd,
selectHintOnEnter = _useTypeaheadContext.selectHintOnEnter;
onAdd = _useTypeaheadContext.onAdd;

@@ -94,6 +88,3 @@ var hintRef = useRef(null);

var onKeyDown = function onKeyDown(e) {
if (hintText && initialItem && defaultShouldSelect(e, {
selectHintOnEnter: selectHintOnEnter,
shouldSelect: shouldSelect
})) {
if (hintText && initialItem && defaultShouldSelect(e, shouldSelect)) {
onAdd(initialItem);

@@ -100,0 +91,0 @@ }

import _extends from "@babel/runtime/helpers/extends";
import cx from 'classnames';
import React from 'react';
var Input = /*#__PURE__*/React.forwardRef(function (props, ref) {
import React, { forwardRef } from 'react';
var Input = /*#__PURE__*/forwardRef(function (props, ref) {
return /*#__PURE__*/React.createElement("input", _extends({}, props, {

@@ -6,0 +6,0 @@ className: cx('rbt-input-main', props.className),

@@ -1,8 +0,5 @@

import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
import _createClass from "@babel/runtime/helpers/createClass";
import _inherits from "@babel/runtime/helpers/inherits";
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import _extends from "@babel/runtime/helpers/extends";
var _excluded = ["children", "className", "emptyLabel", "innerRef", "inputHeight", "maxHeight", "scheduleUpdate", "style", "text"];

@@ -13,9 +10,5 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
import cx from 'classnames';
import PropTypes from 'prop-types';
import React, { Children } from 'react';
import React, { Children, useEffect, useRef } from 'react';
import { BaseMenuItem } from './MenuItem';

@@ -25,3 +18,3 @@ import { preventInputBlur } from '../utils';

var MenuDivider = function MenuDivider(props) {
var MenuDivider = function MenuDivider() {
return /*#__PURE__*/React.createElement("div", {

@@ -63,5 +56,3 @@ className: "dropdown-divider",

var defaultProps = {
'aria-label': 'menu-options',
emptyLabel: 'No matches found.',
maxHeight: '300px'
'aria-label': 'menu-options'
};

@@ -72,78 +63,57 @@

*/
var Menu = /*#__PURE__*/function (_React$Component) {
_inherits(Menu, _React$Component);
var Menu = function Menu(_ref) {
var children = _ref.children,
className = _ref.className,
_ref$emptyLabel = _ref.emptyLabel,
emptyLabel = _ref$emptyLabel === void 0 ? 'No matches found.' : _ref$emptyLabel,
innerRef = _ref.innerRef,
inputHeight = _ref.inputHeight,
_ref$maxHeight = _ref.maxHeight,
maxHeight = _ref$maxHeight === void 0 ? '300px' : _ref$maxHeight,
scheduleUpdate = _ref.scheduleUpdate,
style = _ref.style,
text = _ref.text,
props = _objectWithoutProperties(_ref, _excluded);
var _super = _createSuper(Menu);
function Menu() {
_classCallCheck(this, Menu);
return _super.apply(this, arguments);
}
_createClass(Menu, [{
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
var _this$props = this.props,
inputHeight = _this$props.inputHeight,
scheduleUpdate = _this$props.scheduleUpdate; // Update the menu position if the height of the input changes.
if (inputHeight !== prevProps.inputHeight) {
scheduleUpdate();
}
var isInitialMount = useRef(true);
useEffect(function () {
if (isInitialMount.current) {
isInitialMount.current = false;
return;
}
}, {
key: "render",
value: function render() {
var _this$props2 = this.props,
children = _this$props2.children,
className = _this$props2.className,
emptyLabel = _this$props2.emptyLabel,
id = _this$props2.id,
innerRef = _this$props2.innerRef,
maxHeight = _this$props2.maxHeight,
style = _this$props2.style,
text = _this$props2.text;
var contents = Children.count(children) === 0 ? /*#__PURE__*/React.createElement(BaseMenuItem, {
disabled: true,
role: "option"
}, emptyLabel) : children;
return (
/*#__PURE__*/
/* eslint-disable jsx-a11y/interactive-supports-focus */
React.createElement("div", {
"aria-label": this.props['aria-label'],
className: cx('rbt-menu', 'dropdown-menu', 'show', className),
id: id,
key: // Force a re-render if the text changes to ensure that menu
// positioning updates correctly.
text,
onMouseDown: // Prevent input from blurring when clicking on the menu scrollbar.
preventInputBlur,
ref: innerRef,
role: "listbox",
style: _objectSpread(_objectSpread({}, style), {}, {
display: 'block',
maxHeight: maxHeight,
overflow: 'auto'
})
}, contents)
/* eslint-enable jsx-a11y/interactive-supports-focus */
scheduleUpdate && scheduleUpdate();
}, [inputHeight, scheduleUpdate]);
var contents = Children.count(children) === 0 ? /*#__PURE__*/React.createElement(BaseMenuItem, {
disabled: true,
role: "option"
}, emptyLabel) : children;
return (
/*#__PURE__*/
);
}
}]);
/* eslint-disable jsx-a11y/interactive-supports-focus */
React.createElement("div", _extends({}, props, {
className: cx('rbt-menu', 'dropdown-menu', 'show', className),
key: // Force a re-render if the text changes to ensure that menu
// positioning updates correctly.
text,
onMouseDown: // Prevent input from blurring when clicking on the menu scrollbar.
preventInputBlur,
ref: innerRef,
role: "listbox",
style: _objectSpread(_objectSpread({}, style), {}, {
display: 'block',
maxHeight: maxHeight,
overflow: 'auto'
})
}), contents)
/* eslint-enable jsx-a11y/interactive-supports-focus */
return Menu;
}(React.Component);
);
};
_defineProperty(Menu, "propTypes", propTypes);
_defineProperty(Menu, "defaultProps", defaultProps);
_defineProperty(Menu, "Divider", MenuDivider);
_defineProperty(Menu, "Header", MenuHeader);
Menu.propTypes = propTypes;
Menu.defaultProps = defaultProps;
Menu.Divider = MenuDivider;
Menu.Header = MenuHeader;
export default Menu;

@@ -5,5 +5,5 @@ import _extends from "@babel/runtime/helpers/extends";

import cx from 'classnames';
import React from 'react';
import { withItem } from '../behaviors/item';
var BaseMenuItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
import React, { forwardRef } from 'react';
import { useItem } from '../behaviors/item';
export var BaseMenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
var active = _ref.active,

@@ -29,3 +29,4 @@ children = _ref.children,

});
export { BaseMenuItem };
export default withItem(BaseMenuItem);
export default function MenuItem(props) {
return /*#__PURE__*/React.createElement(BaseMenuItem, _extends({}, props, useItem(props)));
}

@@ -0,4 +1,4 @@

import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["styles"],
var _excluded = ["referenceElement"],
_excluded2 = ["ref"];

@@ -10,12 +10,17 @@

/* eslint-disable react/no-unused-prop-types */
import * as React from 'react';
import PropTypes from 'prop-types';
import React from 'react';
import { Popper } from 'react-popper';
import { values } from '../utils';
import { ALIGN } from '../constants';
// `Element` is not defined during server-side rendering, so shim it here.
import { noop } from '../utils';
export var Align; // `Element` is not defined during server-side rendering, so shim it here.
/* istanbul ignore next */
var SafeElement = typeof Element === 'undefined' ? function () {} : Element;
(function (Align) {
Align["JUSTIFY"] = "justify";
Align["LEFT"] = "left";
Align["RIGHT"] = "right";
})(Align || (Align = {}));
var SafeElement = typeof Element === 'undefined' ? noop : Element;
var propTypes = {

@@ -28,3 +33,3 @@ /**

*/
align: PropTypes.oneOf(values(ALIGN)),
align: PropTypes.oneOf(Object.values(Align)),
children: PropTypes.func.isRequired,

@@ -44,6 +49,7 @@

positionFixed: PropTypes.bool,
// @ts-ignore
referenceElement: PropTypes.instanceOf(SafeElement)
};
var defaultProps = {
align: ALIGN.JUSTIFY,
align: Align.JUSTIFY,
dropup: false,

@@ -55,19 +61,14 @@ flip: false,

function getModifiers(_ref) {
var align = _ref.align,
flip = _ref.flip;
function getModifiers(props) {
return {
computeStyles: {
enabled: true,
fn: function fn(_ref2) {
var styles = _ref2.styles,
data = _objectWithoutProperties(_ref2, _excluded);
fn: function fn(data) {
return _objectSpread(_objectSpread({}, data), {}, {
styles: _objectSpread(_objectSpread({}, styles), {}, {
styles: _objectSpread(_objectSpread({}, data.styles), {}, {
// Use the following condition instead of `align === 'justify'`
// since it allows the component to fall back to justifying the
// menu width if `align` is undefined.
width: align !== ALIGN.RIGHT && align !== ALIGN.LEFT ? // Set the popper width to match the target width.
data.offsets.reference.width : styles.width
width: props.align !== Align.RIGHT && props.align !== Align.LEFT ? // Set the popper width to match the target width.
"".concat(data.offsets.reference.width, "px") : data.styles.width
})

@@ -78,3 +79,3 @@ });

flip: {
enabled: flip
enabled: props.flip
},

@@ -85,30 +86,15 @@ preventOverflow: {

};
} // Flow expects a string literal value for `placement`.
}
var PLACEMENT = {
bottom: {
end: 'bottom-end',
start: 'bottom-start'
},
top: {
end: 'top-end',
start: 'top-start'
}
};
export function getPlacement(_ref3) {
var align = _ref3.align,
dropup = _ref3.dropup;
var x = align === ALIGN.RIGHT ? 'end' : 'start';
var y = dropup ? 'top' : 'bottom';
return PLACEMENT[y][x];
export function getPlacement(props) {
var x = props.align === Align.RIGHT ? 'end' : 'start';
var y = props.dropup ? 'top' : 'bottom';
return "".concat(y, "-").concat(x);
}
var Overlay = function Overlay(props) {
var children = props.children,
isMenuShown = props.isMenuShown,
positionFixed = props.positionFixed,
referenceElement = props.referenceElement;
var Overlay = function Overlay(_ref) {
var referenceElement = _ref.referenceElement,
props = _objectWithoutProperties(_ref, _excluded);
if (!isMenuShown) {
if (!props.isMenuShown) {
return null;

@@ -120,9 +106,9 @@ }

placement: getPlacement(props),
positionFixed: positionFixed,
positionFixed: props.positionFixed,
referenceElement: referenceElement
}, function (_ref4) {
var ref = _ref4.ref,
popperProps = _objectWithoutProperties(_ref4, _excluded2);
}, function (_ref2) {
var ref = _ref2.ref,
popperProps = _objectWithoutProperties(_ref2, _excluded2);
return children(_objectSpread(_objectSpread({}, popperProps), {}, {
return props.children(_objectSpread(_objectSpread({}, popperProps), {}, {
innerRef: ref,

@@ -129,0 +115,0 @@ inputHeight: referenceElement ? referenceElement.offsetHeight : 0

import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["active", "children", "className", "onRemove", "tabIndex"];
var _excluded = ["active", "children", "className", "onRemove", "tabIndex"],
_excluded2 = ["readOnly"],
_excluded3 = ["ref"];
import cx from 'classnames';
import React, { forwardRef } from 'react';
import ClearButton from './ClearButton';
import { withToken } from '../behaviors/token';
import { useToken } from '../behaviors/token';
import { isFunction } from '../utils';

@@ -51,2 +53,3 @@ var InteractiveToken = /*#__PURE__*/forwardRef(function (_ref, ref) {

};
/**

@@ -58,12 +61,15 @@ * Token

*/
var Token = function Token(_ref3) {
var readOnly = _ref3.readOnly,
props = _objectWithoutProperties(_ref3, _excluded2);
var _useToken = useToken(props),
ref = _useToken.ref,
tokenProps = _objectWithoutProperties(_useToken, _excluded3);
var Token = /*#__PURE__*/forwardRef(function (props, ref) {
var disabled = props.disabled,
onRemove = props.onRemove,
readOnly = props.readOnly;
return !disabled && !readOnly && isFunction(onRemove) ? /*#__PURE__*/React.createElement(InteractiveToken, _extends({}, props, {
return !props.disabled && !readOnly && isFunction(tokenProps.onRemove) ? /*#__PURE__*/React.createElement(InteractiveToken, _extends({}, props, tokenProps, {
ref: ref
})) : /*#__PURE__*/React.createElement(StaticToken, props);
});
export default withToken(Token);
};
export default Token;

@@ -11,4 +11,3 @@ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";

import _extends from "@babel/runtime/helpers/extends";
var _excluded = ["children", "onRootClose"],
_excluded2 = ["getInputProps"];
var _excluded = ["children", "onRootClose"];

@@ -85,27 +84,27 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }

var defaultProps = {
clearButton: false,
inputProps: {},
isInvalid: false,
isLoading: false,
isValid: false,
renderMenu: function renderMenu(results, menuProps, props) {
return /*#__PURE__*/React.createElement(TypeaheadMenu, _extends({}, menuProps, {
labelKey: props.labelKey,
options: results,
text: props.text
}));
},
renderToken: function renderToken(option, props, idx) {
return /*#__PURE__*/React.createElement(Token, {
disabled: props.disabled,
key: idx,
onRemove: props.onRemove,
option: option,
tabIndex: props.tabIndex
}, getOptionLabel(option, props.labelKey));
}
isLoading: false
};
var defaultRenderMenu = function defaultRenderMenu(results, menuProps, props) {
return /*#__PURE__*/React.createElement(TypeaheadMenu, _extends({}, menuProps, {
labelKey: props.labelKey,
options: results,
text: props.text
}));
};
var defaultRenderToken = function defaultRenderToken(option, props, idx) {
return /*#__PURE__*/React.createElement(Token, {
disabled: props.disabled,
key: idx,
onRemove: props.onRemove,
option: option,
tabIndex: props.tabIndex
}, getOptionLabel(option, props.labelKey));
};
var overlayPropKeys = ['align', 'dropup', 'flip', 'positionFixed'];
function getOverlayProps(props) {
return pick(props, ['align', 'dropup', 'flip', 'positionFixed']);
return pick(props, overlayPropKeys);
}

@@ -143,3 +142,3 @@

_defineProperty(_assertThisInitialized(_this), "_referenceElement", void 0);
_defineProperty(_assertThisInitialized(_this), "_referenceElement", null);

@@ -179,3 +178,3 @@ _defineProperty(_assertThisInitialized(_this), "referenceElementRef", function (referenceElement) {

}), selected.map(function (option, idx) {
return renderToken(option, _objectSpread(_objectSpread({}, commonProps), {}, {
return (renderToken || defaultRenderToken)(option, _objectSpread(_objectSpread({}, commonProps), {}, {
labelKey: labelKey,

@@ -196,3 +195,3 @@ onRemove: onRemove

renderMenuItemChildren = _this$props2.renderMenuItemChildren;
return renderMenu(results, _objectSpread(_objectSpread({}, menuProps), {}, {
return (renderMenu || defaultRenderMenu)(results, _objectSpread(_objectSpread({}, menuProps), {}, {
emptyLabel: emptyLabel,

@@ -222,6 +221,2 @@ id: id,

onClick: onClear,
onFocus: function onFocus(e) {
// Prevent the main input from auto-focusing again.
e.stopPropagation();
},
onMouseDown: preventInputBlur,

@@ -257,6 +252,3 @@ size: size

ref: instanceRef
}), function (_ref3) {
var getInputProps = _ref3.getInputProps,
props = _objectWithoutProperties(_ref3, _excluded2);
}), function (props) {
var hideMenu = props.hideMenu,

@@ -282,3 +274,3 @@ isMenuShown = props.isMenuShown,

tabIndex: -1
}, _this2._renderInput(_objectSpread(_objectSpread({}, getInputProps(_this2.props.inputProps)), {}, {
}, _this2._renderInput(_objectSpread(_objectSpread({}, props.getInputProps(_this2.props.inputProps)), {}, {
referenceElementRef: _this2.referenceElementRef

@@ -285,0 +277,0 @@ }), props), /*#__PURE__*/React.createElement(Overlay, _extends({}, getOverlayProps(_this2.props), {

@@ -25,3 +25,2 @@ import _extends from "@babel/runtime/helpers/extends";

import withClassNames from '../behaviors/classNames';
import { BACKSPACE } from '../constants';

@@ -46,3 +45,3 @@ var TypeaheadInputMulti = /*#__PURE__*/function (_React$Component) {

_defineProperty(_assertThisInitialized(_this), "_input", void 0);
_defineProperty(_assertThisInitialized(_this), "_input", null);

@@ -90,4 +89,4 @@ _defineProperty(_assertThisInitialized(_this), "getInputRef", function (input) {

switch (e.keyCode) {
case BACKSPACE:
switch (e.key) {
case 'Backspace':
if (e.currentTarget === _this._input && selected.length && !value) {

@@ -133,3 +132,2 @@ // Prevent browser from going back.

className: cx('rbt-input-multi', className),
disabled: props.disabled,
onClick: this._handleContainerClickOrFocus,

@@ -136,0 +134,0 @@ onFocus: this._handleContainerClickOrFocus,

import _extends from "@babel/runtime/helpers/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["labelKey", "newSelectionPrefix", "options", "paginationText", "renderMenuItemChildren", "text"];
import React, { Fragment } from 'react';
var _excluded = ["labelKey", "newSelectionPrefix", "options", "paginationText", "renderMenuItemChildren"];
import PropTypes from 'prop-types';
import React from 'react';
import Highlighter from './Highlighter';
import Menu from './Menu';
import MenuItem from './MenuItem';
import { getOptionLabel, getOptionProperty } from '../utils';
import { getOptionLabel, getOptionProperty, isString } from '../utils';
var propTypes = {

@@ -30,3 +30,3 @@ /**

paginationText: 'Display additional results...',
renderMenuItemChildren: function renderMenuItemChildren(option, props, idx) {
renderMenuItemChildren: function renderMenuItemChildren(option, props) {
return /*#__PURE__*/React.createElement(Highlighter, {

@@ -44,3 +44,2 @@ search: props.text

renderMenuItemChildren = props.renderMenuItemChildren,
text = props.text,
menuProps = _objectWithoutProperties(props, _excluded);

@@ -51,3 +50,3 @@

var menuItemProps = {
disabled: getOptionProperty(option, 'disabled'),
disabled: !!getOptionProperty(option, 'disabled'),
label: label,

@@ -58,3 +57,3 @@ option: option,

if (option.customOption) {
if (getOptionProperty(option, 'customOption')) {
return /*#__PURE__*/React.createElement(MenuItem, _extends({}, menuItemProps, {

@@ -65,12 +64,12 @@ className: "rbt-menu-custom-option",

}), newSelectionPrefix, /*#__PURE__*/React.createElement(Highlighter, {
search: text
search: menuProps.text
}, label));
}
if (option.paginationOption) {
return /*#__PURE__*/React.createElement(Fragment, {
key: "pagination-item"
}, /*#__PURE__*/React.createElement(Menu.Divider, null), /*#__PURE__*/React.createElement(MenuItem, _extends({}, menuItemProps, {
if (getOptionProperty(option, 'paginationOption')) {
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Menu.Divider, null), /*#__PURE__*/React.createElement(MenuItem, _extends({}, menuItemProps, {
className: "rbt-menu-pagination-option",
label: paginationText
label: // TODO: Fix how (aria-)labels are passed to `MenuItem`.
// `paginationText` can be a ReactNode.
isString(paginationText) ? paginationText : ''
}), paginationText));

@@ -84,9 +83,3 @@ }

return (
/*#__PURE__*/
// Explictly pass `text` so Flow doesn't complain...
React.createElement(Menu, _extends({}, menuProps, {
text: text
}), options.map(renderMenuItem))
);
return /*#__PURE__*/React.createElement(Menu, menuProps, options.map(renderMenuItem));
};

@@ -93,0 +86,0 @@

@@ -1,25 +0,2 @@

/**
* Common (non-printable) keycodes for `keydown` and `keyup` events. Note that
* `keypress` handles things differently and may not return the same values.
*/
export var BACKSPACE = 8;
export var TAB = 9;
export var RETURN = 13;
export var ESC = 27;
export var SPACE = 32;
export var LEFT = 37;
export var UP = 38;
export var RIGHT = 39;
export var DOWN = 40;
export var DEFAULT_LABELKEY = 'label';
export var ALIGN = {
JUSTIFY: 'justify',
LEFT: 'left',
RIGHT: 'right'
};
export var SIZE = {
LARGE: 'large',
LG: 'lg',
SM: 'sm',
SMALL: 'small'
};
/* eslint-disable import/prefer-default-export */
export var DEFAULT_LABELKEY = 'label';

@@ -24,5 +24,5 @@ import _extends from "@babel/runtime/helpers/extends";

import TypeaheadManager from './TypeaheadManager';
import { caseSensitiveType, checkPropType, defaultInputValueType, defaultSelectedType, deprecated, highlightOnlyResultType, ignoreDiacriticsType, isRequiredForA11y, labelKeyType, optionType, selectedType } from '../propTypes';
import { addCustomOption, defaultFilterBy, getOptionLabel, getStringLabelKey, getUpdatedActiveIndex, getTruncatedOptions, head, isShown, isString, noop, uniqueId, validateSelectedPropChange } from '../utils';
import { DEFAULT_LABELKEY, DOWN, ESC, RETURN, TAB, UP } from '../constants';
import { caseSensitiveType, checkPropType, defaultInputValueType, defaultSelectedType, highlightOnlyResultType, ignoreDiacriticsType, isRequiredForA11y, labelKeyType, optionType, selectedType } from '../propTypes';
import { addCustomOption, defaultFilterBy, getOptionLabel, getOptionProperty, getStringLabelKey, getUpdatedActiveIndex, getTruncatedOptions, isFunction, isShown, isString, noop, uniqueId, validateSelectedPropChange } from '../utils';
import { DEFAULT_LABELKEY } from '../constants';
var propTypes = {

@@ -171,8 +171,3 @@ /**

*/
selected: checkPropType(PropTypes.arrayOf(optionType), selectedType),
/**
* Allows selecting the hinted result by pressing enter.
*/
selectHintOnEnter: deprecated(PropTypes.bool, 'Use the `shouldSelect` prop on the `Hint` component to define which ' + 'keystrokes can select the hint.')
selected: checkPropType(PropTypes.arrayOf(optionType), selectedType)
};

@@ -212,3 +207,3 @@ var defaultProps = {

// Set the text if an initial selection is passed in.
text = getOptionLabel(head(selected), props.labelKey);
text = getOptionLabel(selected[0], props.labelKey);

@@ -223,4 +218,4 @@ if (selected.length > 1) {

activeIndex: -1,
activeItem: null,
initialItem: null,
activeItem: undefined,
initialItem: undefined,
isFocused: false,

@@ -247,3 +242,3 @@ selected: selected,

return {
return _objectSpread(_objectSpread({}, state), {}, {
activeIndex: activeIndex,

@@ -254,8 +249,8 @@ activeItem: activeItem,

shownResults: shownResults
};
});
}
export function toggleMenu(state, props) {
return state.showMenu ? hideMenu(state, props) : {
return state.showMenu ? hideMenu(state, props) : _objectSpread(_objectSpread({}, state), {}, {
showMenu: true
};
});
}

@@ -294,3 +289,3 @@ /**

_defineProperty(_assertThisInitialized(_this), "inputNode", void 0);
_defineProperty(_assertThisInitialized(_this), "inputNode", null);

@@ -339,3 +334,3 @@ _defineProperty(_assertThisInitialized(_this), "isMenuShown", false);

activeIndex: activeIndex,
activeItem: activeIndex === -1 ? null : state.activeItem
activeItem: activeIndex >= 0 ? state.activeItem : undefined
};

@@ -427,3 +422,3 @@ });

if (!_this.isMenuShown) {
if (e.keyCode === UP || e.keyCode === DOWN) {
if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
_this.setState({

@@ -439,13 +434,13 @@ showMenu: true

switch (e.keyCode) {
case UP:
case DOWN:
switch (e.key) {
case 'ArrowUp':
case 'ArrowDown':
// Prevent input cursor from going to the beginning when pressing up.
e.preventDefault();
_this._handleActiveIndexChange(getUpdatedActiveIndex(_this.state.activeIndex, e.keyCode, _this.items));
_this._handleActiveIndexChange(getUpdatedActiveIndex(_this.state.activeIndex, e.key, _this.items));
break;
case RETURN:
case 'Enter':
// Prevent form submission while menu is open.

@@ -456,4 +451,4 @@ e.preventDefault();

case ESC:
case TAB:
case 'Escape':
case 'Tab':
// ESC simply hides the menu. TAB will blur the input and move focus to

@@ -473,3 +468,3 @@ // the next item; hide the menu so it doesn't gain focus.

_defineProperty(_assertThisInitialized(_this), "_handleMenuItemSelect", function (option, e) {
if (option.paginationOption) {
if (getOptionProperty(option, 'paginationOption')) {
_this._handlePaginate(e);

@@ -572,3 +567,3 @@ } else {

this.setState({
text: selected.length ? getOptionLabel(head(selected), labelKey) : ''
text: selected.length ? getOptionLabel(selected[0], labelKey) : ''
});

@@ -581,8 +576,7 @@ }

value: function render() {
// Omit `onChange` so Flow doesn't complain.
var _this$props4 = this.props,
onChange = _this$props4.onChange,
otherProps = _objectWithoutProperties(_this$props4, _excluded);
props = _objectWithoutProperties(_this$props4, _excluded);
var mergedPropsAndState = _objectSpread(_objectSpread({}, otherProps), this.state);
var mergedPropsAndState = _objectSpread(_objectSpread({}, props), this.state);

@@ -601,3 +595,3 @@ var filterBy = mergedPropsAndState.filterBy,

if (this.isMenuShown) {
var cb = typeof filterBy === 'function' ? filterBy : defaultFilterBy;
var cb = isFunction(filterBy) ? filterBy : defaultFilterBy;
results = options.filter(function (option) {

@@ -604,0 +598,0 @@ return cb(option, mergedPropsAndState);

@@ -11,6 +11,5 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";

import { getHintText, getInputProps, getInputText, getIsOnlyResult, pick } from '../utils';
import { RETURN } from '../constants';
var inputPropKeys = ['activeIndex', 'disabled', 'id', 'inputRef', 'isFocused', 'isMenuShown', 'multiple', 'onBlur', 'onChange', 'onFocus', 'onKeyDown', 'placeholder'];
var propKeys = ['activeIndex', 'hideMenu', 'isMenuShown', 'labelKey', 'onClear', 'onHide', 'onRemove', 'results', 'selected', 'text', 'toggleMenu'];
var contextKeys = ['activeIndex', 'id', 'initialItem', 'inputNode', 'onActiveItemChange', 'onAdd', 'onInitialItemChange', 'onMenuItemClick', 'selectHintOnEnter', 'setItem'];
var contextKeys = ['activeIndex', 'id', 'initialItem', 'inputNode', 'onActiveItemChange', 'onAdd', 'onInitialItemChange', 'onMenuItemClick', 'setItem'];

@@ -31,3 +30,3 @@ var TypeaheadManager = function TypeaheadManager(props) {

if (!(allowNew || results.length)) {
onInitialItemChange(null);
onInitialItemChange();
}

@@ -42,4 +41,4 @@ });

var handleKeyDown = function handleKeyDown(e) {
switch (e.keyCode) {
case RETURN:
switch (e.key) {
case 'Enter':
if (initialItem && getIsOnlyResult(props)) {

@@ -46,0 +45,0 @@ onAdd(initialItem);

// Components
import _AsyncTypeahead from './components/AsyncTypeahead';
export { _AsyncTypeahead as AsyncTypeahead };
import _ClearButton from './components/ClearButton';
export { _ClearButton as ClearButton };
import _Highlighter from './components/Highlighter';
export { _Highlighter as Highlighter };
import _Hint from './components/Hint';
export { _Hint as Hint };
export { useHint } from './components/Hint';
import _Input from './components/Input';
export { _Input as Input };
import _Loader from './components/Loader';
export { _Loader as Loader };
import _Menu from './components/Menu';
export { _Menu as Menu };
import _MenuItem from './components/MenuItem';
export { _MenuItem as MenuItem };
import _Token from './components/Token';
export { _Token as Token };
import _Typeahead from './components/Typeahead';
export { _Typeahead as Typeahead };
import _TypeaheadInputMulti from './components/TypeaheadInputMulti';
export { _TypeaheadInputMulti as TypeaheadInputMulti };
import _TypeaheadInputSingle from './components/TypeaheadInputSingle';
export { _TypeaheadInputSingle as TypeaheadInputSingle };
import _TypeaheadMenu from './components/TypeaheadMenu';
export { _TypeaheadMenu as TypeaheadMenu }; // HOCs + Hooks
export { default as AsyncTypeahead } from './components/AsyncTypeahead';
export { default as ClearButton } from './components/ClearButton';
export { default as Highlighter } from './components/Highlighter';
export { default as Hint, useHint } from './components/Hint';
export { default as Input } from './components/Input';
export { default as Loader } from './components/Loader';
export { default as Menu } from './components/Menu';
export { default as MenuItem } from './components/MenuItem';
export { default as Token } from './components/Token';
export { default as Typeahead } from './components/Typeahead';
export { default as TypeaheadInputMulti } from './components/TypeaheadInputMulti';
export { default as TypeaheadInputSingle } from './components/TypeaheadInputSingle';
export { default as TypeaheadMenu } from './components/TypeaheadMenu'; // HOCs + Hooks
import _asyncContainer from './behaviors/async';
export { _asyncContainer as asyncContainer };
export { useAsync, withAsync } from './behaviors/async';
import _menuItemContainer from './behaviors/item';
export { _menuItemContainer as menuItemContainer };
export { useItem, withItem } from './behaviors/item';
import _tokenContainer from './behaviors/token';
export { _tokenContainer as tokenContainer };
export { useToken, withToken } from './behaviors/token';
export * from './behaviors/async';
export * from './behaviors/item';
export * from './behaviors/token';
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import PropTypes from 'prop-types';
import { isFunction, values, warn } from './utils';
import { SIZE } from './constants';
import { isFunction, warn } from './utils';
import { Size } from './types';
var INPUT_PROPS_BLACKLIST = [{

@@ -18,7 +18,7 @@ alt: 'onBlur',

}];
export var sizeType = PropTypes.oneOf(values(SIZE));
export var sizeType = PropTypes.oneOf(Object.values(Size));
/**
* Allows additional warnings or messaging related to prop validation.
*/
export function checkPropType(validator, callback) {

@@ -30,3 +30,3 @@ return function (props, propName, componentName) {

}
export function caseSensitiveType(props, propName, componentName) {
export function caseSensitiveType(props) {
var caseSensitive = props.caseSensitive,

@@ -45,3 +45,3 @@ filterBy = props.filterBy;

}
export function defaultInputValueType(props, propName, componentName) {
export function defaultInputValueType(props) {
var defaultInputValue = props.defaultInputValue,

@@ -54,3 +54,3 @@ defaultSelected = props.defaultSelected,

}
export function defaultSelectedType(props, propName, componentName) {
export function defaultSelectedType(props) {
var defaultSelected = props.defaultSelected,

@@ -60,8 +60,8 @@ multiple = props.multiple;

}
export function highlightOnlyResultType(props, propName, componentName) {
var allowNew = props.allowNew,
highlightOnlyResult = props.highlightOnlyResult;
export function highlightOnlyResultType(_ref) {
var allowNew = _ref.allowNew,
highlightOnlyResult = _ref.highlightOnlyResult;
warn(!(highlightOnlyResult && allowNew), '`highlightOnlyResult` will not work with `allowNew`.');
}
export function ignoreDiacriticsType(props, propName, componentName) {
export function ignoreDiacriticsType(props) {
var filterBy = props.filterBy,

@@ -71,4 +71,4 @@ ignoreDiacritics = props.ignoreDiacritics;

}
export function inputPropsType(props, propName, componentName) {
var inputProps = props.inputProps;
export function inputPropsType(_ref2) {
var inputProps = _ref2.inputProps;

@@ -80,5 +80,5 @@ if (!(inputProps && Object.prototype.toString.call(inputProps) === '[object Object]')) {

INPUT_PROPS_BLACKLIST.forEach(function (_ref) {
var alt = _ref.alt,
prop = _ref.prop;
INPUT_PROPS_BLACKLIST.forEach(function (_ref3) {
var alt = _ref3.alt,
prop = _ref3.prop;
var msg = alt ? " Use the top-level `".concat(alt, "` prop instead.") : null;

@@ -91,14 +91,14 @@ warn(!inputProps[prop], "The `".concat(prop, "` property of `inputProps` will be ignored.").concat(msg));

}
export function labelKeyType(props, propName, componentName) {
var allowNew = props.allowNew,
labelKey = props.labelKey;
export function labelKeyType(_ref4) {
var allowNew = _ref4.allowNew,
labelKey = _ref4.labelKey;
warn(!(isFunction(labelKey) && allowNew), '`labelKey` must be a string when `allowNew={true}`.');
}
export var optionType = PropTypes.oneOfType([PropTypes.object, PropTypes.string]);
export function selectedType(props, propName, componentName) {
var multiple = props.multiple,
onChange = props.onChange,
selected = props.selected;
export function selectedType(_ref5) {
var multiple = _ref5.multiple,
onChange = _ref5.onChange,
selected = _ref5.selected;
warn(multiple || !selected || selected.length <= 1, 'You are passing multiple options to the `selected` prop of a Typeahead ' + 'in single-select mode. This may lead to unexpected behaviors or errors.');
warn(!selected || selected && isFunction(onChange), 'You provided a `selected` prop without an `onChange` handler. If you ' + 'want the typeahead to be uncontrolled, use `defaultSelected`. ' + 'Otherwise, set `onChange`.');
}
import getOptionLabel from './getOptionLabel';
import { isFunction } from './nodash';

@@ -14,3 +15,3 @@ function addCustomOption(results, props) {

if (typeof allowNew === 'function') {
if (isFunction(allowNew)) {
return allowNew(results, props);

@@ -17,0 +18,0 @@ } // By default, don't add the custom option if there is an exact text match

@@ -0,3 +1,4 @@

// eslint-disable-next-line @typescript-eslint/no-explicit-any
export default function getDisplayName(Component) {
return Component.displayName || Component.name || 'Component';
}
import getMatchBounds from './getMatchBounds';
import getOptionLabel from './getOptionLabel';
import hasOwnProperty from './hasOwnProperty';
import { isString } from './nodash';
function getHintText(props) {
var activeIndex = props.activeIndex,
initialItem = props.initialItem,
isFocused = props.isFocused,
isMenuShown = props.isMenuShown,
labelKey = props.labelKey,
multiple = props.multiple,
selected = props.selected,
text = props.text; // Don't display a hint under the following conditions:
function getHintText(_ref) {
var activeIndex = _ref.activeIndex,
initialItem = _ref.initialItem,
isFocused = _ref.isFocused,
isMenuShown = _ref.isMenuShown,
labelKey = _ref.labelKey,
multiple = _ref.multiple,
selected = _ref.selected,
text = _ref.text;
// Don't display a hint under the following conditions:
if ( // No text entered.

@@ -19,3 +22,3 @@ !text || // The input is not focused.

!initialItem || // The initial item is a custom option.
initialItem.customOption || // One of the menu items is active.
!isString(initialItem) && hasOwnProperty(initialItem, 'customOption') || // One of the menu items is active.
activeIndex > -1 || // There's already a selection in single-select mode.

@@ -22,0 +25,0 @@ !!selected.length && !multiple) {

import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["activeIndex", "id", "isFocused", "isMenuShown", "multiple", "onFocus", "placeholder"],
_excluded2 = ["className"];
var _excluded = ["activeIndex", "id", "isFocused", "isMenuShown", "multiple", "onFocus", "placeholder"];

@@ -12,2 +11,4 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }

import getMenuItemId from './getMenuItemId';
import hasOwnProperty from './hasOwnProperty';
import { isFunction } from './nodash';

@@ -27,8 +28,8 @@ var getInputProps = function getInputProps(_ref) {

var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
className = _ref2.className,
inputProps = _objectWithoutProperties(_ref2, _excluded2);
var inputProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var className = hasOwnProperty(inputProps, 'className') ? inputProps.className : undefined;
var _onClick = hasOwnProperty(inputProps, 'onClick') && inputProps.onClick;
var props = _objectSpread(_objectSpread(_objectSpread({
/* eslint-disable sort-keys */
// These props can be overridden by values in `inputProps`.

@@ -48,3 +49,3 @@ autoComplete: 'off',

onFocus && onFocus(e);
inputProps.onClick && inputProps.onClick(e);
isFunction(_onClick) && _onClick(e);
},

@@ -55,4 +56,2 @@ onFocus: onFocus,

role: 'combobox'
/* eslint-enable sort-keys */
});

@@ -59,0 +58,0 @@

import getOptionLabel from './getOptionLabel';
import { head } from './nodash';

@@ -16,6 +15,4 @@ function getInputText(props) {

var selectedItem = !multiple && !!selected.length && head(selected);
if (selectedItem) {
return getOptionLabel(selectedItem, labelKey);
if (!multiple && selected.length && selected[0]) {
return getOptionLabel(selected[0], labelKey);
}

@@ -22,0 +19,0 @@

import getOptionProperty from './getOptionProperty';
import { head } from './nodash';

@@ -13,5 +12,5 @@ function getIsOnlyResult(props) {

return results.length === 1 && !getOptionProperty(head(results), 'disabled');
return results.length === 1 && !getOptionProperty(results[0], 'disabled');
}
export default getIsOnlyResult;

@@ -1,3 +0,5 @@

export default function getMenuItemId(id, position) {
return "".concat(id || '', "-item-").concat(position);
export default function getMenuItemId() {
var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var position = arguments.length > 1 ? arguments[1] : undefined;
return "".concat(id, "-item-").concat(position);
}
import invariant from 'invariant';
import getStringLabelKey from './getStringLabelKey';
import hasOwnProperty from './hasOwnProperty';
import { isFunction, isString } from './nodash';

@@ -12,3 +13,3 @@

// Handle internally created options first.
if (!isString(option) && (option.paginationOption || option.customOption)) {
if (!isString(option) && (hasOwnProperty(option, 'paginationOption') || hasOwnProperty(option, 'customOption'))) {
return option[getStringLabelKey(labelKey)];

@@ -15,0 +16,0 @@ }

@@ -1,8 +0,12 @@

import { DOWN, UP } from '../constants';
function skipDisabledOptions(currentIndex, keyCode, items) {
import { isString } from './nodash';
import hasOwnProperty from './hasOwnProperty';
export function isDisabledOption(index, items) {
var option = items[index];
return !!option && !isString(option) && hasOwnProperty(option, 'disabled');
}
export function skipDisabledOptions(currentIndex, key, items) {
var newIndex = currentIndex;
while (items[newIndex] && items[newIndex].disabled) {
newIndex += keyCode === UP ? -1 : 1;
while (isDisabledOption(newIndex, items)) {
newIndex += key === 'ArrowUp' ? -1 : 1;
}

@@ -12,9 +16,8 @@

}
export default function getUpdatedActiveIndex(currentIndex, keyCode, items) {
export default function getUpdatedActiveIndex(currentIndex, key, items) {
var newIndex = currentIndex; // Increment or decrement index based on user keystroke.
newIndex += keyCode === UP ? -1 : 1; // Skip over any disabled options.
newIndex += key === 'ArrowUp' ? -1 : 1; // Skip over any disabled options.
newIndex = skipDisabledOptions(newIndex, keyCode, items); // If we've reached the end, go back to the beginning or vice-versa.
newIndex = skipDisabledOptions(newIndex, key, items); // If we've reached the end, go back to the beginning or vice-versa.

@@ -26,3 +29,3 @@ if (newIndex === items.length) {

newIndex = skipDisabledOptions(newIndex, keyCode, items);
newIndex = skipDisabledOptions(newIndex, key, items);
}

@@ -29,0 +32,0 @@

@@ -1,43 +0,24 @@

import _addCustomOption from './addCustomOption';
export { _addCustomOption as addCustomOption };
import _defaultFilterBy from './defaultFilterBy';
export { _defaultFilterBy as defaultFilterBy };
import _getDisplayName from './getDisplayName';
export { _getDisplayName as getDisplayName };
import _getHintText from './getHintText';
export { _getHintText as getHintText };
import _getInputProps from './getInputProps';
export { _getInputProps as getInputProps };
import _getInputText from './getInputText';
export { _getInputText as getInputText };
import _getIsOnlyResult from './getIsOnlyResult';
export { _getIsOnlyResult as getIsOnlyResult };
import _getMatchBounds from './getMatchBounds';
export { _getMatchBounds as getMatchBounds };
export { escapeStringRegexp } from './getMatchBounds';
import _getMenuItemId from './getMenuItemId';
export { _getMenuItemId as getMenuItemId };
import _getOptionLabel from './getOptionLabel';
export { _getOptionLabel as getOptionLabel };
import _getOptionProperty from './getOptionProperty';
export { _getOptionProperty as getOptionProperty };
import _getStringLabelKey from './getStringLabelKey';
export { _getStringLabelKey as getStringLabelKey };
import _getTruncatedOptions from './getTruncatedOptions';
export { _getTruncatedOptions as getTruncatedOptions };
import _getUpdatedActiveIndex from './getUpdatedActiveIndex';
export { _getUpdatedActiveIndex as getUpdatedActiveIndex };
import _isSelectable from './isSelectable';
export { _isSelectable as isSelectable };
import _isShown from './isShown';
export { _isShown as isShown };
export { default as addCustomOption } from './addCustomOption';
export { default as defaultFilterBy } from './defaultFilterBy';
export { default as getDisplayName } from './getDisplayName';
export { default as getHintText } from './getHintText';
export { default as getInputProps } from './getInputProps';
export { default as getInputText } from './getInputText';
export { default as getIsOnlyResult } from './getIsOnlyResult';
export { default as getMatchBounds } from './getMatchBounds';
export * from './getMatchBounds';
export { default as getMenuItemId } from './getMenuItemId';
export { default as getOptionLabel } from './getOptionLabel';
export { default as getOptionProperty } from './getOptionProperty';
export { default as getStringLabelKey } from './getStringLabelKey';
export { default as getTruncatedOptions } from './getTruncatedOptions';
export { default as getUpdatedActiveIndex } from './getUpdatedActiveIndex';
export { default as hasOwnProperty } from './hasOwnProperty';
export { default as isSelectable } from './isSelectable';
export { default as isShown } from './isShown';
export * from './nodash';
import _preventInputBlur from './preventInputBlur';
export { _preventInputBlur as preventInputBlur };
export { default as preventInputBlur } from './preventInputBlur';
export * from './size';
import _stripDiacritics from './stripDiacritics';
export { _stripDiacritics as stripDiacritics };
import _validateSelectedPropChange from './validateSelectedPropChange';
export { _validateSelectedPropChange as validateSelectedPropChange };
import _warn from './warn';
export { _warn as warn };
export { default as stripDiacritics } from './stripDiacritics';
export { default as validateSelectedPropChange } from './validateSelectedPropChange';
export { default as warn } from './warn';

@@ -1,7 +0,8 @@

export default function isShown(props) {
var open = props.open,
minLength = props.minLength,
showMenu = props.showMenu,
text = props.text; // If menu visibility is controlled via props, that value takes precedence.
export default function isShown(_ref) {
var open = _ref.open,
minLength = _ref.minLength,
showMenu = _ref.showMenu,
text = _ref.text;
// If menu visibility is controlled via props, that value takes precedence.
if (open || open === false) {

@@ -8,0 +9,0 @@ return open;

@@ -1,5 +0,3 @@

var idCounter = 0;
export function head(arr) {
return Array.isArray(arr) && arr.length ? arr[0] : undefined;
}
var idCounter = 0; // eslint-disable-next-line @typescript-eslint/ban-types
export function isFunction(value) {

@@ -10,10 +8,10 @@ return typeof value === 'function';

return typeof value === 'string';
}
} // eslint-disable-next-line @typescript-eslint/no-empty-function
export function noop() {}
export function pick(obj, keys) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var result = {};
keys.forEach(function (k) {
if (Object.prototype.hasOwnProperty.call(obj, k)) {
result[k] = obj[k];
}
keys.forEach(function (key) {
result[key] = obj[key];
});

@@ -25,15 +23,2 @@ return result;

return (prefix == null ? '' : String(prefix)) + idCounter;
} // Export for testing purposes.
export function valuesPolyfill(obj) {
return Object.keys(obj).reduce(function (accum, key) {
if (Object.prototype.propertyIsEnumerable.call(obj, key)) {
accum.push(obj[key]);
}
return accum;
}, []);
}
export function values(obj) {
return isFunction(Object.values) ? Object.values(obj) : valuesPolyfill(obj);
}

@@ -16,4 +16,3 @@ /**

*/
/* eslint-disable max-len */
// prettier-ignore
var map = [{

@@ -277,23 +276,18 @@ base: 'A',

letters: "z\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763"
}];
/* eslint-enable max-len */
}].reduce(function (acc, _ref) {
var base = _ref.base,
letters = _ref.letters;
letters.split('').forEach(function (letter) {
acc[letter] = base;
});
return acc;
}, {}); // "what?" version ... http://jsperf.com/diacritics/12
var diacriticsMap = {};
for (var ii = 0; ii < map.length; ii++) {
var letters = map[ii].letters;
for (var jj = 0; jj < letters.length; jj++) {
diacriticsMap[letters[jj]] = map[ii].base;
}
} // "what?" version ... http://jsperf.com/diacritics/12
export default function stripDiacritics(str) {
return str.replace(/[\u0300-\u036F]/g, '') // Remove combining diacritics
return str.normalize('NFD').replace(/[\u0300-\u036F]/g, '') // Remove combining diacritics
/* eslint-disable-next-line no-control-regex */
.replace(/[^\u0000-\u007E]/g, function (a) {
return diacriticsMap[a] || a;
return map[a] || a;
});
}

@@ -0,1 +1,2 @@

// @flow
import warning from 'warning';

@@ -2,0 +3,0 @@ var warned = {};

@@ -12,3 +12,2 @@ "use strict";

exports.withAsync = withAsync;
exports["default"] = asyncContainer;

@@ -31,4 +30,2 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _Typeahead = _interopRequireDefault(require("../core/Typeahead"));
var _propTypes2 = require("../propTypes");

@@ -91,10 +88,2 @@

};
var defaultProps = {
delay: 200,
minLength: 2,
options: [],
promptText: 'Type to search...',
searchText: 'Searching...',
useCache: true
};

@@ -111,15 +100,21 @@ /**

var allowNew = props.allowNew,
delay = props.delay,
_props$delay = props.delay,
delay = _props$delay === void 0 ? 200 : _props$delay,
emptyLabel = props.emptyLabel,
isLoading = props.isLoading,
minLength = props.minLength,
_props$minLength = props.minLength,
minLength = _props$minLength === void 0 ? 2 : _props$minLength,
onInputChange = props.onInputChange,
onSearch = props.onSearch,
options = props.options,
promptText = props.promptText,
searchText = props.searchText,
useCache = props.useCache,
_props$options = props.options,
options = _props$options === void 0 ? [] : _props$options,
_props$promptText = props.promptText,
promptText = _props$promptText === void 0 ? 'Type to search...' : _props$promptText,
_props$searchText = props.searchText,
searchText = _props$searchText === void 0 ? 'Searching...' : _props$searchText,
_props$useCache = props.useCache,
useCache = _props$useCache === void 0 ? true : _props$useCache,
otherProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
var cacheRef = (0, _react.useRef)({});
var handleSearchDebouncedRef = (0, _react.useRef)();
var handleSearchDebouncedRef = (0, _react.useRef)(null);
var queryRef = (0, _react.useRef)(props.defaultInputValue || '');

@@ -191,20 +186,10 @@ var forceUpdate = (0, _useForceUpdate["default"])();

var AsyncTypeahead = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, useAsync(props), {
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, props, useAsync(props), {
ref: ref
}));
});
AsyncTypeahead.displayName = "withAsync(".concat((0, _utils.getDisplayName)(Component), ")"); // $FlowFixMe
AsyncTypeahead.displayName = "withAsync(".concat((0, _utils.getDisplayName)(Component), ")"); // @ts-ignore
AsyncTypeahead.propTypes = propTypes; // $FlowFixMe
AsyncTypeahead.defaultProps = defaultProps;
AsyncTypeahead.propTypes = propTypes;
return AsyncTypeahead;
}
function asyncContainer(Component) {
/* istanbul ignore next */
(0, _utils.warn)(false, 'The `asyncContainer` export is deprecated; use `withAsync` instead.');
/* istanbul ignore next */
return withAsync(Component);
}

@@ -14,14 +14,2 @@ "use strict";

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _classnames = _interopRequireDefault(require("classnames"));

@@ -35,43 +23,20 @@

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
function withClassNames(Component) {
// Use a class instead of function component to support refs.
var WrappedComponent = function WrappedComponent(_ref) {
var className = _ref.className,
isInvalid = _ref.isInvalid,
isValid = _ref.isValid,
size = _ref.size,
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, props, {
className: (0, _classnames["default"])('form-control', 'rbt-input', {
'form-control-lg': (0, _utils.isSizeLarge)(size),
'form-control-sm': (0, _utils.isSizeSmall)(size),
'is-invalid': isInvalid,
'is-valid': isValid
}, className)
}));
};
/* eslint-disable-next-line react/prefer-stateless-function */
var WrappedComponent = /*#__PURE__*/function (_React$Component) {
(0, _inherits2["default"])(WrappedComponent, _React$Component);
var _super = _createSuper(WrappedComponent);
function WrappedComponent() {
(0, _classCallCheck2["default"])(this, WrappedComponent);
return _super.apply(this, arguments);
}
(0, _createClass2["default"])(WrappedComponent, [{
key: "render",
value: function render() {
var _this$props = this.props,
className = _this$props.className,
isInvalid = _this$props.isInvalid,
isValid = _this$props.isValid,
size = _this$props.size,
props = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, props, {
className: (0, _classnames["default"])('form-control', 'rbt-input', {
'form-control-lg': (0, _utils.isSizeLarge)(size),
'form-control-sm': (0, _utils.isSizeSmall)(size),
'is-invalid': isInvalid,
'is-valid': isValid
}, className)
}));
}
}]);
return WrappedComponent;
}(_react["default"].Component);
(0, _defineProperty2["default"])(WrappedComponent, "displayName", "withClassNames(".concat((0, _utils.getDisplayName)(Component), ")"));
WrappedComponent.displayName = "withClassNames(".concat((0, _utils.getDisplayName)(Component), ")");
return WrappedComponent;

@@ -78,0 +43,0 @@ }

@@ -10,14 +10,12 @@ "use strict";

});
exports["default"] = menuItemContainer;
exports.withItem = exports.useItem = void 0;
exports.useItem = useItem;
exports.withItem = withItem;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _scrollIntoViewIfNeeded = _interopRequireDefault(require("scroll-into-view-if-needed"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _scrollIntoViewIfNeeded = _interopRequireDefault(require("scroll-into-view-if-needed"));

@@ -30,4 +28,2 @@ var _Context = require("../core/Context");

var _excluded = ["label", "onClick", "option", "position"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

@@ -37,6 +33,2 @@

function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var propTypes = {

@@ -47,8 +39,7 @@ option: _propTypes2.optionType.isRequired,

var useItem = function useItem(_ref) {
function useItem(_ref) {
var label = _ref.label,
onClick = _ref.onClick,
option = _ref.option,
position = _ref.position,
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
position = _ref.position;

@@ -77,3 +68,3 @@ var _useTypeaheadContext = (0, _Context.useTypeaheadContext)(),

block: 'nearest',
boundary: node.parentNode,
boundary: node === null || node === void 0 ? void 0 : node.parentNode,
inline: 'nearest',

@@ -91,3 +82,3 @@ scrollMode: 'if-needed'

setItem(option, position);
return _objectSpread(_objectSpread({}, props), {}, {
return {
active: active,

@@ -101,27 +92,15 @@ 'aria-label': label,

role: 'option'
});
};
};
}
/* istanbul ignore next */
exports.useItem = useItem;
var withItem = function withItem(Component) {
var displayName = "withItem(".concat((0, _utils.getDisplayName)(Component), ")");
function withItem(Component) {
var WrappedMenuItem = function WrappedMenuItem(props) {
return /*#__PURE__*/_react["default"].createElement(Component, useItem(props));
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, props, useItem(props)));
};
WrappedMenuItem.displayName = displayName;
WrappedMenuItem.displayName = "withItem(".concat((0, _utils.getDisplayName)(Component), ")");
WrappedMenuItem.propTypes = propTypes;
return WrappedMenuItem;
};
exports.withItem = withItem;
function menuItemContainer(Component) {
/* istanbul ignore next */
(0, _utils.warn)(false, 'The `menuItemContainer` export is deprecated; use `withItem` instead.');
/* istanbul ignore next */
return withItem(Component);
}

@@ -10,5 +10,7 @@ "use strict";

});
exports["default"] = tokenContainer;
exports.withToken = exports.useToken = void 0;
exports.useToken = useToken;
exports.withToken = withToken;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));

@@ -28,4 +30,2 @@

var _constants = require("../constants");
var _propTypes2 = require("../propTypes");

@@ -51,3 +51,3 @@

var useToken = function useToken(_ref) {
function useToken(_ref) {
var onBlur = _ref.onBlur,

@@ -70,18 +70,18 @@ onClick = _ref.onClick,

var handleActiveChange = function handleActiveChange(e, isActive, callback) {
var handleBlur = function handleBlur(e) {
e.stopPropagation();
setActive(isActive);
typeof callback === 'function' && callback(e);
setActive(false);
onBlur && onBlur(e);
};
var handleBlur = function handleBlur(e) {
handleActiveChange(e, false, onBlur);
};
var handleClick = function handleClick(e) {
handleActiveChange(e, true, onClick);
e.stopPropagation();
setActive(true);
onClick && onClick(e);
};
var handleFocus = function handleFocus(e) {
handleActiveChange(e, true, onFocus);
e.stopPropagation();
setActive(true);
onFocus && onFocus(e);
};

@@ -94,4 +94,4 @@

var handleKeyDown = function handleKeyDown(e) {
switch (e.keyCode) {
case _constants.BACKSPACE:
switch (e.key) {
case 'Backspace':
if (active) {

@@ -114,3 +114,3 @@ // Prevent backspace keypress from triggering the browser "back"

}));
return _objectSpread(_objectSpread({}, props), {}, {
return {
active: active,

@@ -123,12 +123,12 @@ onBlur: handleBlur,

ref: attachRef
});
};
};
}
/* istanbul ignore next */
exports.useToken = useToken;
var withToken = function withToken(Component) {
function withToken(Component) {
var displayName = "withToken(".concat((0, _utils.getDisplayName)(Component), ")");
var WrappedToken = function WrappedToken(props) {
return /*#__PURE__*/_react["default"].createElement(Component, useToken(props));
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, props, useToken(props)));
};

@@ -139,12 +139,2 @@

return WrappedToken;
};
exports.withToken = withToken;
function tokenContainer(Component) {
/* istanbul ignore next */
(0, _utils.warn)(false, 'The `tokenContainer` export is deprecated; use `withToken` instead.');
/* istanbul ignore next */
return withToken(Component);
}

@@ -16,6 +16,6 @@ "use strict";

var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _utils = require("../utils");

@@ -25,4 +25,2 @@

var _constants = require("../constants");
var _excluded = ["className", "label", "onClick", "onKeyDown", "size"];

@@ -65,3 +63,3 @@ var propTypes = {

// Prevent browser from navigating back.
if (e.keyCode === _constants.BACKSPACE) {
if (e.key === 'Backspace') {
e.preventDefault();

@@ -68,0 +66,0 @@ }

@@ -25,4 +25,2 @@ "use strict";

var _constants = require("../constants");
var _excluded = ["className"];

@@ -50,3 +48,3 @@

return ['Top', 'Right', 'Bottom', 'Left'].map(function (dir) {
return styles[attr + dir + subattr];
return styles["".concat(attr).concat(dir).concat(subattr)];
}).join(' ');

@@ -73,8 +71,8 @@ }

function defaultShouldSelect(e, state) {
function defaultShouldSelect(e, shouldSelect) {
var shouldSelectHint = false;
var currentTarget = e.currentTarget,
keyCode = e.keyCode;
key = e.key;
if (keyCode === _constants.RIGHT) {
if (key === 'ArrowRight') {
// For selectable input types ("text", "search"), only select the hint if

@@ -86,3 +84,3 @@ // it's at the end of the input value. For non-selectable types ("email",

if (keyCode === _constants.TAB) {
if (key === 'Tab') {
// Prevent input from blurring on TAB.

@@ -93,7 +91,3 @@ e.preventDefault();

if (keyCode === _constants.RETURN) {
shouldSelectHint = !!state.selectHintOnEnter;
}
return typeof state.shouldSelect === 'function' ? state.shouldSelect(shouldSelectHint, e) : shouldSelectHint;
return typeof shouldSelect === 'function' ? shouldSelect(shouldSelectHint, e) : shouldSelectHint;
}

@@ -110,4 +104,3 @@

inputNode = _useTypeaheadContext.inputNode,
onAdd = _useTypeaheadContext.onAdd,
selectHintOnEnter = _useTypeaheadContext.selectHintOnEnter;
onAdd = _useTypeaheadContext.onAdd;

@@ -117,6 +110,3 @@ var hintRef = (0, _react.useRef)(null);

var onKeyDown = function onKeyDown(e) {
if (hintText && initialItem && defaultShouldSelect(e, {
selectHintOnEnter: selectHintOnEnter,
shouldSelect: shouldSelect
})) {
if (hintText && initialItem && defaultShouldSelect(e, shouldSelect)) {
onAdd(initialItem);

@@ -123,0 +113,0 @@ }

@@ -5,2 +5,4 @@ "use strict";

var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -15,5 +17,9 @@ value: true

var _react = _interopRequireDefault(require("react"));
var _react = _interopRequireWildcard(require("react"));
var Input = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var Input = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
return /*#__PURE__*/_react["default"].createElement("input", (0, _extends2["default"])({}, props, {

@@ -24,4 +30,3 @@ className: (0, _classnames["default"])('rbt-input-main', props.className),

});
var _default = Input;
exports["default"] = _default;

@@ -12,14 +12,6 @@ "use strict";

var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

@@ -39,2 +31,4 @@

var _excluded = ["children", "className", "emptyLabel", "innerRef", "inputHeight", "maxHeight", "scheduleUpdate", "style", "text"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

@@ -48,7 +42,3 @@

function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var MenuDivider = function MenuDivider(props) {
var MenuDivider = function MenuDivider() {
return /*#__PURE__*/_react["default"].createElement("div", {

@@ -90,5 +80,3 @@ className: "dropdown-divider",

var defaultProps = {
'aria-label': 'menu-options',
emptyLabel: 'No matches found.',
maxHeight: '300px'
'aria-label': 'menu-options'
};

@@ -99,73 +87,57 @@

*/
var Menu = /*#__PURE__*/function (_React$Component) {
(0, _inherits2["default"])(Menu, _React$Component);
var Menu = function Menu(_ref) {
var children = _ref.children,
className = _ref.className,
_ref$emptyLabel = _ref.emptyLabel,
emptyLabel = _ref$emptyLabel === void 0 ? 'No matches found.' : _ref$emptyLabel,
innerRef = _ref.innerRef,
inputHeight = _ref.inputHeight,
_ref$maxHeight = _ref.maxHeight,
maxHeight = _ref$maxHeight === void 0 ? '300px' : _ref$maxHeight,
scheduleUpdate = _ref.scheduleUpdate,
style = _ref.style,
text = _ref.text,
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
var isInitialMount = (0, _react.useRef)(true);
(0, _react.useEffect)(function () {
if (isInitialMount.current) {
isInitialMount.current = false;
return;
}
var _super = _createSuper(Menu);
scheduleUpdate && scheduleUpdate();
}, [inputHeight, scheduleUpdate]);
var contents = _react.Children.count(children) === 0 ? /*#__PURE__*/_react["default"].createElement(_MenuItem.BaseMenuItem, {
disabled: true,
role: "option"
}, emptyLabel) : children;
return (
/*#__PURE__*/
function Menu() {
(0, _classCallCheck2["default"])(this, Menu);
return _super.apply(this, arguments);
}
/* eslint-disable jsx-a11y/interactive-supports-focus */
_react["default"].createElement("div", (0, _extends2["default"])({}, props, {
className: (0, _classnames["default"])('rbt-menu', 'dropdown-menu', 'show', className),
key: // Force a re-render if the text changes to ensure that menu
// positioning updates correctly.
text,
onMouseDown: // Prevent input from blurring when clicking on the menu scrollbar.
_utils.preventInputBlur,
ref: innerRef,
role: "listbox",
style: _objectSpread(_objectSpread({}, style), {}, {
display: 'block',
maxHeight: maxHeight,
overflow: 'auto'
})
}), contents)
/* eslint-enable jsx-a11y/interactive-supports-focus */
(0, _createClass2["default"])(Menu, [{
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
var _this$props = this.props,
inputHeight = _this$props.inputHeight,
scheduleUpdate = _this$props.scheduleUpdate; // Update the menu position if the height of the input changes.
);
};
if (inputHeight !== prevProps.inputHeight) {
scheduleUpdate();
}
}
}, {
key: "render",
value: function render() {
var _this$props2 = this.props,
children = _this$props2.children,
className = _this$props2.className,
emptyLabel = _this$props2.emptyLabel,
id = _this$props2.id,
innerRef = _this$props2.innerRef,
maxHeight = _this$props2.maxHeight,
style = _this$props2.style,
text = _this$props2.text;
var contents = _react.Children.count(children) === 0 ? /*#__PURE__*/_react["default"].createElement(_MenuItem.BaseMenuItem, {
disabled: true,
role: "option"
}, emptyLabel) : children;
return (
/*#__PURE__*/
/* eslint-disable jsx-a11y/interactive-supports-focus */
_react["default"].createElement("div", {
"aria-label": this.props['aria-label'],
className: (0, _classnames["default"])('rbt-menu', 'dropdown-menu', 'show', className),
id: id,
key: // Force a re-render if the text changes to ensure that menu
// positioning updates correctly.
text,
onMouseDown: // Prevent input from blurring when clicking on the menu scrollbar.
_utils.preventInputBlur,
ref: innerRef,
role: "listbox",
style: _objectSpread(_objectSpread({}, style), {}, {
display: 'block',
maxHeight: maxHeight,
overflow: 'auto'
})
}, contents)
/* eslint-enable jsx-a11y/interactive-supports-focus */
);
}
}]);
return Menu;
}(_react["default"].Component);
(0, _defineProperty2["default"])(Menu, "propTypes", propTypes);
(0, _defineProperty2["default"])(Menu, "defaultProps", defaultProps);
(0, _defineProperty2["default"])(Menu, "Divider", MenuDivider);
(0, _defineProperty2["default"])(Menu, "Header", MenuHeader);
Menu.propTypes = propTypes;
Menu.defaultProps = defaultProps;
Menu.Divider = MenuDivider;
Menu.Header = MenuHeader;
var _default = Menu;
exports["default"] = _default;

@@ -5,6 +5,9 @@ "use strict";

var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.BaseMenuItem = void 0;
exports["default"] = MenuItem;
exports.BaseMenuItem = void 0;

@@ -17,3 +20,3 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));

var _react = _interopRequireDefault(require("react"));
var _react = _interopRequireWildcard(require("react"));

@@ -24,3 +27,7 @@ var _item = require("../behaviors/item");

var BaseMenuItem = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var BaseMenuItem = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
var active = _ref.active,

@@ -45,7 +52,6 @@ children = _ref.children,

});
exports.BaseMenuItem = BaseMenuItem;
var _default = (0, _item.withItem)(BaseMenuItem);
exports["default"] = _default;
function MenuItem(props) {
return /*#__PURE__*/_react["default"].createElement(BaseMenuItem, (0, _extends2["default"])({}, props, (0, _item.useItem)(props)));
}

@@ -5,4 +5,2 @@ "use strict";

var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -12,12 +10,12 @@ value: true

exports.getPlacement = getPlacement;
exports["default"] = void 0;
exports["default"] = exports.Align = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var React = _interopRequireWildcard(require("react"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
var _reactPopper = require("react-popper");

@@ -27,11 +25,5 @@

var _constants = require("../constants");
var _excluded = ["styles"],
var _excluded = ["referenceElement"],
_excluded2 = ["ref"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }

@@ -41,6 +33,15 @@

// `Element` is not defined during server-side rendering, so shim it here.
var Align; // `Element` is not defined during server-side rendering, so shim it here.
/* istanbul ignore next */
var SafeElement = typeof Element === 'undefined' ? function () {} : Element;
exports.Align = Align;
(function (Align) {
Align["JUSTIFY"] = "justify";
Align["LEFT"] = "left";
Align["RIGHT"] = "right";
})(Align || (exports.Align = Align = {}));
var SafeElement = typeof Element === 'undefined' ? _utils.noop : Element;
var propTypes = {

@@ -53,3 +54,3 @@ /**

*/
align: _propTypes["default"].oneOf((0, _utils.values)(_constants.ALIGN)),
align: _propTypes["default"].oneOf(Object.values(Align)),
children: _propTypes["default"].func.isRequired,

@@ -69,6 +70,7 @@

positionFixed: _propTypes["default"].bool,
// @ts-ignore
referenceElement: _propTypes["default"].instanceOf(SafeElement)
};
var defaultProps = {
align: _constants.ALIGN.JUSTIFY,
align: Align.JUSTIFY,
dropup: false,

@@ -80,18 +82,14 @@ flip: false,

function getModifiers(_ref) {
var align = _ref.align,
flip = _ref.flip;
function getModifiers(props) {
return {
computeStyles: {
enabled: true,
fn: function fn(_ref2) {
var styles = _ref2.styles,
data = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
fn: function fn(data) {
return _objectSpread(_objectSpread({}, data), {}, {
styles: _objectSpread(_objectSpread({}, styles), {}, {
styles: _objectSpread(_objectSpread({}, data.styles), {}, {
// Use the following condition instead of `align === 'justify'`
// since it allows the component to fall back to justifying the
// menu width if `align` is undefined.
width: align !== _constants.ALIGN.RIGHT && align !== _constants.ALIGN.LEFT ? // Set the popper width to match the target width.
data.offsets.reference.width : styles.width
width: props.align !== Align.RIGHT && props.align !== Align.LEFT ? // Set the popper width to match the target width.
"".concat(data.offsets.reference.width, "px") : data.styles.width
})

@@ -102,3 +100,3 @@ });

flip: {
enabled: flip
enabled: props.flip
},

@@ -109,43 +107,27 @@ preventOverflow: {

};
} // Flow expects a string literal value for `placement`.
}
var PLACEMENT = {
bottom: {
end: 'bottom-end',
start: 'bottom-start'
},
top: {
end: 'top-end',
start: 'top-start'
}
};
function getPlacement(_ref3) {
var align = _ref3.align,
dropup = _ref3.dropup;
var x = align === _constants.ALIGN.RIGHT ? 'end' : 'start';
var y = dropup ? 'top' : 'bottom';
return PLACEMENT[y][x];
function getPlacement(props) {
var x = props.align === Align.RIGHT ? 'end' : 'start';
var y = props.dropup ? 'top' : 'bottom';
return "".concat(y, "-").concat(x);
}
var Overlay = function Overlay(props) {
var children = props.children,
isMenuShown = props.isMenuShown,
positionFixed = props.positionFixed,
referenceElement = props.referenceElement;
var Overlay = function Overlay(_ref) {
var referenceElement = _ref.referenceElement,
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
if (!isMenuShown) {
if (!props.isMenuShown) {
return null;
}
return /*#__PURE__*/React.createElement(_reactPopper.Popper, {
return /*#__PURE__*/_react["default"].createElement(_reactPopper.Popper, {
modifiers: getModifiers(props),
placement: getPlacement(props),
positionFixed: positionFixed,
positionFixed: props.positionFixed,
referenceElement: referenceElement
}, function (_ref4) {
var ref = _ref4.ref,
popperProps = (0, _objectWithoutProperties2["default"])(_ref4, _excluded2);
return children(_objectSpread(_objectSpread({}, popperProps), {}, {
}, function (_ref2) {
var ref = _ref2.ref,
popperProps = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
return props.children(_objectSpread(_objectSpread({}, popperProps), {}, {
innerRef: ref,

@@ -152,0 +134,0 @@ inputHeight: referenceElement ? referenceElement.offsetHeight : 0

@@ -26,3 +26,5 @@ "use strict";

var _excluded = ["active", "children", "className", "onRemove", "tabIndex"];
var _excluded = ["active", "children", "className", "onRemove", "tabIndex"],
_excluded2 = ["readOnly"],
_excluded3 = ["ref"];

@@ -74,2 +76,3 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

};
/**

@@ -81,15 +84,16 @@ * Token

*/
var Token = function Token(_ref3) {
var readOnly = _ref3.readOnly,
props = (0, _objectWithoutProperties2["default"])(_ref3, _excluded2);
var _useToken = (0, _token.useToken)(props),
ref = _useToken.ref,
tokenProps = (0, _objectWithoutProperties2["default"])(_useToken, _excluded3);
var Token = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
var disabled = props.disabled,
onRemove = props.onRemove,
readOnly = props.readOnly;
return !disabled && !readOnly && (0, _utils.isFunction)(onRemove) ? /*#__PURE__*/_react["default"].createElement(InteractiveToken, (0, _extends2["default"])({}, props, {
return !props.disabled && !readOnly && (0, _utils.isFunction)(tokenProps.onRemove) ? /*#__PURE__*/_react["default"].createElement(InteractiveToken, (0, _extends2["default"])({}, props, tokenProps, {
ref: ref
})) : /*#__PURE__*/_react["default"].createElement(StaticToken, props);
});
};
var _default = (0, _token.withToken)(Token);
var _default = Token;
exports["default"] = _default;

@@ -60,4 +60,3 @@ "use strict";

var _excluded = ["children", "onRootClose"],
_excluded2 = ["getInputProps"];
var _excluded = ["children", "onRootClose"];

@@ -124,27 +123,27 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

var defaultProps = {
clearButton: false,
inputProps: {},
isInvalid: false,
isLoading: false,
isValid: false,
renderMenu: function renderMenu(results, menuProps, props) {
return /*#__PURE__*/_react["default"].createElement(_TypeaheadMenu["default"], (0, _extends2["default"])({}, menuProps, {
labelKey: props.labelKey,
options: results,
text: props.text
}));
},
renderToken: function renderToken(option, props, idx) {
return /*#__PURE__*/_react["default"].createElement(_Token["default"], {
disabled: props.disabled,
key: idx,
onRemove: props.onRemove,
option: option,
tabIndex: props.tabIndex
}, (0, _utils.getOptionLabel)(option, props.labelKey));
}
isLoading: false
};
var defaultRenderMenu = function defaultRenderMenu(results, menuProps, props) {
return /*#__PURE__*/_react["default"].createElement(_TypeaheadMenu["default"], (0, _extends2["default"])({}, menuProps, {
labelKey: props.labelKey,
options: results,
text: props.text
}));
};
var defaultRenderToken = function defaultRenderToken(option, props, idx) {
return /*#__PURE__*/_react["default"].createElement(_Token["default"], {
disabled: props.disabled,
key: idx,
onRemove: props.onRemove,
option: option,
tabIndex: props.tabIndex
}, (0, _utils.getOptionLabel)(option, props.labelKey));
};
var overlayPropKeys = ['align', 'dropup', 'flip', 'positionFixed'];
function getOverlayProps(props) {
return (0, _utils.pick)(props, ['align', 'dropup', 'flip', 'positionFixed']);
return (0, _utils.pick)(props, overlayPropKeys);
}

@@ -181,3 +180,3 @@

_this = _super.call.apply(_super, [this].concat(args));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_referenceElement", void 0);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_referenceElement", null);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "referenceElementRef", function (referenceElement) {

@@ -215,3 +214,3 @@ _this._referenceElement = referenceElement;

}), selected.map(function (option, idx) {
return renderToken(option, _objectSpread(_objectSpread({}, commonProps), {}, {
return (renderToken || defaultRenderToken)(option, _objectSpread(_objectSpread({}, commonProps), {}, {
labelKey: labelKey,

@@ -231,3 +230,3 @@ onRemove: onRemove

renderMenuItemChildren = _this$props2.renderMenuItemChildren;
return renderMenu(results, _objectSpread(_objectSpread({}, menuProps), {}, {
return (renderMenu || defaultRenderMenu)(results, _objectSpread(_objectSpread({}, menuProps), {}, {
emptyLabel: emptyLabel,

@@ -256,6 +255,2 @@ id: id,

onClick: onClear,
onFocus: function onFocus(e) {
// Prevent the main input from auto-focusing again.
e.stopPropagation();
},
onMouseDown: _utils.preventInputBlur,

@@ -290,5 +285,3 @@ size: size

ref: instanceRef
}), function (_ref3) {
var getInputProps = _ref3.getInputProps,
props = (0, _objectWithoutProperties2["default"])(_ref3, _excluded2);
}), function (props) {
var hideMenu = props.hideMenu,

@@ -314,3 +307,3 @@ isMenuShown = props.isMenuShown,

tabIndex: -1
}, _this2._renderInput(_objectSpread(_objectSpread({}, getInputProps(_this2.props.inputProps)), {}, {
}, _this2._renderInput(_objectSpread(_objectSpread({}, props.getInputProps(_this2.props.inputProps)), {}, {
referenceElementRef: _this2.referenceElementRef

@@ -317,0 +310,0 @@ }), props), /*#__PURE__*/_react["default"].createElement(_Overlay["default"], (0, _extends2["default"])({}, getOverlayProps(_this2.props), {

@@ -40,4 +40,2 @@ "use strict";

var _constants = require("../constants");
var _excluded = ["children", "className", "inputClassName", "inputRef", "placeholder", "referenceElementRef", "selected", "shouldSelectHint"];

@@ -65,3 +63,3 @@

(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "wrapperRef", /*#__PURE__*/_react["default"].createRef());
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_input", void 0);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_input", null);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getInputRef", function (input) {

@@ -105,4 +103,4 @@ _this._input = input;

switch (e.keyCode) {
case _constants.BACKSPACE:
switch (e.key) {
case 'Backspace':
if (e.currentTarget === _this._input && selected.length && !value) {

@@ -146,3 +144,2 @@ // Prevent browser from going back.

className: (0, _classnames["default"])('rbt-input-multi', className),
disabled: props.disabled,
onClick: this._handleContainerClickOrFocus,

@@ -149,0 +146,0 @@ onFocus: this._handleContainerClickOrFocus,

@@ -5,4 +5,2 @@ "use strict";

var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {

@@ -17,6 +15,6 @@ value: true

var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
var _Highlighter = _interopRequireDefault(require("./Highlighter"));

@@ -30,8 +28,3 @@

var _excluded = ["labelKey", "newSelectionPrefix", "options", "paginationText", "renderMenuItemChildren", "text"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var _excluded = ["labelKey", "newSelectionPrefix", "options", "paginationText", "renderMenuItemChildren"];
var propTypes = {

@@ -57,3 +50,3 @@ /**

paginationText: 'Display additional results...',
renderMenuItemChildren: function renderMenuItemChildren(option, props, idx) {
renderMenuItemChildren: function renderMenuItemChildren(option, props) {
return /*#__PURE__*/_react["default"].createElement(_Highlighter["default"], {

@@ -71,3 +64,2 @@ search: props.text

renderMenuItemChildren = props.renderMenuItemChildren,
text = props.text,
menuProps = (0, _objectWithoutProperties2["default"])(props, _excluded);

@@ -78,3 +70,3 @@

var menuItemProps = {
disabled: (0, _utils.getOptionProperty)(option, 'disabled'),
disabled: !!(0, _utils.getOptionProperty)(option, 'disabled'),
label: label,

@@ -85,3 +77,3 @@ option: option,

if (option.customOption) {
if ((0, _utils.getOptionProperty)(option, 'customOption')) {
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], (0, _extends2["default"])({}, menuItemProps, {

@@ -92,12 +84,12 @@ className: "rbt-menu-custom-option",

}), newSelectionPrefix, /*#__PURE__*/_react["default"].createElement(_Highlighter["default"], {
search: text
search: menuProps.text
}, label));
}
if (option.paginationOption) {
return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
key: "pagination-item"
}, /*#__PURE__*/_react["default"].createElement(_Menu["default"].Divider, null), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], (0, _extends2["default"])({}, menuItemProps, {
if ((0, _utils.getOptionProperty)(option, 'paginationOption')) {
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Menu["default"].Divider, null), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], (0, _extends2["default"])({}, menuItemProps, {
className: "rbt-menu-pagination-option",
label: paginationText
label: // TODO: Fix how (aria-)labels are passed to `MenuItem`.
// `paginationText` can be a ReactNode.
(0, _utils.isString)(paginationText) ? paginationText : ''
}), paginationText));

@@ -111,9 +103,3 @@ }

return (
/*#__PURE__*/
// Explictly pass `text` so Flow doesn't complain...
_react["default"].createElement(_Menu["default"], (0, _extends2["default"])({}, menuProps, {
text: text
}), options.map(renderMenuItem))
);
return /*#__PURE__*/_react["default"].createElement(_Menu["default"], menuProps, options.map(renderMenuItem));
};

@@ -120,0 +106,0 @@

@@ -6,40 +6,6 @@ "use strict";

});
exports.SIZE = exports.ALIGN = exports.DEFAULT_LABELKEY = exports.DOWN = exports.RIGHT = exports.UP = exports.LEFT = exports.SPACE = exports.ESC = exports.RETURN = exports.TAB = exports.BACKSPACE = void 0;
exports.DEFAULT_LABELKEY = void 0;
/**
* Common (non-printable) keycodes for `keydown` and `keyup` events. Note that
* `keypress` handles things differently and may not return the same values.
*/
var BACKSPACE = 8;
exports.BACKSPACE = BACKSPACE;
var TAB = 9;
exports.TAB = TAB;
var RETURN = 13;
exports.RETURN = RETURN;
var ESC = 27;
exports.ESC = ESC;
var SPACE = 32;
exports.SPACE = SPACE;
var LEFT = 37;
exports.LEFT = LEFT;
var UP = 38;
exports.UP = UP;
var RIGHT = 39;
exports.RIGHT = RIGHT;
var DOWN = 40;
exports.DOWN = DOWN;
/* eslint-disable import/prefer-default-export */
var DEFAULT_LABELKEY = 'label';
exports.DEFAULT_LABELKEY = DEFAULT_LABELKEY;
var ALIGN = {
JUSTIFY: 'justify',
LEFT: 'left',
RIGHT: 'right'
};
exports.ALIGN = ALIGN;
var SIZE = {
LARGE: 'large',
LG: 'lg',
SM: 'sm',
SMALL: 'small'
};
exports.SIZE = SIZE;
exports.DEFAULT_LABELKEY = DEFAULT_LABELKEY;

@@ -199,8 +199,3 @@ "use strict";

*/
selected: (0, _propTypes2.checkPropType)(_propTypes["default"].arrayOf(_propTypes2.optionType), _propTypes2.selectedType),
/**
* Allows selecting the hinted result by pressing enter.
*/
selectHintOnEnter: (0, _propTypes2.deprecated)(_propTypes["default"].bool, 'Use the `shouldSelect` prop on the `Hint` component to define which ' + 'keystrokes can select the hint.')
selected: (0, _propTypes2.checkPropType)(_propTypes["default"].arrayOf(_propTypes2.optionType), _propTypes2.selectedType)
};

@@ -241,3 +236,3 @@ var defaultProps = {

// Set the text if an initial selection is passed in.
text = (0, _utils.getOptionLabel)((0, _utils.head)(selected), props.labelKey);
text = (0, _utils.getOptionLabel)(selected[0], props.labelKey);

@@ -252,4 +247,4 @@ if (selected.length > 1) {

activeIndex: -1,
activeItem: null,
initialItem: null,
activeItem: undefined,
initialItem: undefined,
isFocused: false,

@@ -278,3 +273,3 @@ selected: selected,

return {
return _objectSpread(_objectSpread({}, state), {}, {
activeIndex: activeIndex,

@@ -285,9 +280,9 @@ activeItem: activeItem,

shownResults: shownResults
};
});
}
function toggleMenu(state, props) {
return state.showMenu ? hideMenu(state, props) : {
return state.showMenu ? hideMenu(state, props) : _objectSpread(_objectSpread({}, state), {}, {
showMenu: true
};
});
}

@@ -325,3 +320,3 @@ /**

(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", getInitialState(_this.props));
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "inputNode", void 0);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "inputNode", null);
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isMenuShown", false);

@@ -359,3 +354,3 @@ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "items", []);

activeIndex: activeIndex,
activeItem: activeIndex === -1 ? null : state.activeItem
activeItem: activeIndex >= 0 ? state.activeItem : undefined
};

@@ -439,3 +434,3 @@ });

if (!_this.isMenuShown) {
if (e.keyCode === _constants.UP || e.keyCode === _constants.DOWN) {
if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {
_this.setState({

@@ -451,13 +446,13 @@ showMenu: true

switch (e.keyCode) {
case _constants.UP:
case _constants.DOWN:
switch (e.key) {
case 'ArrowUp':
case 'ArrowDown':
// Prevent input cursor from going to the beginning when pressing up.
e.preventDefault();
_this._handleActiveIndexChange((0, _utils.getUpdatedActiveIndex)(_this.state.activeIndex, e.keyCode, _this.items));
_this._handleActiveIndexChange((0, _utils.getUpdatedActiveIndex)(_this.state.activeIndex, e.key, _this.items));
break;
case _constants.RETURN:
case 'Enter':
// Prevent form submission while menu is open.

@@ -468,4 +463,4 @@ e.preventDefault();

case _constants.ESC:
case _constants.TAB:
case 'Escape':
case 'Tab':
// ESC simply hides the menu. TAB will blur the input and move focus to

@@ -484,3 +479,3 @@ // the next item; hide the menu so it doesn't gain focus.

(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_handleMenuItemSelect", function (option, e) {
if (option.paginationOption) {
if ((0, _utils.getOptionProperty)(option, 'paginationOption')) {
_this._handlePaginate(e);

@@ -579,3 +574,3 @@ } else {

this.setState({
text: selected.length ? (0, _utils.getOptionLabel)((0, _utils.head)(selected), labelKey) : ''
text: selected.length ? (0, _utils.getOptionLabel)(selected[0], labelKey) : ''
});

@@ -588,8 +583,7 @@ }

value: function render() {
// Omit `onChange` so Flow doesn't complain.
var _this$props4 = this.props,
onChange = _this$props4.onChange,
otherProps = (0, _objectWithoutProperties2["default"])(_this$props4, _excluded);
props = (0, _objectWithoutProperties2["default"])(_this$props4, _excluded);
var mergedPropsAndState = _objectSpread(_objectSpread({}, otherProps), this.state);
var mergedPropsAndState = _objectSpread(_objectSpread({}, props), this.state);

@@ -608,3 +602,3 @@ var filterBy = mergedPropsAndState.filterBy,

if (this.isMenuShown) {
var cb = typeof filterBy === 'function' ? filterBy : _utils.defaultFilterBy;
var cb = (0, _utils.isFunction)(filterBy) ? filterBy : _utils.defaultFilterBy;
results = options.filter(function (option) {

@@ -611,0 +605,0 @@ return cb(option, mergedPropsAndState);

@@ -22,4 +22,2 @@ "use strict";

var _constants = require("../constants");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

@@ -35,3 +33,3 @@

var propKeys = ['activeIndex', 'hideMenu', 'isMenuShown', 'labelKey', 'onClear', 'onHide', 'onRemove', 'results', 'selected', 'text', 'toggleMenu'];
var contextKeys = ['activeIndex', 'id', 'initialItem', 'inputNode', 'onActiveItemChange', 'onAdd', 'onInitialItemChange', 'onMenuItemClick', 'selectHintOnEnter', 'setItem'];
var contextKeys = ['activeIndex', 'id', 'initialItem', 'inputNode', 'onActiveItemChange', 'onAdd', 'onInitialItemChange', 'onMenuItemClick', 'setItem'];

@@ -52,3 +50,3 @@ var TypeaheadManager = function TypeaheadManager(props) {

if (!(allowNew || results.length)) {
onInitialItemChange(null);
onInitialItemChange();
}

@@ -63,4 +61,4 @@ });

var handleKeyDown = function handleKeyDown(e) {
switch (e.keyCode) {
case _constants.RETURN:
switch (e.key) {
case 'Enter':
if (initialItem && (0, _utils.getIsOnlyResult)(props)) {

@@ -67,0 +65,0 @@ onAdd(initialItem);

@@ -10,6 +10,22 @@ "use strict";

});
var _exportNames = {
AsyncTypeahead: true,
ClearButton: true,
Highlighter: true,
Hint: true,
useHint: true,
Input: true,
Loader: true,
Menu: true,
MenuItem: true,
Token: true,
Typeahead: true,
TypeaheadInputMulti: true,
TypeaheadInputSingle: true,
TypeaheadMenu: true
};
Object.defineProperty(exports, "AsyncTypeahead", {
enumerable: true,
get: function get() {
return _AsyncTypeahead2["default"];
return _AsyncTypeahead["default"];
}

@@ -20,3 +36,3 @@ });

get: function get() {
return _ClearButton2["default"];
return _ClearButton["default"];
}

@@ -27,3 +43,3 @@ });

get: function get() {
return _Highlighter2["default"];
return _Highlighter["default"];
}

@@ -34,3 +50,3 @@ });

get: function get() {
return _Hint2["default"];
return _Hint["default"];
}

@@ -41,3 +57,3 @@ });

get: function get() {
return _Hint2.useHint;
return _Hint.useHint;
}

@@ -48,3 +64,3 @@ });

get: function get() {
return _Input2["default"];
return _Input["default"];
}

@@ -55,3 +71,3 @@ });

get: function get() {
return _Loader2["default"];
return _Loader["default"];
}

@@ -62,3 +78,3 @@ });

get: function get() {
return _Menu2["default"];
return _Menu["default"];
}

@@ -69,3 +85,3 @@ });

get: function get() {
return _MenuItem2["default"];
return _MenuItem["default"];
}

@@ -76,3 +92,3 @@ });

get: function get() {
return _Token2["default"];
return _Token["default"];
}

@@ -83,3 +99,3 @@ });

get: function get() {
return _Typeahead2["default"];
return _Typeahead["default"];
}

@@ -90,3 +106,3 @@ });

get: function get() {
return _TypeaheadInputMulti2["default"];
return _TypeaheadInputMulti["default"];
}

@@ -97,3 +113,3 @@ });

get: function get() {
return _TypeaheadInputSingle2["default"];
return _TypeaheadInputSingle["default"];
}

@@ -104,94 +120,76 @@ });

get: function get() {
return _TypeaheadMenu2["default"];
return _TypeaheadMenu["default"];
}
});
Object.defineProperty(exports, "asyncContainer", {
enumerable: true,
get: function get() {
return _async["default"];
}
});
Object.defineProperty(exports, "useAsync", {
enumerable: true,
get: function get() {
return _async.useAsync;
}
});
Object.defineProperty(exports, "withAsync", {
enumerable: true,
get: function get() {
return _async.withAsync;
}
});
Object.defineProperty(exports, "menuItemContainer", {
enumerable: true,
get: function get() {
return _item["default"];
}
});
Object.defineProperty(exports, "useItem", {
enumerable: true,
get: function get() {
return _item.useItem;
}
});
Object.defineProperty(exports, "withItem", {
enumerable: true,
get: function get() {
return _item.withItem;
}
});
Object.defineProperty(exports, "tokenContainer", {
enumerable: true,
get: function get() {
return _token["default"];
}
});
Object.defineProperty(exports, "useToken", {
enumerable: true,
get: function get() {
return _token.useToken;
}
});
Object.defineProperty(exports, "withToken", {
enumerable: true,
get: function get() {
return _token.withToken;
}
});
var _AsyncTypeahead2 = _interopRequireDefault(require("./components/AsyncTypeahead"));
var _AsyncTypeahead = _interopRequireDefault(require("./components/AsyncTypeahead"));
var _ClearButton2 = _interopRequireDefault(require("./components/ClearButton"));
var _ClearButton = _interopRequireDefault(require("./components/ClearButton"));
var _Highlighter2 = _interopRequireDefault(require("./components/Highlighter"));
var _Highlighter = _interopRequireDefault(require("./components/Highlighter"));
var _Hint2 = _interopRequireWildcard(require("./components/Hint"));
var _Hint = _interopRequireWildcard(require("./components/Hint"));
var _Input2 = _interopRequireDefault(require("./components/Input"));
var _Input = _interopRequireDefault(require("./components/Input"));
var _Loader2 = _interopRequireDefault(require("./components/Loader"));
var _Loader = _interopRequireDefault(require("./components/Loader"));
var _Menu2 = _interopRequireDefault(require("./components/Menu"));
var _Menu = _interopRequireDefault(require("./components/Menu"));
var _MenuItem2 = _interopRequireDefault(require("./components/MenuItem"));
var _MenuItem = _interopRequireDefault(require("./components/MenuItem"));
var _Token2 = _interopRequireDefault(require("./components/Token"));
var _Token = _interopRequireDefault(require("./components/Token"));
var _Typeahead2 = _interopRequireDefault(require("./components/Typeahead"));
var _Typeahead = _interopRequireDefault(require("./components/Typeahead"));
var _TypeaheadInputMulti2 = _interopRequireDefault(require("./components/TypeaheadInputMulti"));
var _TypeaheadInputMulti = _interopRequireDefault(require("./components/TypeaheadInputMulti"));
var _TypeaheadInputSingle2 = _interopRequireDefault(require("./components/TypeaheadInputSingle"));
var _TypeaheadInputSingle = _interopRequireDefault(require("./components/TypeaheadInputSingle"));
var _TypeaheadMenu2 = _interopRequireDefault(require("./components/TypeaheadMenu"));
var _TypeaheadMenu = _interopRequireDefault(require("./components/TypeaheadMenu"));
var _async = _interopRequireWildcard(require("./behaviors/async"));
var _async = require("./behaviors/async");
var _item = _interopRequireWildcard(require("./behaviors/item"));
Object.keys(_async).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _async[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _async[key];
}
});
});
var _token = _interopRequireWildcard(require("./behaviors/token"));
var _item = require("./behaviors/item");
Object.keys(_item).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _item[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _item[key];
}
});
});
var _token = require("./behaviors/token");
Object.keys(_token).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _token[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _token[key];
}
});
});
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

@@ -27,3 +27,3 @@ "use strict";

var _constants = require("./constants");
var _types = require("./types");

@@ -44,10 +44,9 @@ var INPUT_PROPS_BLACKLIST = [{

var sizeType = _propTypes["default"].oneOf((0, _utils.values)(_constants.SIZE));
var sizeType = _propTypes["default"].oneOf(Object.values(_types.Size));
exports.sizeType = sizeType;
/**
* Allows additional warnings or messaging related to prop validation.
*/
exports.sizeType = sizeType;
function checkPropType(validator, callback) {

@@ -61,3 +60,3 @@ return function (props, propName, componentName) {

function caseSensitiveType(props, propName, componentName) {
function caseSensitiveType(props) {
var caseSensitive = props.caseSensitive,

@@ -78,3 +77,3 @@ filterBy = props.filterBy;

function defaultInputValueType(props, propName, componentName) {
function defaultInputValueType(props) {
var defaultInputValue = props.defaultInputValue,

@@ -88,3 +87,3 @@ defaultSelected = props.defaultSelected,

function defaultSelectedType(props, propName, componentName) {
function defaultSelectedType(props) {
var defaultSelected = props.defaultSelected,

@@ -95,9 +94,9 @@ multiple = props.multiple;

function highlightOnlyResultType(props, propName, componentName) {
var allowNew = props.allowNew,
highlightOnlyResult = props.highlightOnlyResult;
function highlightOnlyResultType(_ref) {
var allowNew = _ref.allowNew,
highlightOnlyResult = _ref.highlightOnlyResult;
(0, _utils.warn)(!(highlightOnlyResult && allowNew), '`highlightOnlyResult` will not work with `allowNew`.');
}
function ignoreDiacriticsType(props, propName, componentName) {
function ignoreDiacriticsType(props) {
var filterBy = props.filterBy,

@@ -108,4 +107,4 @@ ignoreDiacritics = props.ignoreDiacritics;

function inputPropsType(props, propName, componentName) {
var inputProps = props.inputProps;
function inputPropsType(_ref2) {
var inputProps = _ref2.inputProps;

@@ -117,5 +116,5 @@ if (!(inputProps && Object.prototype.toString.call(inputProps) === '[object Object]')) {

INPUT_PROPS_BLACKLIST.forEach(function (_ref) {
var alt = _ref.alt,
prop = _ref.prop;
INPUT_PROPS_BLACKLIST.forEach(function (_ref3) {
var alt = _ref3.alt,
prop = _ref3.prop;
var msg = alt ? " Use the top-level `".concat(alt, "` prop instead.") : null;

@@ -130,5 +129,5 @@ (0, _utils.warn)(!inputProps[prop], "The `".concat(prop, "` property of `inputProps` will be ignored.").concat(msg));

function labelKeyType(props, propName, componentName) {
var allowNew = props.allowNew,
labelKey = props.labelKey;
function labelKeyType(_ref4) {
var allowNew = _ref4.allowNew,
labelKey = _ref4.labelKey;
(0, _utils.warn)(!((0, _utils.isFunction)(labelKey) && allowNew), '`labelKey` must be a string when `allowNew={true}`.');

@@ -141,8 +140,8 @@ }

function selectedType(props, propName, componentName) {
var multiple = props.multiple,
onChange = props.onChange,
selected = props.selected;
function selectedType(_ref5) {
var multiple = _ref5.multiple,
onChange = _ref5.onChange,
selected = _ref5.selected;
(0, _utils.warn)(multiple || !selected || selected.length <= 1, 'You are passing multiple options to the `selected` prop of a Typeahead ' + 'in single-select mode. This may lead to unexpected behaviors or errors.');
(0, _utils.warn)(!selected || selected && (0, _utils.isFunction)(onChange), 'You provided a `selected` prop without an `onChange` handler. If you ' + 'want the typeahead to be uncontrolled, use `defaultSelected`. ' + 'Otherwise, set `onChange`.');
}

@@ -12,2 +12,4 @@ "use strict";

var _nodash = require("./nodash");
function addCustomOption(results, props) {

@@ -24,3 +26,3 @@ var allowNew = props.allowNew,

if (typeof allowNew === 'function') {
if ((0, _nodash.isFunction)(allowNew)) {
return allowNew(results, props);

@@ -27,0 +29,0 @@ } // By default, don't add the custom option if there is an exact text match

@@ -8,4 +8,5 @@ "use strict";

// eslint-disable-next-line @typescript-eslint/no-explicit-any
function getDisplayName(Component) {
return Component.displayName || Component.name || 'Component';
}

@@ -14,12 +14,17 @@ "use strict";

function getHintText(props) {
var activeIndex = props.activeIndex,
initialItem = props.initialItem,
isFocused = props.isFocused,
isMenuShown = props.isMenuShown,
labelKey = props.labelKey,
multiple = props.multiple,
selected = props.selected,
text = props.text; // Don't display a hint under the following conditions:
var _hasOwnProperty = _interopRequireDefault(require("./hasOwnProperty"));
var _nodash = require("./nodash");
function getHintText(_ref) {
var activeIndex = _ref.activeIndex,
initialItem = _ref.initialItem,
isFocused = _ref.isFocused,
isMenuShown = _ref.isMenuShown,
labelKey = _ref.labelKey,
multiple = _ref.multiple,
selected = _ref.selected,
text = _ref.text;
// Don't display a hint under the following conditions:
if ( // No text entered.

@@ -30,3 +35,3 @@ !text || // The input is not focused.

!initialItem || // The initial item is a custom option.
initialItem.customOption || // One of the menu items is active.
!(0, _nodash.isString)(initialItem) && (0, _hasOwnProperty["default"])(initialItem, 'customOption') || // One of the menu items is active.
activeIndex > -1 || // There's already a selection in single-select mode.

@@ -33,0 +38,0 @@ !!selected.length && !multiple) {

@@ -18,5 +18,8 @@ "use strict";

var _excluded = ["activeIndex", "id", "isFocused", "isMenuShown", "multiple", "onFocus", "placeholder"],
_excluded2 = ["className"];
var _hasOwnProperty = _interopRequireDefault(require("./hasOwnProperty"));
var _nodash = require("./nodash");
var _excluded = ["activeIndex", "id", "isFocused", "isMenuShown", "multiple", "onFocus", "placeholder"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }

@@ -38,8 +41,8 @@

var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
className = _ref2.className,
inputProps = (0, _objectWithoutProperties2["default"])(_ref2, _excluded2);
var inputProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var className = (0, _hasOwnProperty["default"])(inputProps, 'className') ? inputProps.className : undefined;
var _onClick = (0, _hasOwnProperty["default"])(inputProps, 'onClick') && inputProps.onClick;
var props = _objectSpread(_objectSpread(_objectSpread({
/* eslint-disable sort-keys */
// These props can be overridden by values in `inputProps`.

@@ -59,3 +62,3 @@ autoComplete: 'off',

onFocus && onFocus(e);
inputProps.onClick && inputProps.onClick(e);
(0, _nodash.isFunction)(_onClick) && _onClick(e);
},

@@ -66,4 +69,2 @@ onFocus: onFocus,

role: 'combobox'
/* eslint-enable sort-keys */
});

@@ -70,0 +71,0 @@

@@ -12,4 +12,2 @@ "use strict";

var _nodash = require("./nodash");
function getInputText(props) {

@@ -27,6 +25,4 @@ var activeItem = props.activeItem,

var selectedItem = !multiple && !!selected.length && (0, _nodash.head)(selected);
if (selectedItem) {
return (0, _getOptionLabel["default"])(selectedItem, labelKey);
if (!multiple && selected.length && selected[0]) {
return (0, _getOptionLabel["default"])(selected[0], labelKey);
}

@@ -33,0 +29,0 @@

@@ -12,4 +12,2 @@ "use strict";

var _nodash = require("./nodash");
function getIsOnlyResult(props) {

@@ -24,3 +22,3 @@ var allowNew = props.allowNew,

return results.length === 1 && !(0, _getOptionProperty["default"])((0, _nodash.head)(results), 'disabled');
return results.length === 1 && !(0, _getOptionProperty["default"])(results[0], 'disabled');
}

@@ -27,0 +25,0 @@

@@ -8,4 +8,6 @@ "use strict";

function getMenuItemId(id, position) {
return "".concat(id || '', "-item-").concat(position);
function getMenuItemId() {
var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var position = arguments.length > 1 ? arguments[1] : undefined;
return "".concat(id, "-item-").concat(position);
}

@@ -14,2 +14,4 @@ "use strict";

var _hasOwnProperty = _interopRequireDefault(require("./hasOwnProperty"));
var _nodash = require("./nodash");

@@ -24,3 +26,3 @@

// Handle internally created options first.
if (!(0, _nodash.isString)(option) && (option.paginationOption || option.customOption)) {
if (!(0, _nodash.isString)(option) && ((0, _hasOwnProperty["default"])(option, 'paginationOption') || (0, _hasOwnProperty["default"])(option, 'customOption'))) {
return option[(0, _getStringLabelKey["default"])(labelKey)];

@@ -27,0 +29,0 @@ }

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isDisabledOption = isDisabledOption;
exports.skipDisabledOptions = skipDisabledOptions;
exports["default"] = getUpdatedActiveIndex;
var _constants = require("../constants");
var _nodash = require("./nodash");
function skipDisabledOptions(currentIndex, keyCode, items) {
var _hasOwnProperty = _interopRequireDefault(require("./hasOwnProperty"));
function isDisabledOption(index, items) {
var option = items[index];
return !!option && !(0, _nodash.isString)(option) && (0, _hasOwnProperty["default"])(option, 'disabled');
}
function skipDisabledOptions(currentIndex, key, items) {
var newIndex = currentIndex;
while (items[newIndex] && items[newIndex].disabled) {
newIndex += keyCode === _constants.UP ? -1 : 1;
while (isDisabledOption(newIndex, items)) {
newIndex += key === 'ArrowUp' ? -1 : 1;
}

@@ -20,8 +31,8 @@

function getUpdatedActiveIndex(currentIndex, keyCode, items) {
function getUpdatedActiveIndex(currentIndex, key, items) {
var newIndex = currentIndex; // Increment or decrement index based on user keystroke.
newIndex += keyCode === _constants.UP ? -1 : 1; // Skip over any disabled options.
newIndex += key === 'ArrowUp' ? -1 : 1; // Skip over any disabled options.
newIndex = skipDisabledOptions(newIndex, keyCode, items); // If we've reached the end, go back to the beginning or vice-versa.
newIndex = skipDisabledOptions(newIndex, key, items); // If we've reached the end, go back to the beginning or vice-versa.

@@ -33,3 +44,3 @@ if (newIndex === items.length) {

newIndex = skipDisabledOptions(newIndex, keyCode, items);
newIndex = skipDisabledOptions(newIndex, key, items);
}

@@ -36,0 +47,0 @@

@@ -19,3 +19,2 @@ "use strict";

getMatchBounds: true,
escapeStringRegexp: true,
getMenuItemId: true,

@@ -27,2 +26,3 @@ getOptionLabel: true,

getUpdatedActiveIndex: true,
hasOwnProperty: true,
isSelectable: true,

@@ -38,3 +38,3 @@ isShown: true,

get: function get() {
return _addCustomOption2["default"];
return _addCustomOption["default"];
}

@@ -45,3 +45,3 @@ });

get: function get() {
return _defaultFilterBy2["default"];
return _defaultFilterBy["default"];
}

@@ -52,3 +52,3 @@ });

get: function get() {
return _getDisplayName2["default"];
return _getDisplayName["default"];
}

@@ -59,3 +59,3 @@ });

get: function get() {
return _getHintText2["default"];
return _getHintText["default"];
}

@@ -66,3 +66,3 @@ });

get: function get() {
return _getInputProps2["default"];
return _getInputProps["default"];
}

@@ -73,3 +73,3 @@ });

get: function get() {
return _getInputText2["default"];
return _getInputText["default"];
}

@@ -80,3 +80,3 @@ });

get: function get() {
return _getIsOnlyResult2["default"];
return _getIsOnlyResult["default"];
}

@@ -87,15 +87,9 @@ });

get: function get() {
return _getMatchBounds2["default"];
return _getMatchBounds["default"];
}
});
Object.defineProperty(exports, "escapeStringRegexp", {
enumerable: true,
get: function get() {
return _getMatchBounds2.escapeStringRegexp;
}
});
Object.defineProperty(exports, "getMenuItemId", {
enumerable: true,
get: function get() {
return _getMenuItemId2["default"];
return _getMenuItemId["default"];
}

@@ -106,3 +100,3 @@ });

get: function get() {
return _getOptionLabel2["default"];
return _getOptionLabel["default"];
}

@@ -113,3 +107,3 @@ });

get: function get() {
return _getOptionProperty2["default"];
return _getOptionProperty["default"];
}

@@ -120,3 +114,3 @@ });

get: function get() {
return _getStringLabelKey2["default"];
return _getStringLabelKey["default"];
}

@@ -127,3 +121,3 @@ });

get: function get() {
return _getTruncatedOptions2["default"];
return _getTruncatedOptions["default"];
}

@@ -134,9 +128,15 @@ });

get: function get() {
return _getUpdatedActiveIndex2["default"];
return _getUpdatedActiveIndex["default"];
}
});
Object.defineProperty(exports, "hasOwnProperty", {
enumerable: true,
get: function get() {
return _hasOwnProperty["default"];
}
});
Object.defineProperty(exports, "isSelectable", {
enumerable: true,
get: function get() {
return _isSelectable2["default"];
return _isSelectable["default"];
}

@@ -147,3 +147,3 @@ });

get: function get() {
return _isShown2["default"];
return _isShown["default"];
}

@@ -154,3 +154,3 @@ });

get: function get() {
return _preventInputBlur2["default"];
return _preventInputBlur["default"];
}

@@ -161,3 +161,3 @@ });

get: function get() {
return _stripDiacritics2["default"];
return _stripDiacritics["default"];
}

@@ -168,3 +168,3 @@ });

get: function get() {
return _validateSelectedPropChange2["default"];
return _validateSelectedPropChange["default"];
}

@@ -175,38 +175,52 @@ });

get: function get() {
return _warn2["default"];
return _warn["default"];
}
});
var _addCustomOption2 = _interopRequireDefault(require("./addCustomOption"));
var _addCustomOption = _interopRequireDefault(require("./addCustomOption"));
var _defaultFilterBy2 = _interopRequireDefault(require("./defaultFilterBy"));
var _defaultFilterBy = _interopRequireDefault(require("./defaultFilterBy"));
var _getDisplayName2 = _interopRequireDefault(require("./getDisplayName"));
var _getDisplayName = _interopRequireDefault(require("./getDisplayName"));
var _getHintText2 = _interopRequireDefault(require("./getHintText"));
var _getHintText = _interopRequireDefault(require("./getHintText"));
var _getInputProps2 = _interopRequireDefault(require("./getInputProps"));
var _getInputProps = _interopRequireDefault(require("./getInputProps"));
var _getInputText2 = _interopRequireDefault(require("./getInputText"));
var _getInputText = _interopRequireDefault(require("./getInputText"));
var _getIsOnlyResult2 = _interopRequireDefault(require("./getIsOnlyResult"));
var _getIsOnlyResult = _interopRequireDefault(require("./getIsOnlyResult"));
var _getMatchBounds2 = _interopRequireWildcard(require("./getMatchBounds"));
var _getMatchBounds = _interopRequireWildcard(require("./getMatchBounds"));
var _getMenuItemId2 = _interopRequireDefault(require("./getMenuItemId"));
Object.keys(_getMatchBounds).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _getMatchBounds[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _getMatchBounds[key];
}
});
});
var _getOptionLabel2 = _interopRequireDefault(require("./getOptionLabel"));
var _getMenuItemId = _interopRequireDefault(require("./getMenuItemId"));
var _getOptionProperty2 = _interopRequireDefault(require("./getOptionProperty"));
var _getOptionLabel = _interopRequireDefault(require("./getOptionLabel"));
var _getStringLabelKey2 = _interopRequireDefault(require("./getStringLabelKey"));
var _getOptionProperty = _interopRequireDefault(require("./getOptionProperty"));
var _getTruncatedOptions2 = _interopRequireDefault(require("./getTruncatedOptions"));
var _getStringLabelKey = _interopRequireDefault(require("./getStringLabelKey"));
var _getUpdatedActiveIndex2 = _interopRequireDefault(require("./getUpdatedActiveIndex"));
var _getTruncatedOptions = _interopRequireDefault(require("./getTruncatedOptions"));
var _isSelectable2 = _interopRequireDefault(require("./isSelectable"));
var _getUpdatedActiveIndex = _interopRequireDefault(require("./getUpdatedActiveIndex"));
var _isShown2 = _interopRequireDefault(require("./isShown"));
var _hasOwnProperty = _interopRequireDefault(require("./hasOwnProperty"));
var _isSelectable = _interopRequireDefault(require("./isSelectable"));
var _isShown = _interopRequireDefault(require("./isShown"));
var _nodash = require("./nodash");

@@ -226,3 +240,3 @@

var _preventInputBlur2 = _interopRequireDefault(require("./preventInputBlur"));
var _preventInputBlur = _interopRequireDefault(require("./preventInputBlur"));

@@ -243,7 +257,7 @@ var _size = require("./size");

var _stripDiacritics2 = _interopRequireDefault(require("./stripDiacritics"));
var _stripDiacritics = _interopRequireDefault(require("./stripDiacritics"));
var _validateSelectedPropChange2 = _interopRequireDefault(require("./validateSelectedPropChange"));
var _validateSelectedPropChange = _interopRequireDefault(require("./validateSelectedPropChange"));
var _warn2 = _interopRequireDefault(require("./warn"));
var _warn = _interopRequireDefault(require("./warn"));

@@ -250,0 +264,0 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

@@ -8,8 +8,9 @@ "use strict";

function isShown(props) {
var open = props.open,
minLength = props.minLength,
showMenu = props.showMenu,
text = props.text; // If menu visibility is controlled via props, that value takes precedence.
function isShown(_ref) {
var open = _ref.open,
minLength = _ref.minLength,
showMenu = _ref.showMenu,
text = _ref.text;
// If menu visibility is controlled via props, that value takes precedence.
if (open || open === false) {

@@ -16,0 +17,0 @@ return open;

@@ -6,3 +6,2 @@ "use strict";

});
exports.head = head;
exports.isFunction = isFunction;

@@ -13,10 +12,4 @@ exports.isString = isString;

exports.uniqueId = uniqueId;
exports.valuesPolyfill = valuesPolyfill;
exports.values = values;
var idCounter = 0;
var idCounter = 0; // eslint-disable-next-line @typescript-eslint/ban-types
function head(arr) {
return Array.isArray(arr) && arr.length ? arr[0] : undefined;
}
function isFunction(value) {

@@ -28,12 +21,12 @@ return typeof value === 'function';

return typeof value === 'string';
}
} // eslint-disable-next-line @typescript-eslint/no-empty-function
function noop() {}
function pick(obj, keys) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var result = {};
keys.forEach(function (k) {
if (Object.prototype.hasOwnProperty.call(obj, k)) {
result[k] = obj[k];
}
keys.forEach(function (key) {
result[key] = obj[key];
});

@@ -46,17 +39,2 @@ return result;

return (prefix == null ? '' : String(prefix)) + idCounter;
} // Export for testing purposes.
function valuesPolyfill(obj) {
return Object.keys(obj).reduce(function (accum, key) {
if (Object.prototype.propertyIsEnumerable.call(obj, key)) {
accum.push(obj[key]);
}
return accum;
}, []);
}
function values(obj) {
return isFunction(Object.values) ? Object.values(obj) : valuesPolyfill(obj);
}

@@ -23,4 +23,3 @@ "use strict";

*/
/* eslint-disable max-len */
// prettier-ignore
var map = [{

@@ -284,23 +283,18 @@ base: 'A',

letters: "z\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763"
}];
/* eslint-enable max-len */
}].reduce(function (acc, _ref) {
var base = _ref.base,
letters = _ref.letters;
letters.split('').forEach(function (letter) {
acc[letter] = base;
});
return acc;
}, {}); // "what?" version ... http://jsperf.com/diacritics/12
var diacriticsMap = {};
for (var ii = 0; ii < map.length; ii++) {
var letters = map[ii].letters;
for (var jj = 0; jj < letters.length; jj++) {
diacriticsMap[letters[jj]] = map[ii].base;
}
} // "what?" version ... http://jsperf.com/diacritics/12
function stripDiacritics(str) {
return str.replace(/[\u0300-\u036F]/g, '') // Remove combining diacritics
return str.normalize('NFD').replace(/[\u0300-\u036F]/g, '') // Remove combining diacritics
/* eslint-disable-next-line no-control-regex */
.replace(/[^\u0000-\u007E]/g, function (a) {
return diacriticsMap[a] || a;
return map[a] || a;
});
}

@@ -13,2 +13,3 @@ "use strict";

// @flow
var warned = {};

@@ -15,0 +16,0 @@ /**

{
"name": "react-bootstrap-typeahead",
"version": "5.2.0",
"version": "6.0.0-alpha.1",
"description": "React typeahead with Bootstrap styling",

@@ -13,3 +13,4 @@ "homepage": "http://ericgio.github.io/react-bootstrap-typeahead/",

"es/",
"lib",
"lib/",
"types/",
"LICENSE.md"

@@ -19,2 +20,3 @@ ],

"module": "es/index.js",
"types": "types/index.d.ts",
"repository": {

@@ -26,14 +28,16 @@ "type": "git",

"scripts": {
"build": "npm run clean && npm run build:css && npm run build:cjs && npm run build:es && npm run build:dist && npm run build:example",
"build": "npm run clean && npm run build:css && npm run build:cjs && npm run build:es && npm run build:dist && npm run build:types && npm run build:example",
"build:css": "node ./scripts/buildCSS.js",
"build:dist": "rollup -c",
"build:cjs": "BABEL_ENV=cjs babel src --out-dir lib",
"build:es": "BABEL_ENV=es babel src --out-dir es",
"build:cjs": "BABEL_ENV=cjs babel src --out-dir lib -x '.ts,.tsx,.js,.jsx'",
"build:es": "BABEL_ENV=es babel src --out-dir es -x '.ts,.tsx,.js,.jsx'",
"build:example": "webpack --mode production --config example/webpack.config.js",
"check": "npm run lint && npm run flow && npm test",
"clean": "rimraf coverage && rimraf css && rimraf dist && rimraf lib && rimraf es",
"build:types": "npx tsc",
"check": "npm run lint && npm run typecheck && npm run prettier && npm test",
"ci": "npm run lint && npm run typecheck && npm run prettier && npm run test:coverage",
"clean": "rimraf coverage && rimraf css && rimraf dist && rimraf lib && rimraf es && rimraf types",
"deploy-example": "node ./scripts/deployExample.js",
"flow": "flow",
"lint": "eslint . --report-unused-disable-directives",
"lint:fix": "eslint . --fix",
"prettier": "npx prettier --check .",
"postpublish": "npm run deploy-example",

@@ -43,3 +47,4 @@ "prepublishOnly": "npm run check && npm run build",

"test": "jest --silent",
"test:coverage": "jest --coverage"
"test:coverage": "jest --coverage",
"typecheck": "npx tsc --noEmit"
},

@@ -57,2 +62,3 @@ "dependencies": {

"scroll-into-view-if-needed": "^2.2.20",
"ts-loader": "^9.2.5",
"warning": "^4.0.1"

@@ -72,4 +78,4 @@ },

"@babel/preset-env": "^7.14.7",
"@babel/preset-flow": "^7.14.5",
"@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.14.5",
"@ericgio/eslint-config-react": "^6.0.0",

@@ -84,2 +90,8 @@ "@rollup/plugin-babel": "^5.0.2",

"@testing-library/user-event": "^13.1.9",
"@types/jest": "^26.0.24",
"@types/lodash.debounce": "^4.0.6",
"@types/react": "^17.0.14",
"@types/react-dom": "^17.0.9",
"@typescript-eslint/eslint-plugin": "^4.28.2",
"@typescript-eslint/parser": "^4.28.2",
"babel-eslint": "^10.0.1",

@@ -93,10 +105,7 @@ "babel-loader": "^8.0.5",

"css-loader": "^5.0.1",
"es6-promise": "^4.0.5",
"eslint": "^7.30.0",
"eslint-plugin-flowtype": "^5.8.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-react-hooks": "^4.0.4",
"flow-bin": "^0.132.0",
"gh-pages": "^3.2.3",
"husky": "^7.0.1",
"isomorphic-fetch": "^3.0.0",
"jest": "^27.0.6",

@@ -107,2 +116,3 @@ "json-loader": "^0.5.4",

"marked": "^2.1.3",
"prettier": "2.3.2",
"raw-loader": "^4.0.0",

@@ -123,2 +133,3 @@ "react": "^16.8.0",

"terser-webpack-plugin": "^5.1.4",
"typescript": "^4.3.5",
"webpack": "^5.44.0",

@@ -128,3 +139,4 @@ "webpack-cli": "^4.7.2"

"lint-staged": {
"*.js": "eslint --report-unused-disable-directives"
"*.js": "eslint --report-unused-disable-directives",
"**/*": "prettier --write --ignore-unknown"
},

@@ -131,0 +143,0 @@ "keywords": [

# React Bootstrap Typeahead
A [React](https://reactjs.org/)-based typeahead that relies on [Bootstrap](https://getbootstrap.com/) for styling and was originally inspired by Twitter's [typeahead.js](https://github.com/twitter/typeahead.js). It supports both single- and multi-selection and is compliant with [WAI-ARIA authoring practices](https://www.w3.org/TR/wai-aria-practices-1.1/#combobox). Try the [live examples](http://ericgio.github.io/react-bootstrap-typeahead/).

@@ -6,4 +7,4 @@

[![npm downloads](https://img.shields.io/npm/dm/react-bootstrap-typeahead.svg?style=flat-square)](https://www.npmjs.com/package/react-bootstrap-typeahead)
[![build status](https://img.shields.io/travis/ericgio/react-bootstrap-typeahead/master.svg?style=flat-square)](https://travis-ci.org/ericgio/react-bootstrap-typeahead)
[![Coveralls github](https://img.shields.io/coveralls/github/ericgio/react-bootstrap-typeahead/4.0.svg?style=flat-square)](https://coveralls.io/github/ericgio/react-bootstrap-typeahead)
[![CI](https://github.com/ericgio/react-bootstrap-typeahead/actions/workflows/ci.yml/badge.svg)](https://github.com/ericgio/react-bootstrap-typeahead/actions/workflows/ci.yml)
[![Codecov](https://img.shields.io/codecov/c/github/ericgio/react-bootstrap-typeahead?label=Codecov&logo=codecov&style=flat-square)](https://app.codecov.io/gh/ericgio/react-bootstrap-typeahead/)
[![MIT License](https://flat.badgen.net/github/license/ericgio/react-bootstrap-typeahead)](LICENSE.md)

@@ -18,3 +19,5 @@

```
or
```

@@ -25,2 +28,3 @@ yarn add react-bootstrap-typeahead

Include the module in your project:
```jsx

@@ -32,5 +36,7 @@ import { Typeahead } from 'react-bootstrap-typeahead'; // ES2015

#### UMD Build
Development and production builds are included in the NPM package. Alternatively, you can get them from [CDNJS](https://cdnjs.com/libraries/react-bootstrap-typeahead) or [unpkg](https://unpkg.com/react-bootstrap-typeahead/).
## Documentation
- [Basic Usage](docs/Usage.md)

@@ -45,2 +51,3 @@ - [Data](docs/Data.md)

## CSS
While the component relies primarily on Bootstrap, some additional styling is needed. You should include the provided CSS file in your project:

@@ -52,12 +59,19 @@

```
or
```html
<!-- Link as a stylesheet in your HTML -->
<link rel="stylesheet" href="https://unpkg.com/react-bootstrap-typeahead/css/Typeahead.css">
<link
rel="stylesheet"
href="https://unpkg.com/react-bootstrap-typeahead/css/Typeahead.css"
/>
```
## Examples
Try the [live examples](http://ericgio.github.io/react-bootstrap-typeahead/), which also include code samples. If you'd like to modify the examples, clone the repository and run `npm install` and `npm start` to build the example file. You can then open the HTML file locally in your browser.
You can also try out the following sandbox examples:
- [Windowing with large data sets](https://codesandbox.io/s/react-bootstrap-typeahead-windowing-example-4q1yjrzrn0)

@@ -73,3 +87,5 @@ - [Asynchronous pagination](https://codesandbox.io/s/react-bootstrap-typeahead-async-pagination-example-qg895)

## Browser Support
Recent versions of the following browsers are supported:
- Chrome

@@ -85,2 +101,3 @@ - Firefox

## License
[MIT](https://github.com/ericgio/react-bootstrap-typeahead/blob/master/LICENSE.md)

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display