Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-select-plus

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-select-plus - npm Package Compare versions

Comparing version 1.0.0-beta13 to 1.0.0-beta13.patch1

examples/src/components/GithubUsers.js

192

.publish/bundle.js

@@ -66,3 +66,4 @@ require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){

minimumInput: _react2['default'].PropTypes.number, // the minimum number of characters that trigger loadOptions
noResultsText: _react2['default'].PropTypes.string, // placeholder displayed when there are no matching search results (shared with Select)
noResultsText: stringOrNode, // placeholder displayed when there are no matching search results (shared with Select)
onInputChange: _react2['default'].PropTypes.func, // onInputChange handler: function (inputValue) {}
placeholder: stringOrNode, // field placeholder, displayed when there's no value (shared with Select)

@@ -129,2 +130,9 @@ searchPromptText: _react2['default'].PropTypes.string, // label to prompt for search input

loadOptions: function loadOptions(input) {
if (this.props.onInputChange) {
var nextState = this.props.onInputChange(input);
// Note: != used deliberately here to catch undefined and null
if (nextState != null) {
input = '' + nextState;
}
}
if (this.props.ignoreAccents) input = (0, _utilsStripDiacritics2['default'])(input);

@@ -593,3 +601,3 @@ if (this.props.ignoreCase) input = input.toLowerCase();

allowCreate: _react2['default'].PropTypes.bool, // whether to allow creation of new entries
autoBlur: _react2['default'].PropTypes.bool,
autoBlur: _react2['default'].PropTypes.bool, // automatically blur the component when an option is selected
autofocus: _react2['default'].PropTypes.bool, // autofocus the component on mount

@@ -611,2 +619,3 @@ autosize: _react2['default'].PropTypes.bool, // whether to enable autosizing or not

inputProps: _react2['default'].PropTypes.object, // custom attributes for the Input
inputRenderer: _react2['default'].PropTypes.func, // returns a custom input component
isLoading: _react2['default'].PropTypes.bool, // whether the Select is loading externally or not (such as options being loaded)

@@ -636,2 +645,3 @@ isOpen: _react2['default'].PropTypes.bool, // whether the Select dropdown menu is open or not

openAfterFocus: _react2['default'].PropTypes.bool, // boolean to enable opening dropdown when focused
openOnFocus: _react2['default'].PropTypes.bool, // always open options menu on focus
optionClassName: _react2['default'].PropTypes.string, // additional class(es) to apply to the <Option /> elements

@@ -645,2 +655,3 @@ optionComponent: _react2['default'].PropTypes.func, // option component to render in dropdown

required: _react2['default'].PropTypes.bool, // applies HTML5 required attribute when needed
resetValue: _react2['default'].PropTypes.any, // value to use when you clear the control
scrollMenuIntoView: _react2['default'].PropTypes.bool, // boolean to enable the viewport to shift so that the full menu fully visible when engaged

@@ -651,2 +662,3 @@ searchable: _react2['default'].PropTypes.bool, // whether to enable searching feature or not

tabIndex: _react2['default'].PropTypes.string, // optional tab index of the control
tabSelectsValue: _react2['default'].PropTypes.bool, // whether to treat tabbing out while focused to be value selection
value: _react2['default'].PropTypes.any, // initial field value

@@ -693,5 +705,7 @@ valueComponent: _react2['default'].PropTypes.func, // value component to render

required: false,
resetValue: null,
scrollMenuIntoView: true,
searchable: true,
simpleValue: false,
tabSelectsValue: true,
valueComponent: _Value2['default'],

@@ -709,3 +723,3 @@ valueKey: 'value'

isPseudoFocused: false,
required: this.props.required && this.handleRequired(this.props.value, this.props.multi)
required: false
};

@@ -716,2 +730,10 @@ },

this._flatOptions = this.flattenOptions(this.props.options);
var valueArray = this.getValueArray(this.props.value);
if (this.props.required) {
this.setState({
required: this.handleRequired(valueArray[0], this.props.multi)
});
}
},

