moebel-material-ui-superselectfield
Advanced tools
Comparing version 0.1.0 to 0.1.1
@@ -1,1 +0,1 @@ | ||
'use strict';Object.defineProperty(exports,'__esModule',{value:true});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 _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i['return'])_i['return']()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr)){return arr}else if(Symbol.iterator in Object(arr)){return sliceIterator(arr,i)}else{throw new TypeError('Invalid attempt to destructure non-iterable instance')}}}();var _typeof=typeof Symbol==='function'&&typeof Symbol.iterator==='symbol'?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==='function'&&obj.constructor===Symbol&&obj!==Symbol.prototype?'symbol':typeof obj};require('babel-polyfill');var _react=require('react');var _react2=_interopRequireDefault(_react);var _propTypes=require('prop-types');var _propTypes2=_interopRequireDefault(_propTypes);var _reactInfinite=require('react-infinite');var _reactInfinite2=_interopRequireDefault(_reactInfinite);var _Popover=require('material-ui/Popover/Popover');var _Popover2=_interopRequireDefault(_Popover);var _TextField=require('material-ui/TextField/TextField');var _TextField2=_interopRequireDefault(_TextField);var _ListItem=require('material-ui/List/ListItem');var _ListItem2=_interopRequireDefault(_ListItem);var _check=require('material-ui/svg-icons/navigation/check');var _check2=_interopRequireDefault(_check);var _checkBoxOutlineBlank=require('material-ui/svg-icons/toggle/check-box-outline-blank');var _checkBoxOutlineBlank2=_interopRequireDefault(_checkBoxOutlineBlank);var _arrowDropDown=require('material-ui/svg-icons/navigation/arrow-drop-down');var _arrowDropDown2=_interopRequireDefault(_arrowDropDown);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++){arr2[i]=arr[i]}return arr2}else{return Array.from(arr)}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function')}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')}return call&&(typeof call==='object'||typeof call==='function')?call:self}function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}function entries(obj){return'entries'in Object?Object.entries(obj):Object.keys(obj).map(function(prop){return[prop,obj[prop]]})}function areEqual(val1,val2){if((val1===0||val2===0)&&val1===val2)return true;else if(!val1||!val2||(typeof val1==='undefined'?'undefined':_typeof(val1))!==(typeof val2==='undefined'?'undefined':_typeof(val2)))return false;else if(typeof val1==='string'||typeof val1==='number'||typeof val1==='boolean')return val1===val2;else if((typeof val1==='undefined'?'undefined':_typeof(val1))==='object'){return Object.keys(val1).length===Object.keys(val2).length&&entries(val2).every(function(_ref){var _ref2=_slicedToArray(_ref,2),key2=_ref2[0],value2=_ref2[1];return val1[key2]===value2})}}var checkFormat=function checkFormat(value){return value.findIndex(function(v){return(typeof v==='undefined'?'undefined':_typeof(v))!=='object'||!('value'in v)})};var objectShape=_propTypes2.default.shape({value:_propTypes2.default.any.isRequired,label:_propTypes2.default.string});var FloatingLabel=function(_Component){_inherits(FloatingLabel,_Component);function FloatingLabel(){var _ref3;var _temp,_this,_ret;_classCallCheck(this,FloatingLabel);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return _ret=(_temp=(_this=_possibleConstructorReturn(this,(_ref3=FloatingLabel.__proto__||Object.getPrototypeOf(FloatingLabel)).call.apply(_ref3,[this].concat(args))),_this),_this.state={flabelHeight:0},_temp),_possibleConstructorReturn(_this,_ret)}_createClass(FloatingLabel,[{key:'componentDidMount',value:function componentDidMount(){this.setState({flabelHeight:this.flabel.offsetHeight})}},{key:'render',value:function render(){var _this2=this;var _props=this.props,children=_props.children,shrink=_props.shrink,isFocused=_props.isFocused,_props$defaultColors=_props.defaultColors,floatingLabelColor=_props$defaultColors.floatingLabelColor,focusColor=_props$defaultColors.focusColor,floatingLabelStyle=_props.floatingLabelStyle,floatingLabelFocusStyle=_props.floatingLabelFocusStyle;var defaultStyles=_extends({position:'static',top:0,lineHeight:'22px',zIndex:1,transition:'450ms cubic-bezier(0.23, 1, 0.32, 1)',transform:'scale(1) translateY(0)',transformOrigin:'left top',pointerEvents:'auto',cursor:'pointer',userSelect:'none',color:floatingLabelColor},floatingLabelStyle);var focusStyles=isFocused&&shrink&&_extends({color:focusColor},floatingLabelFocusStyle);var shrinkStyles=shrink&&{position:'absolute',transform:'scale(0.75) translateY(-'+this.state.flabelHeight+'px)',pointerEvents:'none',cursor:'default'};return _react2.default.createElement('label',{ref:function ref(_ref4){return _this2.flabel=_ref4},style:_extends({},defaultStyles,shrinkStyles,focusStyles)},children)}}]);return FloatingLabel}(_react.Component);FloatingLabel.defaultProps={disabled:false,shrink:false};var styles={column:{display:'flex',flexDirection:'column'},row:{position:'relative',display:'flex',justifyContent:'flex-end',alignItems:'center'},selections:{flex:1},underline:{position:'relative',marginTop:4}};var SelectionsPresenter=function SelectionsPresenter(_ref5){var selectedValues=_ref5.selectedValues,selectionsRenderer=_ref5.selectionsRenderer,floatingLabel=_ref5.floatingLabel,hintText=_ref5.hintText,muiTheme=_ref5.muiTheme,floatingLabelStyle=_ref5.floatingLabelStyle,floatingLabelFocusStyle=_ref5.floatingLabelFocusStyle,underlineStyle=_ref5.underlineStyle,underlineFocusStyle=_ref5.underlineFocusStyle,isFocused=_ref5.isFocused,isOpen=_ref5.isOpen,disabled=_ref5.disabled,errorText=_ref5.errorText,errorStyle=_ref5.errorStyle,underlineErrorStyle=_ref5.underlineErrorStyle;var _muiTheme$textField=muiTheme.textField,floatingLabelColor=_muiTheme$textField.floatingLabelColor,borderColor=_muiTheme$textField.borderColor,focusColor=_muiTheme$textField.focusColor;var isValidObject=function isValidObject(obj){return Object.prototype.toString.call(obj)==='[object Object]'&&Object.keys(obj).includes('value')};var isShrunk=Array.isArray(selectedValues)&&!!selectedValues.length||!Array.isArray(selectedValues)&&isValidObject(selectedValues)||isOpen;var baseHRstyle=_extends({position:'absolute',bottom:0,left:0,width:'100%',margin:0,boxSizing:'content-box',borderTop:'none',borderLeft:'none',borderRight:'none',borderBottom:'1px solid',borderColor:borderColor},underlineStyle,errorText?_extends({borderColor:'red'},underlineErrorStyle):{});var focusedHRstyle=disabled?{}:errorText?underlineStyle:_extends({borderBottom:'2px solid',borderColor:isFocused||isOpen?focusColor:borderColor,transition:'450ms cubic-bezier(0.23, 1, 0.32, 1)',transform:'scaleX( '+(isFocused||isOpen?1:0)+' )'},underlineFocusStyle);return _react2.default.createElement('div',{style:styles.column},_react2.default.createElement('div',{style:styles.row},_react2.default.createElement('div',{style:styles.selections},floatingLabel&&_react2.default.createElement(FloatingLabel,{shrink:isShrunk,isFocused:isFocused,disabled:disabled,defaultColors:{floatingLabelColor:floatingLabelColor,focusColor:focusColor},floatingLabelStyle:floatingLabelStyle,floatingLabelFocusStyle:floatingLabelFocusStyle},floatingLabel),(!floatingLabel||isShrunk)&&selectionsRenderer(selectedValues,hintText)),_react2.default.createElement(_arrowDropDown2.default,{style:{fill:borderColor}})),_react2.default.createElement('div',{style:styles.underline},_react2.default.createElement('hr',{style:baseHRstyle}),_react2.default.createElement('hr',{style:_extends({},baseHRstyle,focusedHRstyle)})),errorText&&_react2.default.createElement('div',{style:_extends({marginTop:5,color:'red',fontSize:12},errorStyle)},errorText))};SelectionsPresenter.defaultProps={hintText:'Click me',errorText:'',errorStyle:{},underlineErrorStyle:{},value:null,selectionsRenderer:function selectionsRenderer(values,hintText){if(!values)return hintText;var value=values.value,label=values.label;if(Array.isArray(values)){return values.length?values.map(function(_ref6){var value=_ref6.value,label=_ref6.label;return label||value}).join(', '):hintText}else if(label||value)return label||value;else return hintText}};var SelectField=function(_Component2){_inherits(SelectField,_Component2);function SelectField(props,context){_classCallCheck(this,SelectField);var _this3=_possibleConstructorReturn(this,(SelectField.__proto__||Object.getPrototypeOf(SelectField)).call(this,props,context));_this3.onFocus=function(){return _this3.setState({isFocused:true})};_this3.onBlur=function(event){if(!_this3.state.isOpen)_this3.setState({isFocused:false})};_this3.closeMenu=function(reason){var _this3$props=_this3.props,onChange=_this3$props.onChange,name=_this3$props.name;_this3.setState({isOpen:false,searchText:'',isFocused:false});if(reason==='clickaway'){_this3.setState({selectedItems:_this3.state.initialSelectedItems})}else{onChange(_this3.state.selectedItems,name);_this3.setState({initialSelectedItems:_this3.state.selectedItems})}if(!reason&&_this3.root){_this3.root.focus()}};_this3.onRequestClose=function(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2]}var _this3$props2=_this3.props,menuCloseButton=_this3$props2.menuCloseButton,menuCancelButton=_this3$props2.menuCancelButton;if(!menuCloseButton&&!menuCancelButton){_this3.closeMenu(args)}_this3.props.onRequestClose(args)};_this3.handleClick=function(event){return!_this3.props.disabled&&_this3.openMenu()};_this3.handleKeyDown=function(event){return!_this3.props.disabled&&/ArrowDown|Enter/.test(event.key)&&_this3.openMenu()};_this3.handleTextFieldAutocompletionFiltering=function(event,searchText){_this3.props.onAutoCompleteTyping(searchText);_this3.setState({searchText:searchText},function(){return _this3.focusTextField()})};_this3.handleTextFieldKeyDown=function(_ref7){var key=_ref7.key;switch(key){case'ArrowDown':_this3.focusMenuItem();break;case'Escape':_this3.clearTextField();_this3.closeMenu('clickaway');break;default:break;}};_this3.handleMenuSelection=function(selectedItem){return function(event){event.preventDefault();var selectedItems=_this3.state.selectedItems;if(_this3.props.multiple){var selectedItemExists=selectedItems.some(function(obj){return areEqual(obj.value,selectedItem.value)});var updatedValues=selectedItemExists?selectedItems.filter(function(obj){return!areEqual(obj.value,selectedItem.value)}):selectedItems.concat(selectedItem);_this3.setState({selectedItems:updatedValues});_this3.clearTextField(function(){return _this3.focusTextField()})}else{var updatedValue=areEqual(selectedItems,selectedItem)?null:selectedItem;_this3.setState({selectedItems:updatedValue},function(){return _this3.closeMenu()})}}};_this3.handleMenuKeyDown=function(_ref8){var key=_ref8.key,tabIndex=_ref8.target.tabIndex;var cleanMenuItems=_this3.menuItems.filter(function(item){return!!item});var firstTabIndex=cleanMenuItems[0].props.tabIndex;var lastTabIndex=cleanMenuItems[cleanMenuItems.length-1].props.tabIndex;var currentElementIndex=cleanMenuItems.findIndex(function(item){return item.props.tabIndex===tabIndex});switch(key){case'ArrowUp':if(+tabIndex===firstTabIndex){_this3.state.showAutocomplete?_this3.focusTextField():_this3.focusMenuItem(lastTabIndex)}else{var previousTabIndex=cleanMenuItems.slice(0,currentElementIndex).slice(-1)[0].props.tabIndex;_this3.focusMenuItem(previousTabIndex)}break;case'ArrowDown':if(+tabIndex===lastTabIndex){_this3.state.showAutocomplete?_this3.focusTextField():_this3.focusMenuItem()}else{var nextTabIndex=cleanMenuItems.slice(currentElementIndex+1)[0].props.tabIndex;_this3.focusMenuItem(nextTabIndex)}break;case'PageUp':_this3.focusMenuItem();break;case'PageDown':_this3.focusMenuItem(lastTabIndex);break;case'Escape':_this3.closeMenu('clickaway');break;default:break;}};var children=props.children,value=props.value,multiple=props.multiple,showAutocompleteThreshold=props.showAutocompleteThreshold;var itemsLength=_this3.getChildrenLength(children);_this3.state={isOpen:false,isFocused:false,itemsLength:itemsLength,showAutocomplete:itemsLength>showAutocompleteThreshold||false,selectedItems:value||(multiple?[]:null),initialSelectedItems:value||(multiple?[]:null),searchText:''};_this3.menuItems=[];return _this3}_createClass(SelectField,[{key:'componentWillReceiveProps',value:function componentWillReceiveProps(nextProps){if(!areEqual(nextProps.value,this.state.selectedItems)){this.setState({selectedItems:nextProps.value})}if(!areEqual(nextProps.children,this.props.children)){var itemsLength=this.getChildrenLength(nextProps.children);this.setState({itemsLength:itemsLength,showAutocomplete:itemsLength>this.props.showAutocompleteThreshold})}}},{key:'componentDidMount',value:function componentDidMount(){if(this.props.openImmediately)this.openMenu()}},{key:'getChildrenLength',value:function getChildrenLength(children){if(!children)return 0;else if(Array.isArray(children)&&children.length){return children.reduce(function(count,_ref9){var type=_ref9.type,_ref9$props=_ref9.props,value=_ref9$props.value,cpc=_ref9$props.children;if(type==='optgroup'){if(cpc){if(Array.isArray(cpc)){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=cpc[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var c=_step.value;if(c.props.value)++count}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}}else if((typeof cpc==='undefined'?'undefined':_typeof(cpc))==='object'&&cpc.props.value)++count}}else if(value)++count;return count},0)}else if(!Array.isArray(children)&&(typeof children==='undefined'?'undefined':_typeof(children))==='object'){if(children.type==='optgroup')return this.getChildrenLength(children.props.children);else if(children.props.value)return 1}return 0}},{key:'openMenu',value:function openMenu(){var _this4=this;if(!this.state.isOpen)this.props.onMenuOpen();if(this.state.itemsLength)this.setState({isOpen:true},function(){return _this4.focusTextField()})}},{key:'focusMenuItem',value:function focusMenuItem(index){var targetMenuItem=this.menuItems.find(function(item){return!!item&&(index?item.props.tabIndex===index:true)});if(targetMenuItem)targetMenuItem.applyFocusState('keyboard-focused')}},{key:'focusTextField',value:function focusTextField(){this.state.showAutocomplete&&this.searchTextField?this.searchTextField.focus():this.focusMenuItem()}},{key:'clearTextField',value:function clearTextField(callback){this.props.keepSearchOnSelect?callback():this.setState({searchText:''},callback)}},{key:'render',value:function render(){var _this5=this;var _props2=this.props,children=_props2.children,floatingLabel=_props2.floatingLabel,hintText=_props2.hintText,hintTextAutocomplete=_props2.hintTextAutocomplete,multiple=_props2.multiple,disabled=_props2.disabled,nb2show=_props2.nb2show,autocompleteFilter=_props2.autocompleteFilter,selectionsRenderer=_props2.selectionsRenderer,menuCloseButton=_props2.menuCloseButton,anchorOrigin=_props2.anchorOrigin,canAutoPosition=_props2.canAutoPosition,style=_props2.style,menuStyle=_props2.menuStyle,elementHeight=_props2.elementHeight,innerDivStyle=_props2.innerDivStyle,selectedMenuItemStyle=_props2.selectedMenuItemStyle,menuGroupStyle=_props2.menuGroupStyle,menuFooterStyle=_props2.menuFooterStyle,floatingLabelStyle=_props2.floatingLabelStyle,floatingLabelFocusStyle=_props2.floatingLabelFocusStyle,underlineStyle=_props2.underlineStyle,underlineFocusStyle=_props2.underlineFocusStyle,useLayerForClickAway=_props2.useLayerForClickAway,autocompleteUnderlineStyle=_props2.autocompleteUnderlineStyle,autocompleteUnderlineFocusStyle=_props2.autocompleteUnderlineFocusStyle,noMatchFound=_props2.noMatchFound,noMatchFoundStyle=_props2.noMatchFoundStyle,menuCancelButton=_props2.menuCancelButton,checkedIcon=_props2.checkedIcon,unCheckedIcon=_props2.unCheckedIcon,hoverColor=_props2.hoverColor,checkPosition=_props2.checkPosition,errorText=_props2.errorText,errorStyle=_props2.errorStyle,underlineErrorStyle=_props2.underlineErrorStyle;var _context$muiTheme=this.context.muiTheme,palette=_context$muiTheme.baseTheme.palette,menuItem=_context$muiTheme.menuItem;var mergedSelectedMenuItemStyle=_extends({color:menuItem.selectedTextColor},selectedMenuItemStyle);if(checkedIcon)checkedIcon.props.style.fill=mergedSelectedMenuItemStyle.color;var mergedHoverColor=hoverColor||menuItem.hoverColor;var menuItemBuilder=function menuItemBuilder(nodes,child,index){var selectedItems=_this5.state.selectedItems;var _child$props=child.props,childValue=_child$props.value,label=_child$props.label,disabled=_child$props.disabled;if(!autocompleteFilter(_this5.state.searchText,label||childValue))return nodes;var isSelected=Array.isArray(selectedItems)?selectedItems.some(function(obj){return areEqual(obj.value,childValue)}):selectedItems?selectedItems.value===childValue:false;var leftCheckbox=multiple&&checkPosition==='left'&&(isSelected?checkedIcon:unCheckedIcon)||null;var rightCheckbox=multiple&&checkPosition==='right'&&(isSelected?checkedIcon:unCheckedIcon)||null;if(multiple&&checkPosition!==''){if(checkedIcon)checkedIcon.props.style.marginTop=0;if(unCheckedIcon)unCheckedIcon.props.style.marginTop=0}return[].concat(_toConsumableArray(nodes),[_react2.default.createElement(_ListItem2.default,{key:++index,tabIndex:index,disabled:disabled,ref:function ref(_ref10){return _this5.menuItems[++index]=_ref10},onClick:_this5.handleMenuSelection({value:childValue,label:label}),disableFocusRipple:disabled,leftIcon:leftCheckbox,rightIcon:rightCheckbox,primaryText:child,hoverColor:mergedHoverColor,innerDivStyle:_extends({paddingTop:10,paddingBottom:10,paddingLeft:multiple&&checkPosition==='left'?56:16,paddingRight:multiple&&checkPosition==='right'?56:16},innerDivStyle),style:isSelected?mergedSelectedMenuItemStyle:{}})])};var fixedChildren=Array.isArray(children)?children:[children];var menuItems=!disabled&&fixedChildren.length&&this.state.isOpen&&fixedChildren.reduce(function(nodes,child,index){if(child.type!=='optgroup')return menuItemBuilder(nodes,child,index);var nextIndex=nodes.length?+nodes[nodes.length-1].key+1:0;var menuGroup=_react2.default.createElement(_ListItem2.default,{disabled:true,key:nextIndex,primaryText:child.props.label,style:_extends({cursor:'default',paddingTop:10,paddingBottom:10},menuGroupStyle)});var groupedItems=[];var cpc=child.props.children;if(cpc){if(Array.isArray(cpc)&&cpc.length){groupedItems=cpc.reduce(function(nodes,child,idx){return menuItemBuilder(nodes,child,nextIndex+idx)},[])}else if((typeof cpc==='undefined'?'undefined':_typeof(cpc))==='object')groupedItems=menuItemBuilder(nodes,cpc,nextIndex)}return groupedItems.length?[].concat(_toConsumableArray(nodes),[menuGroup],_toConsumableArray(groupedItems)):nodes},[]);var autoCompleteHeight=this.state.showAutocomplete?53:0;var footerHeight=menuCloseButton||menuCancelButton?36:0;var noMatchFoundHeight=36;var containerHeight=(Array.isArray(elementHeight)?elementHeight.reduce(function(totalHeight,height){return totalHeight+height},6):elementHeight*(nb2show<menuItems.length?nb2show:menuItems.length)+6)||0;var popoverHeight=autoCompleteHeight+(containerHeight||noMatchFoundHeight)+footerHeight;var scrollableStyle={overflowY:nb2show>=menuItems.length?'hidden':'scroll'};var menuWidth=this.root?this.root.clientWidth:null;return _react2.default.createElement('div',{ref:function ref(_ref13){return _this5.root=_ref13},tabIndex:disabled?'-1':'0',onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.handleKeyDown,onClick:this.handleClick,title:!this.state.itemsLength?'Nothing to show':'',style:_extends({cursor:disabled?'not-allowed':'pointer',color:disabled?palette.disabledColor:palette.textColor},style)},_react2.default.createElement(SelectionsPresenter,{isFocused:this.state.isFocused,isOpen:this.state.isOpen,disabled:disabled,hintText:hintText,errorText:errorText,errorStyle:errorStyle,underlineErrorStyle:underlineErrorStyle,muiTheme:this.context.muiTheme,selectedValues:this.state.selectedItems,selectionsRenderer:selectionsRenderer,floatingLabel:floatingLabel,floatingLabelStyle:floatingLabelStyle,floatingLabelFocusStyle:floatingLabelFocusStyle,underlineStyle:underlineStyle,underlineFocusStyle:underlineFocusStyle}),_react2.default.createElement(_Popover2.default,{open:this.state.isOpen,anchorEl:this.root,canAutoPosition:canAutoPosition,anchorOrigin:anchorOrigin,useLayerForClickAway:useLayerForClickAway,onRequestClose:this.onRequestClose,style:{height:popoverHeight},autoCloseWhenOffScreen:false},this.state.showAutocomplete&&_react2.default.createElement(_TextField2.default,{ref:function ref(_ref11){return _this5.searchTextField=_ref11},value:this.state.searchText,hintText:hintTextAutocomplete,onChange:this.handleTextFieldAutocompletionFiltering,onKeyDown:this.handleTextFieldKeyDown,style:{marginLeft:16,marginBottom:5,width:menuWidth-16*2},underlineStyle:autocompleteUnderlineStyle,underlineFocusStyle:autocompleteUnderlineFocusStyle}),_react2.default.createElement('div',{ref:function ref(_ref12){return _this5.menu=_ref12},onKeyDown:this.handleMenuKeyDown,style:_extends({width:menuWidth},menuStyle)},menuItems.length?_react2.default.createElement(_reactInfinite2.default,{elementHeight:elementHeight,containerHeight:containerHeight,styles:{scrollableStyle:scrollableStyle}},menuItems):_react2.default.createElement(_ListItem2.default,{disabled:true,primaryText:noMatchFound,style:_extends({cursor:'default',padding:'10px 16px'},noMatchFoundStyle)})),multiple&&_react2.default.createElement('footer',{style:_extends({display:'flex',alignItems:'center',justifyContent:'flex-end'},menuFooterStyle)},_react2.default.createElement('div',{onClick:function onClick(){return _this5.closeMenu('clickaway')}},menuCancelButton),_react2.default.createElement('div',{onClick:this.closeMenu},menuCloseButton))))}}]);return SelectField}(_react.Component);SelectField.contextTypes={muiTheme:_propTypes2.default.object.isRequired};SelectField.defaultProps={anchorOrigin:{vertical:'top',horizontal:'left'},checkPosition:'',checkedIcon:_react2.default.createElement(_check2.default,{style:{top:'calc(50% - 12px)'}}),unCheckedIcon:_react2.default.createElement(_checkBoxOutlineBlank2.default,{style:{top:'calc(50% - 12px)'}}),menuCloseButton:null,menuCancelButton:null,canAutoPosition:true,multiple:false,openImmediately:false,keepSearchOnSelect:false,disabled:false,nb2show:5,hintText:'Click me',hintTextAutocomplete:'Type something',noMatchFound:'No match found',noMatchFoundStyle:{},showAutocompleteThreshold:10,elementHeight:36,autocompleteFilter:function autocompleteFilter(searchText,text){if(!text||typeof text!=='string'&&typeof text!=='number')return false;if(typeof searchText!=='string'&&typeof searchText!=='number')return false;return(text+'').toLowerCase().includes(searchText.toLowerCase())},value:null,onChange:function onChange(){},onMenuOpen:function onMenuOpen(){},onAutoCompleteTyping:function onAutoCompleteTyping(){},children:[],onRequestClose:function onRequestClose(){},useLayerForClickAway:false};exports.default=SelectField; | ||
'use strict';Object.defineProperty(exports,'__esModule',{value:true});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 _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i['return'])_i['return']()}finally{if(_d)throw _e}}return _arr}return function(arr,i){if(Array.isArray(arr)){return arr}else if(Symbol.iterator in Object(arr)){return sliceIterator(arr,i)}else{throw new TypeError('Invalid attempt to destructure non-iterable instance')}}}();var _typeof=typeof Symbol==='function'&&typeof Symbol.iterator==='symbol'?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==='function'&&obj.constructor===Symbol&&obj!==Symbol.prototype?'symbol':typeof obj};require('babel-polyfill');var _react=require('react');var _react2=_interopRequireDefault(_react);var _propTypes=require('prop-types');var _propTypes2=_interopRequireDefault(_propTypes);var _reactInfinite=require('react-infinite');var _reactInfinite2=_interopRequireDefault(_reactInfinite);var _Popover=require('material-ui/Popover/Popover');var _Popover2=_interopRequireDefault(_Popover);var _TextField=require('material-ui/TextField/TextField');var _TextField2=_interopRequireDefault(_TextField);var _ListItem=require('material-ui/List/ListItem');var _ListItem2=_interopRequireDefault(_ListItem);var _check=require('material-ui/svg-icons/navigation/check');var _check2=_interopRequireDefault(_check);var _checkBoxOutlineBlank=require('material-ui/svg-icons/toggle/check-box-outline-blank');var _checkBoxOutlineBlank2=_interopRequireDefault(_checkBoxOutlineBlank);var _arrowDropDown=require('material-ui/svg-icons/navigation/arrow-drop-down');var _arrowDropDown2=_interopRequireDefault(_arrowDropDown);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++){arr2[i]=arr[i]}return arr2}else{return Array.from(arr)}}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function')}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called')}return call&&(typeof call==='object'||typeof call==='function')?call:self}function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}function entries(obj){return'entries'in Object?Object.entries(obj):Object.keys(obj).map(function(prop){return[prop,obj[prop]]})}function areEqual(val1,val2){if((val1===0||val2===0)&&val1===val2)return true;else if(!val1||!val2||(typeof val1==='undefined'?'undefined':_typeof(val1))!==(typeof val2==='undefined'?'undefined':_typeof(val2)))return false;else if(typeof val1==='string'||typeof val1==='number'||typeof val1==='boolean')return val1===val2;else if((typeof val1==='undefined'?'undefined':_typeof(val1))==='object'){return Object.keys(val1).length===Object.keys(val2).length&&entries(val2).every(function(_ref){var _ref2=_slicedToArray(_ref,2),key2=_ref2[0],value2=_ref2[1];return val1[key2]===value2})}}var checkFormat=function checkFormat(value){return value.findIndex(function(v){return(typeof v==='undefined'?'undefined':_typeof(v))!=='object'||!('value'in v)})};var objectShape=_propTypes2.default.shape({value:_propTypes2.default.any.isRequired,label:_propTypes2.default.string});var FloatingLabel=function(_Component){_inherits(FloatingLabel,_Component);function FloatingLabel(){var _ref3;var _temp,_this,_ret;_classCallCheck(this,FloatingLabel);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}return _ret=(_temp=(_this=_possibleConstructorReturn(this,(_ref3=FloatingLabel.__proto__||Object.getPrototypeOf(FloatingLabel)).call.apply(_ref3,[this].concat(args))),_this),_this.state={flabelHeight:0},_temp),_possibleConstructorReturn(_this,_ret)}_createClass(FloatingLabel,[{key:'componentDidMount',value:function componentDidMount(){this.setState({flabelHeight:this.flabel.offsetHeight})}},{key:'render',value:function render(){var _this2=this;var _props=this.props,children=_props.children,shrink=_props.shrink,isFocused=_props.isFocused,_props$defaultColors=_props.defaultColors,floatingLabelColor=_props$defaultColors.floatingLabelColor,focusColor=_props$defaultColors.focusColor,floatingLabelStyle=_props.floatingLabelStyle,floatingLabelFocusStyle=_props.floatingLabelFocusStyle;var defaultStyles=_extends({position:'static',top:0,lineHeight:'22px',zIndex:1,transition:'450ms cubic-bezier(0.23, 1, 0.32, 1)',transform:'scale(1) translateY(0)',transformOrigin:'left top',pointerEvents:'auto',cursor:'pointer',userSelect:'none',color:floatingLabelColor},floatingLabelStyle);var focusStyles=isFocused&&shrink&&_extends({color:focusColor},floatingLabelFocusStyle);var shrinkStyles=shrink&&{position:'absolute',transform:'scale(0.75) translateY(-'+this.state.flabelHeight+'px)',pointerEvents:'none',cursor:'default'};return _react2.default.createElement('label',{ref:function ref(_ref4){return _this2.flabel=_ref4},style:_extends({},defaultStyles,shrinkStyles,focusStyles)},children)}}]);return FloatingLabel}(_react.Component);FloatingLabel.defaultProps={disabled:false,shrink:false};var styles={column:{display:'flex',flexDirection:'column'},row:{position:'relative',display:'flex',justifyContent:'flex-end',alignItems:'center'},selections:{flex:1},underline:{position:'relative',marginTop:4}};var SelectionsPresenter=function SelectionsPresenter(_ref5){var selectedValues=_ref5.selectedValues,selectionsRenderer=_ref5.selectionsRenderer,floatingLabel=_ref5.floatingLabel,hintText=_ref5.hintText,muiTheme=_ref5.muiTheme,floatingLabelStyle=_ref5.floatingLabelStyle,floatingLabelFocusStyle=_ref5.floatingLabelFocusStyle,underlineStyle=_ref5.underlineStyle,underlineFocusStyle=_ref5.underlineFocusStyle,isFocused=_ref5.isFocused,isOpen=_ref5.isOpen,disabled=_ref5.disabled,errorText=_ref5.errorText,errorStyle=_ref5.errorStyle,underlineErrorStyle=_ref5.underlineErrorStyle;var _muiTheme$textField=muiTheme.textField,floatingLabelColor=_muiTheme$textField.floatingLabelColor,borderColor=_muiTheme$textField.borderColor,focusColor=_muiTheme$textField.focusColor;var isValidObject=function isValidObject(obj){return Object.prototype.toString.call(obj)==='[object Object]'&&Object.keys(obj).includes('value')};var isShrunk=Array.isArray(selectedValues)&&!!selectedValues.length||!Array.isArray(selectedValues)&&isValidObject(selectedValues)||isOpen;var baseHRstyle=_extends({position:'absolute',bottom:0,left:0,width:'100%',margin:0,boxSizing:'content-box',borderTop:'none',borderLeft:'none',borderRight:'none',borderBottom:'1px solid',borderColor:borderColor},underlineStyle,errorText?_extends({borderColor:'red'},underlineErrorStyle):{});var focusedHRstyle=disabled?{}:errorText?underlineStyle:_extends({borderBottom:'2px solid',borderColor:isFocused||isOpen?focusColor:borderColor,transition:'450ms cubic-bezier(0.23, 1, 0.32, 1)',transform:'scaleX( '+(isFocused||isOpen?1:0)+' )'},underlineFocusStyle);return _react2.default.createElement('div',{style:styles.column},_react2.default.createElement('div',{style:styles.row},_react2.default.createElement('div',{style:styles.selections},floatingLabel&&_react2.default.createElement(FloatingLabel,{shrink:isShrunk,isFocused:isFocused,disabled:disabled,defaultColors:{floatingLabelColor:floatingLabelColor,focusColor:focusColor},floatingLabelStyle:floatingLabelStyle,floatingLabelFocusStyle:floatingLabelFocusStyle},floatingLabel),(!floatingLabel||isShrunk)&&selectionsRenderer(selectedValues,hintText)),_react2.default.createElement(_arrowDropDown2.default,{style:{fill:borderColor}})),_react2.default.createElement('div',{style:styles.underline},_react2.default.createElement('hr',{style:baseHRstyle}),_react2.default.createElement('hr',{style:_extends({},baseHRstyle,focusedHRstyle)})),errorText&&_react2.default.createElement('div',{style:_extends({marginTop:5,color:'red',fontSize:12},errorStyle)},errorText))};SelectionsPresenter.defaultProps={hintText:'Click me',errorText:'',errorStyle:{},underlineErrorStyle:{},value:null,selectionsRenderer:function selectionsRenderer(values,hintText){if(!values)return hintText;var value=values.value,label=values.label;if(Array.isArray(values)){return values.length?values.map(function(_ref6){var value=_ref6.value,label=_ref6.label;return label||value}).join(', '):hintText}else if(label||value)return label||value;else return hintText}};var SelectField=function(_Component2){_inherits(SelectField,_Component2);function SelectField(props,context){_classCallCheck(this,SelectField);var _this3=_possibleConstructorReturn(this,(SelectField.__proto__||Object.getPrototypeOf(SelectField)).call(this,props,context));_this3.onFocus=function(){return _this3.setState({isFocused:true})};_this3.onBlur=function(event){if(!_this3.state.isOpen)_this3.setState({isFocused:false})};_this3.closeMenu=function(reason){var _this3$props=_this3.props,onChange=_this3$props.onChange,name=_this3$props.name;_this3.setState({isOpen:false,searchText:'',isFocused:false});if(reason==='clickaway'){_this3.setState({selectedItems:_this3.state.initialSelectedItems})}else{onChange(_this3.state.selectedItems,name);_this3.setState({initialSelectedItems:_this3.state.selectedItems})}if(!reason&&_this3.root){_this3.root.focus()}};_this3.onRequestClose=function(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2]}var _this3$props2=_this3.props,menuCloseButton=_this3$props2.menuCloseButton,menuCancelButton=_this3$props2.menuCancelButton;if(!menuCloseButton&&!menuCancelButton){_this3.closeMenu(args)}_this3.props.onRequestClose(args)};_this3.handleClick=function(event){return!_this3.props.disabled&&_this3.openMenu()};_this3.handleKeyDown=function(event){return!_this3.props.disabled&&/ArrowDown|Enter/.test(event.key)&&_this3.openMenu()};_this3.handleTextFieldAutocompletionFiltering=function(event,searchText){_this3.props.onAutoCompleteTyping(searchText);_this3.setState({searchText:searchText},function(){return _this3.focusTextField()})};_this3.handleTextFieldKeyDown=function(_ref7){var key=_ref7.key;switch(key){case'ArrowDown':_this3.focusMenuItem();break;case'Escape':_this3.clearTextField();_this3.closeMenu('clickaway');break;default:break;}};_this3.handleMenuSelection=function(selectedItem){return function(event){event.preventDefault();var selectedItems=_this3.state.selectedItems;if(_this3.props.multiple){var selectedItemExists=selectedItems.some(function(obj){return areEqual(obj.value,selectedItem.value)});var updatedValues=selectedItemExists?selectedItems.filter(function(obj){return!areEqual(obj.value,selectedItem.value)}):selectedItems.concat(selectedItem);_this3.setState({selectedItems:updatedValues});_this3.clearTextField(function(){return _this3.focusTextField()})}else{var updatedValue=areEqual(selectedItems,selectedItem)?null:selectedItem;_this3.setState({selectedItems:updatedValue},function(){return _this3.closeMenu()})}}};_this3.handleMenuKeyDown=function(_ref8){var key=_ref8.key,tabIndex=_ref8.target.tabIndex;var cleanMenuItems=_this3.menuItems.filter(function(item){return!!item});var firstTabIndex=cleanMenuItems[0].props.tabIndex;var lastTabIndex=cleanMenuItems[cleanMenuItems.length-1].props.tabIndex;var currentElementIndex=cleanMenuItems.findIndex(function(item){return item.props.tabIndex===tabIndex});switch(key){case'ArrowUp':if(+tabIndex===firstTabIndex){_this3.state.showAutocomplete?_this3.focusTextField():_this3.focusMenuItem(lastTabIndex)}else{var previousTabIndex=cleanMenuItems.slice(0,currentElementIndex).slice(-1)[0].props.tabIndex;_this3.focusMenuItem(previousTabIndex)}break;case'ArrowDown':if(+tabIndex===lastTabIndex){_this3.state.showAutocomplete?_this3.focusTextField():_this3.focusMenuItem()}else{var nextTabIndex=cleanMenuItems.slice(currentElementIndex+1)[0].props.tabIndex;_this3.focusMenuItem(nextTabIndex)}break;case'PageUp':_this3.focusMenuItem();break;case'PageDown':_this3.focusMenuItem(lastTabIndex);break;case'Escape':_this3.closeMenu('clickaway');break;default:break;}};var children=props.children,value=props.value,multiple=props.multiple,showAutocompleteThreshold=props.showAutocompleteThreshold;var itemsLength=_this3.getChildrenLength(children);_this3.state={isOpen:false,isFocused:false,itemsLength:itemsLength,showAutocomplete:itemsLength>showAutocompleteThreshold||false,selectedItems:value||(multiple?[]:null),initialSelectedItems:value||(multiple?[]:null),searchText:''};_this3.menuItems=[];return _this3}_createClass(SelectField,[{key:'componentWillReceiveProps',value:function componentWillReceiveProps(nextProps){if(!areEqual(nextProps.value,this.state.selectedItems)){this.setState({selectedItems:nextProps.value})}if(!areEqual(nextProps.children,this.props.children)){var itemsLength=this.getChildrenLength(nextProps.children);this.setState({itemsLength:itemsLength,showAutocomplete:itemsLength>this.props.showAutocompleteThreshold})}}},{key:'componentDidMount',value:function componentDidMount(){if(this.props.openImmediately)this.openMenu()}},{key:'getChildrenLength',value:function getChildrenLength(children){if(!children)return 0;else if(Array.isArray(children)&&children.length){return children.reduce(function(count,_ref9){var type=_ref9.type,_ref9$props=_ref9.props,value=_ref9$props.value,cpc=_ref9$props.children;if(type==='optgroup'){if(cpc){if(Array.isArray(cpc)){var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=cpc[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var c=_step.value;if(c.props.value)++count}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}}else if((typeof cpc==='undefined'?'undefined':_typeof(cpc))==='object'&&cpc.props.value)++count}}else if(value)++count;return count},0)}else if(!Array.isArray(children)&&(typeof children==='undefined'?'undefined':_typeof(children))==='object'){if(children.type==='optgroup')return this.getChildrenLength(children.props.children);else if(children.props.value)return 1}return 0}},{key:'openMenu',value:function openMenu(){var _this4=this;if(!this.state.isOpen)this.props.onMenuOpen();if(this.state.itemsLength)this.setState({isOpen:true},function(){return _this4.focusTextField()})}},{key:'focusMenuItem',value:function focusMenuItem(index){var targetMenuItem=this.menuItems.find(function(item){return!!item&&(index?item.props.tabIndex===index:true)});if(targetMenuItem)targetMenuItem.applyFocusState('keyboard-focused')}},{key:'focusTextField',value:function focusTextField(){this.state.showAutocomplete&&this.searchTextField?this.searchTextField.focus():this.focusMenuItem()}},{key:'clearTextField',value:function clearTextField(callback){this.props.keepSearchOnSelect?callback():this.setState({searchText:''},callback)}},{key:'render',value:function render(){var _this5=this;var _props2=this.props,children=_props2.children,floatingLabel=_props2.floatingLabel,hintText=_props2.hintText,hintTextAutocomplete=_props2.hintTextAutocomplete,multiple=_props2.multiple,disabled=_props2.disabled,nb2show=_props2.nb2show,autocompleteFilter=_props2.autocompleteFilter,selectionsRenderer=_props2.selectionsRenderer,menuCloseButton=_props2.menuCloseButton,anchorOrigin=_props2.anchorOrigin,canAutoPosition=_props2.canAutoPosition,style=_props2.style,menuStyle=_props2.menuStyle,elementHeight=_props2.elementHeight,innerDivStyle=_props2.innerDivStyle,selectedMenuItemStyle=_props2.selectedMenuItemStyle,menuGroupStyle=_props2.menuGroupStyle,menuFooterStyle=_props2.menuFooterStyle,floatingLabelStyle=_props2.floatingLabelStyle,floatingLabelFocusStyle=_props2.floatingLabelFocusStyle,underlineStyle=_props2.underlineStyle,underlineFocusStyle=_props2.underlineFocusStyle,useLayerForClickAway=_props2.useLayerForClickAway,autocompleteUnderlineStyle=_props2.autocompleteUnderlineStyle,autocompleteUnderlineFocusStyle=_props2.autocompleteUnderlineFocusStyle,noMatchFound=_props2.noMatchFound,noMatchFoundStyle=_props2.noMatchFoundStyle,menuCancelButton=_props2.menuCancelButton,checkedIcon=_props2.checkedIcon,unCheckedIcon=_props2.unCheckedIcon,hoverColor=_props2.hoverColor,checkPosition=_props2.checkPosition,errorText=_props2.errorText,errorStyle=_props2.errorStyle,underlineErrorStyle=_props2.underlineErrorStyle;var _context$muiTheme=this.context.muiTheme,palette=_context$muiTheme.baseTheme.palette,menuItem=_context$muiTheme.menuItem;var mergedSelectedMenuItemStyle=_extends({color:menuItem.selectedTextColor},selectedMenuItemStyle);if(checkedIcon)checkedIcon.props.style.fill=mergedSelectedMenuItemStyle.color;var mergedHoverColor=hoverColor||menuItem.hoverColor;var menuItemBuilder=function menuItemBuilder(nodes,child,index){var selectedItems=_this5.state.selectedItems;var _child$props=child.props,childValue=_child$props.value,label=_child$props.label,disabled=_child$props.disabled;if(!autocompleteFilter(_this5.state.searchText,label||childValue))return nodes;var isSelected=Array.isArray(selectedItems)?selectedItems.some(function(obj){return areEqual(obj.value,childValue)}):selectedItems?selectedItems.value===childValue:false;var leftCheckbox=multiple&&checkPosition==='left'&&(isSelected?checkedIcon:unCheckedIcon)||null;var rightCheckbox=multiple&&checkPosition==='right'&&(isSelected?checkedIcon:unCheckedIcon)||null;if(multiple&&checkPosition!==''){if(checkedIcon)checkedIcon.props.style.marginTop=0;if(unCheckedIcon)unCheckedIcon.props.style.marginTop=0}return[].concat(_toConsumableArray(nodes),[_react2.default.createElement(_ListItem2.default,{key:++index,tabIndex:index,disabled:disabled,ref:function ref(_ref10){return _this5.menuItems[++index]=_ref10},onClick:_this5.handleMenuSelection({value:childValue,label:label}),disableFocusRipple:true,leftIcon:leftCheckbox,rightIcon:rightCheckbox,primaryText:child,hoverColor:mergedHoverColor,innerDivStyle:_extends({paddingTop:10,paddingBottom:10,paddingLeft:multiple&&checkPosition==='left'?56:16,paddingRight:multiple&&checkPosition==='right'?56:16},innerDivStyle),style:isSelected?mergedSelectedMenuItemStyle:{}})])};var fixedChildren=Array.isArray(children)?children:[children];var menuItems=!disabled&&fixedChildren.length&&this.state.isOpen&&fixedChildren.reduce(function(nodes,child,index){if(child.type!=='optgroup')return menuItemBuilder(nodes,child,index);var nextIndex=nodes.length?+nodes[nodes.length-1].key+1:0;var menuGroup=_react2.default.createElement(_ListItem2.default,{disabled:true,key:nextIndex,primaryText:child.props.label,style:_extends({cursor:'default',paddingTop:10,paddingBottom:10},menuGroupStyle)});var groupedItems=[];var cpc=child.props.children;if(cpc){if(Array.isArray(cpc)&&cpc.length){groupedItems=cpc.reduce(function(nodes,child,idx){return menuItemBuilder(nodes,child,nextIndex+idx)},[])}else if((typeof cpc==='undefined'?'undefined':_typeof(cpc))==='object')groupedItems=menuItemBuilder(nodes,cpc,nextIndex)}return groupedItems.length?[].concat(_toConsumableArray(nodes),[menuGroup],_toConsumableArray(groupedItems)):nodes},[]);var autoCompleteHeight=this.state.showAutocomplete?53:0;var footerHeight=menuCloseButton||menuCancelButton?36:0;var noMatchFoundHeight=36;var containerHeight=(Array.isArray(elementHeight)?elementHeight.reduce(function(totalHeight,height){return totalHeight+height},6):elementHeight*(nb2show<menuItems.length?nb2show:menuItems.length)+6)||0;var popoverHeight=autoCompleteHeight+(containerHeight||noMatchFoundHeight)+footerHeight;var scrollableStyle={overflowY:nb2show>=menuItems.length?'hidden':'scroll'};var menuWidth=this.root?this.root.clientWidth:null;return _react2.default.createElement('div',{ref:function ref(_ref13){return _this5.root=_ref13},tabIndex:disabled?'-1':'0',onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.handleKeyDown,onClick:this.handleClick,title:!this.state.itemsLength?'Nothing to show':'',style:_extends({cursor:disabled?'not-allowed':'pointer',color:disabled?palette.disabledColor:palette.textColor},style)},_react2.default.createElement(SelectionsPresenter,{isFocused:this.state.isFocused,isOpen:this.state.isOpen,disabled:disabled,hintText:hintText,errorText:errorText,errorStyle:errorStyle,underlineErrorStyle:underlineErrorStyle,muiTheme:this.context.muiTheme,selectedValues:this.state.selectedItems,selectionsRenderer:selectionsRenderer,floatingLabel:floatingLabel,floatingLabelStyle:floatingLabelStyle,floatingLabelFocusStyle:floatingLabelFocusStyle,underlineStyle:underlineStyle,underlineFocusStyle:underlineFocusStyle}),_react2.default.createElement(_Popover2.default,{open:this.state.isOpen,anchorEl:this.root,canAutoPosition:canAutoPosition,anchorOrigin:anchorOrigin,useLayerForClickAway:useLayerForClickAway,onRequestClose:this.onRequestClose,style:{height:popoverHeight},autoCloseWhenOffScreen:false},this.state.showAutocomplete&&_react2.default.createElement(_TextField2.default,{ref:function ref(_ref11){return _this5.searchTextField=_ref11},value:this.state.searchText,hintText:hintTextAutocomplete,onChange:this.handleTextFieldAutocompletionFiltering,onKeyDown:this.handleTextFieldKeyDown,style:{marginLeft:16,marginBottom:5,width:menuWidth-16*2},underlineStyle:autocompleteUnderlineStyle,underlineFocusStyle:autocompleteUnderlineFocusStyle}),_react2.default.createElement('div',{ref:function ref(_ref12){return _this5.menu=_ref12},onKeyDown:this.handleMenuKeyDown,style:_extends({width:menuWidth},menuStyle)},menuItems.length?_react2.default.createElement(_reactInfinite2.default,{elementHeight:elementHeight,containerHeight:containerHeight,styles:{scrollableStyle:scrollableStyle}},menuItems):_react2.default.createElement(_ListItem2.default,{disabled:true,primaryText:noMatchFound,style:_extends({cursor:'default',padding:'10px 16px'},noMatchFoundStyle)})),multiple&&_react2.default.createElement('footer',{style:_extends({display:'flex',alignItems:'center',justifyContent:'flex-end'},menuFooterStyle)},_react2.default.createElement('div',{onClick:function onClick(){return _this5.closeMenu('clickaway')}},menuCancelButton),_react2.default.createElement('div',{onClick:this.closeMenu},menuCloseButton))))}}]);return SelectField}(_react.Component);SelectField.contextTypes={muiTheme:_propTypes2.default.object.isRequired};SelectField.defaultProps={anchorOrigin:{vertical:'top',horizontal:'left'},checkPosition:'',checkedIcon:_react2.default.createElement(_check2.default,{style:{top:'calc(50% - 12px)'}}),unCheckedIcon:_react2.default.createElement(_checkBoxOutlineBlank2.default,{style:{top:'calc(50% - 12px)'}}),menuCloseButton:null,menuCancelButton:null,canAutoPosition:true,multiple:false,openImmediately:false,keepSearchOnSelect:false,disabled:false,nb2show:5,hintText:'Click me',hintTextAutocomplete:'Type something',noMatchFound:'No match found',noMatchFoundStyle:{},showAutocompleteThreshold:10,elementHeight:36,autocompleteFilter:function autocompleteFilter(searchText,text){if(!text||typeof text!=='string'&&typeof text!=='number')return false;if(typeof searchText!=='string'&&typeof searchText!=='number')return false;return(text+'').toLowerCase().includes(searchText.toLowerCase())},value:null,onChange:function onChange(){},onMenuOpen:function onMenuOpen(){},onAutoCompleteTyping:function onAutoCompleteTyping(){},children:[],onRequestClose:function onRequestClose(){},useLayerForClickAway:false};exports.default=SelectField; |
{ | ||
"name": "moebel-material-ui-superselectfield", | ||
"version": "0.1.0", | ||
"version": "0.1.1", | ||
"description": "original Material-UI's SelectField component enhanced with autocompletion, multiselection, custom renderers, and infinite loading.", | ||
@@ -5,0 +5,0 @@ "private": false, |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
0
7300812