@@ -44,9 +44,7 @@ module.exports = _react2['default'].createClass({
4444 modal : false ,
4545 className : '' ,
4646 listClassName : '' ,
47- onClick : function onClick ( ) {
48- console . log ( 'onClick should be defined' ) ;
49- } ,
47+ onClick : function onClick ( ) { } ,
5048 onSelect : function onSelect ( value ) {
5149 console . log ( 'onItemSelect should be defined' ) ;
5250 } ,
@@ -107,14 +105,21 @@ module.exports = _react2['default'].createClass({
107105 } ,
108106
109107 handleClick : function handleClick ( event ) {
110- event . preventDefault ( ) ;
111- event . stopPropagation ( ) ;
112- this . setState ( { isOpen : true } ) ;
113- if ( this . props . onClick ) {
114- this . props . onClick ( ) ;
108+ _utils . EventUtil . trap ( event ) ;
109+ if ( ! this . state . isOpen ) {
110+ this . setState ( { isOpen : true } ) ;
111+ if ( this . props . onClick ) {
112+ this . props . onClick ( ) ;
113+ }
114+ } else {
115+ this . handleClose ( ) ;
115116 }
116117 } ,
117118
119+ handleMouseDown : function handleMouseDown ( event ) {
120+ _utils . EventUtil . trapImmediate ( event ) ;
121+ } ,
122+
118123 handleBlur : function handleBlur ( e ) {
119124 this . setState ( { isFocused : false } ) ;
120125 } ,
@@ -135,6 +140,7 @@ module.exports = _react2['default'].createClass({
135140 if ( event . keyCode ) {
136141 if ( event . keyCode === _utils . KEYS . ENTER || event . keyCode === _utils . KEYS . SPACE || event . keyCode === _utils . KEYS . DOWN || event . keyCode === _utils . KEYS . UP ) {
137142 _utils . EventUtil . trapEvent ( event ) ;
143+
138144 this . setState ( {
139145 isOpen : true ,
140146 highlightedIndex : 0
@@ -210,7 +216,7 @@ module.exports = _react2['default'].createClass({
210216 var className = this . state . currentSelectedItem ? 'slds-input--bare slds-hide' : 'slds-input--bare' ;
211217 return _react2 [ 'default' ] . createElement (
212218 'div' ,
213- { className : "slds-form-element ignore-react-onclickoutside slds-theme--" + this . props . theme } ,
219+ { className : "slds-form-element slds-theme--" + this . props . theme } ,
214220 _react2 [ 'default' ] . createElement (
215221 'div' ,
216222 { className : "slds-picklist slds-theme--" + this . props . theme } ,
@@ -227,6 +233,7 @@ module.exports = _react2['default'].createClass({
227233 onBlur : this . handleBlur ,
228234 onFocus : this . handleFocus ,
229235 onClick : this . handleClick ,
236+ onMouseDown : this . handleMouseDown ,
230237 tabIndex : this . state . isOpen ? - 1 : 0 ,
231238 onKeyDown : this . handleKeyDown } ,
232239 _react2 [ 'default' ] . createElement (
@@ -243,6 +250,7 @@ module.exports = _react2['default'].createClass({
243250 } ,
244251
245252 componentDidUpdate : function componentDidUpdate ( prevProps , prevState ) {
253+
246254 if ( this . state . lastBlurredTimeStamp !== prevState . lastBlurredTimeStamp ) {
247255 if ( this . state . lastBlurredIndex === this . state . highlightedIndex ) {
248256 this . handleClose ( ) ;
0 commit comments