🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more →

react-bootstrap-typeahead

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-bootstrap-typeahead - npm Package Compare versions

Comparing version

to
0.9.0

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

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],t):"object"==typeof exports?exports.ReactBootstrapTypeahead=t(require("react"),require("react-dom")):e.ReactBootstrapTypeahead=t(e.React,e.ReactDOM)}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,exports,t){"use strict";var n=t(28);e.exports=n},function(t,exports){t.exports=e},function(e,exports,t){var n,r;/*!
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],t):"object"==typeof exports?exports.ReactBootstrapTypeahead=t(require("react"),require("react-dom")):e.ReactBootstrapTypeahead=t(e.React,e.ReactDOM)}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,exports,t){"use strict";var n=t(28);e.exports=n},function(t,exports){t.exports=e},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var n=void 0;if("string"==typeof e&&(n=e),(0,i.default)(e)&&(n=e[t]),"string"!=typeof n)throw new Error("One or more options does not have a valid label string. Please check the `labelKey` prop to ensure that it matches the correct option key and provides a string for filtering and display.");return n}Object.defineProperty(exports,"__esModule",{value:!0});var o=t(69),i=n(o);exports.default=r},function(e,exports,t){var n,r;/*!
Copyright (c) 2016 Jed Watson.

@@ -6,3 +6,3 @@ Licensed under the MIT License (MIT), see

*/
!function(){"use strict";function t(){for(var e=[],n=0;n<arguments.length;n++){var r=arguments[n];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r))e.push(t.apply(null,r));else if("object"===i)for(var s in r)o.call(r,s)&&r[s]&&e.push(s)}}return e.join(" ")}var o={}.hasOwnProperty;"undefined"!=typeof e&&e.exports?e.exports=t:(n=[],r=function(){return t}.apply(exports,n),!(void 0!==r&&(e.exports=r)))}()},function(e,exports){"use strict";e.exports={BACKSPACE:8,TAB:9,RETURN:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40}},function(e,exports,t){function n(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}var r=t(60);e.exports=n},function(e,exports){e.exports=t},function(e,exports){var t=Array.isArray;e.exports=t},function(e,exports){function t(e){return!!e&&"object"==typeof e}e.exports=t},function(e,exports,t){var n=t(16),r=Object.keys,o=n(r,Object);e.exports=o},function(e,exports){function t(e){return e}e.exports=t},function(e,exports){function t(e){return r.call(e)}var n=Object.prototype,r=n.toString;e.exports=t},function(e,exports){function t(){this.__data__=[]}e.exports=t},function(e,exports,t){function n(e){var t=this.__data__,n=r(t,e);if(n<0)return!1;var o=t.length-1;return n==o?t.pop():i.call(t,n,1),!0}var r=t(4),o=Array.prototype,i=o.splice;e.exports=n},function(e,exports,t){function n(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}var r=t(4);e.exports=n},function(e,exports,t){function n(e){return r(this.__data__,e)>-1}var r=t(4);e.exports=n},function(e,exports,t){function n(e,t){var n=this.__data__,o=r(n,e);return o<0?n.push([e,t]):n[o][1]=t,this}var r=t(4);e.exports=n},function(e,exports){function t(e,t){return function(n){return e(t(n))}}e.exports=t},function(e,exports,t){function n(e){return null!=e&&i(r(e))&&!o(e)}var r=t(54),o=t(19),i=t(67);e.exports=n},function(e,exports,t){function n(e,t){return r(e,t)}var r=t(44);e.exports=n},function(e,exports,t){function n(e){var t=r(e)?a.call(e):"";return t==o||t==i}var r=t(20),o="[object Function]",i="[object GeneratorFunction]",s=Object.prototype,a=s.toString;e.exports=n},function(e,exports){function t(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=t},function(e,exports){function t(){}e.exports=t},function(e,exports,t){var n=t(39),r=t(42),o=t(46),i=t(49),s=t(59),a=i(function(e,t){return null==e?{}:o(e,n(r(t,1),s))});e.exports=a},function(e,exports,t){var n,r;!function(o){"use strict";function i(e,t,n){return function(e){var r=t.createClass({statics:{getClass:function(){return e.getClass?e.getClass():e}},getInstance:function(){return this.refs.instance},__outsideClickHandler:function(e){},componentDidMount:function(){var e=this.getInstance();if("function"!=typeof e.handleClickOutside)throw new Error("Component lacks a handleClickOutside(event) function for processing outside click events.");var t=this.__outsideClickHandler=d(n.findDOMNode(e),e,this.props.outsideClickIgnoreClass||l,this.props.preventDefault||!1,this.props.stopPropagation||!1),r=a.length;a.push(this),u[r]=t,this.props.disableOnClickOutside||this.enableOnClickOutside()},componentWillReceiveProps:function(e){this.props.disableOnClickOutside&&!e.disableOnClickOutside?this.enableOnClickOutside():!this.props.disableOnClickOutside&&e.disableOnClickOutside&&this.disableOnClickOutside()},componentWillUnmount:function(){this.disableOnClickOutside(),this.__outsideClickHandler=!1;var e=a.indexOf(this);e>-1&&(u[e]&&u.splice(e,1),a.splice(e,1))},enableOnClickOutside:function(){var e=this.__outsideClickHandler;if("undefined"!=typeof document){var t=this.props.eventTypes||p;t.forEach||(t=[t]),t.forEach(function(t){document.addEventListener(t,e)})}},disableOnClickOutside:function(){var e=this.__outsideClickHandler;if("undefined"!=typeof document){var t=this.props.eventTypes||p;t.forEach||(t=[t]),t.forEach(function(t){document.removeEventListener(t,e)})}},render:function(){var n=this.props,r={ref:"instance"};return Object.keys(this.props).forEach(function(e){r[e]=n[e]}),t.createElement(e,r)}});return function(e,t){var n=e.displayName||e.name||"Component";t.displayName="OnClickOutside("+n+")"}(e,r),r}}function s(o,i){n=[t(1),t(5)],r=function(e,t){return i(o,e,t)}.apply(exports,n),!(void 0!==r&&(e.exports=r))}var a=[],u=[],l="ignore-react-onclickoutside",p=["mousedown","touchstart"],c=function(e,t,n){return e===t||(e.correspondingElement?e.correspondingElement.classList.contains(n):e.classList.contains(n))},d=function(e,t,n,r,o){return function(i){r&&i.preventDefault(),o&&i.stopPropagation();for(var s=i.target,a=!1;s.parentNode;){if(a=c(s,e,n))return;s=s.parentNode}s===document&&t.handleClickOutside.bind(t,i)()}};s(o,i)}(this)},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=t(2),i=n(o),s=t(1),a=n(s),u=function(e){return a.default.createElement("ul",r({},e,{className:(0,i.default)("dropdown-menu",e.className)}),e.children)};exports.default=u},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=t(21),o=n(r),i=t(2),s=n(i),a=t(32),u=n(a),l=t(1),p=n(l),c=t(5),d=p.default.createClass({displayName:"MenuItem",getDefaultProps:function(){return{onClick:o.default}},componentWillReceiveProps:function(e){e.active&&(0,u.default)((0,c.findDOMNode)(this))},render:function(){var e=this.props,t=e.active,n=e.children,r=e.className,o=e.disabled;return p.default.createElement("li",{className:(0,s.default)({active:t,disabled:o},r)},p.default.createElement("a",{href:"#",onClick:this._handleClick},n))},_handleClick:function(e){var t=this.props,n=t.disabled,r=t.onClick;e.preventDefault(),!n&&r(e)}});exports.default=d},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=t(1),o=n(r),i=t(5),s=t(2),a=n(s),u=t(3),l=n(u),p=t(23),c=n(p),d=o.default.createClass({displayName:"Token",propTypes:{onRemove:r.PropTypes.func},getInitialState:function(){return{selected:!1}},render:function(){return this.props.onRemove&&!this.props.disabled?this._renderRemoveableToken():this._renderToken()},_renderRemoveableToken:function(){return o.default.createElement("div",{className:(0,a.default)("token","token-removeable",{"token-selected":this.state.selected},this.props.className),onBlur:this._handleBlur,onClick:this._handleSelect,onFocus:this._handleSelect,onKeyDown:this._handleKeyDown,tabIndex:0},this.props.children,o.default.createElement("span",{className:"close-button",onClick:this._handleRemove,role:"button"},"×"))},_renderToken:function(){var e=this.props,t=e.className,n=e.disabled,r=e.href,i=(0,a.default)("token",t);return r?o.default.createElement("a",{className:i,disabled:n,href:r},this.props.children):o.default.createElement("div",{className:i,disabled:n},this.props.children)},_handleBlur:function(e){(0,i.findDOMNode)(this).blur(),this.setState({selected:!1})},_handleKeyDown:function(e){switch(e.keyCode){case l.default.BACKSPACE:this.state.selected&&(e.preventDefault(),this._handleRemove())}},handleClickOutside:function(e){this._handleBlur()},_handleRemove:function(e){this.props.onRemove&&this.props.onRemove()},_handleSelect:function(e){e.stopPropagation(),this.setState({selected:!0})}});exports.default=(0,c.default)(d)},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=t(75),o=n(r),i=t(1),s=n(i),a=t(26),u=n(a),l=t(2),p=n(l),c=t(5),d=t(3),f=s.default.createClass({displayName:"TokenizerInput",propTypes:{disabled:i.PropTypes.bool,labelKey:i.PropTypes.string,placeholder:i.PropTypes.string,selected:i.PropTypes.array},getInitialState:function(){return{isFocused:!1}},render:function(){var e=this.props,t=e.disabled,n=e.placeholder,r=e.selected,i=e.text;return s.default.createElement("div",{className:(0,p.default)("bootstrap-tokenizer","clearfix","form-control",{focus:this.state.isFocused}),disabled:t,onClick:this._handleInputFocus,onFocus:this._handleInputFocus,style:{cursor:"text",height:"auto"},tabIndex:-1},r.map(this._renderToken),s.default.createElement(o.default,{className:"bootstrap-tokenizer-input",disabled:t,inputStyle:{backgroundColor:"inherit",border:0,boxShadow:"none",cursor:"inherit",outline:"none",padding:0},onBlur:this._handleBlur,onChange:this._handleChange,onFocus:this.props.onFocus,onKeyDown:this._handleKeydown,placeholder:r.length?null:n,ref:"input",type:"text",value:i}))},blur:function(){this.refs.input.blur()},focus:function(){this._handleInputFocus()},_renderToken:function(e,t){var n=this.props,r=n.disabled,o=n.labelKey,i=n.onRemove;return s.default.createElement(u.default,{disabled:r,key:t,onRemove:function(){return i(e)}},e[o])},_handleBlur:function(e){this.setState({isFocused:!1}),this.props.onBlur(e)},_handleChange:function(e){this.props.onChange(e.target.value)},_handleKeydown:function(e){switch(e.keyCode){case d.BACKSPACE:var t=(0,c.findDOMNode)(this.refs.input);if(t&&t.contains(document.activeElement)&&!this.props.text){var n=t.previousSibling;n&&n.focus()}}this.props.onKeyDown(e)},_handleInputFocus:function(e){return this.props.disabled?void e.target.blur():(this.refs.input.focus(),void this.setState({isFocused:!0}))}});exports.default=f},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(exports,"__esModule",{value:!0});var o=t(22),i=n(o),s=t(21),a=n(s),u=t(18),l=n(u),p=t(66),c=n(p),d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f=t(1),h=n(f),v=t(27),y=n(v),g=t(29),m=n(g),b=t(30),x=n(b),_=t(31),C=n(_),P=t(23),T=n(P),O=t(3),w=h.default.createClass({displayName:"Typeahead",propTypes:{align:f.PropTypes.oneOf(["justify","left","right"]),allowNew:f.PropTypes.bool,defaultSelected:f.PropTypes.array,disabled:f.PropTypes.bool,emptyLabel:f.PropTypes.string,labelKey:f.PropTypes.string,maxHeight:f.PropTypes.number,minLength:f.PropTypes.number,multiple:f.PropTypes.bool,name:f.PropTypes.string,newSelectionPrefix:f.PropTypes.string,onBlur:f.PropTypes.func,onChange:f.PropTypes.func,onInputChange:f.PropTypes.func,options:f.PropTypes.array.isRequired,paginateResults:f.PropTypes.number,paginationText:f.PropTypes.string,placeholder:f.PropTypes.string,renderMenuItemChildren:f.PropTypes.func,selected:f.PropTypes.array},getDefaultProps:function(){return{allowNew:!1,defaultSelected:[],labelKey:"label",onBlur:a.default,onChange:a.default,onInputChange:a.default,minLength:0,multiple:!1,selected:[]}},getInitialState:function(){var e=this.props.defaultSelected,t=this.props.selected.slice();return(0,c.default)(e)||(t=e),{activeIndex:-1,selected:t,showMenu:!1,text:""}},componentWillReceiveProps:function(e){var t=e.multiple,n=e.selected;(0,l.default)(n,this.props.selected)||this.setState({selected:n}),t!==this.props.multiple&&this.setState({text:""})},render:function(){var e=this.props,t=e.options,n=r(e,["options"]),o=this.state,i=o.selected,s=o.text,a=(0,C.default)(t,s,i,n);return h.default.createElement("div",{className:"bootstrap-typeahead open",style:{position:"relative"}},this._renderInput(a),this._renderMenu(a))},blur:function(){this.refs.input.blur()},clear:function(){var e=this.getInitialState(),t=e.activeIndex,n=e.showMenu,r=[],o="";this.setState({activeIndex:t,selected:r,showMenu:n,text:o}),this.props.onChange(r),this.props.onInputChange(o)},focus:function(){this.refs.input.focus()},_renderInput:function(e){var t=this,n=this.props,r=n.labelKey,o=n.multiple,s=this.state,a=s.activeIndex,u=s.selected,l=s.text,p=o?y.default:m.default,c=(0,i.default)(this.props,["disabled","name","placeholder"]);return h.default.createElement(p,d({},c,{activeIndex:a,labelKey:r,onAdd:this._handleAddOption,onBlur:this._handleBlur,onChange:this._handleTextChange,onFocus:this._handleFocus,onKeyDown:function(n){return t._handleKeydown(e,n)},onRemove:this._handleRemoveOption,options:e,ref:"input",selected:u.slice(),text:l}))},_renderMenu:function(e){var t=this.props,n=t.labelKey,r=t.minLength,o=this.state,s=o.activeIndex,a=o.showMenu,u=o.text;if(!(a&&u.length>=r))return null;var l=(0,i.default)(this.props,["align","emptyLabel","maxHeight","newSelectionPrefix","paginationText","renderMenuItemChildren"]);return h.default.createElement(x.default,d({},l,{activeIndex:s,initialResultCount:this.props.paginateResults,labelKey:n,onClick:this._handleAddOption,options:e,text:u}))},_handleBlur:function(e){this.props.onBlur(e)},_handleFocus:function(){this.setState({showMenu:!0})},_handleTextChange:function(e){var t=this.getInitialState(),n=t.activeIndex;this.setState({activeIndex:n,showMenu:!0,text:e}),this.props.onInputChange(e)},_handleKeydown:function(e,t){var n=this.state.activeIndex;switch(t.keyCode){case O.UP:case O.DOWN:if(!this.state.showMenu)return;t.preventDefault(),n+=t.keyCode===O.UP?-1:1,n===e.length?n=-1:n===-2&&(n=e.length-1),this.setState({activeIndex:n});break;case O.ESC:case O.TAB:t.keyCode===O.ESC&&t.preventDefault(),this._hideDropdown();break;case O.RETURN:if(t.preventDefault(),this.state.showMenu){var r=e[n];r&&this._handleAddOption(r)}}},_handleAddOption:function(e){var t=this.props,n=t.multiple,r=t.labelKey,o=t.onChange,i=t.onInputChange,s=void 0,a=void 0;n?(s=this.state.selected.concat(e),a=""):(s=[e],a=e[r]),this.setState({selected:s,text:a}),this._hideDropdown(),o(s),i(a)},_handleRemoveOption:function(e){var t=this.state.selected.slice();t=t.filter(function(t){return!(0,l.default)(t,e)}),this.focus(),this.setState({selected:t}),this._hideDropdown(),this.props.onChange(t)},handleClickOutside:function(e){this._hideDropdown()},_hideDropdown:function(){var e=this.getInitialState(),t=e.activeIndex,n=e.showMenu;this.setState({activeIndex:t,showMenu:n})}});exports.default=(0,T.default)(w)},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=t(22),o=n(r),i=t(63),s=n(i),a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=t(1),l=n(u),p=t(2),c=n(p),d=t(3),f=l.default.createClass({displayName:"TypeaheadInput",propTypes:{disabled:u.PropTypes.bool,labelKey:u.PropTypes.string,name:u.PropTypes.string,onBlur:u.PropTypes.func,onChange:u.PropTypes.func,onFocus:u.PropTypes.func,options:u.PropTypes.array,placeholder:u.PropTypes.string,selected:u.PropTypes.array,text:u.PropTypes.string},getInitialState:function(){return{isFocused:!1}},componentDidUpdate:function(e,t){if(this.props.activeIndex!==e.activeIndex){var n=this._getInputText();this.refs.input.selectionStart=n.length}},render:function(){var e=this.props,t=e.className,n=e.disabled,r=e.selected,i=(0,o.default)(this.props,["disabled","name","onFocus","placeholder"]);return l.default.createElement("div",{className:(0,c.default)("bootstrap-typeahead-input",t),onClick:this._handleInputFocus,onFocus:this._handleInputFocus,style:{outline:"none"},tabIndex:-1},l.default.createElement("input",a({},i,{className:(0,c.default)("bootstrap-typeahead-input-main","form-control",{"has-selection":!!r.length}),onBlur:this._handleBlur,onChange:this._handleChange,onKeyDown:this._handleKeydown,ref:"input",style:{backgroundColor:!n&&"transparent",display:"block",position:"relative",zIndex:1},type:"text",value:this._getInputText()})),l.default.createElement("input",{className:"bootstrap-typeahead-input-hint form-control",style:{borderColor:"transparent",bottom:0,boxShadow:"none",display:"block",opacity:.6,position:"absolute",top:0,width:"100%",zIndex:0},tabIndex:-1,type:"text",value:this._getHintText()}))},blur:function(){this.refs.input.blur()},focus:function(){this._handleInputFocus()},_getHintText:function(){var e=this.props,t=e.activeIndex,n=e.options,r=e.labelKey,o=e.selected,i=e.text,a=(0,s.default)(n),u=a&&a[r];return this.state.isFocused&&i&&t===-1&&!o.length&&u&&0===u.toLowerCase().indexOf(i.toLowerCase())?i+u.slice(i.length,u.length):""},_getInputText:function(){var e=this.props,t=e.activeIndex,n=e.labelKey,r=e.options,o=e.selected,i=e.text,a=!!o.length&&(0,s.default)(o);return a?a[n]:t>=0?r[t][n]:i},_handleBlur:function(e){this.setState({isFocused:!1}),this.props.onBlur(e)},_handleChange:function(e){var t=this.props,n=t.onRemove,r=t.selected;!!r.length&&n((0,s.default)(r)),this.props.onChange(e.target.value)},_handleInputFocus:function(e){this.setState({isFocused:!0}),this.refs.input.focus()},_handleKeydown:function(e){var t=this.props,n=t.activeIndex,r=t.options,o=t.onAdd,i=t.selected,a=t.text;switch(e.keyCode){case d.RIGHT:case d.TAB:var u=this.refs.input.selectionStart,l=!!this._getHintText();if((l||n!==-1)&&!i.length&&(e.keyCode!==d.RIGHT||u===a.length)){e.preventDefault();var p=l?(0,s.default)(r):r[n];o&&o(p)}}this.props.onKeyDown(e)}});exports.default=f},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=t(2),o=n(r),i=t(73),s=n(i),a=t(1),u=n(a),l=t(24),p=n(l),c=t(25),d=n(c),f=u.default.createClass({displayName:"TypeaheadMenu",propTypes:{activeIndex:a.PropTypes.number,align:a.PropTypes.oneOf(["justify","left","right"]),emptyLabel:a.PropTypes.string,initialResultCount:a.PropTypes.number,labelKey:a.PropTypes.string.isRequired,maxHeight:a.PropTypes.number,newSelectionPrefix:a.PropTypes.string,options:a.PropTypes.array,paginationText:a.PropTypes.string,renderMenuItemChildren:a.PropTypes.func,text:a.PropTypes.string.isRequired},getDefaultProps:function(){return{align:"justify",emptyLabel:"No matches found.",initialResultCount:100,maxHeight:300,newSelectionPrefix:"New selection: ",paginationText:"Display additional results..."}},getInitialState:function(){return{resultCount:this.props.initialResultCount}},render:function(){var e=this.props,t=e.align,n=e.emptyLabel,r=e.maxHeight,i=e.options,s=i.slice(0,this.state.resultCount||i.length),a=s.length?s.map(this._renderMenuItem):u.default.createElement(d.default,{disabled:!0},n);return u.default.createElement(p.default,{className:(0,o.default)("bootstrap-typeahead-menu",{"dropdown-menu-justify":"justify"===t,"dropdown-menu-right":"right"===t}),style:{maxHeight:r+"px",overflow:"auto"}},a,this._renderPaginationMenuItem(s))},_renderMenuItem:function(e,t){var n=this.props,r=n.activeIndex,o=n.labelKey,i=n.newSelectionPrefix,a=n.onClick,l=n.renderMenuItemChildren,p=n.text,c={active:t===r,key:t,onClick:function(){return a(e)}};return e.customOption?u.default.createElement(d.default,c,i,u.default.createElement(s.default,{search:p},e[o])):l?u.default.createElement(d.default,c,l(this.props,e,t)):u.default.createElement(d.default,c,u.default.createElement(s.default,{search:p},e[o]))},_renderPaginationMenuItem:function(e){var t=this.props,n=t.options,r=t.paginationText;if(e.length<n.length)return[u.default.createElement("li",{className:"divider",key:"pagination-item-divider",role:"separator"}),u.default.createElement(d.default,{className:"bootstrap-typeahead-menu-paginator",key:"pagination-item",onClick:this._handlePagination},r)]},_handlePagination:function(e){var t=this.state.resultCount+this.props.initialResultCount;this.setState({resultCount:t})}});exports.default=f},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],t=arguments.length<=1||void 0===arguments[1]?"":arguments[1],n=arguments.length<=2||void 0===arguments[2]?[]:arguments[2],r=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],o=r.allowNew,s=r.labelKey,u=r.minLength,p=r.multiple;if(t.length<u)return[];var c=!1,d=e.filter(function(e){var r=e[s];if(!r||"string"!=typeof r)throw new Error("One or more options does not have a valid label string. Please check the `labelKey` prop to ensure that it matches the correct option key and provides a string for filtering and display.");return r===t&&(c=!0),!(r.toLowerCase().indexOf(t.toLowerCase())===-1||p&&(0,l.default)(n,function(t){return(0,a.default)(t,e)}))});if(o&&t.trim()&&(!d.length||!c)){var f={id:(0,i.default)("new-id-"),customOption:!0};f[s]=t,d.push(f)}return d}Object.defineProperty(exports,"__esModule",{value:!0});var o=t(72),i=n(o),s=t(18),a=n(s),u=t(61),l=n(u);exports.default=r},function(e,exports){"use strict";function t(e){if(Element.prototype.scrollIntoViewIfNeeded)return void e.scrollIntoViewIfNeeded();var t=e.getBoundingClientRect(),n=e.parentNode,r=n.getBoundingClientRect(),o=window.getComputedStyle(n,null),i=parseInt(o.getPropertyValue("border-top-width"));(t.top<r.top||t.bottom>r.bottom)&&(n.scrollTop=e.offsetTop-n.offsetTop-n.clientHeight/2-i+e.clientHeight/2)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=t},function(e,exports){e.exports=function(e){var t={},n=arguments[1];if("string"==typeof n){n={};for(var r=1;r<arguments.length;r++)n[arguments[r]]=!0}for(var o in e)n[o]||(t[o]=e[o]);return t}},function(e,exports){"use strict";var t=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(t,"\\$&")}},function(e,exports,t){function n(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var r=t(11),o=t(12),i=t(13),s=t(14),a=t(15);n.prototype.clear=r,n.prototype.delete=o,n.prototype.get=i,n.prototype.has=s,n.prototype.set=a,e.exports=n},function(e,exports,t){function n(e){var t=-1,n=e?e.length:0;for(this.__data__=new r;++t<n;)this.add(e[t])}var r=t(35),o=t(57),i=t(58);n.prototype.add=n.prototype.push=o,n.prototype.has=i,e.exports=n},function(e,exports,t){function n(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var r=t(11),o=t(12),i=t(13),s=t(14),a=t(15);n.prototype.clear=r,n.prototype.delete=o,n.prototype.get=i,n.prototype.has=s,n.prototype.set=a,e.exports=n},function(e,exports){function t(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}e.exports=t},function(e,exports){function t(e,t){for(var n=-1,r=e?e.length:0,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}e.exports=t},function(e,exports){function t(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(t(e[n],n,e))return!0;return!1}e.exports=t},function(e,exports){function t(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return-1}e.exports=t},function(e,exports){function t(e){return e&&e.length?e[0]:void 0}e.exports=t},function(e,exports,t){function n(e,t){return null!=e&&(i.call(e,t)||"object"==typeof e&&t in e&&null===r(e))}var r=t(55),o=Object.prototype,i=o.hasOwnProperty;e.exports=n},function(e,exports,t){function n(e,t,s,a,u){return e===t||(null==e||null==t||!o(e)&&!i(t)?e!==e&&t!==t:r(e,t,n,s,a,u))}var r=t(45),o=t(20),i=t(7);e.exports=n},function(e,exports,t){function n(e,t,n,v,g,m){var b=u(e),x=u(t),_=f,C=f;b||(_=a(e),_=_==d?h:_),x||(C=a(t),C=C==d?h:C);var P=_==h&&!l(e),T=C==h&&!l(t),O=_==C;if(O&&!P)return m||(m=new r),b||p(e)?o(e,t,n,v,g,m):i(e,t,_,n,v,g,m);if(!(g&c)){var w=P&&y.call(e,"__wrapped__"),S=T&&y.call(t,"__wrapped__");if(w||S){var I=w?e.value():e,k=S?t.value():t;return m||(m=new r),n(I,k,v,g,m)}}return!!O&&(m||(m=new r),s(e,t,n,v,g,m))}var r=t(37),o=t(51),i=t(52),s=t(53),a=t(10),u=t(6),l=t(56),p=t(69),c=2,d="[object Arguments]",f="[object Array]",h="[object Object]",v=Object.prototype,y=v.hasOwnProperty;e.exports=n},function(e,exports,t){function n(e,t){return e=Object(e),r(e,t,function(t,n){return n in e})}var r=t(47);e.exports=n},function(e,exports){function t(e,t,n){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],a=e[s];n(a,s)&&(i[s]=a)}return i}e.exports=t},function(e,exports){function t(e){return function(t){return null==t?void 0:t[e]}}e.exports=t},function(e,exports,t){function n(e,t){return t=o(void 0===t?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=o(n.length-t,0),a=Array(s);++i<s;)a[i]=n[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=n[i];return u[t]=a,r(e,this,u)}}var r=t(38),o=Math.max;e.exports=n},function(e,exports,t){function n(e){return function(t,n,s){var a=Object(t);if(!o(t)){var u=r(n,3);t=i(t),n=function(e){return u(a[e],e,a)}}var l=e(t,n,s);return l>-1?a[u?t[l]:l]:void 0}}var r=t(9),o=t(17),i=t(8);e.exports=n},function(e,exports,t){function n(e,t,n,a,u,l){var p=u&s,c=e.length,d=t.length;if(c!=d&&!(p&&d>c))return!1;var f=l.get(e);if(f&&l.get(t))return f==t;var h=-1,v=!0,y=u&i?new r:void 0;for(l.set(e,t),l.set(t,e);++h<c;){var g=e[h],m=t[h];if(a)var b=p?a(m,g,h,t,e,l):a(g,m,h,e,t,l);if(void 0!==b){if(b)continue;v=!1;break}if(y){if(!o(t,function(e,t){if(!y.has(t)&&(g===e||n(g,e,a,u,l)))return y.add(t)})){v=!1;break}}else if(g!==m&&!n(g,m,a,u,l)){v=!1;break}}return l.delete(e),l.delete(t),v}var r=t(36),o=t(40),i=1,s=2;e.exports=n},function(e,exports){function t(e,t){return e===t||e!==e&&t!==t}e.exports=t},function(e,exports,t){function n(e,t,n,s,a,u){var l=a&i,p=o(e),c=p.length,d=o(t),f=d.length;if(c!=f&&!l)return!1;for(var h=c;h--;){var v=p[h];if(!(l?v in t:r(t,v)))return!1}var y=u.get(e);if(y&&u.get(t))return y==t;var g=!0;u.set(e,t),u.set(t,e);for(var m=l;++h<c;){v=p[h];var b=e[v],x=t[v];if(s)var _=l?s(x,b,v,t,e,u):s(b,x,v,e,t,u);if(!(void 0===_?b===x||n(b,x,s,a,u):_)){g=!1;break}m||(m="constructor"==v)}if(g&&!m){var C=e.constructor,P=t.constructor;C!=P&&"constructor"in e&&"constructor"in t&&!("function"==typeof C&&C instanceof C&&"function"==typeof P&&P instanceof P)&&(g=!1)}return u.delete(e),u.delete(t),g}var r=t(43),o=t(8),i=2;e.exports=n},function(e,exports,t){var n=t(48),r=n("length");e.exports=r},function(e,exports,t){var n=t(16),r=Object.getPrototypeOf,o=n(r,Object);e.exports=o},function(e,exports){function t(){return!1}e.exports=t},function(e,exports){function t(e){return this.__data__.set(e,n),this}var n="__lodash_hash_undefined__";e.exports=t},function(e,exports){function t(e){return this.__data__.has(e)}e.exports=t},function(e,exports){function t(e){return e}e.exports=t},function(e,exports){function t(e,t){return e===t||e!==e&&t!==t}e.exports=t},function(e,exports,t){var n=t(50),r=t(62),o=n(r);e.exports=o},function(e,exports,t){function n(e,t,n){var a=e?e.length:0;if(!a)return-1;var u=null==n?0:i(n);return u<0&&(u=s(a+u,0)),r(e,o(t,3),u)}var r=t(41),o=t(9),i=t(70),s=Math.max;e.exports=n},function(e,exports){function t(e){return e&&e.length?e[0]:void 0}e.exports=t},function(e,exports){function t(){return!1}e.exports=t},function(e,exports){function t(){return!1}e.exports=t},function(e,exports,t){function n(e){if(s(e)&&(i(e)||p(e)||u(e.splice)||o(e)||a(e)))return!e.length;if(l(e)){var t=r(e);if(t==d||t==f)return!e.size}for(var n in e)if(v.call(e,n))return!1;return!(g&&c(e).length)}var r=t(10),o=t(64),i=t(6),s=t(17),a=t(65),u=t(19),l=t(7),p=t(68),c=t(8),d="[object Map]",f="[object Set]",h=Object.prototype,v=h.hasOwnProperty,y=h.propertyIsEnumerable,g=!y.call({valueOf:1},"valueOf");e.exports=n},function(e,exports){function t(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}var n=9007199254740991;e.exports=t},function(e,exports,t){function n(e){return"string"==typeof e||!r(e)&&o(e)&&a.call(e)==i}var r=t(6),o=t(7),i="[object String]",s=Object.prototype,a=s.toString;e.exports=n},function(e,exports){function t(){return!1}e.exports=t},function(e,exports){function t(e){return e}e.exports=t},function(e,exports){function t(e){return e}e.exports=t},function(e,exports,t){function n(e){var t=++o;return r(e)+t}var r=t(71),o=0;e.exports=n},function(e,exports,t){var n=t(1),r=t(74),o=t(34),i=t(33),s=n.createClass({displayName:"Highlighter",count:0,propTypes:{search:n.PropTypes.oneOfType([n.PropTypes.string,n.PropTypes.number,n.PropTypes.bool,r]).isRequired,caseSensitive:n.PropTypes.bool,matchElement:n.PropTypes.string,matchClass:n.PropTypes.string,matchStyle:n.PropTypes.object},getDefaultProps:function(){return{caseSensitive:!1,matchElement:"strong",matchClass:"highlight",matchStyle:{}}},render:function(){var e=i(this.props,"search","caseSensitive","matchElement","matchClass","matchStyle");return n.createElement("span",e,this.renderElement(this.props.children))},renderElement:function(e){if(this.isScalar()&&this.hasSearch()){var t=this.getSearch();return this.highlightChildren(e,t)}return this.props.children},isScalar:function(){return/string|number|boolean/.test(typeof this.props.children)},hasSearch:function(){return"undefined"!=typeof this.props.search&&this.props.search},getSearch:function(){if(this.props.search instanceof RegExp)return this.props.search;var e="";this.props.caseSensitive||(e+="i");var t=this.props.search;return"string"==typeof this.props.search&&(t=o(t)),new RegExp(t,e)},getMatchBoundaries:function(e,t){var n=t.exec(e);if(n)return{first:n.index,last:n.index+n[0].length}},highlightChildren:function(e,t){for(var n=[],r=this.props.matchElement,o=e;o;){if(!t.test(o))return n.push(this.renderPlain(o)),n;var i=this.getMatchBoundaries(o,t),s=o.slice(0,i.first);s&&n.push(this.renderPlain(s));var a=o.slice(i.first,i.last);a&&n.push(this.renderHighlight(a,r)),o=o.slice(i.last)}return n},renderPlain:function(e){return this.count++,n.DOM.span({key:this.count},e)},renderHighlight:function(e){return this.count++,n.DOM[this.props.matchElement]({key:this.count,className:this.props.matchClass,style:this.props.matchStyle},e)}});e.exports=s},function(e,exports){var t=function(e,t,n,r){if(!(e[t]instanceof RegExp)){var o=typeof e[t];return new Error("Invalid "+r+" `"+t+"` of type `"+o+"` "+("supplied to `"+n+"`, expected `RegExp`."))}};e.exports=t},function(e,exports,t){"use strict";var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r=t(1),o={position:"absolute",top:0,left:0,visibility:"hidden",height:0,overflow:"scroll",whiteSpace:"pre"},i=r.createClass({displayName:"AutosizeInput",propTypes:{className:r.PropTypes.string,defaultValue:r.PropTypes.any,inputClassName:r.PropTypes.string,inputStyle:r.PropTypes.object,minWidth:r.PropTypes.oneOfType([r.PropTypes.number,r.PropTypes.string]),onChange:r.PropTypes.func,placeholder:r.PropTypes.string,placeholderIsMinWidth:r.PropTypes.bool,style:r.PropTypes.object,value:r.PropTypes.any},getDefaultProps:function(){return{minWidth:1}},getInitialState:function(){return{inputWidth:this.props.minWidth}},componentDidMount:function(){this.copyInputStyles(),this.updateInputWidth()},componentDidUpdate:function(){this.updateInputWidth()},copyInputStyles:function(){if(this.isMounted()&&window.getComputedStyle){var e=window.getComputedStyle(this.refs.input);if(e){var t=this.refs.sizer;if(t.style.fontSize=e.fontSize,t.style.fontFamily=e.fontFamily,t.style.fontWeight=e.fontWeight,t.style.fontStyle=e.fontStyle,t.style.letterSpacing=e.letterSpacing,this.props.placeholder){var n=this.refs.placeholderSizer;n.style.fontSize=e.fontSize,n.style.fontFamily=e.fontFamily,n.style.fontWeight=e.fontWeight,n.style.fontStyle=e.fontStyle,n.style.letterSpacing=e.letterSpacing}}}},updateInputWidth:function(){if(this.isMounted()&&"undefined"!=typeof this.refs.sizer.scrollWidth){var e=void 0;e=this.props.placeholder&&(!this.props.value||this.props.value&&this.props.placeholderIsMinWidth)?Math.max(this.refs.sizer.scrollWidth,this.refs.placeholderSizer.scrollWidth)+2:this.refs.sizer.scrollWidth+2,e<this.props.minWidth&&(e=this.props.minWidth),e!==this.state.inputWidth&&this.setState({inputWidth:e})}},getInput:function(){return this.refs.input},focus:function(){this.refs.input.focus()},blur:function(){this.refs.input.blur();
},select:function(){this.refs.input.select()},render:function(){var e=this.props.defaultValue||this.props.value||"",t=this.props.style||{};t.display||(t.display="inline-block");var i=n({},this.props.inputStyle);i.width=this.state.inputWidth+"px",i.boxSizing="content-box";var s=n({},this.props);return s.className=this.props.inputClassName,s.style=i,delete s.inputClassName,delete s.inputStyle,delete s.minWidth,delete s.placeholderIsMinWidth,r.createElement("div",{className:this.props.className,style:t},r.createElement("input",n({},s,{ref:"input"})),r.createElement("div",{ref:"sizer",style:o},e),this.props.placeholder?r.createElement("div",{ref:"placeholderSizer",style:o},this.props.placeholder):null)}});e.exports=i}])});
!function(){"use strict";function t(){for(var e=[],n=0;n<arguments.length;n++){var r=arguments[n];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r))e.push(t.apply(null,r));else if("object"===i)for(var s in r)o.call(r,s)&&r[s]&&e.push(s)}}return e.join(" ")}var o={}.hasOwnProperty;"undefined"!=typeof e&&e.exports?e.exports=t:(n=[],r=function(){return t}.apply(exports,n),!(void 0!==r&&(e.exports=r)))}()},function(e,exports){"use strict";e.exports={BACKSPACE:8,TAB:9,RETURN:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40}},function(e,exports,t){function n(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}var r=t(63);e.exports=n},function(e,exports){e.exports=t},function(e,exports){function t(e){return e&&e.length?e[0]:void 0}e.exports=t},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=t(23),o=n(r),i=t(3),s=n(i),a=t(1),u=n(a),l=t(6),c=t(36),p=n(c),d=u.default.createClass({displayName:"MenuItem",getDefaultProps:function(){return{onClick:o.default}},componentWillReceiveProps:function(e){e.active&&(0,p.default)((0,l.findDOMNode)(this))},render:function(){var e=this.props,t=e.active,n=e.children,r=e.className,o=e.disabled;return u.default.createElement("li",{className:(0,s.default)({active:t,disabled:o},r)},u.default.createElement("a",{href:"#",onClick:this._handleClick},n))},_handleClick:function(e){var t=this.props,n=t.disabled,r=t.onClick;e.preventDefault(),!n&&r(e)}});exports.default=d},function(e,exports){function t(e){return e}e.exports=t},function(e,exports,t){var n=t(17),r=Object.getPrototypeOf,o=n(r,Object);e.exports=o},function(e,exports){function t(){return!1}e.exports=t},function(e,exports){function t(){this.__data__=[]}e.exports=t},function(e,exports,t){function n(e){var t=this.__data__,n=r(t,e);if(n<0)return!1;var o=t.length-1;return n==o?t.pop():i.call(t,n,1),!0}var r=t(5),o=Array.prototype,i=o.splice;e.exports=n},function(e,exports,t){function n(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}var r=t(5);e.exports=n},function(e,exports,t){function n(e){return r(this.__data__,e)>-1}var r=t(5);e.exports=n},function(e,exports,t){function n(e,t){var n=this.__data__,o=r(n,e);return o<0?n.push([e,t]):n[o][1]=t,this}var r=t(5);e.exports=n},function(e,exports){function t(e,t){return function(n){return e(t(n))}}e.exports=t},function(e,exports,t){var n=t(54),r=t(64),o=n(r);e.exports=o},function(e,exports,t){function n(e,t){return r(e,t)}var r=t(48);e.exports=n},function(e,exports){function t(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=t},function(e,exports){function t(e){return!!e&&"object"==typeof e}e.exports=t},function(e,exports,t){var n=t(17),r=Object.keys,o=n(r,Object);e.exports=o},function(e,exports){function t(){}e.exports=t},function(e,exports,t){var n,r;!function(o){"use strict";function i(e,t,n){return function(e){var r=t.createClass({statics:{getClass:function(){return e.getClass?e.getClass():e}},getInstance:function(){return this.refs.instance},__outsideClickHandler:function(e){},componentDidMount:function(){var e=this.getInstance();if("function"!=typeof e.handleClickOutside)throw new Error("Component lacks a handleClickOutside(event) function for processing outside click events.");var t=this.__outsideClickHandler=d(n.findDOMNode(e),e,this.props.outsideClickIgnoreClass||l,this.props.preventDefault||!1,this.props.stopPropagation||!1),r=a.length;a.push(this),u[r]=t,this.props.disableOnClickOutside||this.enableOnClickOutside()},componentWillReceiveProps:function(e){this.props.disableOnClickOutside&&!e.disableOnClickOutside?this.enableOnClickOutside():!this.props.disableOnClickOutside&&e.disableOnClickOutside&&this.disableOnClickOutside()},componentWillUnmount:function(){this.disableOnClickOutside(),this.__outsideClickHandler=!1;var e=a.indexOf(this);e>-1&&(u[e]&&u.splice(e,1),a.splice(e,1))},enableOnClickOutside:function(){var e=this.__outsideClickHandler;if("undefined"!=typeof document){var t=this.props.eventTypes||c;t.forEach||(t=[t]),t.forEach(function(t){document.addEventListener(t,e)})}},disableOnClickOutside:function(){var e=this.__outsideClickHandler;if("undefined"!=typeof document){var t=this.props.eventTypes||c;t.forEach||(t=[t]),t.forEach(function(t){document.removeEventListener(t,e)})}},render:function(){var n=this.props,r={ref:"instance"};return Object.keys(this.props).forEach(function(e){r[e]=n[e]}),t.createElement(e,r)}});return function(e,t){var n=e.displayName||e.name||"Component";t.displayName="OnClickOutside("+n+")"}(e,r),r}}function s(o,i){n=[t(1),t(6)],r=function(e,t){return i(o,e,t)}.apply(exports,n),!(void 0!==r&&(e.exports=r))}var a=[],u=[],l="ignore-react-onclickoutside",c=["mousedown","touchstart"],p=function(e,t,n){return e===t||(e.correspondingElement?e.correspondingElement.classList.contains(n):e.classList.contains(n))},d=function(e,t,n,r,o){return function(i){r&&i.preventDefault(),o&&i.stopPropagation();for(var s=i.target,a=!1;s.parentNode;){if(a=p(s,e,n))return;s=s.parentNode}s===document&&t.handleClickOutside.bind(t,i)()}};s(o,i)}(this)},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=t(3),i=n(o),s=t(1),a=n(s),u=t(8),l=n(u),c=function(e){return a.default.createElement("ul",r({},e,{className:(0,i.default)("dropdown-menu",e.className)}),e.children)},p=a.default.createClass({displayName:"Menu",propTypes:{align:s.PropTypes.oneOf(["justify","left","right"]),emptyLabel:s.PropTypes.string,maxHeight:s.PropTypes.number,paginationText:s.PropTypes.string},getDefaultProps:function(){return{align:"justify",emptyLabel:"No matches found.",maxHeight:300,paginate:!0,paginationText:"Display additional results..."}},render:function(){var e=this.props,t=e.align,n=e.children,r=e.className,o=e.emptyLabel,u=e.maxHeight,p=0===s.Children.count(n)?a.default.createElement(l.default,{disabled:!0},o):n;return a.default.createElement(c,{className:(0,i.default)("bootstrap-typeahead-menu",{"dropdown-menu-justify":"justify"===t,"dropdown-menu-right":"right"===t},r),style:{maxHeight:u+"px",overflow:"auto"}},p,this._renderPaginationMenuItem())},_renderPaginationMenuItem:function(){var e=this.props,t=e.children,n=e.onPaginate,r=e.paginate,o=e.paginationText;if(r&&s.Children.count(t))return[a.default.createElement("li",{className:"divider",key:"pagination-item-divider",role:"separator"}),a.default.createElement(l.default,{className:"bootstrap-typeahead-menu-paginator",key:"pagination-item",onClick:n},o)]}});exports.default=p},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=t(3),o=n(r),i=t(1),s=n(i),a=t(6),u=t(24),l=n(u),c=t(4),p=n(c),d=s.default.createClass({displayName:"Token",propTypes:{onRemove:i.PropTypes.func},getInitialState:function(){return{selected:!1}},render:function(){return this.props.onRemove&&!this.props.disabled?this._renderRemoveableToken():this._renderToken()},_renderRemoveableToken:function(){return s.default.createElement("div",{className:(0,o.default)("token","token-removeable",{"token-selected":this.state.selected},this.props.className),onBlur:this._handleBlur,onClick:this._handleSelect,onFocus:this._handleSelect,onKeyDown:this._handleKeyDown,tabIndex:0},this.props.children,s.default.createElement("span",{className:"close-button",onClick:this._handleRemove,role:"button"},"×"))},_renderToken:function(){var e=this.props,t=e.className,n=e.disabled,r=e.href,i=(0,o.default)("token",t);return r?s.default.createElement("a",{className:i,disabled:n,href:r},this.props.children):s.default.createElement("div",{className:i,disabled:n},this.props.children)},_handleBlur:function(e){(0,a.findDOMNode)(this).blur(),this.setState({selected:!1})},_handleKeyDown:function(e){switch(e.keyCode){case p.default.BACKSPACE:this.state.selected&&(e.preventDefault(),this._handleRemove())}},handleClickOutside:function(e){this._handleBlur()},_handleRemove:function(e){this.props.onRemove&&this.props.onRemove()},_handleSelect:function(e){e.stopPropagation(),this.setState({selected:!0})}});exports.default=(0,l.default)(d)},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=t(3),o=n(r),i=t(1),s=n(i),a=t(6),u=t(77),l=n(u),c=t(26),p=n(c),d=t(2),f=n(d),h=t(4),v=s.default.createClass({displayName:"TokenizerInput",propTypes:{disabled:i.PropTypes.bool,placeholder:i.PropTypes.string,renderToken:i.PropTypes.func},getInitialState:function(){return{isFocused:!1}},render:function(){var e=this.props,t=e.disabled,n=e.placeholder,r=e.selected,i=e.text;return s.default.createElement("div",{className:(0,o.default)("bootstrap-tokenizer","clearfix","form-control",{focus:this.state.isFocused}),disabled:t,onClick:this._handleInputFocus,onFocus:this._handleInputFocus,style:{cursor:"text",height:"auto"},tabIndex:-1},r.map(this._renderToken),s.default.createElement(l.default,{className:"bootstrap-tokenizer-input",disabled:t,inputStyle:{backgroundColor:"inherit",border:0,boxShadow:"none",cursor:"inherit",outline:"none",padding:0},onBlur:this._handleBlur,onChange:this._handleChange,onFocus:this.props.onFocus,onKeyDown:this._handleKeydown,placeholder:r.length?null:n,ref:"input",type:"text",value:i}))},blur:function(){this.refs.input.blur()},focus:function(){this._handleInputFocus()},_renderToken:function(e,t){var n=this.props,r=n.disabled,o=n.labelKey,i=n.onRemove,a=n.renderToken,u=function(){return i(e)};return a?a(e,u,t):s.default.createElement(p.default,{disabled:r,key:t,onRemove:u},(0,f.default)(e,o))},_handleBlur:function(e){this.setState({isFocused:!1}),this.props.onBlur(e)},_handleChange:function(e){this.props.onChange(e.target.value)},_handleKeydown:function(e){switch(e.keyCode){case h.BACKSPACE:var t=(0,a.findDOMNode)(this.refs.input);if(t&&t.contains(document.activeElement)&&!this.props.text){var n=t.previousSibling;n&&n.focus()}}this.props.onKeyDown(e)},_handleInputFocus:function(e){return this.props.disabled?void e.target.blur():(this.refs.input.focus(),void this.setState({isFocused:!0}))}});exports.default=v},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.maxResults,n=e.paginateResults;return null==n?t:n}Object.defineProperty(exports,"__esModule",{value:!0});var o=t(23),i=n(o),s=t(19),a=n(s),u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=t(24),c=n(l),p=t(1),d=n(p),f=t(27),h=n(f),v=t(29),y=n(v),g=t(30),m=n(g),b=t(31),_=n(b),x=t(32),C=n(x),P=t(2),w=n(P),O=t(35),T=n(O),S=t(4),k=d.default.createClass({displayName:"Typeahead",propTypes:{allowNew:p.PropTypes.bool,defaultSelected:p.PropTypes.array,filterBy:p.PropTypes.func,labelKey:p.PropTypes.string,maxResults:p.PropTypes.number,minLength:p.PropTypes.number,multiple:p.PropTypes.bool,onBlur:p.PropTypes.func,onChange:p.PropTypes.func,onInputChange:p.PropTypes.func,options:p.PropTypes.array.isRequired,paginate:p.PropTypes.bool,paginateResults:p.PropTypes.number,selected:p.PropTypes.array},getDefaultProps:function(){return{allowNew:!1,defaultSelected:[],labelKey:"label",maxResults:100,onBlur:i.default,onChange:i.default,onInputChange:i.default,minLength:0,multiple:!1,paginate:!0,selected:[]}},getInitialState:function(){var e=this.props.defaultSelected,t=this.props.selected.slice();return e&&e.length&&(t=e),{activeIndex:-1,selected:t,showMenu:!1,shownResults:r(this.props),text:""}},componentWillMount:function(){null!=this.props.paginateResults&&console.warn("Warning: The `paginateResults` prop is deprecated and will be removed in an upcoming release. Use `maxResults` and `paginate` instead.")},componentWillReceiveProps:function(e){var t=e.multiple,n=e.selected;(0,a.default)(n,this.props.selected)||this.setState({selected:n}),t!==this.props.multiple&&this.setState({text:""})},render:function(){var e=this.props,t=e.allowNew,n=e.labelKey,r=e.paginate,o=this.state,i=o.shownResults,s=o.text,a=this._getFilteredResults(),u=r&&a.length>i;return a=(0,T.default)(a,i),t&&(a=(0,_.default)(a,s,n)),d.default.createElement("div",{className:"bootstrap-typeahead open",style:{position:"relative"}},this._renderInput(a),this._renderMenu(a,u))},_getFilteredResults:function(){var e=this.props,t=e.labelKey,n=e.minLength,r=e.multiple,o=e.options,i=this.state,s=i.selected,a=i.text;if(a.length<n)return[];var u=this.props.filterBy;return u||(u=function(e){return(0,C.default)(e,t,r,s,a)}),o.filter(u)},blur:function(){this.refs.input.blur()},clear:function(){var e=this.getInitialState(),t=e.activeIndex,n=e.showMenu,r=[],o="";this.setState({activeIndex:t,selected:r,showMenu:n,text:o}),this.props.onChange(r),this.props.onInputChange(o)},focus:function(){this.refs.input.focus()},_renderInput:function(e){var t=this,n=this.props,r=n.disabled,o=n.labelKey,i=n.multiple,s=n.name,a=n.placeholder,l=n.renderToken,c=this.state,p=c.activeIndex,f=c.selected,v=c.text,g=i?h.default:y.default,m={disabled:r,name:s,placeholder:a,renderToken:l};return d.default.createElement(g,u({},m,{activeIndex:p,labelKey:o,onAdd:this._handleAddOption,onBlur:this._handleBlur,onChange:this._handleTextChange,onFocus:this._handleFocus,onKeyDown:function(n){return t._handleKeydown(e,n)},onRemove:this._handleRemoveOption,options:e,ref:"input",selected:f.slice(),text:v}))},_renderMenu:function(e,t){var n=this.props,r=n.align,o=n.emptyLabel,i=n.labelKey,s=n.maxHeight,a=n.minLength,l=n.newSelectionPrefix,c=n.paginationText,p=n.renderMenuItemChildren,f=this.state,h=f.activeIndex,v=f.showMenu,y=f.text;if(!(v&&y.length>=a))return null;var g={align:r,emptyLabel:o,maxHeight:s,newSelectionPrefix:l,paginationText:c,renderMenuItemChildren:p};return d.default.createElement(m.default,u({},g,{activeIndex:h,labelKey:i,onClick:this._handleAddOption,onPaginate:this._handlePagination,options:e,paginate:t,text:y}))},_handleBlur:function(e){this.props.onBlur(e)},_handleFocus:function(){this.setState({showMenu:!0})},_handleTextChange:function(e){var t=this.getInitialState(),n=t.activeIndex;this.setState({activeIndex:n,showMenu:!0,text:e}),this.props.onInputChange(e)},_handleKeydown:function(e,t){var n=this.state.activeIndex;switch(t.keyCode){case S.UP:case S.DOWN:if(!this.state.showMenu)return;t.preventDefault(),n+=t.keyCode===S.UP?-1:1,n===e.length?n=-1:n===-2&&(n=e.length-1),this.setState({activeIndex:n});break;case S.ESC:case S.TAB:t.keyCode===S.ESC&&t.preventDefault(),this._hideDropdown();break;case S.RETURN:if(t.preventDefault(),this.state.showMenu){var r=e[n];r&&this._handleAddOption(r)}}},_handleAddOption:function(e){var t=this.props,n=t.multiple,r=t.labelKey,o=t.onChange,i=t.onInputChange,s=void 0,a=void 0;n?(s=this.state.selected.concat(e),a=""):(s=[e],a=(0,w.default)(e,r)),this.setState({selected:s,text:a}),this._hideDropdown(),o(s),i(a)},_handlePagination:function(e){var t=this.state.shownResults+r(this.props);this.focus(),this.setState({shownResults:t})},_handleRemoveOption:function(e){var t=this.state.selected.slice();t=t.filter(function(t){return!(0,a.default)(t,e)}),this.focus(),this.setState({selected:t}),this._hideDropdown(),this.props.onChange(t)},handleClickOutside:function(e){this._hideDropdown()},_hideDropdown:function(){var e=this.getInitialState(),t=e.activeIndex,n=e.showMenu,r=e.shownResults;this.setState({activeIndex:t,showMenu:n,shownResults:r})}});exports.default=(0,c.default)(k)},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=t(7),o=n(r),i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=t(3),a=n(s),u=t(1),l=n(u),c=t(33),p=n(c),d=t(34),f=n(d),h=t(4),v=l.default.createClass({displayName:"TypeaheadInput",propTypes:{disabled:u.PropTypes.bool,name:u.PropTypes.string,placeholder:u.PropTypes.string},getInitialState:function(){return{isFocused:!1}},componentDidUpdate:function(e,t){if(this.props.activeIndex!==e.activeIndex){var n=(0,f.default)(this.props);this.refs.input.selectionStart=n.length}},render:function(){var e=this.props,t=e.className,n=e.disabled,r=e.name,o=e.onFocus,s=e.placeholder,u=e.selected,c={disabled:n,name:r,onFocus:o,placeholder:s};return l.default.createElement("div",{className:(0,a.default)("bootstrap-typeahead-input",t),onClick:this._handleInputFocus,onFocus:this._handleInputFocus,style:{outline:"none"},tabIndex:-1},l.default.createElement("input",i({},c,{className:(0,a.default)("bootstrap-typeahead-input-main","form-control",{"has-selection":!!u.length}),onBlur:this._handleBlur,onChange:this._handleChange,onKeyDown:this._handleKeydown,ref:"input",style:{backgroundColor:!n&&"transparent",display:"block",position:"relative",zIndex:1},type:"text",value:(0,f.default)(this.props)})),l.default.createElement("input",{className:"bootstrap-typeahead-input-hint form-control",style:{borderColor:"transparent",bottom:0,boxShadow:"none",display:"block",opacity:.6,position:"absolute",top:0,width:"100%",zIndex:0},tabIndex:-1,type:"text",value:(0,p.default)(this.props,this.state.isFocused)}))},blur:function(){this.refs.input.blur()},focus:function(){this._handleInputFocus()},_handleBlur:function(e){this.setState({isFocused:!1}),this.props.onBlur(e)},_handleChange:function(e){var t=this.props,n=t.onRemove,r=t.selected;!!r.length&&n((0,o.default)(r)),this.props.onChange(e.target.value)},_handleInputFocus:function(e){this.setState({isFocused:!0}),this.refs.input.focus()},_handleKeydown:function(e){var t=this.props,n=t.activeIndex,r=t.options,i=t.onAdd,s=t.selected,a=t.text;switch(e.keyCode){case h.RIGHT:case h.TAB:var u=this.refs.input.selectionStart,l=!!(0,p.default)(this.props,this.state.isFocused);if((l||n!==-1)&&!s.length&&(e.keyCode!==h.RIGHT||u===a.length)){e.preventDefault();var c=l?(0,o.default)(r):r[n];i&&i(c)}}this.props.onKeyDown(e)}});exports.default=v},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var r=t(71),o=n(r),i=t(75),s=n(i),a=t(1),u=n(a),l=t(25),c=n(l),p=t(8),d=n(p),f=t(2),h=n(f),v=u.default.createClass({displayName:"TypeaheadMenu",propTypes:{newSelectionPrefix:a.PropTypes.string,renderMenuItemChildren:a.PropTypes.func},getDefaultProps:function(){return{newSelectionPrefix:"New selection: "}},render:function(){var e=(0,o.default)(this.props,["align","emptyLabel","maxHeight","onPaginate","paginate","paginationText"]);return u.default.createElement(c.default,e,this.props.options.map(this._renderMenuItem))},_renderMenuItem:function(e,t){var n=this.props,r=n.activeIndex,o=n.labelKey,i=n.newSelectionPrefix,a=n.onClick,l=n.renderMenuItemChildren,c=n.text,p={active:t===r,key:t,onClick:function(){return a(e)}};return e.customOption?u.default.createElement(d.default,p,i,u.default.createElement(s.default,{search:c},e[o])):l?u.default.createElement(d.default,p,l(this.props,e,t)):u.default.createElement(d.default,p,u.default.createElement(s.default,{search:c},(0,h.default)(e,o)))}});exports.default=v},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){e=e.slice();var r=(0,a.default)(e,function(e){return(0,l.default)(e,n)===t});if(!t.trim()||r)return e;var o={id:(0,i.default)("new-id-"),customOption:!0};return o[n]=t,e.push(o),e}Object.defineProperty(exports,"__esModule",{value:!0});var o=t(74),i=n(o),s=t(18),a=n(s),u=t(2),l=n(u);exports.default=r},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n,r,o){var s=(0,l.default)(e,t);return!(s.toLowerCase().indexOf(o.toLowerCase())===-1||n&&(0,a.default)(r,function(t){return(0,i.default)(t,e)}))}Object.defineProperty(exports,"__esModule",{value:!0});var o=t(19),i=n(o),s=t(18),a=n(s),u=t(2),l=n(u);exports.default=r},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var n=e.activeIndex,r=e.labelKey,o=e.options,s=e.selected,u=e.text,l=(0,i.default)(o),c=l&&(0,a.default)(l,r);return t&&u&&n===-1&&!s.length&&c&&0===c.toLowerCase().indexOf(u.toLowerCase())?u+c.slice(u.length,c.length):""}Object.defineProperty(exports,"__esModule",{value:!0});var o=t(7),i=n(o),s=t(2),a=n(s);exports.default=r},function(e,exports,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.activeIndex,n=e.labelKey,r=e.options,o=e.selected,s=e.text,u=!!o.length&&(0,i.default)(o);return u?(0,a.default)(u,n):t>=0?(0,a.default)(r[t],n):s}Object.defineProperty(exports,"__esModule",{value:!0});var o=t(7),i=n(o),s=t(2),a=n(s);exports.default=r},function(e,exports){"use strict";function t(e,t){return!t||t>=e.length?e:e.slice(0,t)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=t},function(e,exports){"use strict";function t(e){if(Element.prototype.scrollIntoViewIfNeeded)return void e.scrollIntoViewIfNeeded();var t=e.getBoundingClientRect(),n=e.parentNode,r=n.getBoundingClientRect(),o=window.getComputedStyle(n,null),i=parseInt(o.getPropertyValue("border-top-width"));(t.top<r.top||t.bottom>r.bottom)&&(n.scrollTop=e.offsetTop-n.offsetTop-n.clientHeight/2-i+e.clientHeight/2)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=t},function(e,exports){e.exports=function(e){var t={},n=arguments[1];if("string"==typeof n){n={};for(var r=1;r<arguments.length;r++)n[arguments[r]]=!0}for(var o in e)n[o]||(t[o]=e[o]);return t}},function(e,exports){"use strict";var t=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(t,"\\$&")}},function(e,exports,t){function n(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var r=t(12),o=t(13),i=t(14),s=t(15),a=t(16);n.prototype.clear=r,n.prototype.delete=o,n.prototype.get=i,n.prototype.has=s,n.prototype.set=a,e.exports=n},function(e,exports,t){function n(e){var t=-1,n=e?e.length:0;for(this.__data__=new r;++t<n;)this.add(e[t])}var r=t(39),o=t(60),i=t(61);n.prototype.add=n.prototype.push=o,n.prototype.has=i,e.exports=n},function(e,exports,t){function n(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var r=t(12),o=t(13),i=t(14),s=t(15),a=t(16);n.prototype.clear=r,n.prototype.delete=o,n.prototype.get=i,n.prototype.has=s,n.prototype.set=a,e.exports=n},function(e,exports){function t(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}e.exports=t},function(e,exports){function t(e,t){for(var n=-1,r=e?e.length:0,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}e.exports=t},function(e,exports){function t(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(t(e[n],n,e))return!0;return!1}e.exports=t},function(e,exports){function t(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return-1}e.exports=t},function(e,exports){function t(e){return e&&e.length?e[0]:void 0}e.exports=t},function(e,exports,t){function n(e,t){return null!=e&&(i.call(e,t)||"object"==typeof e&&t in e&&null===r(e))}var r=t(10),o=Object.prototype,i=o.hasOwnProperty;e.exports=n},function(e,exports,t){function n(e,t,s,a,u){return e===t||(null==e||null==t||!o(e)&&!i(t)?e!==e&&t!==t:r(e,t,n,s,a,u))}var r=t(49),o=t(20),i=t(21);e.exports=n},function(e,exports,t){function n(e,t,n,v,g,m){var b=u(e),_=u(t),x=f,C=f;b||(x=a(e),x=x==d?h:x),_||(C=a(t),C=C==d?h:C);var P=x==h&&!l(e),w=C==h&&!l(t),O=x==C;if(O&&!P)return m||(m=new r),b||c(e)?o(e,t,n,v,g,m):i(e,t,x,n,v,g,m);if(!(g&p)){var T=P&&y.call(e,"__wrapped__"),S=w&&y.call(t,"__wrapped__");if(T||S){var k=T?e.value():e,I=S?t.value():t;return m||(m=new r),n(k,I,v,g,m)}}return!!O&&(m||(m=new r),s(e,t,n,v,g,m))}var r=t(41),o=t(55),i=t(56),s=t(57),a=t(59),u=t(65),l=t(11),c=t(70),p=2,d="[object Arguments]",f="[object Array]",h="[object Object]",v=Object.prototype,y=v.hasOwnProperty;e.exports=n},function(e,exports,t){function n(e,t){return e=Object(e),r(e,t,function(t,n){return n in e})}var r=t(51);e.exports=n},function(e,exports){function t(e,t,n){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],a=e[s];n(a,s)&&(i[s]=a)}return i}e.exports=t},function(e,exports){function t(e){return function(t){return null==t?void 0:t[e]}}e.exports=t},function(e,exports,t){function n(e,t){return t=o(void 0===t?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=o(n.length-t,0),a=Array(s);++i<s;)a[i]=n[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=n[i];return u[t]=a,r(e,this,u)}}var r=t(42),o=Math.max;e.exports=n},function(e,exports,t){function n(e){return function(t,n,s){var a=Object(t);if(!o(t)){var u=r(n,3);t=i(t),n=function(e){return u(a[e],e,a)}}var l=e(t,n,s);return l>-1?a[u?t[l]:l]:void 0}}var r=t(9),o=t(66),i=t(22);e.exports=n},function(e,exports,t){function n(e,t,n,a,u,l){var c=u&s,p=e.length,d=t.length;if(p!=d&&!(c&&d>p))return!1;var f=l.get(e);if(f&&l.get(t))return f==t;var h=-1,v=!0,y=u&i?new r:void 0;for(l.set(e,t),l.set(t,e);++h<p;){var g=e[h],m=t[h];if(a)var b=c?a(m,g,h,t,e,l):a(g,m,h,e,t,l);if(void 0!==b){if(b)continue;v=!1;break}if(y){if(!o(t,function(e,t){if(!y.has(t)&&(g===e||n(g,e,a,u,l)))return y.add(t)})){v=!1;break}}else if(g!==m&&!n(g,m,a,u,l)){v=!1;break}}return l.delete(e),l.delete(t),v}var r=t(40),o=t(44),i=1,s=2;e.exports=n},function(e,exports){function t(e,t){return e===t||e!==e&&t!==t}e.exports=t},function(e,exports,t){function n(e,t,n,s,a,u){var l=a&i,c=o(e),p=c.length,d=o(t),f=d.length;if(p!=f&&!l)return!1;for(var h=p;h--;){var v=c[h];if(!(l?v in t:r(t,v)))return!1}var y=u.get(e);if(y&&u.get(t))return y==t;var g=!0;u.set(e,t),u.set(t,e);for(var m=l;++h<p;){v=c[h];var b=e[v],_=t[v];if(s)var x=l?s(_,b,v,t,e,u):s(b,_,v,e,t,u);if(!(void 0===x?b===_||n(b,_,s,a,u):x)){g=!1;break}m||(m="constructor"==v)}if(g&&!m){var C=e.constructor,P=t.constructor;C!=P&&"constructor"in e&&"constructor"in t&&!("function"==typeof C&&C instanceof C&&"function"==typeof P&&P instanceof P)&&(g=!1)}return u.delete(e),u.delete(t),g}var r=t(47),o=t(22),i=2;e.exports=n},function(e,exports,t){var n=t(52),r=n("length");e.exports=r},function(e,exports){function t(e){return r.call(e)}var n=Object.prototype,r=n.toString;e.exports=t},function(e,exports){function t(e){return this.__data__.set(e,n),this}var n="__lodash_hash_undefined__";e.exports=t},function(e,exports){function t(e){return this.__data__.has(e)}e.exports=t},function(e,exports){function t(e){return e}e.exports=t},function(e,exports){function t(e,t){return e===t||e!==e&&t!==t}e.exports=t},function(e,exports,t){function n(e,t,n){var a=e?e.length:0;if(!a)return-1;var u=null==n?0:i(n);return u<0&&(u=s(a+u,0)),r(e,o(t,3),u)}var r=t(45),o=t(9),i=t(72),s=Math.max;e.exports=n},function(e,exports){var t=Array.isArray;e.exports=t},function(e,exports,t){function n(e){return null!=e&&i(r(e))&&!o(e)}var r=t(58),o=t(67),i=t(68);e.exports=n},function(e,exports,t){function n(e){var t=r(e)?a.call(e):"";return t==o||t==i}var r=t(20),o="[object Function]",i="[object GeneratorFunction]",s=Object.prototype,a=s.toString;e.exports=n},function(e,exports){function t(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}var n=9007199254740991;e.exports=t},function(e,exports,t){function n(e){if(!i(e)||p.call(e)!=s||o(e))return!1;var t=r(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&u.call(n)==c}var r=t(10),o=t(11),i=t(21),s="[object Object]",a=Object.prototype,u=Function.prototype.toString,l=a.hasOwnProperty,c=u.call(Object),p=a.toString;e.exports=n},function(e,exports){function t(){return!1}e.exports=t},function(e,exports,t){var n=t(43),r=t(46),o=t(50),i=t(53),s=t(62),a=i(function(e,t){return null==e?{}:o(e,n(r(t,1),s))});e.exports=a},function(e,exports){function t(e){return e}e.exports=t},function(e,exports){function t(e){return e}e.exports=t},function(e,exports,t){function n(e){var t=++o;return r(e)+t}var r=t(73),o=0;e.exports=n},function(e,exports,t){var n=t(1),r=t(76),o=t(38),i=t(37),s=n.createClass({displayName:"Highlighter",count:0,propTypes:{search:n.PropTypes.oneOfType([n.PropTypes.string,n.PropTypes.number,n.PropTypes.bool,r]).isRequired,caseSensitive:n.PropTypes.bool,matchElement:n.PropTypes.string,matchClass:n.PropTypes.string,matchStyle:n.PropTypes.object},getDefaultProps:function(){return{caseSensitive:!1,matchElement:"strong",matchClass:"highlight",matchStyle:{}}},render:function(){var e=i(this.props,"search","caseSensitive","matchElement","matchClass","matchStyle");return n.createElement("span",e,this.renderElement(this.props.children))},renderElement:function(e){if(this.isScalar()&&this.hasSearch()){var t=this.getSearch();return this.highlightChildren(e,t)}return this.props.children},isScalar:function(){return/string|number|boolean/.test(typeof this.props.children)},hasSearch:function(){return"undefined"!=typeof this.props.search&&this.props.search},getSearch:function(){if(this.props.search instanceof RegExp)return this.props.search;var e="";this.props.caseSensitive||(e+="i");var t=this.props.search;return"string"==typeof this.props.search&&(t=o(t)),new RegExp(t,e)},getMatchBoundaries:function(e,t){var n=t.exec(e);if(n)return{first:n.index,last:n.index+n[0].length}},highlightChildren:function(e,t){for(var n=[],r=this.props.matchElement,o=e;o;){if(!t.test(o))return n.push(this.renderPlain(o)),n;var i=this.getMatchBoundaries(o,t),s=o.slice(0,i.first);s&&n.push(this.renderPlain(s));var a=o.slice(i.first,i.last);a&&n.push(this.renderHighlight(a,r)),o=o.slice(i.last)}return n},renderPlain:function(e){return this.count++,n.DOM.span({key:this.count},e)},renderHighlight:function(e){return this.count++,n.DOM[this.props.matchElement]({key:this.count,className:this.props.matchClass,style:this.props.matchStyle},e)}});e.exports=s},function(e,exports){var t=function(e,t,n,r){if(!(e[t]instanceof RegExp)){var o=typeof e[t];return new Error("Invalid "+r+" `"+t+"` of type `"+o+"` "+("supplied to `"+n+"`, expected `RegExp`."))}};e.exports=t},function(e,exports,t){"use strict";var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r=t(1),o={position:"absolute",top:0,left:0,visibility:"hidden",height:0,overflow:"scroll",whiteSpace:"pre"},i=r.createClass({displayName:"AutosizeInput",propTypes:{className:r.PropTypes.string,defaultValue:r.PropTypes.any,inputClassName:r.PropTypes.string,inputStyle:r.PropTypes.object,minWidth:r.PropTypes.oneOfType([r.PropTypes.number,r.PropTypes.string]),onChange:r.PropTypes.func,placeholder:r.PropTypes.string,placeholderIsMinWidth:r.PropTypes.bool,style:r.PropTypes.object,value:r.PropTypes.any},getDefaultProps:function(){return{minWidth:1}},getInitialState:function(){return{inputWidth:this.props.minWidth}},componentDidMount:function(){this.copyInputStyles(),this.updateInputWidth()},componentDidUpdate:function(){this.updateInputWidth()},copyInputStyles:function(){if(this.isMounted()&&window.getComputedStyle){var e=window.getComputedStyle(this.refs.input);if(e){var t=this.refs.sizer;if(t.style.fontSize=e.fontSize,t.style.fontFamily=e.fontFamily,t.style.fontWeight=e.fontWeight,t.style.fontStyle=e.fontStyle,t.style.letterSpacing=e.letterSpacing,this.props.placeholder){var n=this.refs.placeholderSizer;n.style.fontSize=e.fontSize,n.style.fontFamily=e.fontFamily,n.style.fontWeight=e.fontWeight,n.style.fontStyle=e.fontStyle,n.style.letterSpacing=e.letterSpacing}}}},updateInputWidth:function(){if(this.isMounted()&&"undefined"!=typeof this.refs.sizer.scrollWidth){var e=void 0;e=this.props.placeholder&&(!this.props.value||this.props.value&&this.props.placeholderIsMinWidth)?Math.max(this.refs.sizer.scrollWidth,this.refs.placeholderSizer.scrollWidth)+2:this.refs.sizer.scrollWidth+2,
e<this.props.minWidth&&(e=this.props.minWidth),e!==this.state.inputWidth&&this.setState({inputWidth:e})}},getInput:function(){return this.refs.input},focus:function(){this.refs.input.focus()},blur:function(){this.refs.input.blur()},select:function(){this.refs.input.select()},render:function(){var e=this.props.defaultValue||this.props.value||"",t=this.props.style||{};t.display||(t.display="inline-block");var i=n({},this.props.inputStyle);i.width=this.state.inputWidth+"px",i.boxSizing="content-box";var s=n({},this.props);return s.className=this.props.inputClassName,s.style=i,delete s.inputClassName,delete s.inputStyle,delete s.minWidth,delete s.placeholderIsMinWidth,r.createElement("div",{className:this.props.className,style:t},r.createElement("input",n({},s,{ref:"input"})),r.createElement("div",{ref:"sizer",style:o},e),this.props.placeholder?r.createElement("div",{ref:"placeholderSizer",style:o},this.props.placeholder):null)}});e.exports=i}])});