@@ -729,5 +751,8 @@

}
if (this.props.value !== nextProps.value && nextProps.required) {
var valueArray = this.getValueArray(nextProps.value);
if (nextProps.required) {
this.setState({
required: this.handleRequired(nextProps.value, nextProps.multi)
required: this.handleRequired(valueArray[0], nextProps.multi)
});

@@ -748,4 +773,5 @@ }

var focusedOptionNode = _reactDom2['default'].findDOMNode(this.refs.focused);
var focusedOptionParent = focusedOptionNode.parentElement;
var menuNode = _reactDom2['default'].findDOMNode(this.refs.menu);
menuNode.scrollTop = focusedOptionNode.offsetTop;
menuNode.scrollTop = focusedOptionParent.className === 'Select-menu' ? focusedOptionNode.offsetTop : focusedOptionParent.offsetTop;
this.hasScrolledToOption = true;

@@ -756,5 +782,2 @@ } else if (!this.state.isOpen) {

if (prevState.inputValue !== this.state.inputValue && this.props.onInputChange) {
this.props.onInputChange(this.state.inputValue);
}
if (this._scrollToFocusedOptionOnUpdate && this.refs.focused && this.refs.menu) {

@@ -773,3 +796,3 @@ this._scrollToFocusedOptionOnUpdate = false;

if (window.innerHeight < menuContainerRect.bottom + this.props.menuBuffer) {
window.scrollTo(0, window.scrollY + menuContainerRect.bottom + this.props.menuBuffer - window.innerHeight);
window.scrollBy(0, menuContainerRect.bottom + this.props.menuBuffer - window.innerHeight);
}

@@ -898,3 +921,3 @@ }

handleInputFocus: function handleInputFocus(event) {
var isOpen = this.state.isOpen || this._openAfterFocus;
var isOpen = this.state.isOpen || this._openAfterFocus || this.props.openOnFocus;
if (this.props.onFocus) {

@@ -911,3 +934,4 @@ this.props.onFocus(event);

handleInputBlur: function handleInputBlur(event) {
if (this.refs.menu && document.activeElement.isEqualNode(this.refs.menu)) {
if (this.refs.menu && document.activeElement === this.refs.menu) {
this.focus();
return;

@@ -931,6 +955,14 @@ }

handleInputChange: function handleInputChange(event) {
var newInputValue = event.target.value;
if (this.state.inputValue !== event.target.value && this.props.onInputChange) {
var nextState = this.props.onInputChange(newInputValue);
// Note: != used deliberately here to catch undefined and null
if (nextState != null) {
newInputValue = '' + nextState;
}
}
this.setState({
isOpen: true,
isPseudoFocused: false,
inputValue: event.target.value
inputValue: newInputValue
});

@@ -951,3 +983,3 @@ },

// tab
if (event.shiftKey || !this.state.isOpen) {
if (event.shiftKey || !this.state.isOpen || !this.props.tabSelectsValue) {
return;

@@ -1017,4 +1049,3 @@ }

getValueArray: function getValueArray() {
var value = this.props.value;
getValueArray: function getValueArray(value) {
if (this.props.multi) {

@@ -1094,3 +1125,3 @@ if (typeof value === 'string') value = value.split(this.props.delimiter);

addValue: function addValue(value) {
var valueArray = this.getValueArray();
var valueArray = this.getValueArray(this.props.value);
this.setValue(valueArray.concat(value));

@@ -1100,3 +1131,3 @@ },

popValue: function popValue() {
var valueArray = this.getValueArray();
var valueArray = this.getValueArray(this.props.value);
if (!valueArray.length) return;

@@ -1108,3 +1139,3 @@ if (valueArray[valueArray.length - 1].clearableValue === false) return;

removeValue: function removeValue(value) {
var valueArray = this.getValueArray();
var valueArray = this.getValueArray(this.props.value);
this.setValue(valueArray.filter(function (i) {

@@ -1124,3 +1155,3 @@ return i !== value;

event.preventDefault();
this.setValue(null);
this.setValue(this.props.resetValue);
this.setState({

@@ -1242,38 +1273,42 @@ isOpen: false,

renderInput: function renderInput(valueArray) {
var className = (0, _classnames2['default'])('Select-input', this.props.inputProps.className);
if (this.props.disabled || !this.props.searchable) {
return _react2['default'].createElement('div', _extends({}, this.props.inputProps, {
className: className,
tabIndex: this.props.tabIndex || 0,
onBlur: this.handleInputBlur,
onFocus: this.handleInputFocus,
ref: 'input',
style: { border: 0, width: 1, display: 'inline-block' } }));
if (this.props.inputRenderer) {
return this.props.inputRenderer();
} else {
var className = (0, _classnames2['default'])('Select-input', this.props.inputProps.className);
if (this.props.disabled || !this.props.searchable) {
return _react2['default'].createElement('div', _extends({}, this.props.inputProps, {
className: className,
tabIndex: this.props.tabIndex || 0,
onBlur: this.handleInputBlur,
onFocus: this.handleInputFocus,
ref: 'input',
style: { border: 0, width: 1, display: 'inline-block' } }));
}
if (this.props.autosize) {
return _react2['default'].createElement(_reactInputAutosize2['default'], _extends({}, this.props.inputProps, {
className: className,
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
minWidth: '5',
ref: 'input',
required: this.state.required,
value: this.state.inputValue
}));
}
return _react2['default'].createElement(
'div',
{ className: className },
_react2['default'].createElement('input', _extends({}, this.props.inputProps, {
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
ref: 'input',
required: this.state.required,
value: this.state.inputValue
}))
);
}
if (this.props.autosize) {
return _react2['default'].createElement(_reactInputAutosize2['default'], _extends({}, this.props.inputProps, {
className: className,
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
minWidth: '5',
ref: 'input',
required: this.state.required,
value: this.state.inputValue
}));
}
return _react2['default'].createElement(
'div',
{ className: className },
_react2['default'].createElement('input', _extends({}, this.props.inputProps, {
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
ref: 'input',
required: this.state.required,
value: this.state.inputValue
}))
);
},

@@ -1492,4 +1527,29 @@

renderOuter: function renderOuter(options, valueArray, focusedOption) {
var Dropdown = this.props.dropdownComponent;
var menu = this.renderMenu(options, valueArray, focusedOption);
if (!menu) {
return null;
}
return _react2['default'].createElement(
Dropdown,
null,
_react2['default'].createElement(
'div',
{ ref: 'menuContainer', className: 'Select-menu-outer', style: this.props.menuContainerStyle },
_react2['default'].createElement(
'div',
{ ref: 'menu', className: 'Select-menu',
style: this.props.menuStyle,
onScroll: this.handleMenuScroll,
onMouseDown: this.handleMouseDownOnMenu },
menu
)
)
);
},
render: function render() {
var valueArray = this.getValueArray();
var valueArray = this.getValueArray(this.props.value);
var options = this.filterOptions(this.props.options || [], this.props.multi ? valueArray : null);

@@ -1502,2 +1562,3 @@ this._visibleOptions = this.flattenOptions(options);

'Select--multi': this.props.multi,
'Select--single': !this.props.multi,
'is-disabled': this.props.disabled,

@@ -1511,3 +1572,3 @@ 'is-focused': this.state.isFocused,

});
var Dropdown = this.props.dropdownComponent;
return _react2['default'].createElement(

@@ -1533,18 +1594,3 @@ 'div',

),
isOpen ? _react2['default'].createElement(
Dropdown,
null,
_react2['default'].createElement(
'div',
{ ref: 'menuContainer', className: 'Select-menu-outer', style: this.props.menuContainerStyle },
_react2['default'].createElement(
'div',
{ ref: 'menu', className: 'Select-menu',
style: this.props.menuStyle,
onScroll: this.handleMenuScroll,
onMouseDown: this.handleMouseDownOnMenu },
this.renderMenu(options, !this.props.multi ? valueArray : null, focusedOption)
)
)
) : null
isOpen ? this.renderOuter(options, !this.props.multi ? valueArray : null, focusedOption) : null
);

@@ -1551,0 +1597,0 @@ }

@@ -67,3 +67,4 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Select = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){

minimumInput: _react2['default'].PropTypes.number, // the minimum number of characters that trigger loadOptions
noResultsText: _react2['default'].PropTypes.string, // placeholder displayed when there are no matching search results (shared with Select)
noResultsText: stringOrNode, // placeholder displayed when there are no matching search results (shared with Select)
onInputChange: _react2['default'].PropTypes.func, // onInputChange handler: function (inputValue) {}
placeholder: stringOrNode, // field placeholder, displayed when there's no value (shared with Select)

@@ -130,2 +131,9 @@ searchPromptText: _react2['default'].PropTypes.string, // label to prompt for search input

loadOptions: function loadOptions(input) {
if (this.props.onInputChange) {
var nextState = this.props.onInputChange(input);
// Note: != used deliberately here to catch undefined and null
if (nextState != null) {
input = '' + nextState;
}
}
if (this.props.ignoreAccents) input = (0, _utilsStripDiacritics2['default'])(input);

@@ -484,3 +492,3 @@ if (this.props.ignoreCase) input = input.toLowerCase();

allowCreate: _react2['default'].PropTypes.bool, // whether to allow creation of new entries
autoBlur: _react2['default'].PropTypes.bool,
autoBlur: _react2['default'].PropTypes.bool, // automatically blur the component when an option is selected
autofocus: _react2['default'].PropTypes.bool, // autofocus the component on mount

@@ -502,2 +510,3 @@ autosize: _react2['default'].PropTypes.bool, // whether to enable autosizing or not

inputProps: _react2['default'].PropTypes.object, // custom attributes for the Input
inputRenderer: _react2['default'].PropTypes.func, // returns a custom input component
isLoading: _react2['default'].PropTypes.bool, // whether the Select is loading externally or not (such as options being loaded)

@@ -527,2 +536,3 @@ isOpen: _react2['default'].PropTypes.bool, // whether the Select dropdown menu is open or not

openAfterFocus: _react2['default'].PropTypes.bool, // boolean to enable opening dropdown when focused
openOnFocus: _react2['default'].PropTypes.bool, // always open options menu on focus
optionClassName: _react2['default'].PropTypes.string, // additional class(es) to apply to the <Option /> elements

@@ -536,2 +546,3 @@ optionComponent: _react2['default'].PropTypes.func, // option component to render in dropdown

required: _react2['default'].PropTypes.bool, // applies HTML5 required attribute when needed
resetValue: _react2['default'].PropTypes.any, // value to use when you clear the control
scrollMenuIntoView: _react2['default'].PropTypes.bool, // boolean to enable the viewport to shift so that the full menu fully visible when engaged

@@ -542,2 +553,3 @@ searchable: _react2['default'].PropTypes.bool, // whether to enable searching feature or not

tabIndex: _react2['default'].PropTypes.string, // optional tab index of the control
tabSelectsValue: _react2['default'].PropTypes.bool, // whether to treat tabbing out while focused to be value selection
value: _react2['default'].PropTypes.any, // initial field value

@@ -584,5 +596,7 @@ valueComponent: _react2['default'].PropTypes.func, // value component to render

required: false,
resetValue: null,
scrollMenuIntoView: true,
searchable: true,
simpleValue: false,
tabSelectsValue: true,
valueComponent: _Value2['default'],

@@ -600,3 +614,3 @@ valueKey: 'value'

isPseudoFocused: false,
required: this.props.required && this.handleRequired(this.props.value, this.props.multi)
required: false
};

@@ -607,2 +621,10 @@ },

this._flatOptions = this.flattenOptions(this.props.options);
var valueArray = this.getValueArray(this.props.value);
if (this.props.required) {
this.setState({
required: this.handleRequired(valueArray[0], this.props.multi)
});
}
},

@@ -620,5 +642,8 @@

}
if (this.props.value !== nextProps.value && nextProps.required) {
var valueArray = this.getValueArray(nextProps.value);
if (nextProps.required) {
this.setState({
required: this.handleRequired(nextProps.value, nextProps.multi)
required: this.handleRequired(valueArray[0], nextProps.multi)
});

@@ -639,4 +664,5 @@ }

var focusedOptionNode = _reactDom2['default'].findDOMNode(this.refs.focused);
var focusedOptionParent = focusedOptionNode.parentElement;
var menuNode = _reactDom2['default'].findDOMNode(this.refs.menu);
menuNode.scrollTop = focusedOptionNode.offsetTop;
menuNode.scrollTop = focusedOptionParent.className === 'Select-menu' ? focusedOptionNode.offsetTop : focusedOptionParent.offsetTop;
this.hasScrolledToOption = true;

@@ -647,5 +673,2 @@ } else if (!this.state.isOpen) {

if (prevState.inputValue !== this.state.inputValue && this.props.onInputChange) {
this.props.onInputChange(this.state.inputValue);
}
if (this._scrollToFocusedOptionOnUpdate && this.refs.focused && this.refs.menu) {

@@ -664,3 +687,3 @@ this._scrollToFocusedOptionOnUpdate = false;

if (window.innerHeight < menuContainerRect.bottom + this.props.menuBuffer) {
window.scrollTo(0, window.scrollY + menuContainerRect.bottom + this.props.menuBuffer - window.innerHeight);
window.scrollBy(0, menuContainerRect.bottom + this.props.menuBuffer - window.innerHeight);
}

@@ -789,3 +812,3 @@ }

handleInputFocus: function handleInputFocus(event) {
var isOpen = this.state.isOpen || this._openAfterFocus;
var isOpen = this.state.isOpen || this._openAfterFocus || this.props.openOnFocus;
if (this.props.onFocus) {

@@ -802,3 +825,4 @@ this.props.onFocus(event);

handleInputBlur: function handleInputBlur(event) {
if (this.refs.menu && document.activeElement.isEqualNode(this.refs.menu)) {
if (this.refs.menu && document.activeElement === this.refs.menu) {
this.focus();
return;

@@ -822,6 +846,14 @@ }

handleInputChange: function handleInputChange(event) {
var newInputValue = event.target.value;
if (this.state.inputValue !== event.target.value && this.props.onInputChange) {
var nextState = this.props.onInputChange(newInputValue);
// Note: != used deliberately here to catch undefined and null
if (nextState != null) {
newInputValue = '' + nextState;
}
}
this.setState({
isOpen: true,
isPseudoFocused: false,
inputValue: event.target.value
inputValue: newInputValue
});

@@ -842,3 +874,3 @@ },

// tab
if (event.shiftKey || !this.state.isOpen) {
if (event.shiftKey || !this.state.isOpen || !this.props.tabSelectsValue) {
return;

@@ -908,4 +940,3 @@ }

getValueArray: function getValueArray() {
var value = this.props.value;
getValueArray: function getValueArray(value) {
if (this.props.multi) {

@@ -985,3 +1016,3 @@ if (typeof value === 'string') value = value.split(this.props.delimiter);

addValue: function addValue(value) {
var valueArray = this.getValueArray();
var valueArray = this.getValueArray(this.props.value);
this.setValue(valueArray.concat(value));

@@ -991,3 +1022,3 @@ },

popValue: function popValue() {
var valueArray = this.getValueArray();
var valueArray = this.getValueArray(this.props.value);
if (!valueArray.length) return;

@@ -999,3 +1030,3 @@ if (valueArray[valueArray.length - 1].clearableValue === false) return;

removeValue: function removeValue(value) {
var valueArray = this.getValueArray();
var valueArray = this.getValueArray(this.props.value);
this.setValue(valueArray.filter(function (i) {

@@ -1015,3 +1046,3 @@ return i !== value;

event.preventDefault();
this.setValue(null);
this.setValue(this.props.resetValue);
this.setState({

@@ -1133,38 +1164,42 @@ isOpen: false,

renderInput: function renderInput(valueArray) {
var className = (0, _classnames2['default'])('Select-input', this.props.inputProps.className);
if (this.props.disabled || !this.props.searchable) {
return _react2['default'].createElement('div', _extends({}, this.props.inputProps, {
className: className,
tabIndex: this.props.tabIndex || 0,
onBlur: this.handleInputBlur,
onFocus: this.handleInputFocus,
ref: 'input',
style: { border: 0, width: 1, display: 'inline-block' } }));
if (this.props.inputRenderer) {
return this.props.inputRenderer();
} else {
var className = (0, _classnames2['default'])('Select-input', this.props.inputProps.className);
if (this.props.disabled || !this.props.searchable) {
return _react2['default'].createElement('div', _extends({}, this.props.inputProps, {
className: className,
tabIndex: this.props.tabIndex || 0,
onBlur: this.handleInputBlur,
onFocus: this.handleInputFocus,
ref: 'input',
style: { border: 0, width: 1, display: 'inline-block' } }));
}
if (this.props.autosize) {
return _react2['default'].createElement(_reactInputAutosize2['default'], _extends({}, this.props.inputProps, {
className: className,
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
minWidth: '5',
ref: 'input',
required: this.state.required,
value: this.state.inputValue
}));
}
return _react2['default'].createElement(
'div',
{ className: className },
_react2['default'].createElement('input', _extends({}, this.props.inputProps, {
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
ref: 'input',
required: this.state.required,
value: this.state.inputValue
}))
);
}
if (this.props.autosize) {
return _react2['default'].createElement(_reactInputAutosize2['default'], _extends({}, this.props.inputProps, {
className: className,
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
minWidth: '5',
ref: 'input',
required: this.state.required,
value: this.state.inputValue
}));
}
return _react2['default'].createElement(
'div',
{ className: className },
_react2['default'].createElement('input', _extends({}, this.props.inputProps, {
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
ref: 'input',
required: this.state.required,
value: this.state.inputValue
}))
);
},

@@ -1383,4 +1418,29 @@

renderOuter: function renderOuter(options, valueArray, focusedOption) {
var Dropdown = this.props.dropdownComponent;
var menu = this.renderMenu(options, valueArray, focusedOption);
if (!menu) {
return null;
}
return _react2['default'].createElement(
Dropdown,
null,
_react2['default'].createElement(
'div',
{ ref: 'menuContainer', className: 'Select-menu-outer', style: this.props.menuContainerStyle },
_react2['default'].createElement(
'div',
{ ref: 'menu', className: 'Select-menu',
style: this.props.menuStyle,
onScroll: this.handleMenuScroll,
onMouseDown: this.handleMouseDownOnMenu },
menu
)
)
);
},
render: function render() {
var valueArray = this.getValueArray();
var valueArray = this.getValueArray(this.props.value);
var options = this.filterOptions(this.props.options || [], this.props.multi ? valueArray : null);

@@ -1393,2 +1453,3 @@ this._visibleOptions = this.flattenOptions(options);

'Select--multi': this.props.multi,
'Select--single': !this.props.multi,
'is-disabled': this.props.disabled,

@@ -1402,3 +1463,3 @@ 'is-focused': this.state.isFocused,

});
var Dropdown = this.props.dropdownComponent;
return _react2['default'].createElement(

@@ -1424,18 +1485,3 @@ 'div',

),
isOpen ? _react2['default'].createElement(
Dropdown,
null,
_react2['default'].createElement(
'div',
{ ref: 'menuContainer', className: 'Select-menu-outer', style: this.props.menuContainerStyle },
_react2['default'].createElement(
'div',
{ ref: 'menu', className: 'Select-menu',
style: this.props.menuStyle,
onScroll: this.handleMenuScroll,
onMouseDown: this.handleMouseDownOnMenu },
this.renderMenu(options, !this.props.multi ? valueArray : null, focusedOption)
)
)
) : null
isOpen ? this.renderOuter(options, !this.props.multi ? valueArray : null, focusedOption) : null
);

@@ -1442,0 +1488,0 @@ }

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

!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Select=e()}}(function(){return function e(t,u,s){function o(i,r){if(!u[i]){if(!t[i]){var a="function"==typeof require&&require;if(!r&&a)return a(i,!0);if(n)return n(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var p=u[i]={exports:{}};t[i][0].call(p.exports,function(e){var u=t[i][1][e];return o(u?u:e)},p,p.exports,e,t,u,s)}return u[i].exports}for(var n="function"==typeof require&&require,i=0;i<s.length;i++)o(s[i]);return o}({1:[function(e,t,u){(function(u){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}function o(e){return e&&"object"!=typeof e&&(e={}),e?e:null}function n(e,t,u){e&&(e[t]=u)}function i(e,t){if(e)for(var u=t.length;u>=0;--u){var s=t.slice(0,u);if(e[s]&&(t===s||e[s].complete))return e[s]}}function r(e,t){return e&&"function"==typeof e.then?e.then(function(e){t(null,e)},function(e){t(e)}):void 0}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var u=arguments[t];for(var s in u)Object.prototype.hasOwnProperty.call(u,s)&&(e[s]=u[s])}return e},l="undefined"!=typeof window?window.React:"undefined"!=typeof u?u.React:null,p=s(l),d=e("./Select"),c=s(d),f=e("./utils/stripDiacritics"),h=s(f),E=0,g=p["default"].PropTypes.oneOfType([p["default"].PropTypes.string,p["default"].PropTypes.node]),b=p["default"].createClass({displayName:"Async",propTypes:{cache:p["default"].PropTypes.any,ignoreAccents:p["default"].PropTypes.bool,ignoreCase:p["default"].PropTypes.bool,isLoading:p["default"].PropTypes.bool,loadOptions:p["default"].PropTypes.func.isRequired,loadingPlaceholder:p["default"].PropTypes.string,minimumInput:p["default"].PropTypes.number,noResultsText:g,onInputChange:p["default"].PropTypes.func,placeholder:g,searchPromptText:p["default"].PropTypes.string,searchingText:p["default"].PropTypes.string},getDefaultProps:function(){return{cache:!0,ignoreAccents:!0,ignoreCase:!0,loadingPlaceholder:"Loading...",minimumInput:0,searchingText:"Searching...",searchPromptText:"Type to search"}},getInitialState:function(){return{cache:o(this.props.cache),isLoading:!1,options:[]}},componentWillMount:function(){this._lastInput=""},componentDidMount:function(){this.loadOptions("")},componentWillReceiveProps:function(e){e.cache!==this.props.cache&&this.setState({cache:o(e.cache)})},focus:function(){this.refs.select.focus()},resetState:function(){this._currentRequestId=-1,this.setState({isLoading:!1,options:[]})},getResponseHandler:function(e){var t=this,u=this._currentRequestId=E++;return function(s,o){if(s)throw s;t.isMounted()&&(n(t.state.cache,e,o),u===t._currentRequestId&&t.setState({isLoading:!1,options:o&&o.options||[]}))}},loadOptions:function(e){if(this.props.onInputChange){var t=this.props.onInputChange(e);null!=t&&(e=""+t)}if(this.props.ignoreAccents&&(e=(0,h["default"])(e)),this.props.ignoreCase&&(e=e.toLowerCase()),this._lastInput=e,e.length<this.props.minimumInput)return this.resetState();var u=i(this.state.cache,e);if(u)return this.setState({options:u.options});this.setState({isLoading:!0});var s=this.getResponseHandler(e);return r(this.props.loadOptions(e,s),s)},render:function(){var e=this.props.noResultsText,t=this.state,u=t.isLoading,s=t.options;this.props.isLoading&&(u=!0);var o=u?this.props.loadingPlaceholder:this.props.placeholder;return s.length||(this._lastInput.length<this.props.minimumInput&&(e=this.props.searchPromptText),u&&(e=this.props.searchingText)),p["default"].createElement(c["default"],a({},this.props,{ref:"select",isLoading:u,noResultsText:e,onInputChange:this.loadOptions,options:s,placeholder:o}))}});t.exports=b}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./Select":5,"./utils/stripDiacritics":7}],2:[function(e,t,u){(function(e){"use strict";function u(e){return e&&e.__esModule?e:{"default":e}}var s="undefined"!=typeof window?window.React:"undefined"!=typeof e?e.React:null,o=u(s),n=o["default"].createClass({displayName:"Dropdown",propTypes:{children:o["default"].PropTypes.node},render:function(){return this.props.children}});t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(e,t,u){(function(e){"use strict";function u(e){return e&&e.__esModule?e:{"default":e}}var s="undefined"!=typeof window?window.React:"undefined"!=typeof e?e.React:null,o=u(s),n="undefined"!=typeof window?window.classNames:"undefined"!=typeof e?e.classNames:null,i=u(n),r=o["default"].createClass({displayName:"Option",propTypes:{children:o["default"].PropTypes.node,className:o["default"].PropTypes.string,isDisabled:o["default"].PropTypes.bool,isFocused:o["default"].PropTypes.bool,isSelected:o["default"].PropTypes.bool,onFocus:o["default"].PropTypes.func,onSelect:o["default"].PropTypes.func,onUnfocus:o["default"].PropTypes.func,option:o["default"].PropTypes.object.isRequired},blockEvent:function(e){e.preventDefault(),e.stopPropagation(),"A"===e.target.tagName&&"href"in e.target&&(e.target.target?window.open(e.target.href,e.target.target):window.location.href=e.target.href)},handleMouseDown:function(e){e.preventDefault(),e.stopPropagation(),this.props.onSelect(this.props.option,e)},handleMouseEnter:function(e){this.onFocus(e)},handleMouseMove:function(e){this.onFocus(e)},handleTouchEnd:function(e){this.dragging||this.handleMouseDown(e)},handleTouchMove:function(e){this.dragging=!0},handleTouchStart:function(e){this.dragging=!1},onFocus:function(e){this.props.isFocused||this.props.onFocus(this.props.option,e)},render:function(){var e=this.props.option,t=(0,i["default"])(this.props.className,e.className);return e.disabled?o["default"].createElement("div",{className:t,onMouseDown:this.blockEvent,onClick:this.blockEvent},this.props.children):o["default"].createElement("div",{className:t,style:e.style,onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd,title:e.title},this.props.children)}});t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,u){(function(e){"use strict";function u(e){return e&&e.__esModule?e:{"default":e}}var s="undefined"!=typeof window?window.React:"undefined"!=typeof e?e.React:null,o=u(s),n="undefined"!=typeof window?window.classNames:"undefined"!=typeof e?e.classNames:null,i=u(n),r=o["default"].createClass({displayName:"OptionGroup",propTypes:{children:o["default"].PropTypes.any,className:o["default"].PropTypes.string,label:o["default"].PropTypes.node,option:o["default"].PropTypes.object.isRequired},blockEvent:function(e){e.preventDefault(),e.stopPropagation(),"A"===e.target.tagName&&"href"in e.target&&(e.target.target?window.open(e.target.href,e.target.target):window.location.href=e.target.href)},handleMouseDown:function(e){e.preventDefault(),e.stopPropagation()},handleTouchEnd:function(e){this.dragging||this.handleMouseDown(e)},handleTouchMove:function(e){this.dragging=!0},handleTouchStart:function(e){this.dragging=!1},render:function(){var e=this.props.option,t=(0,i["default"])(this.props.className,e.className);return e.disabled?o["default"].createElement("div",{className:t,onMouseDown:this.blockEvent,onClick:this.blockEvent},this.props.children):o["default"].createElement("div",{className:t,style:e.style,onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd,title:e.title},o["default"].createElement("div",{className:"Select-option-group-label"},this.props.label),this.props.children)}});t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],5:[function(e,t,u){(function(s){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t,u){return t in e?Object.defineProperty(e,t,{value:u,enumerable:!0,configurable:!0,writable:!0}):e[t]=u,e}function i(e){var t={};for(var u in e)e.hasOwnProperty(u)&&(t[u]=e[u]);return t}function r(e){return"object"==typeof e?JSON.stringify(e):e}Object.defineProperty(u,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var u=arguments[t];for(var s in u)Object.prototype.hasOwnProperty.call(u,s)&&(e[s]=u[s])}return e},l="undefined"!=typeof window?window.React:"undefined"!=typeof s?s.React:null,p=o(l),d="undefined"!=typeof window?window.ReactDOM:"undefined"!=typeof s?s.ReactDOM:null,c=o(d),f="undefined"!=typeof window?window.AutosizeInput:"undefined"!=typeof s?s.AutosizeInput:null,h=o(f),E="undefined"!=typeof window?window.classNames:"undefined"!=typeof s?s.classNames:null,g=o(E),b=e("./utils/stripDiacritics"),y=o(b),F=e("./Async"),m=o(F),v=e("./Dropdown"),A=o(v),C=e("./Option"),T=o(C),D=e("./OptionGroup"),w=o(D),P=e("./Value"),O=o(P),B=p["default"].PropTypes.oneOfType([p["default"].PropTypes.string,p["default"].PropTypes.node]),S=p["default"].createClass({displayName:"Select",propTypes:{addLabelText:p["default"].PropTypes.string,allowCreate:p["default"].PropTypes.bool,autoBlur:p["default"].PropTypes.bool,autofocus:p["default"].PropTypes.bool,autosize:p["default"].PropTypes.bool,backspaceRemoves:p["default"].PropTypes.bool,className:p["default"].PropTypes.string,clearAllText:B,clearValueText:B,clearable:p["default"].PropTypes.bool,delimiter:p["default"].PropTypes.string,disabled:p["default"].PropTypes.bool,dropdownComponent:p["default"].PropTypes.func,escapeClearsValue:p["default"].PropTypes.bool,filterOption:p["default"].PropTypes.func,filterOptions:p["default"].PropTypes.any,ignoreAccents:p["default"].PropTypes.bool,ignoreCase:p["default"].PropTypes.bool,inputProps:p["default"].PropTypes.object,inputRenderer:p["default"].PropTypes.func,isLoading:p["default"].PropTypes.bool,isOpen:p["default"].PropTypes.bool,joinValues:p["default"].PropTypes.bool,labelKey:p["default"].PropTypes.string,matchPos:p["default"].PropTypes.string,matchProp:p["default"].PropTypes.string,menuBuffer:p["default"].PropTypes.number,menuContainerStyle:p["default"].PropTypes.object,menuRenderer:p["default"].PropTypes.func,menuStyle:p["default"].PropTypes.object,multi:p["default"].PropTypes.bool,name:p["default"].PropTypes.string,newOptionCreator:p["default"].PropTypes.func,noResultsText:B,onBlur:p["default"].PropTypes.func,onBlurResetsInput:p["default"].PropTypes.bool,onChange:p["default"].PropTypes.func,onClose:p["default"].PropTypes.func,onFocus:p["default"].PropTypes.func,onInputChange:p["default"].PropTypes.func,onMenuScrollToBottom:p["default"].PropTypes.func,onOpen:p["default"].PropTypes.func,onValueClick:p["default"].PropTypes.func,openAfterFocus:p["default"].PropTypes.bool,openOnFocus:p["default"].PropTypes.bool,optionClassName:p["default"].PropTypes.string,optionComponent:p["default"].PropTypes.func,optionGroupComponent:p["default"].PropTypes.func,optionRenderer:p["default"].PropTypes.func,options:p["default"].PropTypes.array,placeholder:B,renderInvalidValues:p["default"].PropTypes.bool,required:p["default"].PropTypes.bool,resetValue:p["default"].PropTypes.any,scrollMenuIntoView:p["default"].PropTypes.bool,searchable:p["default"].PropTypes.bool,simpleValue:p["default"].PropTypes.bool,style:p["default"].PropTypes.object,tabIndex:p["default"].PropTypes.string,tabSelectsValue:p["default"].PropTypes.bool,value:p["default"].PropTypes.any,valueComponent:p["default"].PropTypes.func,valueKey:p["default"].PropTypes.string,valueRenderer:p["default"].PropTypes.func,wrapperStyle:p["default"].PropTypes.object},statics:{Async:m["default"]},getDefaultProps:function(){return{addLabelText:'Add "{label}"?',autosize:!0,allowCreate:!1,backspaceRemoves:!0,clearable:!0,clearAllText:"Clear all",clearValueText:"Clear value",delimiter:",",disabled:!1,dropdownComponent:A["default"],escapeClearsValue:!0,filterOptions:!0,ignoreAccents:!0,ignoreCase:!0,inputProps:{},isLoading:!1,joinValues:!1,labelKey:"label",matchPos:"any",matchProp:"any",menuBuffer:0,multi:!1,noResultsText:"No results found",onBlurResetsInput:!0,openAfterFocus:!1,optionComponent:T["default"],optionGroupComponent:w["default"],placeholder:"Select...",renderInvalidValues:!1,required:!1,resetValue:null,scrollMenuIntoView:!0,searchable:!0,simpleValue:!1,tabSelectsValue:!0,valueComponent:O["default"],valueKey:"value"}},getInitialState:function(){return{inputValue:"",isFocused:!1,isLoading:!1,isOpen:!1,isPseudoFocused:!1,required:!1}},componentWillMount:function(){this._flatOptions=this.flattenOptions(this.props.options);var e=this.getValueArray(this.props.value);this.props.required&&this.setState({required:this.handleRequired(e[0],this.props.multi)})},componentDidMount:function(){this.props.autofocus&&this.focus()},componentWillReceiveProps:function(e){e.options!==this.props.options&&(this._flatOptions=this.flattenOptions(e.options));var t=this.getValueArray(e.value);e.required&&this.setState({required:this.handleRequired(t[0],e.multi)})},componentWillUpdate:function(e,t){if(t.isOpen!==this.state.isOpen){var u=t.isOpen?e.onOpen:e.onClose;u&&u()}},componentDidUpdate:function(e,t){if(this.refs.menu&&this.refs.focused&&this.state.isOpen&&!this.hasScrolledToOption){var u=c["default"].findDOMNode(this.refs.focused),s=u.parentElement,o=c["default"].findDOMNode(this.refs.menu);o.scrollTop="Select-menu"===s.className?u.offsetTop:s.offsetTop,this.hasScrolledToOption=!0}else this.state.isOpen||(this.hasScrolledToOption=!1);if(this._scrollToFocusedOptionOnUpdate&&this.refs.focused&&this.refs.menu){this._scrollToFocusedOptionOnUpdate=!1;var n=c["default"].findDOMNode(this.refs.focused),i=c["default"].findDOMNode(this.refs.menu),r=n.getBoundingClientRect(),a=i.getBoundingClientRect();(r.bottom>a.bottom||r.top<a.top)&&(i.scrollTop=n.offsetTop+n.clientHeight-i.offsetHeight)}if(this.props.scrollMenuIntoView&&this.refs.menuContainer){var l=this.refs.menuContainer.getBoundingClientRect();window.innerHeight<l.bottom+this.props.menuBuffer&&window.scrollBy(0,l.bottom+this.props.menuBuffer-window.innerHeight)}e.disabled!==this.props.disabled&&this.setState({isFocused:!1})},focus:function(){this.refs.input&&(this.refs.input.focus(),this.props.openAfterFocus&&this.setState({isOpen:!0}))},blurInput:function(){this.refs.input&&this.refs.input.blur()},handleTouchMove:function(e){this.dragging=!0},handleTouchStart:function(e){this.dragging=!1},handleTouchEnd:function(e){this.dragging||this.handleMouseDown(e)},handleTouchEndClearValue:function(e){this.dragging||this.clearValue(e)},handleMouseDown:function(e){return this.props.disabled||"mousedown"===e.type&&0!==e.button?void 0:(e.stopPropagation(),e.preventDefault(),this.props.searchable?void(this.state.isFocused?this.setState({isOpen:!0,isPseudoFocused:!1}):(this._openAfterFocus=!0,this.focus())):(this.focus(),this.setState({isOpen:!this.state.isOpen})))},handleMouseDownOnArrow:function(e){this.props.disabled||"mousedown"===e.type&&0!==e.button||this.state.isOpen&&(e.stopPropagation(),e.preventDefault(),this.closeMenu())},handleMouseDownOnMenu:function(e){this.props.disabled||"mousedown"===e.type&&0!==e.button||(e.stopPropagation(),e.preventDefault(),this._openAfterFocus=!0,this.focus())},closeMenu:function(){this.setState({isOpen:!1,isPseudoFocused:this.state.isFocused&&!this.props.multi,inputValue:""}),this.hasScrolledToOption=!1},handleInputFocus:function(e){var t=this.state.isOpen||this._openAfterFocus||this.props.openOnFocus;this.props.onFocus&&this.props.onFocus(e),this.setState({isFocused:!0,isOpen:t}),this._openAfterFocus=!1},handleInputBlur:function(e){if(this.refs.menu&&document.activeElement===this.refs.menu)return void this.focus();this.props.onBlur&&this.props.onBlur(e);var t={isFocused:!1,isOpen:!1,isPseudoFocused:!1};this.props.onBlurResetsInput&&(t.inputValue=""),this.setState(t)},handleInputChange:function(e){var t=e.target.value;if(this.state.inputValue!==e.target.value&&this.props.onInputChange){var u=this.props.onInputChange(t);null!=u&&(t=""+u)}this.setState({isOpen:!0,isPseudoFocused:!1,inputValue:t})},handleKeyDown:function(e){if(!this.props.disabled){switch(e.keyCode){case 8:return void(!this.state.inputValue&&this.props.backspaceRemoves&&(e.preventDefault(),this.popValue()));case 9:if(e.shiftKey||!this.state.isOpen||!this.props.tabSelectsValue)return;return void this.selectFocusedOption();case 13:if(!this.state.isOpen)return;e.stopPropagation(),this.selectFocusedOption();break;case 27:this.state.isOpen?this.closeMenu():this.props.clearable&&this.props.escapeClearsValue&&this.clearValue(e);break;case 38:this.focusPreviousOption();break;case 40:this.focusNextOption();break;default:return}e.preventDefault()}},handleValueClick:function(e,t){this.props.onValueClick&&this.props.onValueClick(e,t)},handleMenuScroll:function(e){if(this.props.onMenuScrollToBottom){var t=e.target;t.scrollHeight>t.offsetHeight&&!(t.scrollHeight-t.offsetHeight-t.scrollTop)&&this.props.onMenuScrollToBottom()}},handleRequired:function(e,t){return e?t?0===e.length:0===Object.keys(e).length:!0},getOptionLabel:function(e){return e[this.props.labelKey]},getValueArray:function(e){if(this.props.multi){if("string"==typeof e&&(e=e.split(this.props.delimiter)),!Array.isArray(e)){if(null===e||void 0===e)return[];e=[e]}return e.map(this.expandValue).filter(function(e){return e})}var t=this.expandValue(e);return t?[t]:[]},expandValue:function(e){if("string"!=typeof e&&"number"!=typeof e)return e;var t=this.props,u=t.labelKey,s=t.valueKey,o=t.renderInvalidValues,i=this._flatOptions;if(i&&""!==e){for(var r=0;r<i.length;r++)if(i[r][s]===e)return i[r];if(o){var a;return a={invalid:!0},n(a,u,e),n(a,s,e),a}}},setValue:function(e){var t=this;if(this.props.autoBlur&&this.blurInput(),this.props.onChange){if(this.props.required){var u=this.handleRequired(e,this.props.multi);this.setState({required:u})}this.props.simpleValue&&e&&(e=this.props.multi?e.map(function(e){return e[t.props.valueKey]}).join(this.props.delimiter):e[this.props.valueKey]),this.props.onChange(e)}},selectValue:function(e){this.hasScrolledToOption=!1,this.props.multi?(this.addValue(e),this.setState({inputValue:""})):(this.setValue(e),this.setState({isOpen:!1,inputValue:"",isPseudoFocused:this.state.isFocused}))},addValue:function(e){var t=this.getValueArray(this.props.value);this.setValue(t.concat(e))},popValue:function(){var e=this.getValueArray(this.props.value);e.length&&e[e.length-1].clearableValue!==!1&&this.setValue(e.slice(0,e.length-1))},removeValue:function(e){var t=this.getValueArray(this.props.value);this.setValue(t.filter(function(t){return t!==e})),this.focus()},clearValue:function(e){e&&"mousedown"===e.type&&0!==e.button||(e.stopPropagation(),e.preventDefault(),this.setValue(this.props.resetValue),this.setState({isOpen:!1,inputValue:""},this.focus))},focusOption:function(e){this.setState({focusedOption:e})},focusNextOption:function(){this.focusAdjacentOption("next")},focusPreviousOption:function(){this.focusAdjacentOption("previous")},focusAdjacentOption:function(e){var t=this._visibleOptions.filter(function(e){return!e.disabled});if(this._scrollToFocusedOptionOnUpdate=!0,!this.state.isOpen)return void this.setState({isOpen:!0,inputValue:"",focusedOption:this._focusedOption||t["next"===e?0:t.length-1]});if(t.length){for(var u=-1,s=0;s<t.length;s++)if(this._focusedOption===t[s]){u=s;break}var o=t[0];"next"===e&&u>-1&&u<t.length-1?o=t[u+1]:"previous"===e&&(o=u>0?t[u-1]:t[t.length-1]),this.setState({focusedOption:o})}},selectFocusedOption:function(){return this._focusedOption?this.selectValue(this._focusedOption):void 0},renderLoading:function(){return this.props.isLoading?p["default"].createElement("span",{className:"Select-loading-zone","aria-hidden":"true"},p["default"].createElement("span",{className:"Select-loading"})):void 0},renderValue:function(e,t){var u=this,s=this.props.valueRenderer||this.getOptionLabel,o=this.props.valueComponent;if(!e.length)return this.state.inputValue?null:p["default"].createElement("div",{className:"Select-placeholder"},this.props.placeholder);var n=this.props.onValueClick?this.handleValueClick:null;return this.props.multi?e.map(function(e,t){return p["default"].createElement(o,{disabled:u.props.disabled||e.clearableValue===!1,key:"value-"+t+"-"+e[u.props.valueKey],onClick:n,onRemove:u.removeValue,value:e},s(e))}):this.state.inputValue?void 0:(t&&(n=null),p["default"].createElement(o,{disabled:this.props.disabled,onClick:n,value:e[0]},s(e[0])))},renderInput:function(e){if(this.props.inputRenderer)return this.props.inputRenderer();var t=(0,g["default"])("Select-input",this.props.inputProps.className);return this.props.disabled||!this.props.searchable?p["default"].createElement("div",a({},this.props.inputProps,{className:t,tabIndex:this.props.tabIndex||0,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,ref:"input",style:{border:0,width:1,display:"inline-block"}})):this.props.autosize?p["default"].createElement(h["default"],a({},this.props.inputProps,{className:t,tabIndex:this.props.tabIndex,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onFocus:this.handleInputFocus,minWidth:"5",ref:"input",required:this.state.required,value:this.state.inputValue})):p["default"].createElement("div",{className:t},p["default"].createElement("input",a({},this.props.inputProps,{tabIndex:this.props.tabIndex,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onFocus:this.handleInputFocus,ref:"input",required:this.state.required,value:this.state.inputValue})))},renderClear:function(){return!this.props.clearable||!this.props.value||this.props.multi&&!this.props.value.length||this.props.disabled||this.props.isLoading?void 0:p["default"].createElement("span",{className:"Select-clear-zone",title:this.props.multi?this.props.clearAllText:this.props.clearValueText,"aria-label":this.props.multi?this.props.clearAllText:this.props.clearValueText,onMouseDown:this.clearValue,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEndClearValue},p["default"].createElement("span",{className:"Select-clear",dangerouslySetInnerHTML:{__html:"&times;"}}))},renderArrow:function(){return p["default"].createElement("span",{className:"Select-arrow-zone",onMouseDown:this.handleMouseDownOnArrow},p["default"].createElement("span",{className:"Select-arrow",onMouseDown:this.handleMouseDownOnArrow}))},filterOptions:function(e,t){var u=this,s=null,o=this.state.inputValue;if("function"==typeof this.props.filterOptions)return this.props.filterOptions.call(this,e,o,t);if(!this.props.filterOptions)return e;var n=function(){u.props.ignoreAccents&&(o=(0,y["default"])(o)),u.props.ignoreCase&&(o=o.toLowerCase()),t&&(s=t.map(function(e){return e[u.props.valueKey]}));var n=function(e){if(s&&s.indexOf(e[u.props.valueKey])>-1)return!1;if(u.props.filterOption)return u.props.filterOption.call(u,e,o);if(!o)return!0;var t=String(e[u.props.valueKey]),n=String(e[u.props.labelKey]);return u.props.ignoreAccents&&("label"!==u.props.matchProp&&(t=(0,y["default"])(t)),"value"!==u.props.matchProp&&(n=(0,y["default"])(n))),u.props.ignoreCase&&("label"!==u.props.matchProp&&(t=t.toLowerCase()),"value"!==u.props.matchProp&&(n=n.toLowerCase())),"start"===u.props.matchPos?"label"!==u.props.matchProp&&t.substr(0,o.length)===o||"value"!==u.props.matchProp&&n.substr(0,o.length)===o:"label"!==u.props.matchProp&&t.indexOf(o)>=0||"value"!==u.props.matchProp&&n.indexOf(o)>=0},r=[];return e.forEach(function(e){if(u.isGroup(e)){var s=i(e);s.options=u.filterOptions(e.options,t),s.options.length&&r.push(s)}else n(e)&&r.push(e)}),{v:r}}();return"object"==typeof n?n.v:void 0},isGroup:function(e){return e&&Array.isArray(e.options)},flattenOptions:function(e){if(e){for(var t=[],u=0;u<e.length;u++)this.isGroup(e[u])?t=t.concat(this.flattenOptions(e[u].options)):t.push(e[u]);return t}},renderMenu:function(e,t,u){var s=this;if(!e||!e.length)return this.props.noResultsText?p["default"].createElement("div",{className:"Select-noresults"},this.props.noResultsText):null;if(this.props.menuRenderer)return this.props.menuRenderer({focusedOption:u,focusOption:this.focusOption,labelKey:this.props.labelKey,options:e,selectValue:this.selectValue,valueArray:t});var o=function(){var o=s.props.optionGroupComponent,n=s.props.optionComponent,i=s.props.optionRenderer||s.getOptionLabel;return{v:e.map(function(e,r){if(s.isGroup(e)){var a=(0,g["default"])({"Select-option-group":!0});return p["default"].createElement(o,{className:a,key:"option-group-"+r,label:i(e),option:e},s.renderMenu(e.options,t,u))}var l=t&&t.indexOf(e)>-1,d=e===u,c=d?"focused":null,f=(0,g["default"])(s.props.optionClassName,{"Select-option":!0,"is-selected":l,"is-focused":d,"is-disabled":e.disabled});return p["default"].createElement(n,{className:f,isDisabled:e.disabled,isFocused:d,key:"option-"+r+"-"+e[s.props.valueKey],onSelect:s.selectValue,onFocus:s.focusOption,option:e,isSelected:l,ref:c},i(e))})}}();return"object"==typeof o?o.v:void 0},renderHiddenField:function(e){var t=this;if(this.props.name){if(this.props.joinValues){var u=e.map(function(e){return r(e[t.props.valueKey])}).join(this.props.delimiter);return p["default"].createElement("input",{type:"hidden",ref:"value",name:this.props.name,value:u,disabled:this.props.disabled})}return e.map(function(e,u){return p["default"].createElement("input",{key:"hidden."+u,type:"hidden",ref:"value"+u,name:t.props.name,value:r(e[t.props.valueKey]),disabled:t.props.disabled})})}},getFocusableOption:function(e){var t=this._visibleOptions;if(t.length){var u=this.state.focusedOption||e;if(u&&t.indexOf(u)>-1)return u;for(var s=0;s<t.length;s++)if(!t[s].disabled)return t[s]}},renderOuter:function(e,t,u){var s=this.props.dropdownComponent,o=this.renderMenu(e,t,u);return o?p["default"].createElement(s,null,p["default"].createElement("div",{ref:"menuContainer",className:"Select-menu-outer",style:this.props.menuContainerStyle},p["default"].createElement("div",{ref:"menu",className:"Select-menu",style:this.props.menuStyle,onScroll:this.handleMenuScroll,onMouseDown:this.handleMouseDownOnMenu},o))):null},render:function(){var e=this.getValueArray(this.props.value),t=this.filterOptions(this.props.options||[],this.props.multi?e:null);this._visibleOptions=this.flattenOptions(t);var u="boolean"==typeof this.props.isOpen?this.props.isOpen:this.state.isOpen;this.props.multi&&!t.length&&e.length&&!this.state.inputValue&&(u=!1);var s=this._focusedOption=this.getFocusableOption(e[0]),o=(0,g["default"])("Select",this.props.className,{"Select--multi":this.props.multi,"Select--single":!this.props.multi,"is-disabled":this.props.disabled,"is-focused":this.state.isFocused,"is-loading":this.props.isLoading,"is-open":u,"is-pseudo-focused":this.state.isPseudoFocused,"is-searchable":this.props.searchable,"has-value":e.length});return p["default"].createElement("div",{ref:"wrapper",className:o,style:this.props.wrapperStyle},this.renderHiddenField(e),p["default"].createElement("div",{ref:"control",className:"Select-control",style:this.props.style,onKeyDown:this.handleKeyDown,onMouseDown:this.handleMouseDown,onTouchEnd:this.handleTouchEnd,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove},this.renderValue(e,u),this.renderInput(e),this.renderLoading(),this.renderClear(),this.renderArrow()),u?this.renderOuter(t,this.props.multi?null:e,s):null)}});u["default"]=S,t.exports=u["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./Async":1,"./Dropdown":2,"./Option":3,"./OptionGroup":4,"./Value":6,"./utils/stripDiacritics":7}],6:[function(e,t,u){(function(e){"use strict";function u(e){return e&&e.__esModule?e:{"default":e}}var s="undefined"!=typeof window?window.React:"undefined"!=typeof e?e.React:null,o=u(s),n="undefined"!=typeof window?window.classNames:"undefined"!=typeof e?e.classNames:null,i=u(n),r=o["default"].createClass({displayName:"Value",propTypes:{children:o["default"].PropTypes.node,disabled:o["default"].PropTypes.bool,onClick:o["default"].PropTypes.func,onRemove:o["default"].PropTypes.func,value:o["default"].PropTypes.object.isRequired},handleMouseDown:function(e){return"mousedown"!==e.type||0===e.button?this.props.onClick?(e.stopPropagation(),void this.props.onClick(this.props.value,e)):void(this.props.value.href&&e.stopPropagation()):void 0},onRemove:function(e){e.preventDefault(),e.stopPropagation(),this.props.onRemove(this.props.value)},handleTouchEndRemove:function(e){this.dragging||this.onRemove(e)},handleTouchMove:function(e){this.dragging=!0},handleTouchStart:function(e){this.dragging=!1},renderRemoveIcon:function(){return!this.props.disabled&&this.props.onRemove?o["default"].createElement("span",{className:"Select-value-icon",onMouseDown:this.onRemove,onTouchEnd:this.handleTouchEndRemove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove},"×"):void 0},renderLabel:function(){var e="Select-value-label";return this.props.onClick||this.props.value.href?o["default"].createElement("a",{className:e,href:this.props.value.href,target:this.props.value.target,onMouseDown:this.handleMouseDown,onTouchEnd:this.handleMouseDown},this.props.children):o["default"].createElement("span",{className:e},this.props.children)},render:function(){return o["default"].createElement("div",{className:(0,i["default"])("Select-value",this.props.value.className),style:this.props.value.style,title:this.props.value.title},this.renderRemoveIcon(),this.renderLabel())}});t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],7:[function(e,t,u){"use strict";var s=[{base:"A",letters:/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},{base:"AA",letters:/[\uA732]/g},{base:"AE",letters:/[\u00C6\u01FC\u01E2]/g},{base:"AO",letters:/[\uA734]/g},{base:"AU",letters:/[\uA736]/g},{base:"AV",letters:/[\uA738\uA73A]/g},{base:"AY",letters:/[\uA73C]/g},{base:"B",letters:/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},{base:"C",letters:/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},{base:"D",letters:/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},{base:"DZ",letters:/[\u01F1\u01C4]/g},{base:"Dz",letters:/[\u01F2\u01C5]/g},{base:"E",letters:/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},{base:"F",letters:/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},{base:"G",letters:/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},{base:"H",letters:/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},{base:"I",letters:/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},{base:"J",letters:/[\u004A\u24BF\uFF2A\u0134\u0248]/g},{base:"K",letters:/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},{base:"L",letters:/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},{base:"LJ",letters:/[\u01C7]/g},{base:"Lj",letters:/[\u01C8]/g},{base:"M",letters:/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},{base:"N",letters:/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},{base:"NJ",letters:/[\u01CA]/g
},{base:"Nj",letters:/[\u01CB]/g},{base:"O",letters:/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},{base:"OI",letters:/[\u01A2]/g},{base:"OO",letters:/[\uA74E]/g},{base:"OU",letters:/[\u0222]/g},{base:"P",letters:/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},{base:"Q",letters:/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},{base:"R",letters:/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},{base:"S",letters:/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},{base:"T",letters:/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},{base:"TZ",letters:/[\uA728]/g},{base:"U",letters:/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},{base:"V",letters:/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},{base:"VY",letters:/[\uA760]/g},{base:"W",letters:/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},{base:"X",letters:/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},{base:"Y",letters:/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},{base:"Z",letters:/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}];t.exports=function(e){for(var t=0;t<s.length;t++)e=e.replace(s[t].letters,s[t].base);return e}},{}]},{},[5])(5)});
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Select=e()}}(function(){return function e(t,u,s){function o(i,a){if(!u[i]){if(!t[i]){var r="function"==typeof require&&require;if(!a&&r)return r(i,!0);if(n)return n(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var p=u[i]={exports:{}};t[i][0].call(p.exports,function(e){var u=t[i][1][e];return o(u?u:e)},p,p.exports,e,t,u,s)}return u[i].exports}for(var n="function"==typeof require&&require,i=0;i<s.length;i++)o(s[i]);return o}({1:[function(e,t,u){(function(u){"use strict";function s(e){return e&&e.__esModule?e:{"default":e}}function o(e){return e&&"object"!=typeof e&&(e={}),e?e:null}function n(e,t,u){e&&(e[t]=u)}function i(e,t){if(e)for(var u=t.length;u>=0;--u){var s=t.slice(0,u);if(e[s]&&(t===s||e[s].complete))return e[s]}}function a(e,t){return e&&"function"==typeof e.then?e.then(function(e){t(null,e)},function(e){t(e)}):void 0}var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var u=arguments[t];for(var s in u)Object.prototype.hasOwnProperty.call(u,s)&&(e[s]=u[s])}return e},l="undefined"!=typeof window?window.React:"undefined"!=typeof u?u.React:null,p=s(l),d=e("./Select"),c=s(d),f=e("./utils/stripDiacritics"),h=s(f),E=0,g=p["default"].PropTypes.oneOfType([p["default"].PropTypes.string,p["default"].PropTypes.node]),b=p["default"].createClass({displayName:"Async",propTypes:{cache:p["default"].PropTypes.any,ignoreAccents:p["default"].PropTypes.bool,ignoreCase:p["default"].PropTypes.bool,isLoading:p["default"].PropTypes.bool,loadOptions:p["default"].PropTypes.func.isRequired,loadingPlaceholder:p["default"].PropTypes.string,minimumInput:p["default"].PropTypes.number,noResultsText:g,onInputChange:p["default"].PropTypes.func,placeholder:g,searchPromptText:g,searchingText:p["default"].PropTypes.string},getDefaultProps:function(){return{cache:!0,ignoreAccents:!0,ignoreCase:!0,loadingPlaceholder:"Loading...",minimumInput:0,searchingText:"Searching...",searchPromptText:"Type to search"}},getInitialState:function(){return{cache:o(this.props.cache),isLoading:!1,options:[]}},componentWillMount:function(){this._lastInput=""},componentDidMount:function(){this.loadOptions("")},componentWillReceiveProps:function(e){e.cache!==this.props.cache&&this.setState({cache:o(e.cache)})},focus:function(){this.refs.select.focus()},resetState:function(){this._currentRequestId=-1,this.setState({isLoading:!1,options:[]})},getResponseHandler:function(e){var t=this,u=this._currentRequestId=E++;return function(s,o){if(s)throw s;t.isMounted()&&(n(t.state.cache,e,o),u===t._currentRequestId&&t.setState({isLoading:!1,options:o&&o.options||[]}))}},loadOptions:function(e){if(this.props.onInputChange){var t=this.props.onInputChange(e);null!=t&&(e=""+t)}if(this.props.ignoreAccents&&(e=(0,h["default"])(e)),this.props.ignoreCase&&(e=e.toLowerCase()),this._lastInput=e,e.length<this.props.minimumInput)return this.resetState();var u=i(this.state.cache,e);if(u)return this.setState({options:u.options});this.setState({isLoading:!0});var s=this.getResponseHandler(e),o=a(this.props.loadOptions(e,s),s);return o?o.then(function(){return e}):e},render:function(){var e=this.props.noResultsText,t=this.state,u=t.isLoading,s=t.options;this.props.isLoading&&(u=!0);var o=u?this.props.loadingPlaceholder:this.props.placeholder;return u?e=this.props.searchingText:!s.length&&this._lastInput.length<this.props.minimumInput&&(e=this.props.searchPromptText),p["default"].createElement(c["default"],r({},this.props,{ref:"select",isLoading:u,noResultsText:e,onInputChange:this.loadOptions,options:s,placeholder:o}))}});t.exports=b}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./Select":5,"./utils/stripDiacritics":7}],2:[function(e,t,u){(function(e){"use strict";function u(e){return e&&e.__esModule?e:{"default":e}}var s="undefined"!=typeof window?window.React:"undefined"!=typeof e?e.React:null,o=u(s),n=o["default"].createClass({displayName:"Dropdown",propTypes:{children:o["default"].PropTypes.node},render:function(){return this.props.children}});t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(e,t,u){(function(e){"use strict";function u(e){return e&&e.__esModule?e:{"default":e}}var s="undefined"!=typeof window?window.React:"undefined"!=typeof e?e.React:null,o=u(s),n="undefined"!=typeof window?window.classNames:"undefined"!=typeof e?e.classNames:null,i=u(n),a=o["default"].createClass({displayName:"Option",propTypes:{children:o["default"].PropTypes.node,className:o["default"].PropTypes.string,instancePrefix:o["default"].PropTypes.string.isRequired,isDisabled:o["default"].PropTypes.bool,isFocused:o["default"].PropTypes.bool,isSelected:o["default"].PropTypes.bool,onFocus:o["default"].PropTypes.func,onSelect:o["default"].PropTypes.func,onUnfocus:o["default"].PropTypes.func,option:o["default"].PropTypes.object.isRequired,optionIndex:o["default"].PropTypes.number},blockEvent:function(e){e.preventDefault(),e.stopPropagation(),"A"===e.target.tagName&&"href"in e.target&&(e.target.target?window.open(e.target.href,e.target.target):window.location.href=e.target.href)},handleMouseDown:function(e){e.preventDefault(),e.stopPropagation(),this.props.onSelect(this.props.option,e)},handleMouseEnter:function(e){this.onFocus(e)},handleMouseMove:function(e){this.onFocus(e)},handleTouchEnd:function(e){this.dragging||this.handleMouseDown(e)},handleTouchMove:function(e){this.dragging=!0},handleTouchStart:function(e){this.dragging=!1},onFocus:function(e){this.props.isFocused||this.props.onFocus(this.props.option,e)},render:function(){var e=this.props,t=e.option,u=e.instancePrefix,s=e.optionIndex,n=(0,i["default"])(this.props.className,t.className);return t.disabled?o["default"].createElement("div",{className:n,onMouseDown:this.blockEvent,onClick:this.blockEvent},this.props.children):o["default"].createElement("div",{className:n,style:t.style,role:"option",onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd,id:u+"-option-"+s,title:t.title},this.props.children)}});t.exports=a}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,t,u){(function(e){"use strict";function u(e){return e&&e.__esModule?e:{"default":e}}var s="undefined"!=typeof window?window.React:"undefined"!=typeof e?e.React:null,o=u(s),n="undefined"!=typeof window?window.classNames:"undefined"!=typeof e?e.classNames:null,i=u(n),a=o["default"].createClass({displayName:"OptionGroup",propTypes:{children:o["default"].PropTypes.any,className:o["default"].PropTypes.string,label:o["default"].PropTypes.node,option:o["default"].PropTypes.object.isRequired},blockEvent:function(e){e.preventDefault(),e.stopPropagation(),"A"===e.target.tagName&&"href"in e.target&&(e.target.target?window.open(e.target.href,e.target.target):window.location.href=e.target.href)},handleMouseDown:function(e){e.preventDefault(),e.stopPropagation()},handleTouchEnd:function(e){this.dragging||this.handleMouseDown(e)},handleTouchMove:function(e){this.dragging=!0},handleTouchStart:function(e){this.dragging=!1},render:function(){var e=this.props.option,t=(0,i["default"])(this.props.className,e.className);return e.disabled?o["default"].createElement("div",{className:t,onMouseDown:this.blockEvent,onClick:this.blockEvent},this.props.children):o["default"].createElement("div",{className:t,style:e.style,onMouseDown:this.handleMouseDown,onMouseEnter:this.handleMouseEnter,onMouseMove:this.handleMouseMove,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEnd,title:e.title},o["default"].createElement("div",{className:"Select-option-group-label"},this.props.label),this.props.children)}});t.exports=a}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],5:[function(e,t,u){(function(s){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function n(e,t,u){return t in e?Object.defineProperty(e,t,{value:u,enumerable:!0,configurable:!0,writable:!0}):e[t]=u,e}function i(e){var t={};for(var u in e)e.hasOwnProperty(u)&&(t[u]=e[u]);return t}function a(e){return"object"==typeof e?JSON.stringify(e):e}Object.defineProperty(u,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var u=arguments[t];for(var s in u)Object.prototype.hasOwnProperty.call(u,s)&&(e[s]=u[s])}return e},l="undefined"!=typeof window?window.React:"undefined"!=typeof s?s.React:null,p=o(l),d="undefined"!=typeof window?window.ReactDOM:"undefined"!=typeof s?s.ReactDOM:null,c=o(d),f="undefined"!=typeof window?window.AutosizeInput:"undefined"!=typeof s?s.AutosizeInput:null,h=o(f),E="undefined"!=typeof window?window.classNames:"undefined"!=typeof s?s.classNames:null,g=o(E),b=e("./utils/stripDiacritics"),y=o(b),m=e("./Async"),v=o(m),F=e("./Dropdown"),A=o(F),C=e("./Option"),T=o(C),P=e("./OptionGroup"),D=o(P),w=e("./Value"),O=o(w),B=p["default"].PropTypes.oneOfType([p["default"].PropTypes.string,p["default"].PropTypes.node]),S=1,M=p["default"].createClass({displayName:"Select",propTypes:{addLabelText:p["default"].PropTypes.string,allowCreate:p["default"].PropTypes.bool,"aria-label":p["default"].PropTypes.string,"aria-labelledby":p["default"].PropTypes.string,autoBlur:p["default"].PropTypes.bool,autofocus:p["default"].PropTypes.bool,autosize:p["default"].PropTypes.bool,backspaceRemoves:p["default"].PropTypes.bool,backspaceToRemoveMessage:p["default"].PropTypes.string,className:p["default"].PropTypes.string,clearAllText:B,clearValueText:B,clearable:p["default"].PropTypes.bool,delimiter:p["default"].PropTypes.string,disabled:p["default"].PropTypes.bool,dropdownComponent:p["default"].PropTypes.func,escapeClearsValue:p["default"].PropTypes.bool,filterOption:p["default"].PropTypes.func,filterOptions:p["default"].PropTypes.any,ignoreAccents:p["default"].PropTypes.bool,ignoreCase:p["default"].PropTypes.bool,inputProps:p["default"].PropTypes.object,inputRenderer:p["default"].PropTypes.func,isLoading:p["default"].PropTypes.bool,isOpen:p["default"].PropTypes.bool,joinValues:p["default"].PropTypes.bool,labelKey:p["default"].PropTypes.string,matchPos:p["default"].PropTypes.string,matchProp:p["default"].PropTypes.string,menuBuffer:p["default"].PropTypes.number,menuContainerStyle:p["default"].PropTypes.object,menuRenderer:p["default"].PropTypes.func,menuStyle:p["default"].PropTypes.object,multi:p["default"].PropTypes.bool,name:p["default"].PropTypes.string,newOptionCreator:p["default"].PropTypes.func,noResultsText:B,onBlur:p["default"].PropTypes.func,onBlurResetsInput:p["default"].PropTypes.bool,onChange:p["default"].PropTypes.func,onClose:p["default"].PropTypes.func,onFocus:p["default"].PropTypes.func,onInputChange:p["default"].PropTypes.func,onMenuScrollToBottom:p["default"].PropTypes.func,onOpen:p["default"].PropTypes.func,onValueClick:p["default"].PropTypes.func,openAfterFocus:p["default"].PropTypes.bool,openOnFocus:p["default"].PropTypes.bool,optionClassName:p["default"].PropTypes.string,optionComponent:p["default"].PropTypes.func,optionGroupComponent:p["default"].PropTypes.func,optionRenderer:p["default"].PropTypes.func,options:p["default"].PropTypes.array,pageSize:p["default"].PropTypes.number,placeholder:B,renderInvalidValues:p["default"].PropTypes.bool,required:p["default"].PropTypes.bool,resetValue:p["default"].PropTypes.any,scrollMenuIntoView:p["default"].PropTypes.bool,searchable:p["default"].PropTypes.bool,simpleValue:p["default"].PropTypes.bool,style:p["default"].PropTypes.object,tabIndex:p["default"].PropTypes.string,tabSelectsValue:p["default"].PropTypes.bool,value:p["default"].PropTypes.any,valueComponent:p["default"].PropTypes.func,valueKey:p["default"].PropTypes.string,valueRenderer:p["default"].PropTypes.func,wrapperStyle:p["default"].PropTypes.object},statics:{Async:v["default"]},getDefaultProps:function(){return{addLabelText:'Add "{label}"?',autosize:!0,allowCreate:!1,backspaceRemoves:!0,backspaceToRemoveMessage:"Press backspace to remove {label}",clearable:!0,clearAllText:"Clear all",clearValueText:"Clear value",delimiter:",",disabled:!1,dropdownComponent:A["default"],escapeClearsValue:!0,filterOptions:!0,ignoreAccents:!0,ignoreCase:!0,inputProps:{},isLoading:!1,joinValues:!1,labelKey:"label",matchPos:"any",matchProp:"any",menuBuffer:0,multi:!1,noResultsText:"No results found",onBlurResetsInput:!0,openAfterFocus:!1,optionComponent:T["default"],optionGroupComponent:D["default"],pageSize:5,placeholder:"Select...",renderInvalidValues:!1,required:!1,resetValue:null,scrollMenuIntoView:!0,searchable:!0,simpleValue:!1,tabSelectsValue:!0,valueComponent:O["default"],valueKey:"value"}},getInitialState:function(){return{inputValue:"",isFocused:!1,isLoading:!1,isOpen:!1,isPseudoFocused:!1,required:!1}},componentWillMount:function(){this._flatOptions=this.flattenOptions(this.props.options),this._instancePrefix="react-select-"+ ++S+"-";var e=this.getValueArray(this.props.value);this.props.required&&this.setState({required:this.handleRequired(e[0],this.props.multi)})},componentDidMount:function(){this.props.autofocus&&this.focus()},componentWillReceiveProps:function(e){e.options!==this.props.options&&(this._flatOptions=this.flattenOptions(e.options));var t=this.getValueArray(e.value);e.required&&this.setState({required:this.handleRequired(t[0],e.multi)})},componentWillUpdate:function(e,t){if(t.isOpen!==this.state.isOpen){var u=t.isOpen?e.onOpen:e.onClose;u&&u()}},componentDidUpdate:function(e,t){if(this.refs.menu&&this.refs.focused&&this.state.isOpen&&!this.hasScrolledToOption){var u=c["default"].findDOMNode(this.refs.focused),s=u.parentElement,o=c["default"].findDOMNode(this.refs.menu);o.scrollTop="Select-menu"===s.className?u.offsetTop:s.offsetTop,this.hasScrolledToOption=!0}else this.state.isOpen||(this.hasScrolledToOption=!1);if(this._scrollToFocusedOptionOnUpdate&&this.refs.focused&&this.refs.menu){this._scrollToFocusedOptionOnUpdate=!1;var n=c["default"].findDOMNode(this.refs.focused),i=c["default"].findDOMNode(this.refs.menu),a=n.getBoundingClientRect(),r=i.getBoundingClientRect();(a.bottom>r.bottom||a.top<r.top)&&(i.scrollTop=n.offsetTop+n.clientHeight-i.offsetHeight)}if(this.props.scrollMenuIntoView&&this.refs.menuContainer){var l=this.refs.menuContainer.getBoundingClientRect();window.innerHeight<l.bottom+this.props.menuBuffer&&window.scrollBy(0,l.bottom+this.props.menuBuffer-window.innerHeight)}e.disabled!==this.props.disabled&&(this.setState({isFocused:!1}),this.closeMenu())},focus:function(){this.refs.input&&(this.refs.input.focus(),this.props.openAfterFocus&&this.setState({isOpen:!0}))},blurInput:function(){this.refs.input&&this.refs.input.blur()},handleTouchMove:function(e){this.dragging=!0},handleTouchStart:function(e){this.dragging=!1},handleTouchEnd:function(e){this.dragging||this.handleMouseDown(e)},handleTouchEndClearValue:function(e){this.dragging||this.clearValue(e)},handleMouseDown:function(e){return this.props.disabled||"mousedown"===e.type&&0!==e.button||"INPUT"===e.target.tagName?void 0:(e.stopPropagation(),e.preventDefault(),this.props.searchable?void(this.state.isFocused?(this.focus(),this.refs.input.getInput().value="",this.setState({isOpen:!0,isPseudoFocused:!1})):(this._openAfterFocus=!0,this.focus())):(this.focus(),this.setState({isOpen:!this.state.isOpen})))},handleMouseDownOnArrow:function(e){this.props.disabled||"mousedown"===e.type&&0!==e.button||this.state.isOpen&&(e.stopPropagation(),e.preventDefault(),this.closeMenu())},handleMouseDownOnMenu:function(e){this.props.disabled||"mousedown"===e.type&&0!==e.button||(e.stopPropagation(),e.preventDefault(),this._openAfterFocus=!0,this.focus())},closeMenu:function(){this.setState({isOpen:!1,isPseudoFocused:this.state.isFocused&&!this.props.multi,inputValue:""}),this.hasScrolledToOption=!1},handleInputFocus:function(e){var t=this.state.isOpen||this._openAfterFocus||this.props.openOnFocus;this.props.onFocus&&this.props.onFocus(e),this.setState({isFocused:!0,isOpen:t}),this._openAfterFocus=!1},handleInputBlur:function(e){if(this.refs.menu&&(this.refs.menu===document.activeElement||this.refs.menu.contains(document.activeElement)))return void this.focus();this.props.onBlur&&this.props.onBlur(e);var t={isFocused:!1,isOpen:!1,isPseudoFocused:!1};this.props.onBlurResetsInput&&(t.inputValue=""),this.setState(t)},handleInputChange:function(e){var t=e.target.value;if(this.state.inputValue!==e.target.value&&this.props.onInputChange){var u=this.props.onInputChange(t);null!=u&&"object"!=typeof u&&(t=""+u)}this.setState({isOpen:!0,isPseudoFocused:!1,inputValue:t})},handleKeyDown:function(e){if(!this.props.disabled){switch(e.keyCode){case 8:return void(!this.state.inputValue&&this.props.backspaceRemoves&&(e.preventDefault(),this.popValue()));case 9:if(e.shiftKey||!this.state.isOpen||!this.props.tabSelectsValue)return;return void this.selectFocusedOption();case 13:if(!this.state.isOpen)return;e.stopPropagation(),this.selectFocusedOption();break;case 27:this.state.isOpen?this.closeMenu():this.props.clearable&&this.props.escapeClearsValue&&this.clearValue(e);break;case 38:this.focusPreviousOption();break;case 40:this.focusNextOption();break;case 33:this.focusPageUpOption();break;case 34:this.focusPageDownOption();break;case 35:this.focusEndOption();break;case 36:this.focusStartOption();break;default:return}e.preventDefault()}},handleValueClick:function(e,t){this.props.onValueClick&&this.props.onValueClick(e,t)},handleMenuScroll:function(e){if(this.props.onMenuScrollToBottom){var t=e.target;t.scrollHeight>t.offsetHeight&&!(t.scrollHeight-t.offsetHeight-t.scrollTop)&&this.props.onMenuScrollToBottom()}},handleRequired:function(e,t){return e?t?0===e.length:0===Object.keys(e).length:!0},getOptionLabel:function(e){return e[this.props.labelKey]},getValueArray:function(e){if(this.props.multi){if("string"==typeof e&&(e=e.split(this.props.delimiter)),!Array.isArray(e)){if(null===e||void 0===e)return[];e=[e]}return e.map(this.expandValue).filter(function(e){return e})}var t=this.expandValue(e);return t?[t]:[]},expandValue:function(e){if("string"!=typeof e&&"number"!=typeof e)return e;var t=this.props,u=t.labelKey,s=t.valueKey,o=t.renderInvalidValues,i=this._flatOptions;if(i&&""!==e){for(var a=0;a<i.length;a++)if(i[a][s]===e)return i[a];if(o){var r;return r={invalid:!0},n(r,u,e),n(r,s,e),r}}},setValue:function(e){var t=this;if(this.props.autoBlur&&this.blurInput(),this.props.onChange){if(this.props.required){var u=this.handleRequired(e,this.props.multi);this.setState({required:u})}this.props.simpleValue&&e&&(e=this.props.multi?e.map(function(e){return e[t.props.valueKey]}).join(this.props.delimiter):e[this.props.valueKey]),this.props.onChange(e)}},selectValue:function(e){this.hasScrolledToOption=!1,this.props.multi?(this.addValue(e),this.setState({inputValue:"",focusedIndex:null})):(this.setState({isOpen:!1,inputValue:"",isPseudoFocused:this.state.isFocused}),this.setValue(e))},addValue:function(e){var t=this.getValueArray(this.props.value);this.setValue(t.concat(e))},popValue:function(){var e=this.getValueArray(this.props.value);e.length&&e[e.length-1].clearableValue!==!1&&this.setValue(e.slice(0,e.length-1))},removeValue:function(e){var t=this.getValueArray(this.props.value);this.setValue(t.filter(function(t){return t!==e})),this.focus()},clearValue:function(e){e&&"mousedown"===e.type&&0!==e.button||(e.stopPropagation(),e.preventDefault(),this.setValue(this.props.resetValue),this.setState({isOpen:!1,inputValue:""},this.focus))},focusOption:function(e){this.setState({focusedOption:e})},focusNextOption:function(){this.focusAdjacentOption("next")},focusPreviousOption:function(){this.focusAdjacentOption("previous")},focusPageUpOption:function(){this.focusAdjacentOption("page_up")},focusPageDownOption:function(){this.focusAdjacentOption("page_down")},focusStartOption:function(){this.focusAdjacentOption("start")},focusEndOption:function(){this.focusAdjacentOption("end")},focusAdjacentOption:function(e){var t=this._visibleOptions.map(function(e,t){return{option:e,index:t}}).filter(function(e){return!e.option.disabled});if(this._scrollToFocusedOptionOnUpdate=!0,!this.state.isOpen)return void this.setState({isOpen:!0,inputValue:"",focusedOption:this._focusedOption||t["next"===e?0:t.length-1].option});if(t.length){for(var u=-1,s=0;s<t.length;s++)if(this._focusedOption===t[s].option){u=s;break}if("next"===e&&-1!==u)u=(u+1)%t.length;else if("previous"===e)u>0?u-=1:u=t.length-1;else if("start"===e)u=0;else if("end"===e)u=t.length-1;else if("page_up"===e){var o=u-this.props.pageSize;u=0>o?0:o}else if("page_down"===e){var o=u+this.props.pageSize;u=o>t.length-1?t.length-1:o}-1===u&&(u=0),this.setState({focusedIndex:t[u].index,focusedOption:t[u].option})}},selectFocusedOption:function(){return this._focusedOption?this.selectValue(this._focusedOption):void 0},renderLoading:function(){return this.props.isLoading?p["default"].createElement("span",{className:"Select-loading-zone","aria-hidden":"true"},p["default"].createElement("span",{className:"Select-loading"})):void 0},renderValue:function(e,t){var u=this,s=this.props.valueRenderer||this.getOptionLabel,o=this.props.valueComponent;if(!e.length)return this.state.inputValue?null:p["default"].createElement("div",{className:"Select-placeholder"},this.props.placeholder);var n=this.props.onValueClick?this.handleValueClick:null;return this.props.multi?e.map(function(e,t){return p["default"].createElement(o,{id:u._instancePrefix+"-value-"+t,instancePrefix:u._instancePrefix,disabled:u.props.disabled||e.clearableValue===!1,key:"value-"+t+"-"+e[u.props.valueKey],onClick:n,onRemove:u.removeValue,value:e},s(e),p["default"].createElement("span",{className:"Select-aria-only"}," "))}):this.state.inputValue?void 0:(t&&(n=null),p["default"].createElement(o,{id:this._instancePrefix+"-value-item",disabled:this.props.disabled,instancePrefix:this._instancePrefix,onClick:n,value:e[0]},s(e[0])))},renderInput:function(e,t){if(this.props.inputRenderer)return this.props.inputRenderer();var u,s=(0,g["default"])("Select-input",this.props.inputProps.className),o=!!this.state.isOpen,i=(0,g["default"])((u={},n(u,this._instancePrefix+"-list",o),n(u,this._instancePrefix+"-backspace-remove-message",this.props.multi&&!this.props.disabled&&this.state.isFocused&&!this.state.inputValue),u)),a=r({},this.props.inputProps,{role:"combobox","aria-expanded":""+o,"aria-owns":i,"aria-haspopup":""+o,"aria-activedescendant":o?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value","aria-labelledby":this.props["aria-labelledby"],"aria-label":this.props["aria-label"],className:s,tabIndex:this.props.tabIndex,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onFocus:this.handleInputFocus,ref:"input",required:this.state.required,value:this.state.inputValue});return this.props.disabled||!this.props.searchable?p["default"].createElement("div",r({},this.props.inputProps,{role:"combobox","aria-expanded":o,"aria-owns":o?this._instancePrefix+"-list":this._instancePrefix+"-value","aria-activedescendant":o?this._instancePrefix+"-option-"+t:this._instancePrefix+"-value",className:s,tabIndex:this.props.tabIndex||0,onBlur:this.handleInputBlur,onFocus:this.handleInputFocus,ref:"input","aria-readonly":""+!!this.props.disabled,style:{border:0,width:1,display:"inline-block"}})):this.props.autosize?p["default"].createElement(h["default"],r({},a,{minWidth:"5px"})):p["default"].createElement("div",{className:s},p["default"].createElement("input",a))},renderClear:function(){return!this.props.clearable||!this.props.value||this.props.multi&&!this.props.value.length||this.props.disabled||this.props.isLoading?void 0:p["default"].createElement("span",{className:"Select-clear-zone",title:this.props.multi?this.props.clearAllText:this.props.clearValueText,"aria-label":this.props.multi?this.props.clearAllText:this.props.clearValueText,onMouseDown:this.clearValue,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove,onTouchEnd:this.handleTouchEndClearValue},p["default"].createElement("span",{className:"Select-clear",dangerouslySetInnerHTML:{__html:"&times;"}}))},renderArrow:function(){return p["default"].createElement("span",{className:"Select-arrow-zone",onMouseDown:this.handleMouseDownOnArrow},p["default"].createElement("span",{className:"Select-arrow",onMouseDown:this.handleMouseDownOnArrow}))},filterOptions:function(e,t){var u=this,s=null,o=this.state.inputValue;if("function"==typeof this.props.filterOptions)return this.props.filterOptions.call(this,e,o,t);if(!this.props.filterOptions)return e;var n=function(){u.props.ignoreAccents&&(o=(0,y["default"])(o)),u.props.ignoreCase&&(o=o.toLowerCase()),t&&(s=t.map(function(e){return e[u.props.valueKey]}));var n=function(e){if(s&&s.indexOf(e[u.props.valueKey])>-1)return!1;if(u.props.filterOption)return u.props.filterOption.call(u,e,o);if(!o)return!0;var t=String(e[u.props.valueKey]),n=String(e[u.props.labelKey]);return u.props.ignoreAccents&&("label"!==u.props.matchProp&&(t=(0,y["default"])(t)),"value"!==u.props.matchProp&&(n=(0,y["default"])(n))),u.props.ignoreCase&&("label"!==u.props.matchProp&&(t=t.toLowerCase()),"value"!==u.props.matchProp&&(n=n.toLowerCase())),"start"===u.props.matchPos?"label"!==u.props.matchProp&&t.substr(0,o.length)===o||"value"!==u.props.matchProp&&n.substr(0,o.length)===o:"label"!==u.props.matchProp&&t.indexOf(o)>=0||"value"!==u.props.matchProp&&n.indexOf(o)>=0},a=[];return e.forEach(function(e){if(u.isGroup(e)){var s=i(e);s.options=u.filterOptions(e.options,t),s.options.length&&a.push(s)}else n(e)&&a.push(e)}),{v:a}}();return"object"==typeof n?n.v:void 0},isGroup:function(e){return e&&Array.isArray(e.options)},flattenOptions:function(e){if(e){for(var t=[],u=0;u<e.length;u++)this.isGroup(e[u])?t=t.concat(this.flattenOptions(e[u].options)):t.push(e[u]);return t}},renderMenu:function(e,t,u){var s=this;if(!e||!e.length)return this.props.noResultsText?p["default"].createElement("div",{className:"Select-noresults"},this.props.noResultsText):null;if(this.props.menuRenderer)return this.props.menuRenderer({focusedOption:u,focusOption:this.focusOption,labelKey:this.props.labelKey,options:e,selectValue:this.selectValue,valueArray:t});var o=function(){var o=s.props.optionGroupComponent,n=s.props.optionComponent,i=s.props.optionRenderer||s.getOptionLabel;return{v:e.map(function(e,a){if(s.isGroup(e)){var r=(0,g["default"])({"Select-option-group":!0});return p["default"].createElement(o,{className:r,key:"option-group-"+a,label:i(e),option:e},s.renderMenu(e.options,t,u))}var l=t&&t.indexOf(e)>-1,d=e===u,c=d?"focused":null,f=(0,g["default"])(s.props.optionClassName,{"Select-option":!0,"is-selected":l,"is-focused":d,"is-disabled":e.disabled});return p["default"].createElement(n,{instancePrefix:s._instancePrefix,optionIndex:a,className:f,isDisabled:e.disabled,isFocused:d,key:"option-"+a+"-"+e[s.props.valueKey],onSelect:s.selectValue,onFocus:s.focusOption,option:e,isSelected:l,ref:c},i(e))})}}();return"object"==typeof o?o.v:void 0},renderHiddenField:function(e){var t=this;if(this.props.name){if(this.props.joinValues){var u=e.map(function(e){return a(e[t.props.valueKey])}).join(this.props.delimiter);return p["default"].createElement("input",{type:"hidden",ref:"value",name:this.props.name,value:u,disabled:this.props.disabled})}return e.map(function(e,u){return p["default"].createElement("input",{key:"hidden."+u,type:"hidden",ref:"value"+u,name:t.props.name,value:a(e[t.props.valueKey]),disabled:t.props.disabled})})}},getFocusableOptionIndex:function(e){var t=this._visibleOptions;if(!t.length)return null;var u=this.state.focusedOption||e;if(u&&!u.disabled){var s=t.indexOf(u);if(-1!==s)return s}for(var o=0;o<t.length;o++)if(!t[o].disabled)return o;return null},renderOuter:function(e,t,u){var s=this.props.dropdownComponent,o=this.renderMenu(e,t,u);return o?p["default"].createElement(s,null,p["default"].createElement("div",{ref:"menuContainer",className:"Select-menu-outer",style:this.props.menuContainerStyle},p["default"].createElement("div",{ref:"menu",role:"listbox",className:"Select-menu",id:this._instancePrefix+"-list",style:this.props.menuStyle,onScroll:this.handleMenuScroll,onMouseDown:this.handleMouseDownOnMenu},o))):null},render:function(){var e=this.getValueArray(this.props.value),t=this.filterOptions(this.props.options||[],this.props.multi?e:null);this._visibleOptions=this.flattenOptions(t);var u="boolean"==typeof this.props.isOpen?this.props.isOpen:this.state.isOpen;this.props.multi&&!t.length&&e.length&&!this.state.inputValue&&(u=!1);var s=this.getFocusableOptionIndex(e[0]),o=null;o=null!==s?this._focusedOption=this._visibleOptions[s]:this._focusedOption=null;var n=(0,g["default"])("Select",this.props.className,{"Select--multi":this.props.multi,"Select--single":!this.props.multi,"is-disabled":this.props.disabled,"is-focused":this.state.isFocused,"is-loading":this.props.isLoading,"is-open":u,"is-pseudo-focused":this.state.isPseudoFocused,"is-searchable":this.props.searchable,"has-value":e.length}),i=null;return this.props.multi&&!this.props.disabled&&e.length&&!this.state.inputValue&&this.state.isFocused&&this.props.backspaceRemoves&&(i=p["default"].createElement("span",{id:this._instancePrefix+"-backspace-remove-message",className:"Select-aria-only","aria-live":"assertive"},this.props.backspaceToRemoveMessage.replace("{label}",e[e.length-1][this.props.labelKey]))),p["default"].createElement("div",{ref:"wrapper",className:n,style:this.props.wrapperStyle},this.renderHiddenField(e),p["default"].createElement("div",{ref:"control",className:"Select-control",style:this.props.style,onKeyDown:this.handleKeyDown,onMouseDown:this.handleMouseDown,onTouchEnd:this.handleTouchEnd,onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove},p["default"].createElement("span",{className:"Select-multi-value-wrapper",id:this._instancePrefix+"-value"},this.renderValue(e,u),this.renderInput(e,s)),i,this.renderLoading(),this.renderClear(),this.renderArrow()),u?this.renderOuter(t,this.props.multi?null:e,o):null)}});u["default"]=M,t.exports=u["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./Async":1,"./Dropdown":2,"./Option":3,"./OptionGroup":4,"./Value":6,"./utils/stripDiacritics":7}],6:[function(e,t,u){(function(e){"use strict";function u(e){return e&&e.__esModule?e:{"default":e}}var s="undefined"!=typeof window?window.React:"undefined"!=typeof e?e.React:null,o=u(s),n="undefined"!=typeof window?window.classNames:"undefined"!=typeof e?e.classNames:null,i=u(n),a=o["default"].createClass({displayName:"Value",propTypes:{children:o["default"].PropTypes.node,disabled:o["default"].PropTypes.bool,id:o["default"].PropTypes.string,onClick:o["default"].PropTypes.func,onRemove:o["default"].PropTypes.func,value:o["default"].PropTypes.object.isRequired},handleMouseDown:function(e){return"mousedown"!==e.type||0===e.button?this.props.onClick?(e.stopPropagation(),void this.props.onClick(this.props.value,e)):void(this.props.value.href&&e.stopPropagation()):void 0},onRemove:function(e){e.preventDefault(),e.stopPropagation(),this.props.onRemove(this.props.value)},handleTouchEndRemove:function(e){this.dragging||this.onRemove(e)},handleTouchMove:function(e){this.dragging=!0},handleTouchStart:function(e){this.dragging=!1},renderRemoveIcon:function(){return!this.props.disabled&&this.props.onRemove?o["default"].createElement("span",{className:"Select-value-icon","aria-hidden":"true",onMouseDown:this.onRemove,onTouchEnd:this.handleTouchEndRemove,
onTouchStart:this.handleTouchStart,onTouchMove:this.handleTouchMove},"×"):void 0},renderLabel:function(){var e="Select-value-label";return this.props.onClick||this.props.value.href?o["default"].createElement("a",{className:e,href:this.props.value.href,target:this.props.value.target,onMouseDown:this.handleMouseDown,onTouchEnd:this.handleMouseDown},this.props.children):o["default"].createElement("span",{className:e,role:"option","aria-selected":"true",id:this.props.id},this.props.children)},render:function(){return o["default"].createElement("div",{className:(0,i["default"])("Select-value",this.props.value.className),style:this.props.value.style,title:this.props.value.title},this.renderRemoveIcon(),this.renderLabel())}});t.exports=a}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],7:[function(e,t,u){"use strict";var s=[{base:"A",letters:/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},{base:"AA",letters:/[\uA732]/g},{base:"AE",letters:/[\u00C6\u01FC\u01E2]/g},{base:"AO",letters:/[\uA734]/g},{base:"AU",letters:/[\uA736]/g},{base:"AV",letters:/[\uA738\uA73A]/g},{base:"AY",letters:/[\uA73C]/g},{base:"B",letters:/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},{base:"C",letters:/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},{base:"D",letters:/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},{base:"DZ",letters:/[\u01F1\u01C4]/g},{base:"Dz",letters:/[\u01F2\u01C5]/g},{base:"E",letters:/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},{base:"F",letters:/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},{base:"G",letters:/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},{base:"H",letters:/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},{base:"I",letters:/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},{base:"J",letters:/[\u004A\u24BF\uFF2A\u0134\u0248]/g},{base:"K",letters:/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},{base:"L",letters:/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},{base:"LJ",letters:/[\u01C7]/g},{base:"Lj",letters:/[\u01C8]/g},{base:"M",letters:/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},{base:"N",letters:/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},{base:"NJ",letters:/[\u01CA]/g},{base:"Nj",letters:/[\u01CB]/g},{base:"O",letters:/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},{base:"OI",letters:/[\u01A2]/g},{base:"OO",letters:/[\uA74E]/g},{base:"OU",letters:/[\u0222]/g},{base:"P",letters:/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},{base:"Q",letters:/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},{base:"R",letters:/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},{base:"S",letters:/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},{base:"T",letters:/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},{base:"TZ",letters:/[\uA728]/g},{base:"U",letters:/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},{base:"V",letters:/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},{base:"VY",letters:/[\uA760]/g},{base:"W",letters:/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},{base:"X",letters:/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},{base:"Y",letters:/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},{base:"Z",letters:/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}];t.exports=function(e){for(var t=0;t<s.length;t++)e=e.replace(s[t].letters,s[t].base);return e}},{}]},{},[5])(5)});

@@ -8,2 +8,3 @@ /* eslint react/prop-types: 0 */

import Contributors from './components/Contributors';
import GithubUsers from './components/GithubUsers';
import CustomComponents from './components/CustomComponents';

@@ -23,2 +24,3 @@ import CustomRender from './components/CustomRender';

<Contributors label="Contributors (Async)" />
<GithubUsers label="Github users (Async with fetch.js)" />
<NumericSelect label="Numeric Values" />

@@ -25,0 +27,0 @@ <GroupedOptionsField label="Option Groups" />

@@ -17,3 +17,2 @@ import React from 'react';

onSelect: React.PropTypes.func,
onUnfocus: React.PropTypes.func,
option: React.PropTypes.object.isRequired,

@@ -33,5 +32,2 @@ },

},
handleMouseLeave (event) {
this.props.onUnfocus(this.props.option, event);
},
render () {

@@ -51,3 +47,2 @@ let gravatarStyle = {

onMouseMove={this.handleMouseMove}
onMouseLeave={this.handleMouseLeave}
title={this.props.option.title}>

@@ -54,0 +49,0 @@ <Gravatar email={this.props.option.email} size={GRAVATAR_SIZE} style={gravatarStyle} />

@@ -76,7 +76,7 @@ import React from 'react';

<input type="checkbox" className="checkbox-control" checked={this.state.matchValue} onChange={this.onChangeMatchValue} />
<span className="checkbox-label">Match value only</span>
<span className="checkbox-label">Match value</span>
</label>
<label className="checkbox">
<input type="checkbox" className="checkbox-control" checked={this.state.matchLabel} onChange={this.onChangeMatchLabel} />
<span className="checkbox-label">Match label only</span>
<span className="checkbox-label">Match label</span>
</label>

@@ -83,0 +83,0 @@ <label className="checkbox">

## v1.0.0-beta13 / 2016-05-30
## v1.0.0-beta13.patch1 / 2016-06-22
* (react-select-plus) intermediate release to incorporate upstream fix for https://github.com/JedWatson/react-select/issues/940
## v1.0.0-beta13 / 2016-04-30
* added; `inputRenderer` prop, allows you to override the input component, thanks [Sean Burke](https://github.com/leftmostcat)

@@ -5,0 +9,0 @@ * added; `openOnFocus` prop, causes the menu to always open when the select control is focused, thanks [HuysentruytRuben](https://github.com/HuysentruytRuben)

@@ -68,3 +68,3 @@ 'use strict';

placeholder: stringOrNode, // field placeholder, displayed when there's no value (shared with Select)
searchPromptText: _react2['default'].PropTypes.string, // label to prompt for search input
searchPromptText: stringOrNode, // label to prompt for search input
searchingText: _react2['default'].PropTypes.string },

@@ -138,2 +138,3 @@ // message to display while options are loading

if (this.props.ignoreCase) input = input.toLowerCase();
this._lastInput = input;

@@ -153,3 +154,6 @@ if (input.length < this.props.minimumInput) {

var responseHandler = this.getResponseHandler(input);
return thenPromise(this.props.loadOptions(input, responseHandler), responseHandler);
var inputPromise = thenPromise(this.props.loadOptions(input, responseHandler), responseHandler);
return inputPromise ? inputPromise.then(function () {
return input;
}) : input;
},

@@ -164,5 +168,6 @@ render: function render() {

var placeholder = isLoading ? this.props.loadingPlaceholder : this.props.placeholder;
if (!options.length) {
if (this._lastInput.length < this.props.minimumInput) noResultsText = this.props.searchPromptText;
if (isLoading) noResultsText = this.props.searchingText;
if (isLoading) {
noResultsText = this.props.searchingText;
} else if (!options.length && this._lastInput.length < this.props.minimumInput) {
noResultsText = this.props.searchPromptText;
}

@@ -169,0 +174,0 @@ return _react2['default'].createElement(_Select2['default'], _extends({}, this.props, {

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

className: _react2['default'].PropTypes.string, // className (based on mouse position)
instancePrefix: _react2['default'].PropTypes.string.isRequired, // unique prefix for the ids (used for aria)
isDisabled: _react2['default'].PropTypes.bool, // the option is disabled

@@ -26,4 +27,5 @@ isFocused: _react2['default'].PropTypes.bool, // the option is focused

onUnfocus: _react2['default'].PropTypes.func, // method to handle mouseLeave on option element
option: _react2['default'].PropTypes.object.isRequired },
// object that is base for that option
option: _react2['default'].PropTypes.object.isRequired, // object that is base for that option
optionIndex: _react2['default'].PropTypes.number },
// index of the option, used to generate unique ids for aria
blockEvent: function blockEvent(event) {

@@ -80,3 +82,6 @@ event.preventDefault();

render: function render() {
var option = this.props.option;
var _props = this.props;
var option = _props.option;
var instancePrefix = _props.instancePrefix;
var optionIndex = _props.optionIndex;

@@ -95,2 +100,3 @@ var className = (0, _classnames2['default'])(this.props.className, option.className);

style: option.style,
role: 'option',
onMouseDown: this.handleMouseDown,

@@ -102,2 +108,3 @@ onMouseEnter: this.handleMouseEnter,

onTouchEnd: this.handleTouchEnd,
id: instancePrefix + '-option-' + optionIndex,
title: option.title },

@@ -104,0 +111,0 @@ this.props.children

@@ -73,2 +73,4 @@ 'use strict';

var instanceId = 1;
var Select = _react2['default'].createClass({

@@ -81,2 +83,4 @@

allowCreate: _react2['default'].PropTypes.bool, // whether to allow creation of new entries
'aria-label': _react2['default'].PropTypes.string, // Aria label (for assistive tech)
'aria-labelledby': _react2['default'].PropTypes.string, // HTML ID of an element that should be used as the label (for assistive tech)
autoBlur: _react2['default'].PropTypes.bool, // automatically blur the component when an option is selected

@@ -86,2 +90,4 @@ autofocus: _react2['default'].PropTypes.bool, // autofocus the component on mount

backspaceRemoves: _react2['default'].PropTypes.bool, // whether backspace removes an item if there is no text input
backspaceToRemoveMessage: _react2['default'].PropTypes.string, // Message to use for screenreaders to press backspace to remove the current item -
// {label} is replaced with the item label
className: _react2['default'].PropTypes.string, // className for the outer element

@@ -131,2 +137,3 @@ clearAllText: stringOrNode, // title for the "clear" control when multi: true

options: _react2['default'].PropTypes.array, // array of options
pageSize: _react2['default'].PropTypes.number, // number of entries to page when using page up/down keys
placeholder: stringOrNode, // field placeholder, displayed when there's no value

@@ -157,2 +164,3 @@ renderInvalidValues: _react2['default'].PropTypes.bool, // boolean to enable rendering values that do not match any options

backspaceRemoves: true,
backspaceToRemoveMessage: 'Press backspace to remove {label}',
clearable: true,

@@ -181,2 +189,3 @@ clearAllText: 'Clear all',

optionGroupComponent: _OptionGroup2['default'],
pageSize: 5,
placeholder: 'Select...',

@@ -208,3 +217,3 @@ renderInvalidValues: false,

this._flatOptions = this.flattenOptions(this.props.options);
this._instancePrefix = 'react-select-' + ++instanceId + '-';
var valueArray = this.getValueArray(this.props.value);

@@ -276,2 +285,3 @@

this.setState({ isFocused: false }); // eslint-disable-line react/no-did-update-set-state
this.closeMenu();
}

@@ -331,2 +341,6 @@ },

if (event.target.tagName === 'INPUT') {
return;
}
// prevent default event handlers

@@ -345,2 +359,10 @@ event.stopPropagation();

if (this.state.isFocused) {
// On iOS, we can get into a state where we think the input is focused but it isn't really,
// since iOS ignores programmatic calls to input.focus() that weren't triggered by a click event.
// Call focus() again here to be safe.
this.focus();
// clears value so that the cursor will be a the end of input then the component re-renders
this.refs.input.getInput().value = '';
// if the input is focused, ensure the menu is open

@@ -410,3 +432,4 @@ this.setState({

handleInputBlur: function handleInputBlur(event) {
if (this.refs.menu && document.activeElement === this.refs.menu) {
// The check for menu.contains(activeElement) is necessary to prevent IE11's scrollbar from closing the menu in certain contexts.
if (this.refs.menu && (this.refs.menu === document.activeElement || this.refs.menu.contains(document.activeElement))) {
this.focus();

@@ -435,3 +458,3 @@ return;

// Note: != used deliberately here to catch undefined and null
if (nextState != null) {
if (nextState != null && typeof nextState !== 'object') {
newInputValue = '' + nextState;

@@ -486,2 +509,18 @@ }

break;
case 33:
// page up
this.focusPageUpOption();
break;
case 34:
// page down
this.focusPageDownOption();
break;
case 35:
// end key
this.focusEndOption();
break;
case 36:
// home key
this.focusStartOption();
break;
// case 188: // ,

@@ -587,6 +626,6 @@ // if (this.props.allowCreate && this.props.multi) {

this.setState({
inputValue: ''
inputValue: '',
focusedIndex: null
});
} else {
this.setValue(value);
this.setState({

@@ -597,2 +636,3 @@ isOpen: false,

});
this.setValue(value);
}

@@ -650,5 +690,23 @@ },

focusPageUpOption: function focusPageUpOption() {
this.focusAdjacentOption('page_up');
},
focusPageDownOption: function focusPageDownOption() {
this.focusAdjacentOption('page_down');
},
focusStartOption: function focusStartOption() {
this.focusAdjacentOption('start');
},
focusEndOption: function focusEndOption() {
this.focusAdjacentOption('end');
},
focusAdjacentOption: function focusAdjacentOption(dir) {
var options = this._visibleOptions.filter(function (i) {
return !i.disabled;
var options = this._visibleOptions.map(function (option, index) {
return { option: option, index: index };
}).filter(function (option) {
return !option.option.disabled;
});

@@ -660,3 +718,3 @@ this._scrollToFocusedOptionOnUpdate = true;

inputValue: '',
focusedOption: this._focusedOption || options[dir === 'next' ? 0 : options.length - 1]
focusedOption: this._focusedOption || options[dir === 'next' ? 0 : options.length - 1].option
});

@@ -668,3 +726,3 @@ return;

for (var i = 0; i < options.length; i++) {
if (this._focusedOption === options[i]) {
if (this._focusedOption === options[i].option) {
focusedIndex = i;

@@ -674,14 +732,37 @@ break;

}
var focusedOption = options[0];
if (dir === 'next' && focusedIndex > -1 && focusedIndex < options.length - 1) {
focusedOption = options[focusedIndex + 1];
if (dir === 'next' && focusedIndex !== -1) {
focusedIndex = (focusedIndex + 1) % options.length;
} else if (dir === 'previous') {
if (focusedIndex > 0) {
focusedOption = options[focusedIndex - 1];
focusedIndex = focusedIndex - 1;
} else {
focusedOption = options[options.length - 1];
focusedIndex = options.length - 1;
}
} else if (dir === 'start') {
focusedIndex = 0;
} else if (dir === 'end') {
focusedIndex = options.length - 1;
} else if (dir === 'page_up') {
var potentialIndex = focusedIndex - this.props.pageSize;
if (potentialIndex < 0) {
focusedIndex = 0;
} else {
focusedIndex = potentialIndex;
}
} else if (dir === 'page_down') {
var potentialIndex = focusedIndex + this.props.pageSize;
if (potentialIndex > options.length - 1) {
focusedIndex = options.length - 1;
} else {
focusedIndex = potentialIndex;
}
}
if (focusedIndex === -1) {
focusedIndex = 0;
}
this.setState({
focusedOption: focusedOption
focusedIndex: options[focusedIndex].index,
focusedOption: options[focusedIndex].option
});

@@ -726,2 +807,4 @@ },

{
id: _this2._instancePrefix + '-value-' + i,
instancePrefix: _this2._instancePrefix,
disabled: _this2.props.disabled || value.clearableValue === false,

@@ -733,3 +816,8 @@ key: 'value-' + i + '-' + value[_this2.props.valueKey],

},
renderLabel(value)
renderLabel(value),
_react2['default'].createElement(
'span',
{ className: 'Select-aria-only' },
' '
)
);

@@ -742,3 +830,5 @@ });

{
id: this._instancePrefix + '-value-item',
disabled: this.props.disabled,
instancePrefix: this._instancePrefix,
onClick: onClick,

@@ -752,9 +842,38 @@ value: valueArray[0]

renderInput: function renderInput(valueArray) {
renderInput: function renderInput(valueArray, focusedOptionIndex) {
if (this.props.inputRenderer) {
return this.props.inputRenderer();
} else {
var _classNames;
var className = (0, _classnames2['default'])('Select-input', this.props.inputProps.className);
var isOpen = !!this.state.isOpen;
var ariaOwns = (0, _classnames2['default'])((_classNames = {}, _defineProperty(_classNames, this._instancePrefix + '-list', isOpen), _defineProperty(_classNames, this._instancePrefix + '-backspace-remove-message', this.props.multi && !this.props.disabled && this.state.isFocused && !this.state.inputValue), _classNames));
// TODO: Check how this project includes Object.assign()
var inputProps = _extends({}, this.props.inputProps, {
role: 'combobox',
'aria-expanded': '' + isOpen,
'aria-owns': ariaOwns,
'aria-haspopup': '' + isOpen,
'aria-activedescendant': isOpen ? this._instancePrefix + '-option-' + focusedOptionIndex : this._instancePrefix + '-value',
'aria-labelledby': this.props['aria-labelledby'],
'aria-label': this.props['aria-label'],
className: className,
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
ref: 'input',
required: this.state.required,
value: this.state.inputValue
});
if (this.props.disabled || !this.props.searchable) {
return _react2['default'].createElement('div', _extends({}, this.props.inputProps, {
role: 'combobox',
'aria-expanded': isOpen,
'aria-owns': isOpen ? this._instancePrefix + '-list' : this._instancePrefix + '-value',
'aria-activedescendant': isOpen ? this._instancePrefix + '-option-' + focusedOptionIndex : this._instancePrefix + '-value',
className: className,

@@ -765,16 +884,8 @@ tabIndex: this.props.tabIndex || 0,

ref: 'input',
'aria-readonly': '' + !!this.props.disabled,
style: { border: 0, width: 1, display: 'inline-block' } }));
}
if (this.props.autosize) {
return _react2['default'].createElement(_reactInputAutosize2['default'], _extends({}, this.props.inputProps, {
className: className,
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
minWidth: '5',
ref: 'input',
required: this.state.required,
value: this.state.inputValue
}));
return _react2['default'].createElement(_reactInputAutosize2['default'], _extends({}, inputProps, { minWidth: '5px' }));
}

@@ -784,11 +895,3 @@ return _react2['default'].createElement(

{ className: className },
_react2['default'].createElement('input', _extends({}, this.props.inputProps, {
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
ref: 'input',
required: this.state.required,
value: this.state.inputValue
}))
_react2['default'].createElement('input', inputProps)
);

@@ -944,2 +1047,4 @@ }

{
instancePrefix: _this4._instancePrefix,
optionIndex: i,
className: optionClass,

@@ -1000,10 +1105,18 @@ isDisabled: option.disabled,

getFocusableOption: function getFocusableOption(selectedOption) {
getFocusableOptionIndex: function getFocusableOptionIndex(selectedOption) {
var options = this._visibleOptions;
if (!options.length) return;
if (!options.length) return null;
var focusedOption = this.state.focusedOption || selectedOption;
if (focusedOption && options.indexOf(focusedOption) > -1) return focusedOption;
if (focusedOption && !focusedOption.disabled) {
var focusedOptionIndex = options.indexOf(focusedOption);
if (focusedOptionIndex !== -1) {
return focusedOptionIndex;
}
}
for (var i = 0; i < options.length; i++) {
if (!options[i].disabled) return options[i];
if (!options[i].disabled) return i;
}
return null;
},

@@ -1026,3 +1139,3 @@

'div',
{ ref: 'menu', className: 'Select-menu',
{ ref: 'menu', role: 'listbox', className: 'Select-menu', id: this._instancePrefix + '-list',
style: this.props.menuStyle,

@@ -1043,3 +1156,10 @@ onScroll: this.handleMenuScroll,

if (this.props.multi && !options.length && valueArray.length && !this.state.inputValue) isOpen = false;
var focusedOption = this._focusedOption = this.getFocusableOption(valueArray[0]);
var focusedOptionIndex = this.getFocusableOptionIndex(valueArray[0]);
var focusedOption = null;
if (focusedOptionIndex !== null) {
focusedOption = this._focusedOption = this._visibleOptions[focusedOptionIndex];
} else {
focusedOption = this._focusedOption = null;
}
var className = (0, _classnames2['default'])('Select', this.props.className, {

@@ -1057,5 +1177,16 @@ 'Select--multi': this.props.multi,

var removeMessage = null;
if (this.props.multi && !this.props.disabled && valueArray.length && !this.state.inputValue && this.state.isFocused && this.props.backspaceRemoves) {
removeMessage = _react2['default'].createElement(
'span',
{ id: this._instancePrefix + '-backspace-remove-message', className: 'Select-aria-only', 'aria-live': 'assertive' },
this.props.backspaceToRemoveMessage.replace('{label}', valueArray[valueArray.length - 1][this.props.labelKey])
);
}
return _react2['default'].createElement(
'div',
{ ref: 'wrapper', className: className, style: this.props.wrapperStyle },
{ ref: 'wrapper',
className: className,
style: this.props.wrapperStyle },
this.renderHiddenField(valueArray),

@@ -1072,4 +1203,9 @@ _react2['default'].createElement(

onTouchMove: this.handleTouchMove },
this.renderValue(valueArray, isOpen),
this.renderInput(valueArray),
_react2['default'].createElement(
'span',
{ className: 'Select-multi-value-wrapper', id: this._instancePrefix + '-value' },
this.renderValue(valueArray, isOpen),
this.renderInput(valueArray, focusedOptionIndex)
),
removeMessage,
this.renderLoading(),

@@ -1076,0 +1212,0 @@ this.renderClear(),

@@ -20,2 +20,3 @@ 'use strict';

disabled: _react2['default'].PropTypes.bool, // disabled prop passed to ReactSelect
id: _react2['default'].PropTypes.string, // Unique id for the value - used for aria
onClick: _react2['default'].PropTypes.func, // method to handle click on value label

@@ -70,2 +71,3 @@ onRemove: _react2['default'].PropTypes.func, // method to handle removal of the value

{ className: 'Select-value-icon',
'aria-hidden': 'true',
onMouseDown: this.onRemove,

@@ -87,3 +89,3 @@ onTouchEnd: this.handleTouchEndRemove,

'span',
{ className: className },
{ className: className, role: 'option', 'aria-selected': 'true', id: this.props.id },
this.props.children

@@ -90,0 +92,0 @@ );

{
"name": "react-select-plus",
"version": "1.0.0-beta13",
"version": "1.0.0-beta13.patch1",
"description": "A Select control built with and for ReactJS",

@@ -25,2 +25,3 @@ "main": "lib/Select.js",

"gulp": "^3.9.1",
"isomorphic-fetch": "^2.2.1",
"istanbul": "^0.4.3",

@@ -40,3 +41,3 @@ "jsdom": "^8.4.1",

"unexpected-dom": "^3.1.0",
"unexpected-react": "^3.1.3",
"unexpected-react": "^3.2.3",
"unexpected-sinon": "^10.2.0"

@@ -43,0 +44,0 @@ },

@@ -40,9 +40,23 @@ React-Select-Plus

You can also use the standalone build by including `dist/react-select.js` and `dist/react-select.css` in your page. If you use this, make sure you have already included the following dependencies:
At this point you can import react-select and its styles in your application as follows:
* [React](http://facebook.github.io/react/)
* [classNames](http://jedwatson.github.io/classnames/)
* [react-input-autosize](https://github.com/JedWatson/react-input-autosize)
```js
import Select from 'react-select-plus';
// Be sure to include styles at some point, probably during your bootstrapping
import 'react-select/dist/react-select-plus.css';
```
You can also use the standalone build by including `react-select-plus.js` and `react-select-plus.css` in your page. (If you do this though you'll also need to include the dependencies.) For example:
```html
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<script src="https://npmcdn.com/classnames/index.js"></script>
<script src="https://npmcdn.com/react-input-autosize/dist/react-input-autosize.js"></script>
<script src="https://npmcdn.com/react-select-plus/dist/react-select-plus.js"></script>
<link rel="stylesheet" href="https://npmcdn.com/react-select-plus/dist/react-select-plus.css">
```
## Usage

@@ -56,3 +70,3 @@

When the value is changed, `onChange(newValue, [selectedOptions])` will fire.
When the value is changed, `onChange(selectedValueOrValues)` will fire.

@@ -87,4 +101,3 @@ ```javascript

* A simple value, if provided, will be split using the `delimiter` prop
* The `onChange` event provides an array of the selected options as the second argument
* The first argument to `onChange` is always a string, regardless of whether the values of the selected options are numbers or strings
* The `onChange` event provides an array of selected options _or_ a comma-separated string of values (eg `"1,2,3"`) if `simpleValue` is true
* By default, only options in the `options` array can be selected. Setting `allowCreate` to true allows new options to be created if they do not already exist.

@@ -210,2 +223,8 @@ * By default, selected options can be cleared. To disable the possibility of clearing a particular option, add `clearableValue: false` to that option:

This should be done when the list is large (hundreds or thousands of items) for faster rendering.
Windowing libraries like [`react-virtualized`](https://github.com/bvaughn/react-virtualized) can then be used to more efficiently render the drop-down menu like so.
The easiest way to do this is with the [`react-virtualized-select`](https://github.com/bvaughn/react-virtualized-select/) HOC.
This component decorates a `Select` and uses the react-virtualized `VirtualScroll` component to render options.
Demo and documentation for this component are available [here](https://bvaughn.github.io/react-virtualized-select/).
You can also specify your own custom renderer.
The custom `menuRenderer` property accepts the following named parameters:

@@ -222,33 +241,2 @@

Windowing libraries like [`react-virtualized`](https://github.com/bvaughn/react-virtualized) can then be used to more efficiently render the drop-down menu like so:
```js
menuRenderer({ focusedOption, focusOption, labelKey, options, selectValue, valueArray }) {
const focusedOptionIndex = options.indexOf(focusedOption);
const option = options[index];
const isFocusedOption = option === focusedOption;
return (
<VirtualScroll
ref="VirtualScroll"
height={200}
rowHeight={35}
rowRenderer={(index) => (
<div
onMouseOver={() => focusOption(option)}
onClick={() => selectValue(option)}
>
{option[labelKey]}
</div>
)}
rowsCount={options.length}
scrollToIndex={focusedOptionIndex}
width={200}
/>
)
}
```
Check out the demo site for a more complete example of this.
### Updating input values with onInputChange

@@ -278,2 +266,3 @@

autoBlur | bool | false | Blurs the input element after a selection has been made. Handy for lowering the keyboard on mobile devices
autofocus | bool | undefined | autofocus the component on mount
autoload | bool | true | whether to auto-load the default async options set

@@ -322,7 +311,7 @@ autosize | bool | true | If enabled, the input will expand as the length of its value increases

searchingText | string | 'Searching...' | message to display whilst options are loading via asyncOptions, or when `isLoading` is true
searchPromptText | string | 'Type to search' | label to prompt for search input
searchPromptText | string\|node | 'Type to search' | label to prompt for search input
tabSelectsValue | bool | true | whether to select the currently focused value when the `[tab]` key is pressed
value | any | undefined | initial field value
valueKey | string | 'value' | the option property to use for the value
valueRenderer | func | undefined | function which returns a custom way to render the value selected
valueRenderer | func | undefined | function which returns a custom way to render the value selected `function (option) {}`

@@ -329,0 +318,0 @@ ### Methods

@@ -56,3 +56,3 @@ import React from 'react';

placeholder: stringOrNode, // field placeholder, displayed when there's no value (shared with Select)
searchPromptText: React.PropTypes.string, // label to prompt for search input
searchPromptText: stringOrNode, // label to prompt for search input
searchingText: React.PropTypes.string, // message to display while options are loading

@@ -124,2 +124,3 @@ },

if (this.props.ignoreCase) input = input.toLowerCase();
this._lastInput = input;

@@ -139,3 +140,6 @@ if (input.length < this.props.minimumInput) {

let responseHandler = this.getResponseHandler(input);
return thenPromise(this.props.loadOptions(input, responseHandler), responseHandler);
let inputPromise = thenPromise(this.props.loadOptions(input, responseHandler), responseHandler);
return inputPromise ? inputPromise.then(() => {
return input;
}) : input;
},

@@ -147,5 +151,6 @@ render () {

let placeholder = isLoading ? this.props.loadingPlaceholder : this.props.placeholder;
if (!options.length) {
if (this._lastInput.length < this.props.minimumInput) noResultsText = this.props.searchPromptText;
if (isLoading) noResultsText = this.props.searchingText;
if (isLoading) {
noResultsText = this.props.searchingText;
} else if (!options.length && this._lastInput.length < this.props.minimumInput) {
noResultsText = this.props.searchPromptText;
}

@@ -152,0 +157,0 @@ return (

@@ -8,2 +8,3 @@ import React from 'react';

className: React.PropTypes.string, // className (based on mouse position)
instancePrefix: React.PropTypes.string.isRequired, // unique prefix for the ids (used for aria)
isDisabled: React.PropTypes.bool, // the option is disabled

@@ -16,2 +17,3 @@ isFocused: React.PropTypes.bool, // the option is focused

option: React.PropTypes.object.isRequired, // object that is base for that option
optionIndex: React.PropTypes.number, // index of the option, used to generate unique ids for aria
},

@@ -69,3 +71,3 @@ blockEvent (event) {

render () {
var { option } = this.props;
var { option, instancePrefix, optionIndex } = this.props;
var className = classNames(this.props.className, option.className);

@@ -82,3 +84,4 @@

style={option.style}
onMouseDown={this.handleMouseDown}
role="option"
onMouseDown={this.handleMouseDown}
onMouseEnter={this.handleMouseEnter}

@@ -89,2 +92,3 @@ onMouseMove={this.handleMouseMove}

onTouchEnd={this.handleTouchEnd}
id={instancePrefix + '-option-' + optionIndex}
title={option.title}>

@@ -91,0 +95,0 @@ {this.props.children}

@@ -37,2 +37,4 @@ import React from 'react';

let instanceId = 1;
const Select = React.createClass({

@@ -45,2 +47,4 @@

allowCreate: React.PropTypes.bool, // whether to allow creation of new entries
'aria-label': React.PropTypes.string, // Aria label (for assistive tech)
'aria-labelledby': React.PropTypes.string, // HTML ID of an element that should be used as the label (for assistive tech)
autoBlur: React.PropTypes.bool, // automatically blur the component when an option is selected

@@ -50,2 +54,4 @@ autofocus: React.PropTypes.bool, // autofocus the component on mount

backspaceRemoves: React.PropTypes.bool, // whether backspace removes an item if there is no text input
backspaceToRemoveMessage: React.PropTypes.string, // Message to use for screenreaders to press backspace to remove the current item -
// {label} is replaced with the item label
className: React.PropTypes.string, // className for the outer element

@@ -95,2 +101,3 @@ clearAllText: stringOrNode, // title for the "clear" control when multi: true

options: React.PropTypes.array, // array of options
pageSize: React.PropTypes.number, // number of entries to page when using page up/down keys
placeholder: stringOrNode, // field placeholder, displayed when there's no value

@@ -121,2 +128,3 @@ renderInvalidValues: React.PropTypes.bool, // boolean to enable rendering values that do not match any options

backspaceRemoves: true,
backspaceToRemoveMessage: 'Press backspace to remove {label}',
clearable: true,

@@ -145,2 +153,3 @@ clearAllText: 'Clear all',

optionGroupComponent: OptionGroup,
pageSize: 5,
placeholder: 'Select...',

@@ -172,3 +181,3 @@ renderInvalidValues: false,

this._flatOptions = this.flattenOptions(this.props.options);
this._instancePrefix = 'react-select-' + (++instanceId) + '-';
const valueArray = this.getValueArray(this.props.value);

@@ -242,2 +251,3 @@

this.setState({ isFocused: false }); // eslint-disable-line react/no-did-update-set-state
this.closeMenu();
}

@@ -297,2 +307,6 @@ },

if (event.target.tagName === 'INPUT') {
return;
}
// prevent default event handlers

@@ -311,2 +325,10 @@ event.stopPropagation();

if (this.state.isFocused) {
// On iOS, we can get into a state where we think the input is focused but it isn't really,
// since iOS ignores programmatic calls to input.focus() that weren't triggered by a click event.
// Call focus() again here to be safe.
this.focus();
// clears value so that the cursor will be a the end of input then the component re-renders
this.refs.input.getInput().value = '';
// if the input is focused, ensure the menu is open

@@ -376,3 +398,4 @@ this.setState({

handleInputBlur (event) {
if (this.refs.menu && document.activeElement === this.refs.menu) {
// The check for menu.contains(activeElement) is necessary to prevent IE11's scrollbar from closing the menu in certain contexts.
if (this.refs.menu && (this.refs.menu === document.activeElement || this.refs.menu.contains(document.activeElement))) {
this.focus();

@@ -401,3 +424,3 @@ return;

// Note: != used deliberately here to catch undefined and null
if (nextState != null) {
if (nextState != null && typeof nextState !== 'object') {
newInputValue = '' + nextState;

@@ -446,2 +469,14 @@ }

break;
case 33: // page up
this.focusPageUpOption();
break;
case 34: // page down
this.focusPageDownOption();
break;
case 35: // end key
this.focusEndOption();
break;
case 36: // home key
this.focusStartOption();
break;
// case 188: // ,

@@ -536,5 +571,5 @@ // if (this.props.allowCreate && this.props.multi) {

inputValue: '',
focusedIndex: null
});
} else {
this.setValue(value);
this.setState({

@@ -545,2 +580,3 @@ isOpen: false,

});
this.setValue(value);
}

@@ -596,4 +632,22 @@ },

focusPageUpOption () {
this.focusAdjacentOption('page_up');
},
focusPageDownOption () {
this.focusAdjacentOption('page_down');
},
focusStartOption () {
this.focusAdjacentOption('start');
},
focusEndOption () {
this.focusAdjacentOption('end');
},
focusAdjacentOption (dir) {
var options = this._visibleOptions.filter(i => !i.disabled);
var options = this._visibleOptions
.map((option, index) => ({ option, index }))
.filter(option => !option.option.disabled);
this._scrollToFocusedOptionOnUpdate = true;

@@ -604,3 +658,3 @@ if (!this.state.isOpen) {

inputValue: '',
focusedOption: this._focusedOption || options[dir === 'next' ? 0 : options.length - 1]
focusedOption: this._focusedOption || options[dir === 'next' ? 0 : options.length - 1].option
});

@@ -612,3 +666,3 @@ return;

for (var i = 0; i < options.length; i++) {
if (this._focusedOption === options[i]) {
if (this._focusedOption === options[i].option) {
focusedIndex = i;

@@ -618,14 +672,37 @@ break;

}
var focusedOption = options[0];
if (dir === 'next' && focusedIndex > -1 && focusedIndex < options.length - 1) {
focusedOption = options[focusedIndex + 1];
if (dir === 'next' && focusedIndex !== -1 ) {
focusedIndex = (focusedIndex + 1) % options.length;
} else if (dir === 'previous') {
if (focusedIndex > 0) {
focusedOption = options[focusedIndex - 1];
focusedIndex = focusedIndex - 1;
} else {
focusedOption = options[options.length - 1];
focusedIndex = options.length - 1;
}
} else if (dir === 'start') {
focusedIndex = 0;
} else if (dir === 'end') {
focusedIndex = options.length - 1;
} else if (dir === 'page_up') {
var potentialIndex = focusedIndex - this.props.pageSize;
if ( potentialIndex < 0 ) {
focusedIndex = 0;
} else {
focusedIndex = potentialIndex;
}
} else if (dir === 'page_down') {
var potentialIndex = focusedIndex + this.props.pageSize;
if ( potentialIndex > options.length - 1 ) {
focusedIndex = options.length - 1;
} else {
focusedIndex = potentialIndex;
}
}
if (focusedIndex === -1) {
focusedIndex = 0;
}
this.setState({
focusedOption: focusedOption
focusedIndex: options[focusedIndex].index,
focusedOption: options[focusedIndex].option
});

@@ -663,2 +740,4 @@ },

<ValueComponent
id={this._instancePrefix + '-value-' + i}
instancePrefix={this._instancePrefix}
disabled={this.props.disabled || value.clearableValue === false}

@@ -669,4 +748,5 @@ key={`value-${i}-${value[this.props.valueKey]}`}

value={value}
>
>
{renderLabel(value)}
<span className="Select-aria-only">&nbsp;</span>
</ValueComponent>

@@ -679,6 +759,8 @@ );

<ValueComponent
id={this._instancePrefix + '-value-item'}
disabled={this.props.disabled}
instancePrefix={this._instancePrefix}
onClick={onClick}
value={valueArray[0]}
>
>
{renderLabel(valueArray[0])}

@@ -690,3 +772,3 @@ </ValueComponent>

renderInput (valueArray) {
renderInput (valueArray, focusedOptionIndex) {
if (this.props.inputRenderer) {

@@ -696,2 +778,31 @@ return this.props.inputRenderer();

var className = classNames('Select-input', this.props.inputProps.className);
const isOpen = !!this.state.isOpen;
const ariaOwns = classNames({
[this._instancePrefix + '-list']: isOpen,
[this._instancePrefix + '-backspace-remove-message']: this.props.multi &&
!this.props.disabled &&
this.state.isFocused &&
!this.state.inputValue
});
// TODO: Check how this project includes Object.assign()
const inputProps = Object.assign({}, this.props.inputProps, {
role: 'combobox',
'aria-expanded': '' + isOpen,
'aria-owns': ariaOwns,
'aria-haspopup': '' + isOpen,
'aria-activedescendant': isOpen ? this._instancePrefix + '-option-' + focusedOptionIndex : this._instancePrefix + '-value',
'aria-labelledby': this.props['aria-labelledby'],
'aria-label': this.props['aria-label'],
className: className,
tabIndex: this.props.tabIndex,
onBlur: this.handleInputBlur,
onChange: this.handleInputChange,
onFocus: this.handleInputFocus,
ref: 'input',
required: this.state.required,
value: this.state.inputValue
});
if (this.props.disabled || !this.props.searchable) {

@@ -701,2 +812,6 @@ return (

{...this.props.inputProps}
role="combobox"
aria-expanded={isOpen}
aria-owns={isOpen ? this._instancePrefix + '-list' : this._instancePrefix + '-value'}
aria-activedescendant={isOpen ? this._instancePrefix + '-option-' + focusedOptionIndex : this._instancePrefix + '-value'}
className={className}

@@ -707,19 +822,10 @@ tabIndex={this.props.tabIndex || 0}

ref="input"
aria-readonly={'' + !!this.props.disabled}
style={{ border: 0, width: 1, display:'inline-block' }}/>
);
}
if (this.props.autosize) {
return (
<Input
{...this.props.inputProps}
className={className}
tabIndex={this.props.tabIndex}
onBlur={this.handleInputBlur}
onChange={this.handleInputChange}
onFocus={this.handleInputFocus}
minWidth="5"
ref="input"
required={this.state.required}
value={this.state.inputValue}
/>
<Input {...inputProps} minWidth="5px" />
);

@@ -729,12 +835,3 @@ }

<div className={ className }>
<input
{...this.props.inputProps}
tabIndex={this.props.tabIndex}
onBlur={this.handleInputBlur}
onChange={this.handleInputChange}
onFocus={this.handleInputFocus}
ref="input"
required={this.state.required}
value={this.state.inputValue}
/>
<input {...inputProps} />
</div>

@@ -882,2 +979,4 @@ );

<Option
instancePrefix={this._instancePrefix}
optionIndex={i}
className={optionClass}

@@ -933,10 +1032,18 @@ isDisabled={option.disabled}

getFocusableOption (selectedOption) {
getFocusableOptionIndex (selectedOption) {
var options = this._visibleOptions;
if (!options.length) return;
if (!options.length) return null;
let focusedOption = this.state.focusedOption || selectedOption;
if (focusedOption && options.indexOf(focusedOption) > -1) return focusedOption;
if (focusedOption && !focusedOption.disabled) {
const focusedOptionIndex = options.indexOf(focusedOption);
if (focusedOptionIndex !== -1) {
return focusedOptionIndex;
}
}
for (var i = 0; i < options.length; i++) {
if (!options[i].disabled) return options[i];
if (!options[i].disabled) return i;
}
return null;
},

@@ -954,3 +1061,3 @@

<div ref="menuContainer" className="Select-menu-outer" style={this.props.menuContainerStyle}>
<div ref="menu" className="Select-menu"
<div ref="menu" role="listbox" className="Select-menu" id={this._instancePrefix + '-list'}
style={this.props.menuStyle}

@@ -972,3 +1079,10 @@ onScroll={this.handleMenuScroll}

if (this.props.multi && !options.length && valueArray.length && !this.state.inputValue) isOpen = false;
let focusedOption = this._focusedOption = this.getFocusableOption(valueArray[0]);
const focusedOptionIndex = this.getFocusableOptionIndex(valueArray[0]);
let focusedOption = null;
if (focusedOptionIndex !== null) {
focusedOption = this._focusedOption = this._visibleOptions[focusedOptionIndex];
} else {
focusedOption = this._focusedOption = null;
}
let className = classNames('Select', this.props.className, {

@@ -986,4 +1100,20 @@ 'Select--multi': this.props.multi,

let removeMessage = null;
if (this.props.multi &&
!this.props.disabled &&
valueArray.length &&
!this.state.inputValue &&
this.state.isFocused &&
this.props.backspaceRemoves) {
removeMessage = (
<span id={this._instancePrefix + '-backspace-remove-message'} className="Select-aria-only" aria-live="assertive">
{this.props.backspaceToRemoveMessage.replace('{label}', valueArray[valueArray.length - 1][this.props.labelKey])}
</span>
);
}
return (
<div ref="wrapper" className={className} style={this.props.wrapperStyle}>
<div ref="wrapper"
className={className}
style={this.props.wrapperStyle}>
{this.renderHiddenField(valueArray)}

@@ -998,4 +1128,7 @@ <div ref="control"

onTouchMove={this.handleTouchMove}>
{this.renderValue(valueArray, isOpen)}
{this.renderInput(valueArray)}
<span className="Select-multi-value-wrapper" id={this._instancePrefix + '-value'}>
{this.renderValue(valueArray, isOpen)}
{this.renderInput(valueArray, focusedOptionIndex)}
</span>
{removeMessage}
{this.renderLoading()}

@@ -1002,0 +1135,0 @@ {this.renderClear()}

@@ -11,2 +11,3 @@ import React from 'react';

disabled: React.PropTypes.bool, // disabled prop passed to ReactSelect
id: React.PropTypes.string, // Unique id for the value - used for aria
onClick: React.PropTypes.func, // method to handle click on value label

@@ -60,2 +61,3 @@ onRemove: React.PropTypes.func, // method to handle removal of the value

<span className="Select-value-icon"
aria-hidden="true"
onMouseDown={this.onRemove}

@@ -77,3 +79,3 @@ onTouchEnd={this.handleTouchEndRemove}

) : (
<span className={className}>
<span className={className} role="option" aria-selected="true" id={this.props.id}>
{this.props.children}

@@ -80,0 +82,0 @@ </span>

@@ -85,3 +85,2 @@ 'use strict';

it('shows the returns options when the result returns', () => {

@@ -109,3 +108,23 @@

it('shows "Loading..." after typing if refined search matches none of the previous results', () => {
loadOptions.returns(expect.promise((resolve, reject) => {
resolve({ options: [{ value: 1, label: 'test' }] });
}));
typeSearchText('te');
return loadOptions.firstCall.returnValue.then(() => {
typeSearchText('ten');
return expect(renderer, 'to have rendered',
<Select
isLoading
placeholder="Loading..."
noResultsText="Searching..."
/>);
});
});
it('ignores the result of an earlier call, when the responses come in the wrong order', () => {

@@ -112,0 +131,0 @@

@@ -9,7 +9,10 @@ /*

return {
files: ['src/**/*.js', 'testHelpers/*.js'],
files: ['src/**/*.js', {
pattern: 'testHelpers/*.js',
instrument: false
}],
tests: ['test/*-test.js' ],
env: {
type: 'node',
runner: '/home/dave/.nvm/versions/node/v4.2.1/bin/node'
runner: 'node'
},

@@ -16,0 +19,0 @@ compilers: {

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

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

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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 not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc