autofocus |
Boolean |
opens the dropdown menu on load if set to true (defaults to false) |
cancelKeyboardEventOnSelection |
Boolean |
defaults to true, set this to fale when using tab as a delimiter for example |
className |
String |
class name for the outer element, in addition to "simple-select" |
createFromSearch |
[Item] -> String -> Item? |
implement this function to create new items on the fly, (options, search){return {label: search, value: search}} , return null to avoid option creation for the given parameters |
defaultValue |
Item |
similar to the defaultValue prop of React.DOM.Select |
delimiters |
[KeyCode] |
a collection of character keycodes that when pressed confirm selection of the highlighted item |
disabled |
Boolean |
disables interaction with the Select control |
dropdownDirection |
Int |
defaults to 1, setting it to -1 opens the dropdown upward |
editable |
Item -> String |
(item){return item.label} |
filterOptions |
[Item]-> String -> [Item] |
implement this function for custom synchronous filtering logic, (options, search) {return options} |
firstOptionIndexToHighlight |
Int -> [Item] -> Item -> String |
(index, options, value, search){return index} the default implementation simply returns the computed index passed in as the first argument, but you can use options, value & search to override this value or return -1 to select nothing by default |
groupId |
Item -> b |
(item){return item.groupId} this function is used to identify which group an option belongs to, it must return a value that matches the groupId property of an object in the groups collection |
groups |
[Group] |
collection of objects where each object must atleast have a groupId property |
groupsAsColumns |
Boolean |
display option groups in columns |
hideResetButton |
Boolean |
hides the reset button, even if the select element is not empty |
highlightedUid |
object |
the uid (unique id) of the currently highlighted option, uid of an option is obtained from the uid prop defined below |
name |
String |
defaults to undefined, provide a name property to create an hidden input element for html form serialization |
open |
Boolean |
controls the visibility of the dropdown menu |
onBlur |
Event -> Void |
({originalEvent :: e, value :: Item, open :: Boolean}){} |
onFocus |
Event -> Void |
({originalEvent :: e, value :: Item, open :: Boolean}){} |
onHighlightedUidChange |
object -> Void |
(uid){} invoked when the highlighted option changes |
onKeyboardSelectionFailed |
Int -> Void |
(keyCode){} fired when the user hits the return key on an empty list of options |
onOpenChange |
Boolean -> Void |
(open){} open is true if the dropdown opened and false if it closed |
onPaste |
Event -> Void |
invoked when the user pastes text in the input field and props.valueFromPaste is not specified |
onSearchChange |
String -> Void |
(search){} invoked when the search text in the input field changes |
onValueChange |
Item -> Void |
(selectedValue){} invoked when the user selects an option (by click on enter) |
options |
[Item] |
list of items by default each option object MUST have label & value property, otherwise you must implement the render* & filterOptions methods |
placeholder |
String |
displayed when there is no value |
renderGroupTitle |
Int -> Group -> ReactElement |
(index, group){return React.DOM.div(null)} returns a custom way for rendering the group title |
renderNoResultsFound |
Item -> String -> ReactElement |
(item, search){return React.DOM.div(null);} returns a custom way for rendering the "No results found" error |
renderOption |
Item -> ReactElement |
(item){return React.DOM.div(null);} returns a custom way for rendering each option |
renderResetButton |
() -> ReactElement |
returns a custom way for rendering the reset button |
renderToggleButton |
({open, flipped}) -> ReactElement |
returns a custom way for rendering the toggle button |
renderValue |
Item -> ReactElement |
(item){return React.DOM.div(null);} returns a custom way for rendering the selected value |
restoreOnBackspace |
Item -> String |
(item){return item.label;} implement this method if you want to go back to editing the item when the user hits the [backspace] key instead of getting removed |
search |
String |
the text displayed in the search box |
serialize |
Item -> String |
(item){ return !!item ? item.value : undefined; } the value of the hidden input element for form serialization |
style |
Object |
the CSS styles for the outer element |
tether |
Boolean |
defaults to false, set this prop to true to enable the tether library for the dropdown menu |
tether-props |
Object |
extra props passed to ReactTether for example: { parentElement: () => document.body } |
theme |
String |
default |
transitionEnter |
Boolean |
defaults to false, setting this to true animates the opening of the dropdown using the slide-* css classes |
transitionEnterTimeout |
Number |
duration specified in milliseconds, it must match the transition duration specified under the CSS class .slide-enter-active |
transitionLeave |
Boolean |
defaults to false, setting this to true animates the closing of the dropdown using the slide-* css classes |
transitionLeaveTimeout |
Number |
duration specified in milliseconds, it must match the transition duration specified under the CSS class .slide-leave-active |
uid |
(Eq e) => Item -> e |
(item){return item.value} returns a unique id for a given option, defaults to the value property |
value |
Item |
the selected value, i.e. one of the objects in the options array |
valueFromPaste |
[Item] -> Item -> String -> Item |
(options, value, pastedText){} invoked when the user pastes text in the input field, here you can convert the pasted text into an item that will then show up as selected |