@@ -17,5 +17,9 @@ 'use strict';

var _MenuItem = require('./MenuItem.react');
var _MenuItem2 = _interopRequireDefault(_MenuItem);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Menu = function Menu(props) {
var BaseMenu = function BaseMenu(props) {
return _react2.default.createElement(

@@ -29,2 +33,99 @@ 'ul',

/**
* Menu component that automatically handles pagination and empty state when
* passed a set of filtered and truncated results.
*/
var Menu = _react2.default.createClass({
displayName: 'Menu',
propTypes: {
/**
* Specify menu alignment. The default value is `justify`, which makes the
* menu as wide as the input and truncates long values. Specifying `left`
* or `right` will align the menu to that side and the width will be
* determined by the length of menu item values.
*/
align: _react.PropTypes.oneOf(['justify', 'left', 'right']),
/**
* Message to display in the menu if there are no valid results.
*/
emptyLabel: _react.PropTypes.string,
/**
* Maximum height of the dropdown menu, in px.
*/
maxHeight: _react.PropTypes.number,
/**
* Prompt displayed when large data sets are paginated.
*/
paginationText: _react.PropTypes.string
},
getDefaultProps: function getDefaultProps() {
return {
align: 'justify',
emptyLabel: 'No matches found.',
maxHeight: 300,
paginate: true,
paginationText: 'Display additional results...'
};
},
render: function render() {
var _props = this.props;
var align = _props.align;
var children = _props.children;
var className = _props.className;
var emptyLabel = _props.emptyLabel;
var maxHeight = _props.maxHeight;
var contents = _react.Children.count(children) === 0 ? _react2.default.createElement(
_MenuItem2.default,
{ disabled: true },
emptyLabel
) : children;
return _react2.default.createElement(
BaseMenu,
{
className: (0, _classnames2.default)('bootstrap-typeahead-menu', {
'dropdown-menu-justify': align === 'justify',
'dropdown-menu-right': align === 'right'
}, className),
style: {
maxHeight: maxHeight + 'px',
overflow: 'auto'
} },
contents,
this._renderPaginationMenuItem()
);
},
/**
* Allow user to see more results, if available.
*/
_renderPaginationMenuItem: function _renderPaginationMenuItem() {
var _props2 = this.props;
var children = _props2.children;
var onPaginate = _props2.onPaginate;
var paginate = _props2.paginate;
var paginationText = _props2.paginationText;
if (paginate && _react.Children.count(children)) {
return [_react2.default.createElement('li', {
className: 'divider',
key: 'pagination-item-divider',
role: 'separator'
}), _react2.default.createElement(
_MenuItem2.default,
{
className: 'bootstrap-typeahead-menu-paginator',
key: 'pagination-item',
onClick: onPaginate },
paginationText
)];
}
}
});
exports.default = Menu;

@@ -15,6 +15,2 @@ 'use strict';

var _scrollIntoViewIfNeeded = require('./scrollIntoViewIfNeeded');
var _scrollIntoViewIfNeeded2 = _interopRequireDefault(_scrollIntoViewIfNeeded);
var _react = require('react');

@@ -26,2 +22,6 @@

var _scrollIntoViewIfNeeded = require('./utils/scrollIntoViewIfNeeded');
var _scrollIntoViewIfNeeded2 = _interopRequireDefault(_scrollIntoViewIfNeeded);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -28,0 +28,0 @@

@@ -7,2 +7,6 @@ 'use strict';

var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');

@@ -14,14 +18,10 @@

var _classnames = require('classnames');
var _reactOnclickoutside = require('react-onclickoutside');
var _classnames2 = _interopRequireDefault(_classnames);
var _reactOnclickoutside2 = _interopRequireDefault(_reactOnclickoutside);
var _keyCode = require('./keyCode');
var _keyCode = require('./utils/keyCode');
var _keyCode2 = _interopRequireDefault(_keyCode);
var _reactOnclickoutside = require('react-onclickoutside');
var _reactOnclickoutside2 = _interopRequireDefault(_reactOnclickoutside);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -28,0 +28,0 @@

@@ -7,5 +7,5 @@ 'use strict';

var _reactInputAutosize = require('react-input-autosize');
var _classnames = require('classnames');
var _reactInputAutosize2 = _interopRequireDefault(_reactInputAutosize);
var _classnames2 = _interopRequireDefault(_classnames);

@@ -16,2 +16,8 @@ var _react = require('react');

var _reactDom = require('react-dom');
var _reactInputAutosize = require('react-input-autosize');
var _reactInputAutosize2 = _interopRequireDefault(_reactInputAutosize);
var _Token = require('./Token.react');

@@ -21,10 +27,8 @@

var _classnames = require('classnames');
var _getOptionLabel = require('./utils/getOptionLabel');
var _classnames2 = _interopRequireDefault(_classnames);
var _getOptionLabel2 = _interopRequireDefault(_getOptionLabel);
var _reactDom = require('react-dom');
var _keyCode = require('./utils/keyCode');
var _keyCode = require('./keyCode');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -41,7 +45,33 @@

/**
* In addition to the propTypes below, the following props are automatically
* passed down by `Typeahead.react`:
*
* - activeIndex
* - labelKey
* - onAdd
* - onBlur
* - onChange
* - onClick
* - onFocus
* - onKeydown
* - onRemove
* - options
* - selected
* - text
*/
propTypes: {
/**
* Whether to disable the input and all selections.
*/
disabled: _react.PropTypes.bool,
labelKey: _react.PropTypes.string,
/**
* Placeholder text for the input.
*/
placeholder: _react.PropTypes.string,
selected: _react.PropTypes.array
/**
* Provides a hook for customized rendering of tokens when multiple
* selections are enabled.
*/
renderToken: _react.PropTypes.func
},

@@ -107,5 +137,13 @@

var labelKey = _props2.labelKey;
var _onRemove = _props2.onRemove;
var onRemove = _props2.onRemove;
var renderToken = _props2.renderToken;
var onRemoveWrapped = function onRemoveWrapped() {
return onRemove(option);
};
if (renderToken) {
return renderToken(option, onRemoveWrapped, idx);
}
return _react2.default.createElement(

@@ -116,6 +154,4 @@ _Token2.default,

key: idx,
onRemove: function onRemove() {
return _onRemove(option);
} },
option[labelKey]
onRemove: onRemoveWrapped },
(0, _getOptionLabel2.default)(option, labelKey)
);

@@ -122,0 +158,0 @@ },

@@ -7,6 +7,2 @@ 'use strict';

var _pick2 = require('lodash/pick');
var _pick3 = _interopRequireDefault(_pick2);
var _noop2 = require('lodash/noop');

@@ -20,7 +16,7 @@

var _isEmpty2 = require('lodash/isEmpty');
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _isEmpty3 = _interopRequireDefault(_isEmpty2);
var _reactOnclickoutside = require('react-onclickoutside');
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _reactOnclickoutside2 = _interopRequireDefault(_reactOnclickoutside);

@@ -43,16 +39,32 @@ var _react = require('react');

var _getFilteredOptions = require('./getFilteredOptions');
var _addCustomOption = require('./utils/addCustomOption');
var _getFilteredOptions2 = _interopRequireDefault(_getFilteredOptions);
var _addCustomOption2 = _interopRequireDefault(_addCustomOption);
var _reactOnclickoutside = require('react-onclickoutside');
var _defaultFilterBy = require('./utils/defaultFilterBy');
var _reactOnclickoutside2 = _interopRequireDefault(_reactOnclickoutside);
var _defaultFilterBy2 = _interopRequireDefault(_defaultFilterBy);
var _keyCode = require('./keyCode');
var _getOptionLabel = require('./utils/getOptionLabel');
var _getOptionLabel2 = _interopRequireDefault(_getOptionLabel);
var _getTruncatedOptions = require('./utils/getTruncatedOptions');
var _getTruncatedOptions2 = _interopRequireDefault(_getTruncatedOptions);
var _keyCode = require('./utils/keyCode');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
// TODO: Remove once `paginateResults` is completely deprecated.
function getMaxResults(props) {
var maxResults = props.maxResults;
var paginateResults = props.paginateResults;
// Use `maxResults` unless `paginateResults` is set.
return paginateResults == null ? maxResults : paginateResults;
}
/**

@@ -66,9 +78,2 @@ * Typeahead

/**
* Specify menu alignment. The default value is `justify`, which makes the
* menu as wide as the input and truncates long values. Specifying `left`
* or `right` will align the menu to that side and the width will be
* determined by the length of menu item values.
*/
align: _react.PropTypes.oneOf(['justify', 'left', 'right']),
/**
* Allows the creation of new selections on the fly. Note that any new items

@@ -85,11 +90,7 @@ * will be added to the list of selections, but not the list of original

/**
* Whether to disable the input. Will also disable selections when
* `multiple={true}`.
* Optional callback to use when filtering the options. The function will
* receive each option as the first parameter.
*/
disabled: _react.PropTypes.bool,
filterBy: _react.PropTypes.func,
/**
* Message to display in the menu if there are no valid results.
*/
emptyLabel: _react.PropTypes.string,
/**
* Specify which option key to use for display. By default, the selector

@@ -100,5 +101,7 @@ * will use the `label` key.

/**
* Maximum height of the dropdown menu, in px.
* Maximum number of results to display by default. Mostly done for
* performance reasons so as not to render too many DOM nodes in the case of
* large data sets.
*/
maxHeight: _react.PropTypes.number,
maxResults: _react.PropTypes.number,
/**

@@ -113,11 +116,2 @@ * Number of input characters that must be entered before showing results.

/**
* Name property for the input.
*/
name: _react.PropTypes.string,
/**
* Provides the ability to specify a prefix before the user-entered text to
* indicate that the selection will be new. No-op unless `allowNew={true}`.
*/
newSelectionPrefix: _react.PropTypes.string,
/**
* Callback fired when the input is blurred. Receives an event.

@@ -140,21 +134,11 @@ */

/**
* For large option sets, initially display a subset of results for improved
* performance. If users scroll to the end, the last item will be a link to
* display the next set of results. Value represents the number of results
* to display. `0` will display all results.
* Give user the ability to display additional results if the number of
* results exceeds `maxResults`.
*/
paginateResults: _react.PropTypes.number,
paginate: _react.PropTypes.bool,
/**
* Prompt displayed when large data sets are paginated.
* DEPRECATED. Use `maxResults` and `paginate` instead.
*/
paginationText: _react.PropTypes.string,
paginateResults: _react.PropTypes.number,
/**
* Placeholder text for the input.
*/
placeholder: _react.PropTypes.string,
/**
* Provides a hook for customized rendering of menu item contents.
*/
renderMenuItemChildren: _react.PropTypes.func,
/**
* The selected option(s) displayed in the input. Use this prop if you want

@@ -171,2 +155,3 @@ * to control the component via its parent.

labelKey: 'label',
maxResults: 100,
onBlur: _noop3.default,

@@ -177,2 +162,3 @@ onChange: _noop3.default,

multiple: false,
paginate: true,
selected: []

@@ -186,3 +172,3 @@ };

var selected = this.props.selected.slice();
if (!(0, _isEmpty3.default)(defaultSelected)) {
if (defaultSelected && defaultSelected.length) {
selected = defaultSelected;

@@ -195,5 +181,13 @@ }

showMenu: false,
shownResults: getMaxResults(this.props),
text: ''
};
},
componentWillMount: function componentWillMount() {
if (this.props.paginateResults != null) {
/* eslint-disable no-console */
console.warn('Warning: The `paginateResults` prop is deprecated and will be ' + 'removed in an upcoming release. Use `maxResults` and `paginate` ' + 'instead.');
/* eslint-enable no-console */
}
},
componentWillReceiveProps: function componentWillReceiveProps(nextProps) {

@@ -216,12 +210,24 @@ var multiple = nextProps.multiple;

var _props = this.props;
var options = _props.options;
var props = _objectWithoutProperties(_props, ['options']);
var allowNew = _props.allowNew;
var labelKey = _props.labelKey;
var paginate = _props.paginate;
var _state = this.state;
var selected = _state.selected;
var shownResults = _state.shownResults;
var text = _state.text;
var filteredOptions = (0, _getFilteredOptions2.default)(options, text, selected, props);
// First filter the results by the input string.
var results = this._getFilteredResults();
// This must come before we truncate.
var shouldPaginate = paginate && results.length > shownResults;
// Truncate if necessary.
results = (0, _getTruncatedOptions2.default)(results, shownResults);
// Add the custom option.
if (allowNew) {
results = (0, _addCustomOption2.default)(results, text, labelKey);
}
return _react2.default.createElement(

@@ -232,6 +238,32 @@ 'div',

style: { position: 'relative' } },
this._renderInput(filteredOptions),
this._renderMenu(filteredOptions)
this._renderInput(results),
this._renderMenu(results, shouldPaginate)
);
},
_getFilteredResults: function _getFilteredResults() {
var _props2 = this.props;
var labelKey = _props2.labelKey;
var minLength = _props2.minLength;
var multiple = _props2.multiple;
var options = _props2.options;
var _state2 = this.state;
var selected = _state2.selected;
var text = _state2.text;
if (text.length < minLength) {
return [];
}
// Filtering algorithm.
var filterBy = this.props.filterBy;
if (!filterBy) {
filterBy = function filterBy(option) {
return (0, _defaultFilterBy2.default)(option, labelKey, multiple, selected, text);
};
}
return options.filter(filterBy);
},
blur: function blur() {

@@ -268,15 +300,19 @@ this.refs.input.blur();

},
_renderInput: function _renderInput(filteredOptions) {
_renderInput: function _renderInput(optionsToDisplay) {
var _this = this;
var _props2 = this.props;
var labelKey = _props2.labelKey;
var multiple = _props2.multiple;
var _state2 = this.state;
var activeIndex = _state2.activeIndex;
var selected = _state2.selected;
var text = _state2.text;
var _props3 = this.props;
var disabled = _props3.disabled;
var labelKey = _props3.labelKey;
var multiple = _props3.multiple;
var name = _props3.name;
var placeholder = _props3.placeholder;
var renderToken = _props3.renderToken;
var _state3 = this.state;
var activeIndex = _state3.activeIndex;
var selected = _state3.selected;
var text = _state3.text;
var Input = multiple ? _TokenizerInput2.default : _TypeaheadInput2.default;
var inputProps = (0, _pick3.default)(this.props, ['disabled', 'name', 'placeholder']);
var inputProps = { disabled: disabled, name: name, placeholder: placeholder, renderToken: renderToken };

@@ -291,6 +327,6 @@ return _react2.default.createElement(Input, _extends({}, inputProps, {

onKeyDown: function onKeyDown(e) {
return _this._handleKeydown(filteredOptions, e);
return _this._handleKeydown(optionsToDisplay, e);
},
onRemove: this._handleRemoveOption,
options: filteredOptions,
options: optionsToDisplay,
ref: 'input',

@@ -301,10 +337,16 @@ selected: selected.slice(),

},
_renderMenu: function _renderMenu(filteredOptions) {
var _props3 = this.props;
var labelKey = _props3.labelKey;
var minLength = _props3.minLength;
var _state3 = this.state;
var activeIndex = _state3.activeIndex;
var showMenu = _state3.showMenu;
var text = _state3.text;
_renderMenu: function _renderMenu(optionsToDisplay, shouldPaginate) {
var _props4 = this.props;
var align = _props4.align;
var emptyLabel = _props4.emptyLabel;
var labelKey = _props4.labelKey;
var maxHeight = _props4.maxHeight;
var minLength = _props4.minLength;
var newSelectionPrefix = _props4.newSelectionPrefix;
var paginationText = _props4.paginationText;
var renderMenuItemChildren = _props4.renderMenuItemChildren;
var _state4 = this.state;
var activeIndex = _state4.activeIndex;
var showMenu = _state4.showMenu;
var text = _state4.text;

@@ -316,10 +358,18 @@

var menuProps = (0, _pick3.default)(this.props, ['align', 'emptyLabel', 'maxHeight', 'newSelectionPrefix', 'paginationText', 'renderMenuItemChildren']);
var menuProps = {
align: align,
emptyLabel: emptyLabel,
maxHeight: maxHeight,
newSelectionPrefix: newSelectionPrefix,
paginationText: paginationText,
renderMenuItemChildren: renderMenuItemChildren
};
return _react2.default.createElement(_TypeaheadMenu2.default, _extends({}, menuProps, {
activeIndex: activeIndex,
initialResultCount: this.props.paginateResults,
labelKey: labelKey,
onClick: this._handleAddOption,
options: filteredOptions,
onPaginate: this._handlePagination,
options: optionsToDisplay,
paginate: shouldPaginate,
text: text

@@ -395,7 +445,7 @@ }));

_handleAddOption: function _handleAddOption(selectedOption) {
var _props4 = this.props;
var multiple = _props4.multiple;
var labelKey = _props4.labelKey;
var onChange = _props4.onChange;
var onInputChange = _props4.onInputChange;
var _props5 = this.props;
var multiple = _props5.multiple;
var labelKey = _props5.labelKey;
var onChange = _props5.onChange;
var onInputChange = _props5.onInputChange;

@@ -415,3 +465,3 @@

selected = [selectedOption];
text = selectedOption[labelKey];
text = (0, _getOptionLabel2.default)(selectedOption, labelKey);
}

@@ -425,2 +475,10 @@

},
_handlePagination: function _handlePagination(e) {
var shownResults = this.state.shownResults + getMaxResults(this.props);
// Keep the input focused when paginating.
this.focus();
this.setState({ shownResults: shownResults });
},
_handleRemoveOption: function _handleRemoveOption(removedOption) {

@@ -453,6 +511,8 @@ var selected = this.state.selected.slice();

var showMenu = _getInitialState3.showMenu;
var shownResults = _getInitialState3.shownResults;
this.setState({
activeIndex: activeIndex,
showMenu: showMenu
showMenu: showMenu,
shownResults: shownResults
});

@@ -459,0 +519,0 @@ }

@@ -7,6 +7,2 @@ 'use strict';

var _pick2 = require('lodash/pick');
var _pick3 = _interopRequireDefault(_pick2);
var _head2 = require('lodash/head');

@@ -18,2 +14,6 @@

var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');

@@ -23,8 +23,12 @@

var _classnames = require('classnames');
var _getHintText = require('./utils/getHintText');
var _classnames2 = _interopRequireDefault(_classnames);
var _getHintText2 = _interopRequireDefault(_getHintText);
var _keyCode = require('./keyCode');
var _getInputText = require('./utils/getInputText');
var _getInputText2 = _interopRequireDefault(_getInputText);
var _keyCode = require('./utils/keyCode');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -40,13 +44,32 @@

/**
* In addition to the propTypes below, the following props are automatically
* passed down by `Typeahead.react`:
*
* - activeIndex
* - labelKey
* - onAdd
* - onBlur
* - onChange
* - onClick
* - onFocus
* - onKeydown
* - onRemove
* - options
* - selected
* - text
*/
propTypes: {
/**
* Whether to disable the input and any selection, if present.
*/
disabled: _react.PropTypes.bool,
labelKey: _react.PropTypes.string,
/**
* Name property for the input.
*/
name: _react.PropTypes.string,
onBlur: _react.PropTypes.func,
onChange: _react.PropTypes.func,
onFocus: _react.PropTypes.func,
options: _react.PropTypes.array,
placeholder: _react.PropTypes.string,
selected: _react.PropTypes.array,
text: _react.PropTypes.string
/**
* Placeholder text for the input.
*/
placeholder: _react.PropTypes.string
},

@@ -61,3 +84,3 @@

if (this.props.activeIndex !== prevProps.activeIndex) {
var inputText = this._getInputText();
var inputText = (0, _getInputText2.default)(this.props);
this.refs.input.selectionStart = inputText.length;

@@ -70,6 +93,10 @@ }

var disabled = _props.disabled;
var name = _props.name;
var onFocus = _props.onFocus;
var placeholder = _props.placeholder;
var selected = _props.selected;
var inputProps = (0, _pick3.default)(this.props, ['disabled', 'name', 'onFocus', 'placeholder']);
var inputProps = { disabled: disabled, name: name, onFocus: onFocus, placeholder: placeholder };
return _react2.default.createElement(

@@ -98,3 +125,3 @@ 'div',

type: 'text',
value: this._getInputText()
value: (0, _getInputText2.default)(this.props)
})),

@@ -116,3 +143,3 @@ _react2.default.createElement('input', {

type: 'text',
value: this._getHintText()
value: (0, _getHintText2.default)(this.props, this.state.isFocused)
})

@@ -127,52 +154,2 @@ );

},
_getHintText: function _getHintText() {
var _props2 = this.props;
var activeIndex = _props2.activeIndex;
var options = _props2.options;
var labelKey = _props2.labelKey;
var selected = _props2.selected;
var text = _props2.text;
var firstOption = (0, _head3.default)(options);
var firstOptionString = firstOption && firstOption[labelKey];
// Only show the hint if:
if (
// The input is focused.
this.state.isFocused &&
// The input contains text.
text &&
// None of the menu options are focused.
activeIndex === -1 &&
// There are no current selections.
!selected.length &&
// The input text corresponds to the beginning of the first option.
firstOptionString && firstOptionString.toLowerCase().indexOf(text.toLowerCase()) === 0) {
// Text matching is case-insensitive, so to display the hint correctly,
// splice the input text with the rest of the actual string.
return text + firstOptionString.slice(text.length, firstOptionString.length);
}
return '';
},
_getInputText: function _getInputText() {
var _props3 = this.props;
var activeIndex = _props3.activeIndex;
var labelKey = _props3.labelKey;
var options = _props3.options;
var selected = _props3.selected;
var text = _props3.text;
var selectedItem = !!selected.length && (0, _head3.default)(selected);
if (selectedItem) {
return selectedItem[labelKey];
}
if (activeIndex >= 0) {
return options[activeIndex][labelKey];
}
return text;
},
_handleBlur: function _handleBlur(e) {

@@ -184,5 +161,5 @@ this.setState({ isFocused: false });

// Clear any selections when text is entered.
var _props4 = this.props;
var onRemove = _props4.onRemove;
var selected = _props4.selected;
var _props2 = this.props;
var onRemove = _props2.onRemove;
var selected = _props2.selected;

@@ -203,8 +180,8 @@ !!selected.length && onRemove((0, _head3.default)(selected));

_handleKeydown: function _handleKeydown(e) {
var _props5 = this.props;
var activeIndex = _props5.activeIndex;
var options = _props5.options;
var onAdd = _props5.onAdd;
var selected = _props5.selected;
var text = _props5.text;
var _props3 = this.props;
var activeIndex = _props3.activeIndex;
var options = _props3.options;
var onAdd = _props3.onAdd;
var selected = _props3.selected;
var text = _props3.text;

@@ -216,3 +193,3 @@

var cursorPos = this.refs.input.selectionStart;
var hasHintText = !!this._getHintText();
var hasHintText = !!(0, _getHintText2.default)(this.props, this.state.isFocused);

@@ -219,0 +196,0 @@ // Autocomplete the selection if all of the following are true:

@@ -7,5 +7,5 @@ 'use strict';

var _classnames = require('classnames');
var _pick2 = require('lodash/pick');
var _classnames2 = _interopRequireDefault(_classnames);
var _pick3 = _interopRequireDefault(_pick2);

@@ -28,2 +28,6 @@ var _reactHighlighter = require('react-highlighter');

var _getOptionLabel = require('./utils/getOptionLabel');
var _getOptionLabel2 = _interopRequireDefault(_getOptionLabel);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -34,14 +38,24 @@

/**
* In addition to the propTypes below, the following props are automatically
* passed down by `Typeahead.react`:
*
* - activeIndex
* - labelKey
* - onClick
* - onPaginate
* - options
* - paginate
* - text
*/
propTypes: {
activeIndex: _react.PropTypes.number,
align: _react.PropTypes.oneOf(['justify', 'left', 'right']),
emptyLabel: _react.PropTypes.string,
initialResultCount: _react.PropTypes.number,
labelKey: _react.PropTypes.string.isRequired,
maxHeight: _react.PropTypes.number,
/**
* Provides the ability to specify a prefix before the user-entered text to
* indicate that the selection will be new. No-op unless `allowNew={true}`.
*/
newSelectionPrefix: _react.PropTypes.string,
options: _react.PropTypes.array,
paginationText: _react.PropTypes.string,
renderMenuItemChildren: _react.PropTypes.func,
text: _react.PropTypes.string.isRequired
/**
* Provides a hook for customized rendering of menu item contents.
*/
renderMenuItemChildren: _react.PropTypes.func
},

@@ -51,59 +65,22 @@

return {
align: 'justify',
emptyLabel: 'No matches found.',
initialResultCount: 100,
maxHeight: 300,
newSelectionPrefix: 'New selection: ',
paginationText: 'Display additional results...'
newSelectionPrefix: 'New selection: '
};
},
getInitialState: function getInitialState() {
return {
/**
* Max number of results to display, for performance reasons. If this
* number is less than the number of available results, the user will see
* an option to display more results.
*/
resultCount: this.props.initialResultCount
};
},
render: function render() {
var _props = this.props;
var align = _props.align;
var emptyLabel = _props.emptyLabel;
var maxHeight = _props.maxHeight;
var options = _props.options;
var menuProps = (0, _pick3.default)(this.props, ['align', 'emptyLabel', 'maxHeight', 'onPaginate', 'paginate', 'paginationText']);
// Render the max number of results or all results.
var results = options.slice(0, this.state.resultCount || options.length);
var menuItems = results.length ? results.map(this._renderMenuItem) : _react2.default.createElement(
_MenuItem2.default,
{ disabled: true },
emptyLabel
);
return _react2.default.createElement(
_Menu2.default,
{
className: (0, _classnames2.default)('bootstrap-typeahead-menu', {
'dropdown-menu-justify': align === 'justify',
'dropdown-menu-right': align === 'right'
}),
style: {
maxHeight: maxHeight + 'px',
overflow: 'auto'
} },
menuItems,
this._renderPaginationMenuItem(results)
menuProps,
this.props.options.map(this._renderMenuItem)
);
},
_renderMenuItem: function _renderMenuItem(option, idx) {
var _props2 = this.props;
var activeIndex = _props2.activeIndex;
var labelKey = _props2.labelKey;
var newSelectionPrefix = _props2.newSelectionPrefix;
var _onClick = _props2.onClick;
var renderMenuItemChildren = _props2.renderMenuItemChildren;
var text = _props2.text;
var _props = this.props;
var activeIndex = _props.activeIndex;
var labelKey = _props.labelKey;
var newSelectionPrefix = _props.newSelectionPrefix;
var _onClick = _props.onClick;
var renderMenuItemChildren = _props.renderMenuItemChildren;
var text = _props.text;

@@ -142,35 +119,5 @@

{ search: text },
option[labelKey]
(0, _getOptionLabel2.default)(option, labelKey)
)
);
},
/**
* Allow user to see more results, if available.
*/
_renderPaginationMenuItem: function _renderPaginationMenuItem(results) {
var _props3 = this.props;
var options = _props3.options;
var paginationText = _props3.paginationText;
if (results.length < options.length) {
return [_react2.default.createElement('li', {
className: 'divider',
key: 'pagination-item-divider',
role: 'separator'
}), _react2.default.createElement(
_MenuItem2.default,
{
className: 'bootstrap-typeahead-menu-paginator',
key: 'pagination-item',
onClick: this._handlePagination },
paginationText
)];
}
},
_handlePagination: function _handlePagination(e) {
var resultCount = this.state.resultCount + this.props.initialResultCount;
this.setState({ resultCount: resultCount });
}

@@ -177,0 +124,0 @@ });

{
"name": "react-bootstrap-typeahead",
"version": "0.8.5",
"version": "0.9.0",
"description": "React-based typeahead using the Bootstrap theme",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -60,6 +60,28 @@ # React Bootstrap Typeahead

## Data
`react-bootstrap-typeahead` has some expectations about the shape of your data. It expects an array of objects, each of which should have a string property to be used as the label for display. By default, the key is named `label`, but you can specify a different key via the `labelKey` prop.
`react-bootstrap-typeahead` accepts an array of either strings or objects. If you pass in objects, each one should have a string property to be used as the label for display. By default, the key is named `label`, but you can specify a different key via the `labelKey` prop. If you pass an array of strings, the `labelKey` prop will be ignored.
The component will throw an error if any options are something other than a string or object with a valid `labelKey`.
The following are valid data structures:
```
// Array of strings.
var myData = [
'John',
'Miles',
'Charles',
'Herbie',
];
// Array of objects with default `labelKey`.
var myData = [
{id: 1, label: 'John'},
{id: 2, label: 'Miles'},
{id: 3, label: 'Charles'},
{id: 4, label: 'Herbie'},
];
// Array of objects with custom `labelKey`.
// The `labelKey` prop must be set to 'name' in this case.
var myData = [
{id: 1, name: 'John'},

@@ -71,11 +93,30 @@ {id: 2, name: 'Miles'},

// Mixed array of strings and objects.
// Note: while valid, this is NOT recommended.
var myData = [
'John',
'Miles',
{id: 3, label: 'Charles'},
'Herbie',
];
```
### Filtering Data
By default, the component will filter results based on a case-insensitive string match between the input string and the `labelKey` property of each option (or the option itself, if an array of strings is passed). You can customize the filtering by passing your own callback to the `filterBy` prop:
```
<Typeahead
labelKey="name"
onChange={this._handleChange}
options={myData}
...
filterBy={option => {
/* Your own filtering code goes here. */
}}
/>
```
As far as the source of the data, the component simply handles rendering and selection. It is agnostic about the data source (eg: an async endpoint), which should be handled separately.
### Duplicate Data
You may have unexpected results if your data contains duplicate options. For this reason, it is highly recommended that you pass in objects with unique identifiers (eg: an id) if possible.
### Data Sources
The component simply handles rendering and selection of the data that is passed in. It is agnostic about the data source (eg: an async endpoint), which should be handled separately.
## Rendering

@@ -90,6 +131,32 @@ `react-bootstrap-typeahead` is intended to work with standard [Bootstrap](http://getbootstrap.com/) components and styles. It provides basic rendering for your data by default, but also allows for more advanced options should the need arise.

renderMenuItemChildren={(props, option, idx) => {
/* Render custom contents here */
/* Render custom contents here. */
}}
/>
```
### `renderToken`
Provides the ability to customize rendering of tokens when multiple selections are enabled. The first parameter is the current selected option in the loop, while the second parameter is the `onRemove` callback passed down by the main component. This callback is a no-op if `multiple` is false.
```
<Typeahead
...
multiple
renderToken={(option, onRemove) => {
/* Render custom token here. */
}}
/>
```
Be careful when using `renderToken`, since you will need to handle things like disabling the tokens and removing them (via `onRemove`) yourself. It is highly recommended that you use the provided `Token` component:
```
// ES2015
import Token from 'react-bootstrap-typeahead/lib/Token.react';
// CommonJS
const Token = require('react-bootstrap-typeahead/lib/Token.react');
```
Note that if you use your own component to render the token, you will lose built-in functionality like removing via keystroke.
## Public Methods

@@ -122,8 +189,10 @@ To access the component's public methods, add a ref to your typeahead instance:

align | string | 'justify' | Specify menu alignment. The default value is `justify`, which makes the menu as wide as the input and truncates long values. Specifying `left` or `right` will align the menu to that side and the width will be determined by the length of menu item values.
allowNew | boolean | false | Allows the creation of new selections on the fly. Note that any new items will be added to the list of selections, but not the list of original options unless handled as such by `Typeahead`'s parent.
allowNew | boolean | false | Allows the creation of new selections on the fly. Any new items will be added to the list of selections, but not the list of original options unless handled as such by `Typeahead`'s parent. The newly added item will *always* be returned as an object even if the other options are simply strings, so be sure your `onChange` callback can handle this.
defaultSelected | array | `[]` | Specify any pre-selected options. Use only if you want the component to be uncontrolled.
disabled | boolean | | Whether to disable the input. Will also disable selections when `multiple={true}`.
emptyLabel | string | 'No matches found.' | Message to display in the menu if there are no valid results.
filterBy | function | | Optional callback to use when filtering the options. The function will receive each option as the first parameter.
labelKey | string | 'label' | Specify which option key to use for display. By default, the selector will use the `label` key.
maxHeight | number | `300` | Maximum height of the dropdown menu, in px.
maxResults | number | `100` | Maximum number of results to display by default. Mostly done for performance reasons so as not to render too many DOM nodes in the case of large data sets.
minLength | number | `0` | Number of input characters that must be entered before showing results.

@@ -137,6 +206,8 @@ multiple | boolean | `false` | Whether or not multiple selections are allowed.

options `required` | array | | Full set of options, including any pre-selected options.
paginateResults | number | 100 | For large option sets, initially display a subset of results for improved performance. If users scroll to the end, the last item will be a link to display the next set of results. Value represents the number of results to display. `0` will display all results.
paginate | boolean | `true` | Give user the ability to display additional results if the number of results exceeds `maxResults`.
paginateResults | number | 100 | DEPRECATED. Use `maxResults` and `paginate` instead.
paginationText | string | 'Display additional results...' | Prompt displayed when large data sets are paginated.
placeholder | string | | Placeholder text for the input.
renderMenuItemChildren | function | | Provides a hook for customized rendering of menu item contents.
renderToken | function | | Provides a hook for customized rendering of tokens when multiple selections are enabled.
selected | array | `[]` | The selected option(s) displayed in the input. Use this prop if you want to control the component via its parent.

@@ -143,0 +214,0 @@

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