react-clean-select 0.0.9 → 0.0.11-alpha-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -97,13 +97,13 @@ const options = [
97
97
  | options | array | [] | Available options, (option with key `disabled: true` will be disabled) |
98
98
  | keepOpen | bool | false | If true, dropdown will always stay open (good for debugging) |
99
99
  | defaultMenuIsOpen | bool | false | If true, dropdown will be open by default |
100
- | autoFocus | bool | false | If true, and `searchable`, dropdown will auto focus |
101
100
  | clearOnBlur | bool | true | If true, and `searchable`, search value will be cleared on blur |
102
101
  | clearOnSelect | bool | true | If true, and `searchable`, search value will be cleared upon value select/de-select |
103
102
  | name | string | null | If set, input type hidden would be added in the component with the value of the `name` prop as name and select's `values` as value |
104
103
  | required | bool | false | If set, input type hidden would be added in the component with `required` prop as true/false |
105
104
  | dropdownGap | number | 5 | Gap between select element and dropdown |
106
105
  | multi | bool | false | If true - will act as multi-select, if false - only one option will be selected at the time |
106
+ | allowFreeTextEntry | bool | false | If true - and multi is false - anything the user types will be accepted, treating options as mere suggestions |
107
107
  | placeholder | string | "Select..." | Placeholder shown where there are no selected values |
108
108
  | addPlaceholder | string | "" | Secondary placeholder on search field if any value selected |
109
109
  | disabled | bool | false | Disable select and all interactions |
@@ -147,7 +147,6 @@ const options = [
147
147
  | onDropdownOpen | func | | Fires upon dropdown open |
148
148
  | onClearAll | func | | Fires upon clearing all values (via custom renderers) |
149
149
  | onSelectAll | func | | Fires upon selecting all values (via custom renderers) |
150
- | onDropdownCloseRequest | func | undefined | Fires upon dropdown closing state, stops the closing and provides own method `close()` |
151
150
  | [contentRenderer](https://jlw.github.io/react-clean-select/prop/content-renderer) | func | | Overrides internal content component (the contents of the select component) |
152
151
  | [optionRenderer](https://jlw.github.io/react-clean-select/prop/option-renderer) | func | | Overrides internal option in a dropdown |
153
152
  | [noDataRenderer](https://jlw.github.io/react-clean-select/prop/no-data-renderer) | func | | Overrides internal "no data" (shown where search has no results) |
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("prop-types")):"function"==typeof define&&define.amd?define("reactCleanSelect",["react","prop-types"],t):"object"==typeof exports?exports.reactCleanSelect=t(require("react"),require("prop-types")):e.reactCleanSelect=t(e.React,e.PropTypes)}(this,(e,t)=>(()=>{"use strict";var o={513(e){e.exports=t},12(t){t.exports=e}},n={};function r(e){var t=n[e];if(void 0!==t)return t.exports;var s=n[e]={exports:{}};return o[e](s,s.exports,r),s.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};r.r(s),r.d(s,{Select:()=>P,default:()=>F});var a=r(12),l=r.n(a),i=(r(513),"react-clean-select");function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}const c=function(e){function t(){for(var t,o=arguments.length,n=Array(o),r=0;r<o;r++)n[r]=arguments[r];return(t=e.call.apply(e,[this].concat(n))||this).container=l().createRef(),t.handleClick=function(e){var o=t.container.current,n=e.target,r=t.props.onClickOutside;(o&&o===n||o&&!o.contains(n))&&r(e)},t}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,p(e,t)}(t,e);var o=t.prototype;return o.componentDidMount=function(){document.addEventListener("click",this.handleClick,!0)},o.componentWillUnmount=function(){document.removeEventListener("click",this.handleClick,!0)},o.render=function(){var e=this.props,t=e.children,o=e.props;return l().createElement("div",{className:i+"-container","data-testid":i+"-"+o.name+"-Container",ref:this.container},t)},t}(l().Component);function d(e,t){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},d(e,t)}var u=function(e,t){var o=e.addPlaceholder,n=e.searchable,r=e.placeholder,s=t.values&&0===t.values.length;return t.values&&0<t.values.length&&o&&n?o:s?r:""};const h=function(e){function t(){for(var t,o=arguments.length,n=Array(o),r=0;r<o;r++)n[r]=arguments[r];return(t=e.call.apply(e,[this].concat(n))||this).input=l().createRef(),t.onBlur=function(e){e.stopPropagation();var o=t.props,n=o.props,r=o.state;return n.onBlur&&n.onBlur(),r.dropdown?t.input.current.focus():t.input.current.blur()},t}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,d(e,t)}(t,e);var o=t.prototype;return o.componentDidUpdate=function(e){(this.props.state.dropdown||e.state.dropdown!==this.props.state.dropdown&&this.props.state.dropdown||this.props.props.autoFocus)&&this.input.current.focus(),e.state.dropdown===this.props.state.dropdown||this.props.state.dropdown||this.input.current.blur()},o.render=function(){var e=this.props,t=e.props,o=e.state,n=e.methods;return t.inputRenderer?t.inputRenderer({props:t,state:o,methods:n,inputRef:this.input}):l().createElement("input",{ref:this.input,className:i+"-input"+(t.searchable?"":" "+i+"-input-readonly"),"data-testid":i+"-"+t.name+"-Input",disabled:t.disabled,onBlur:this.onBlur,onChange:n.setSearch,onClick:function(e){e.stopPropagation(),n.dropDown("open")},onFocus:function(e){return e.stopPropagation()},onKeyDown:n.handleKeyDown,placeholder:u(t,o),tabIndex:"-1",value:o.search})},t}(a.Component);var f=function(e,t){var o;return void 0===t&&(t=0),function(){for(var n=arguments.length,r=Array(n),s=0;s<n;s++)r[s]=arguments[s];o&&clearTimeout(o),o=setTimeout(function(){e.apply(void 0,r),o=null},t)}},m=function(e,t){return(e[t.valueField]+"").replaceAll(/[^a-zA-Z0-9]/g,"-")},v=function(e,t,o){if(!t)return e;var n=Array.isArray(t)?t:t.split(".").filter(function(e){return e.length});return n.length?v(e[n.shift()],n,o):void 0===e?o:e},w=function(){return"undefined"==typeof window&&(global.window={}),window};const b=function(e){var t=e.option,o=e.props,n=e.state,r=e.methods;if(t&&o.selectionRenderer)return o.selectionRenderer({option:t,props:o,state:n,methods:r});var s=m(t,o);return l().createElement("span",{role:"listitem",disabled:o.disabled,className:i+"-selection"+("rtl"===o.direction?" "+i+"-selection-rtl":""),"data-testid":i+"-"+o.name+"-Selection-"+s},l().createElement("span",{className:i+"-selection-label","data-testid":i+"-"+o.name+"-Selection-label-"+s},t[o.labelField]),l().createElement("span",{className:i+"-selection-remove","data-testid":i+"-"+o.name+"-Selection-remove-"+s,onClick:function(e){return r.removeOption(e,t,o.closeOnSelect)}},"×"))},S=function(e){var t=e.props,o=e.state,n=e.methods;return l().createElement("div",{className:i+"-content "+(t.multi?i+"-type-multi":i+"-type-single"),"data-testid":i+"-"+t.name+"-Content",onClick:function(e){return e.stopPropagation(),!0===o.dropdown&&t.closeOnClickInput&&!o.search?n.dropDown("close"):n.dropDown("open")}},t.contentRenderer?t.contentRenderer({props:t,state:o,methods:n}):l().createElement(l().Fragment,null,function(){if(o.values&&0<o.values.length){var e=n.selectedOptions();if(t.multi)return e.map(function(e){return l().createElement(b,{key:""+e[t.valueField]+e[t.labelField],option:e,state:o,props:t,methods:n})});var r=e[0];if(r&&r[t.labelField])return l().createElement("span",{"data-testid":i+"-"+t.name+"-Selection"},r[t.labelField])}}(),l().createElement(h,{props:t,methods:n,state:o})),t.required&&l().createElement("input",{className:i+"-input-zero","data-testid":i+"-"+t.name+"-input-zero",defaultValue:o.values,disabled:t.disabled,name:t.name,required:t.required,tabIndex:-1}))},g=function(e){var t=e.props,o=e.state,n=e.methods;return t.noDataRenderer?t.noDataRenderer({props:t,state:o,methods:n}):l().createElement("div",{className:i+"-option "+i+"-no-data","data-testid":i+"-"+t.name+"-NoData",key:"NoData"},t.noDataLabel)};function y(e,t){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},y(e,t)}const O=function(e){function t(){for(var t,o=arguments.length,n=Array(o),r=0;r<o;r++)n[r]=arguments[r];return(t=e.call.apply(e,[this].concat(n))||this).option=l().createRef(),t}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,y(e,t)}(t,e);var o=t.prototype;return o.componentDidMount=function(){var e=this.props,t=e.props,o=e.methods;this.option.current&&this.option.current.scrollIntoView&&!t.multi&&t.keepSelectedInList&&o.isSelected(this.props.option)&&this.option.current.scrollIntoView({block:"nearest",inline:"start"})},o.componentDidUpdate=function(){this.props.state.cursor===this.props.optionIndex&&this.option.current&&this.option.current.scrollIntoView&&this.option.current.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})},o.addOption=function(e){e.preventDefault(),e.stopPropagation();var t=this.props,o=t.methods,n=t.nonSelectable,r=t.option;r.disabled||n||o.addOption(r)},o.render=function(){var e=this.props,t=e.props,o=e.state,n=e.methods,r=e.nonSelectable,s=e.option,a=e.optionIndex;if(t.optionRenderer)return t.optionRenderer(this.props);if(!t.keepSelectedInList&&n.isSelected(s))return null;var p=i+"-"+t.name+"-Option-"+m(s,t);return r&&(p=i+"-"+t.name+"-OptionInstructions"),l().createElement("span",{role:"option",ref:this.option,"aria-selected":n.isSelected(s),"aria-disabled":s.disabled,"aria-label":s[t.labelField],key:""+s[t.valueField]+s[t.labelField],tabIndex:"-1",className:i+"-option"+(n.isSelected(s)?" "+i+"-option-selected":"")+(o.cursor===a?" "+i+"-option-active":"")+(s.disabled?" "+i+"-option-disabled":""),"data-testid":p,"data-non-selectable":r?"true":null,onClick:this.addOption.bind(this),onKeyDown:this.addOption.bind(this)},s[t.labelField],s.disabled&&l().createElement("ins",null,t.disabledLabel))},t}(a.Component);var D=function(e,t){var o=t.getSelectRef().getBoundingClientRect(),n=o.bottom+parseInt(e.dropdownHeight,10)+parseInt(e.dropdownGap,10);return"auto"===e.dropdownPosition?n>w().innerHeight&&n>o.top?"top":"bottom":e.dropdownPosition};const R=function(e){var t=e.props,o=e.state,n=e.methods;return l().createElement("div",{tabIndex:"-1","aria-expanded":"true",role:"list",className:i+"-dropdown "+i+"-dropdown-position-"+D(t,n),"data-testid":i+"-"+t.name+"-Dropdown"},t.dropdownRenderer?t.dropdownRenderer({props:t,state:o,methods:n}):l().createElement(l().Fragment,null,function(){if(t.instructionsOption&&(!o.search||""===o.search)){var e={};return e[t.labelField]=t.instructionsOption,l().createElement(O,{key:"instructionsOption",nonSelectable:!0,option:e,optionIndex:-1,state:o,props:t,methods:n})}}(),0===o.searchResults.length?l().createElement(g,{props:t,state:o,methods:n}):o.searchResults.map(function(e,r){return l().createElement(O,{key:e[t.valueField].toString(),option:e,optionIndex:r,state:o,props:t,methods:n})}),function(){if(t.selectAll&&t.options&&t.multi)return l().createElement("div",{role:"button",className:i+"-dropdown-select-all",onClick:function(e){e.stopPropagation(),n.areAllSelected()?n.clearAll():n.selectAll()}},n.areAllSelected()?t.clearAllLabel:t.selectAllLabel)}()))},E=function(e){var t=e.props;return t.loadingRenderer?t.loadingRenderer({props:t}):l().createElement("div",{className:i+"-loading","data-testid":i+"-"+t.name+"-Loading"})},C=function(e){var t=e.props,o=e.state,n=e.methods;return t.clearRenderer?t.clearRenderer({props:t,state:o,methods:n}):l().createElement("div",{className:i+"-clear","data-testid":i+"-"+t.name+"-Clear",tabIndex:"-1",onClick:function(e){e.stopPropagation(),n.clearAll()},onKeyDown:function(e){e.stopPropagation(),n.clearAll()}},"×")},k=function(e){var t=e.props,o=e.state,n=e.methods;return t.separatorRenderer?t.separatorRenderer({props:t,state:o,methods:n}):l().createElement("div",{className:i+"-separator","data-testid":i+"-"+t.name+"-Separator"})},A=function(e){var t=e.props,o=e.state,n=e.methods,r=function(e){e.preventDefault(),e.stopPropagation(),n.dropDown("toggle")};return l().createElement("div",{className:i+"-dropdown-handle "+i+"-dropdown-handle-"+(o.dropdown?"open":"closed")+(t.dropdownHandleRenderer?"":" "+i+"-dropdown-handle-rotate"),"data-testid":i+"-"+t.name+"-DropdownHandle",onClick:r,onKeyDown:r,tabIndex:"-1"},t.dropdownHandleRenderer?t.dropdownHandleRenderer({props:t,state:o,methods:n}):l().createElement("svg",{fill:"currentColor",viewBox:"0 0 40 40"},l().createElement("path",{d:"M31 26.4q0 .3-.2.5l-1.1 1.2q-.3.2-.6.2t-.5-.2l-8.7-8.8-8.8 8.8q-.2.2-.5.2t-.5-.2l-1.2-1.2q-.2-.2-.2-.5t.2-.5l10.4-10.4q.3-.2.6-.2t.5.2l10.4 10.4q.2.2.2.5z"})))};function B(){return B=Object.assign?Object.assign.bind():function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o])({}).hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},B.apply(null,arguments)}function I(e,t){return I=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},I(e,t)}var P=function(e){function t(t){var o,n=Math.floor;return{}.hasOwnProperty.call(t,"name")||(t.name="field"+n(1e3*Math.random())),(o=e.call(this,t)||this).onDropdownClose=function(){o.setState({cursor:null}),o.props.onDropdownClose()},o.onScroll=function(){o.props.closeOnScroll&&o.dropDown("close"),o.updateSelectBounds()},o.updateSelectBounds=function(){return o.select.current&&o.setState({selectBounds:o.select.current.getBoundingClientRect()})},o.getSelectBounds=function(){return o.state.selectBounds},o.dropDown=function(e,t){return void 0===e&&(e="toggle"),void 0===t&&(t=!1),o.props.keepOpen?void(!0!==o.state.dropdown&&o.setState({dropdown:!0})):void 0!==o.props.onDropdownCloseRequest&&o.state.dropdown&&!1===t&&"close"===e?o.props.onDropdownCloseRequest({props:o.props,methods:o.methods,state:o.state,close:function(){return o.dropDown("close",!0)}}):"close"===e&&o.state.dropdown?(o.select.current.blur(),o.setState({dropdown:!1,search:o.props.clearOnBlur?"":o.state.search}),o.setState({searchResults:o.searchResults()})):"open"!==e||o.state.dropdown?"toggle"===e&&(o.select.current.focus(),o.setState({dropdown:!o.state.dropdown})):o.setState({dropdown:!0})},o.getSelectRef=function(){return o.select.current},o.getValue=function(e){return e[o.props.valueField]},o.searchExistsInOptions=function(){return!!o.props.options.find(function(e){return o.state.search===o.getValue(e)})},o.addOption=function(e){var t={},n=o.getValue(e);if(o.props.multi){if(o.state.values&&o.state.values.includes(n))return o.removeOption(null,e,!1);t.values=[].concat(o.state.values,[n]),o.props.onSelect([].concat(o.state.values,[n]))}else t.values=[n],o.props.onSelect([n]);return o.props.clearOnSelect&&(t.search=""),(o.props.closeOnSelect||!o.props.multi)&&(t.cursor=null,t.dropdown=!1),o.setState(t),!0},o.removeOption=function(e,t,n){void 0===n&&(n=!1),e&&(e.preventDefault(),e.stopPropagation());var r=o.getValue(t),s=o.state.values.filter(function(e){return e!==r});o.setState({dropdown:!n,values:s}),o.props.onDeselect(s)},o.setSearch=function(e){o.setSearchState(e.target.value)},o.setSearchState=function(e){o.setState({cursor:null,search:e},function(){return o.setState({searchResults:o.searchResults()})})},o.getInputSize=function(){return o.state.search?o.state.search.length:0<o.state.values.length?o.props.addPlaceholder.length:o.props.placeholder.length},o.toggleSelectAll=function(){return o.setState({values:0===o.state.values.length?o.selectAll():o.clearAll()})},o.clearAll=function(){o.props.onClearAll(),o.setState({values:[]})},o.selectAll=function(){o.props.onSelectAll(),o.setState({values:o.props.options.filter(function(e){return!e.disabled}).map(function(e){return o.getValue(e)})})},o.isSelected=function(e){return o.state.values&&o.state.values.includes(o.getValue(e))},o.areAllSelected=function(){return o.state.values.length===o.props.options.filter(function(e){return!e.disabled}).length},o.selectedOptions=function(){return o.props.options.filter(function(e){return o.isSelected(e)})},o.safeString=function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},o.sortBy=function(){var e=o.props,t=e.sortBy,n=e.options;return t?(n.sort(function(e,o){return v(e,t)<v(o,t)?-1:v(e,t)>v(o,t)?1:0}),n):n},o.searchFn=function(e){var t=e.state,n=e.methods,r=new RegExp(n.safeString(t.search),"i");return n.sortBy().filter(function(e){return r.test(e[o.props.searchBy]||e[o.props.labelField])})},o.searchResults=function(){var e={state:o.state,props:o.props,methods:o.methods},t=o.props.searchFn(e)||o.searchFn(e);return o.props.multi&&!o.props.keepSelectedInList?t.filter(function(e){return!o.methods.isSelected(e)}):t},o.activeCursorOption=function(e){return o.setState({activeCursorOption:e})},o.handleKeyDown=function(e){var t={event:e,state:o.state,props:o.props,methods:o.methods,setState:o.setState.bind(o)};return o.props.handleKeyDownFn(t)||o.handleKeyDownFn(t)},o.handleKeyDownFn=function(e){var t=e.event,n=e.state,r=e.props,s=e.methods,a=e.setState,l=n.cursor,i=n.searchResults,p="Escape"===t.key,c="Enter"===t.key,d="ArrowUp"===t.key,u="ArrowDown"===t.key,h="Backspace"===t.key,f="Tab"===t.key&&!t.shiftKey,m=t.shiftKey&&"Tab"===t.key;if(p)return o.dropDown("close");if(c){var v=i[l];if(v&&!v.disabled)return r.multi&&!r.keepSelectedInList&&0<l&&a({cursor:l-1}),s.addOption(v)}return(d||u||m&&n.dropdown||f&&n.dropdown)&&t.preventDefault(),!u&&!d||n.dropdown?void(!(u||f&&n.dropdown)||null!==l&&i.length-1!==l?u||f&&n.dropdown?a({cursor:l+1}):!(d||m&&n.dropdown)||null!==l&&0!==l?(d||m&&n.dropdown)&&0<l?a({cursor:l-1}):h&&r.backspaceDelete&&0===o.getInputSize()&&a({values:o.state.values.slice(0,-1)}):a({cursor:i.length-1}):a({cursor:0})):(o.dropDown("open"),a({cursor:u?0:i.length-1}))},o.renderDropdown=function(){return l().createElement(R,{props:o.props,state:o.state,methods:o.methods})},o.state={dropdown:!1,values:t.values,search:"",selectBounds:{},cursor:null,searchResults:t.options},o.methods={activeCursorOption:o.activeCursorOption,addOption:o.addOption,areAllSelected:o.areAllSelected,clearAll:o.clearAll,dropDown:o.dropDown,getInputSize:o.getInputSize,getSelectBounds:o.getSelectBounds,getSelectRef:o.getSelectRef,getValue:o.getValue,handleKeyDown:o.handleKeyDown,isSelected:o.isSelected,removeOption:o.removeOption,safeString:o.safeString,searchExistsInOptions:o.searchExistsInOptions,searchResults:o.searchResults,selectAll:o.selectAll,selectedOptions:o.selectedOptions,setSearch:o.setSearch,sortBy:o.sortBy,toggleSelectAll:o.toggleSelectAll},o.select=l().createRef(),o.dropdownRoot="undefined"!=typeof document&&document.createElement("div"),o}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,I(e,t)}(t,e);var o=t.prototype;return o.componentDidMount=function(){w().addEventListener("resize",f(this.updateSelectBounds)),w().addEventListener("scroll",f(this.onScroll)),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen?this.dropDown("open"):this.dropDown("close"),this.setState({searchResults:this.searchResults()})},o.componentDidUpdate=function(e,t){var o=this;!this.props.compareValuesFunc(e.values,this.props.values)&&this.props.compareValuesFunc(e.values,t.values)&&(this.setState({values:this.props.values},function(){o.props.onChange(o.state.values)}),this.updateSelectBounds()),e.options!==this.props.options&&this.setState({searchResults:this.searchResults()}),t.values!==this.state.values&&(this.props.onChange(this.state.values),this.updateSelectBounds()),t.search!==this.state.search&&this.updateSelectBounds(),e.multi!==this.props.multi&&this.updateSelectBounds(),t.dropdown&&t.dropdown!==this.state.dropdown&&this.onDropdownClose(),t.dropdown||t.dropdown===this.state.dropdown||this.props.onDropdownOpen()},o.componentWillUnmount=function(){w().removeEventListener("resize",f(this.updateSelectBounds,this.props.debounceDelay)),w().removeEventListener("scroll",f(this.onScroll,this.props.debounceDelay))},o.render=function(){var e=this,t=[i];return"rtl"===this.props.direction&&t.push(i+"-rtl"),this.props.disabled&&t.push(i+"-disabled"),void 0!==this.props.className&&t.push(this.props.className),l().createElement(c,{props:this.props,onClickOutside:function(){return e.dropDown("close")}},l().createElement("div",B({"aria-expanded":this.state.dropdown,"aria-label":"Dropdown select",className:t.join(" "),"data-testid":i+"-"+this.props.name,onClick:function(t){t.stopPropagation(),e.dropDown("open")},onKeyDown:this.handleKeyDown,ref:this.select,tabIndex:this.props.disabled?"-1":"0"},this.props.additionalProps),l().createElement(S,{props:this.props,state:this.state,methods:this.methods}),this.props.loading&&l().createElement(E,{props:this.props}),this.props.clearable&&l().createElement(C,{props:this.props,state:this.state,methods:this.methods}),this.props.separator&&l().createElement(k,{props:this.props,state:this.state,methods:this.methods}),this.props.dropdownHandle&&l().createElement(A,{props:this.props,state:this.state,methods:this.methods}),this.state.dropdown&&!this.props.disabled&&this.renderDropdown()))},t}(a.Component);P.defaultProps={additionalProps:null,addPlaceholder:"",autoFocus:!1,backspaceDelete:!0,clearable:!1,clearAllLabel:"Clear all",clearOnBlur:!0,clearOnSelect:!0,closeOnClickInput:!1,closeOnScroll:!1,closeOnSelect:!1,compareValuesFunc:function(e,t){return JSON.stringify(e)===JSON.stringify(t)},debounceDelay:0,defaultMenuIsOpen:!1,direction:"ltr",disabled:!1,disabledLabel:"disabled",dropdownGap:5,dropdownHandle:!0,dropdownHeight:"300px",dropdownPosition:"bottom",handleKeyDownFn:function(){},keepOpen:!1,keepSelectedInList:!0,labelField:"label",loading:!1,multi:!1,name:null,noDataLabel:"No data",onBlur:null,onChange:function(){},onClearAll:function(){},onDeselect:function(){},onDropdownClose:function(){},onDropdownCloseRequest:void 0,onDropdownOpen:function(){},onSelect:function(){},onSelectAll:function(){},options:[],placeholder:"Select...",required:!1,searchable:!0,searchBy:"label",searchFn:function(){},selectAll:!1,selectAllLabel:"Select all",separator:!1,sortBy:null,valueField:"value",values:[]};const F=P;return s})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("prop-types")):"function"==typeof define&&define.amd?define("reactCleanSelect",["react","prop-types"],t):"object"==typeof exports?exports.reactCleanSelect=t(require("react"),require("prop-types")):e.reactCleanSelect=t(e.React,e.PropTypes)}(this,(e,t)=>(()=>{"use strict";var n={513(e){e.exports=t},12(t){t.exports=e}},o={};function r(e){var t=o[e];if(void 0!==t)return t.exports;var s=o[e]={exports:{}};return n[e](s,s.exports,r),s.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};r.r(s),r.d(s,{Select:()=>B,default:()=>F});var a=r(12),l=r.n(a),i=(r(513),"react-clean-select");function p(e,t){return p=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},p(e,t)}const c=function(e){function t(){for(var t,n=arguments.length,o=Array(n),r=0;r<n;r++)o[r]=arguments[r];return(t=e.call.apply(e,[this].concat(o))||this).container=l().createRef(),t.handleClick=function(e){var n=t.container.current,o=e.target,r=t.props.onClickOutside;(n&&n===o||n&&!n.contains(o))&&r(e)},t}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,p(e,t)}(t,e);var n=t.prototype;return n.componentDidMount=function(){document.addEventListener("click",this.handleClick,!0)},n.componentWillUnmount=function(){document.removeEventListener("click",this.handleClick,!0)},n.render=function(){var e=this.props,t=e.children,n=e.props;return l().createElement("div",{className:i+"-container","data-testid":i+"-"+n.name+"-Container",ref:this.container},t)},t}(l().Component),d=function(e){var t=e.props,n=e.state,o=e.methods,r=e.inputRef;return t.inputRenderer?t.inputRenderer({props:t,state:n,methods:o,inputRef:r}):l().createElement("input",{ref:r,className:i+"-input"+(t.searchable?"":" "+i+"-input-readonly"),"data-testid":i+"-"+t.name+"-Input",disabled:t.disabled,onChange:o.setSearch,onClick:function(e){e.stopPropagation(),o.dropDown("open",!0)},onFocus:function(){return o.dropDown("open",!0)},onKeyDown:o.handleKeyDown,placeholder:function(){var e=t.addPlaceholder,o=t.searchable,r=t.placeholder,s=n.values&&0===n.values.length;return n.values&&0<n.values.length&&e&&o?e:s?r:""}(),value:n.search})};var u=function(e,t){var n;return void 0===t&&(t=0),function(){for(var o=arguments.length,r=Array(o),s=0;s<o;s++)r[s]=arguments[s];n&&clearTimeout(n),n=setTimeout(function(){e.apply(void 0,r),n=null},t)}},h=function(e,t){return(e[t.valueField]+"").replaceAll(/[^a-zA-Z0-9]/g,"-")},f=function(e,t,n){if(!t)return e;var o=Array.isArray(t)?t:t.split(".").filter(function(e){return e.length});return o.length?f(e[o.shift()],o,n):void 0===e?n:e},m=function(){return"undefined"==typeof window&&(global.window={}),window};const v=function(e){var t=e.option,n=e.props,o=e.state,r=e.methods;if(t&&n.selectionRenderer)return n.selectionRenderer({option:t,props:n,state:o,methods:r});var s=h(t,n);return l().createElement("span",{role:"listitem",disabled:n.disabled,className:i+"-selection"+("rtl"===n.direction?" "+i+"-selection-rtl":""),"data-testid":i+"-"+n.name+"-Selection-"+s},l().createElement("span",{className:i+"-selection-label","data-testid":i+"-"+n.name+"-Selection-label-"+s},t[n.labelField]),l().createElement("span",{className:i+"-selection-remove","data-testid":i+"-"+n.name+"-Selection-remove-"+s,onClick:function(e){return r.removeOption(e,t,n.closeOnSelect)}},"×"))},S=function(e){var t=e.props,n=e.state,o=e.methods,r=e.inputRef;return l().createElement("div",{className:i+"-content "+(t.multi?i+"-type-multi":i+"-type-single"),"data-testid":i+"-"+t.name+"-Content",onClick:function(e){return e.stopPropagation(),!0===n.dropdown&&t.closeOnClickInput&&!n.search?o.dropDown("close"):o.dropDown("open")}},t.contentRenderer?t.contentRenderer({props:t,state:n,methods:o}):l().createElement(l().Fragment,null,function(){if(n.values&&0<n.values.length){var e=o.selectedOptions();if(t.multi)return e.map(function(e){return l().createElement(v,{key:""+e[t.valueField]+e[t.labelField],option:e,state:n,props:t,methods:o})});var r=e[0];if(r&&r[t.labelField])return l().createElement("span",{"data-testid":i+"-"+t.name+"-Selection"},r[t.labelField])}}(),l().createElement(d,{props:t,methods:o,state:n,inputRef:r})),t.required&&l().createElement("input",{className:i+"-input-zero","data-testid":i+"-"+t.name+"-input-zero",defaultValue:n.values,disabled:t.disabled,name:t.name,required:t.required,tabIndex:-1}))},b=function(e){var t=e.props,n=e.state,o=e.methods;return t.noDataRenderer?t.noDataRenderer({props:t,state:n,methods:o}):l().createElement("div",{className:i+"-option "+i+"-no-data","data-testid":i+"-"+t.name+"-NoData",key:"NoData"},t.noDataLabel)};function g(e,t){return g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},g(e,t)}const w=function(e){function t(){for(var t,n=arguments.length,o=Array(n),r=0;r<n;r++)o[r]=arguments[r];return(t=e.call.apply(e,[this].concat(o))||this).option=l().createRef(),t}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,g(e,t)}(t,e);var n=t.prototype;return n.componentDidMount=function(){var e=this.props,t=e.props,n=e.methods;this.option.current&&this.option.current.scrollIntoView&&!t.multi&&t.keepSelectedInList&&n.isSelected(this.props.option)&&this.option.current.scrollIntoView({block:"nearest",inline:"start"})},n.componentDidUpdate=function(){this.props.state.cursor===this.props.optionIndex&&this.option.current&&this.option.current.scrollIntoView&&this.option.current.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})},n.addOption=function(e){e.preventDefault(),e.stopPropagation();var t=this.props,n=t.methods,o=t.nonSelectable,r=t.option;r.disabled||o||n.addOption(r)},n.render=function(){var e=this.props,t=e.props,n=e.state,o=e.methods,r=e.nonSelectable,s=e.option,a=e.optionIndex;if(t.optionRenderer)return t.optionRenderer(this.props);if(!t.keepSelectedInList&&o.isSelected(s))return null;var p=i+"-"+t.name+"-Option-"+h(s,t);return r&&(p=i+"-"+t.name+"-OptionInstructions"),l().createElement("span",{role:"option",ref:this.option,"aria-selected":o.isSelected(s),"aria-disabled":s.disabled,"aria-label":s[t.labelField],key:""+s[t.valueField]+s[t.labelField],tabIndex:"-1",className:i+"-option"+(o.isSelected(s)?" "+i+"-option-selected":"")+(n.cursor===a?" "+i+"-option-active":"")+(s.disabled?" "+i+"-option-disabled":""),"data-testid":p,"data-non-selectable":r?"true":null,onClick:this.addOption.bind(this),onKeyDown:this.addOption.bind(this)},s[t.labelField],s.disabled&&l().createElement("ins",null,t.disabledLabel))},t}(a.Component);var y=function(e,t){var n=t.getSelectRef().getBoundingClientRect(),o=n.bottom+parseInt(e.dropdownHeight,10)+parseInt(e.dropdownGap,10);return"auto"===e.dropdownPosition?o>m().innerHeight&&o>n.top?"top":"bottom":e.dropdownPosition};const O=function(e){var t=e.props,n=e.state,o=e.methods;return l().createElement("div",{tabIndex:"-1","aria-expanded":"true",role:"list",className:i+"-dropdown "+i+"-dropdown-position-"+y(t,o),"data-testid":i+"-"+t.name+"-Dropdown"},t.dropdownRenderer?t.dropdownRenderer({props:t,state:n,methods:o}):l().createElement(l().Fragment,null,function(){if(t.instructionsOption&&(!n.search||""===n.search)){var e={};return e[t.labelField]=t.instructionsOption,l().createElement(w,{key:"instructionsOption",nonSelectable:!0,option:e,optionIndex:-1,state:n,props:t,methods:o})}}(),0===n.searchResults.length?l().createElement(b,{props:t,state:n,methods:o}):n.searchResults.map(function(e,r){return l().createElement(w,{key:e[t.valueField].toString(),option:e,optionIndex:r,state:n,props:t,methods:o})}),function(){if(t.selectAll&&t.options&&t.multi)return l().createElement("div",{role:"button",className:i+"-dropdown-select-all",onClick:function(e){e.stopPropagation(),o.areAllSelected()?o.clearAll():o.selectAll()}},o.areAllSelected()?t.clearAllLabel:t.selectAllLabel)}()))},D=function(e){var t=e.props;return t.loadingRenderer?t.loadingRenderer({props:t}):l().createElement("div",{className:i+"-loading","data-testid":i+"-"+t.name+"-Loading"})},R=function(e){var t=e.props,n=e.state,o=e.methods;return t.clearRenderer?t.clearRenderer({props:t,state:n,methods:o}):l().createElement("div",{className:i+"-clear","data-testid":i+"-"+t.name+"-Clear",tabIndex:"-1",onClick:function(e){e.stopPropagation(),o.clearAll()},onKeyDown:function(e){e.stopPropagation(),o.clearAll()}},"×")},E=function(e){var t=e.props,n=e.state,o=e.methods;return t.separatorRenderer?t.separatorRenderer({props:t,state:n,methods:o}):l().createElement("div",{className:i+"-separator","data-testid":i+"-"+t.name+"-Separator"})},C=function(e){var t=e.props,n=e.state,o=e.methods,r=function(e){e.preventDefault(),e.stopPropagation(),o.dropDown("toggle")};return l().createElement("div",{className:i+"-dropdown-handle "+i+"-dropdown-handle-"+(n.dropdown?"open":"closed")+(t.dropdownHandleRenderer?"":" "+i+"-dropdown-handle-rotate"),"data-testid":i+"-"+t.name+"-DropdownHandle",onClick:r,onKeyDown:r,tabIndex:"-1"},t.dropdownHandleRenderer?t.dropdownHandleRenderer({props:t,state:n,methods:o}):l().createElement("svg",{fill:"currentColor",viewBox:"0 0 40 40"},l().createElement("path",{d:"M31 26.4q0 .3-.2.5l-1.1 1.2q-.3.2-.6.2t-.5-.2l-8.7-8.8-8.8 8.8q-.2.2-.5.2t-.5-.2l-1.2-1.2q-.2-.2-.2-.5t.2-.5l10.4-10.4q.3-.2.6-.2t.5.2l10.4 10.4q.2.2.2.5z"})))};function k(){return k=Object.assign?Object.assign.bind():function(e){for(var t,n=1;n<arguments.length;n++)for(var o in t=arguments[n])({}).hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},k.apply(null,arguments)}function A(e,t){return A=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},A(e,t)}var B=function(e){function t(t){var n,o=Math.floor;return{}.hasOwnProperty.call(t,"name")||(t.name="field"+o(1e3*Math.random())),(n=e.call(this,t)||this).onDropdownClose=function(){n.setState({cursor:null}),n.props.onDropdownClose()},n.onScroll=function(){n.props.closeOnScroll&&n.dropDown("close"),n.updateSelectBounds()},n.updateSelectBounds=function(){return n.select.current&&n.setState({selectBounds:n.select.current.getBoundingClientRect()})},n.getSelectBounds=function(){return n.state.selectBounds},n.dropDown=function(e,t){if(void 0===e&&(e="toggle"),void 0===t&&(t=!1),!n.props.keepOpen){if(("close"===e||"toggle"===e)&&n.state.dropdown){n.select.current.blur();var o={dropdown:!1,search:n.props.clearOnBlur?"":n.state.search};return n.props.allowFreeTextEntry&&!n.props.multi&&""!==n.state.search&&(o.values=[n.state.search]),n.setState(o),n.setState({searchResults:n.searchResults()})}return!("open"!==e&&"toggle"!==e||n.state.dropdown)&&(n.setState({dropdown:!0}),void(t||n.input.current.focus()))}n.state.dropdown||(n.setState({dropdown:!0}),!t&&n.input.current.focus())},n.getSelectRef=function(){return n.select.current},n.getValue=function(e){return e[n.props.valueField]},n.searchExistsInOptions=function(){return!!n.props.options.find(function(e){return n.state.search===n.getValue(e)})},n.addOption=function(e){var t={},o=n.getValue(e);if(n.props.multi){if(n.state.values&&n.state.values.includes(o))return n.removeOption(null,e,!1);t.values=[].concat(n.state.values,[o]),n.props.onSelect([].concat(n.state.values,[o]))}else t.values=[o],n.props.onSelect([o]);return n.props.clearOnSelect&&(t.search=""),(n.props.closeOnSelect||!n.props.multi)&&(t.cursor=null,t.dropdown=!1),n.setState(t),!0},n.removeOption=function(e,t,o){void 0===o&&(o=!1),e&&(e.preventDefault(),e.stopPropagation());var r=n.getValue(t),s=n.state.values.filter(function(e){return e!==r});n.setState({dropdown:!o,values:s}),n.props.onDeselect(s)},n.setSearch=function(e){n.setSearchState(e.target.value)},n.setSearchState=function(e){n.setState({cursor:null,search:e},function(){return n.setState({searchResults:n.searchResults()})})},n.getInputSize=function(){return n.state.search?n.state.search.length:0<n.state.values.length?n.props.addPlaceholder.length:n.props.placeholder.length},n.toggleSelectAll=function(){return n.setState({values:0===n.state.values.length?n.selectAll():n.clearAll()})},n.clearAll=function(){n.props.onClearAll(),n.setState({values:[]})},n.selectAll=function(){n.props.onSelectAll(),n.setState({values:n.props.options.filter(function(e){return!e.disabled}).map(function(e){return n.getValue(e)})})},n.isSelected=function(e){return n.state.values&&n.state.values.includes(n.getValue(e))},n.areAllSelected=function(){return n.state.values.length===n.props.options.filter(function(e){return!e.disabled}).length},n.selectedOptions=function(){return n.props.options.filter(function(e){return n.isSelected(e)})},n.safeString=function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},n.sortBy=function(){var e=n.props,t=e.sortBy,o=e.options;return t?(o.sort(function(e,n){return f(e,t)<f(n,t)?-1:f(e,t)>f(n,t)?1:0}),o):o},n.searchFn=function(e){var t=e.state,o=e.methods,r=new RegExp(o.safeString(t.search),"i");return o.sortBy().filter(function(e){return r.test(e[n.props.searchBy]||e[n.props.labelField])})},n.searchResults=function(){var e={state:n.state,props:n.props,methods:n.methods},t=n.props.searchFn(e)||n.searchFn(e);return n.props.multi&&!n.props.keepSelectedInList?t.filter(function(e){return!n.methods.isSelected(e)}):t},n.activeCursorOption=function(e){return n.setState({activeCursorOption:e})},n.handleBlur=function(){n.props.onBlur&&n.props.onBlur()},n.handleKeyDown=function(e){var t={event:e,state:n.state,props:n.props,methods:n.methods,setState:n.setState.bind(n)};return n.props.handleKeyDownFn(t)||n.handleKeyDownFn(t)},n.handleKeyDownFn=function(e){var t=e.event,o=e.state,r=e.props,s=e.methods,a=e.setState;if("Escape"===t.key||"Tab"===t.key)return n.dropDown("close");var l=o.cursor,i=o.searchResults,p="ArrowDown"===t.key,c="ArrowUp"===t.key,d="Backspace"===t.key;if("Enter"===t.key)if(null!==l){var u=i[l];if(u&&!u.disabled)return r.multi&&!r.keepSelectedInList&&0<l&&a({cursor:l-1}),t.preventDefault(),s.addOption(u)}else if(n.props.allowFreeTextEntry&&!n.props.multi&&""!==n.state.search)return t.preventDefault(),n.setState({dropdown:!1,search:"",values:[n.state.search]}),n.setState({searchResults:n.searchResults()});return(p||c)&&t.preventDefault(),!p&&!c||o.dropdown?void(!p||null!==l&&i.length-1!==l?p?a({cursor:l+1}):!c||null!==l&&0!==l?c&&0<l?a({cursor:l-1}):d&&r.backspaceDelete&&0===n.getInputSize()&&a({values:n.state.values.slice(0,-1)}):a({cursor:i.length-1}):a({cursor:0})):(n.dropDown("open"),a({cursor:p?0:i.length-1}))},n.renderDropdown=function(){return l().createElement(O,{props:n.props,state:n.state,methods:n.methods})},n.state={dropdown:!1,values:t.values,search:"",selectBounds:{},cursor:null,searchResults:t.options},n.methods={activeCursorOption:n.activeCursorOption,addOption:n.addOption,areAllSelected:n.areAllSelected,clearAll:n.clearAll,dropDown:n.dropDown,getInputSize:n.getInputSize,getSelectBounds:n.getSelectBounds,getSelectRef:n.getSelectRef,getValue:n.getValue,handleBlur:n.handleBlur,handleKeyDown:n.handleKeyDown,isSelected:n.isSelected,removeOption:n.removeOption,safeString:n.safeString,searchExistsInOptions:n.searchExistsInOptions,searchResults:n.searchResults,selectAll:n.selectAll,selectedOptions:n.selectedOptions,setSearch:n.setSearch,sortBy:n.sortBy,toggleSelectAll:n.toggleSelectAll},n.select=l().createRef(),n.input=l().createRef(),n.dropdownRoot="undefined"!=typeof document&&document.createElement("div"),n}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,A(e,t)}(t,e);var n=t.prototype;return n.componentDidMount=function(){m().addEventListener("resize",u(this.updateSelectBounds)),m().addEventListener("scroll",u(this.onScroll)),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen?this.dropDown("open"):this.dropDown("close"),this.setState({searchResults:this.searchResults()})},n.componentDidUpdate=function(e,t){var n=this;!this.props.compareValuesFunc(e.values,this.props.values)&&this.props.compareValuesFunc(e.values,t.values)&&(this.setState({values:this.props.values},function(){n.props.onChange(n.state.values)}),this.updateSelectBounds()),e.options!==this.props.options&&this.setState({searchResults:this.searchResults()}),t.values!==this.state.values&&(this.props.onChange(this.state.values),this.updateSelectBounds()),t.search!==this.state.search&&this.updateSelectBounds(),e.multi!==this.props.multi&&this.updateSelectBounds(),t.dropdown&&t.dropdown!==this.state.dropdown&&this.onDropdownClose(),t.dropdown||t.dropdown===this.state.dropdown||this.props.onDropdownOpen()},n.componentWillUnmount=function(){m().removeEventListener("resize",u(this.updateSelectBounds,this.props.debounceDelay)),m().removeEventListener("scroll",u(this.onScroll,this.props.debounceDelay))},n.render=function(){var e=this,t=[i];return"rtl"===this.props.direction&&t.push(i+"-rtl"),this.props.disabled&&t.push(i+"-disabled"),void 0!==this.props.className&&t.push(this.props.className),l().createElement(c,{props:this.props,onClickOutside:function(){return e.dropDown("close")}},l().createElement("div",k({ref:this.select,"aria-expanded":this.state.dropdown,"aria-label":"Dropdown select",className:t.join(" "),"data-testid":i+"-"+this.props.name,onBlur:this.handleBlur,onClick:function(t){t.stopPropagation(),e.dropDown("open")}},this.props.additionalProps),l().createElement(S,{props:this.props,state:this.state,methods:this.methods,inputRef:this.input}),this.props.loading&&l().createElement(D,{props:this.props}),this.props.clearable&&l().createElement(R,{props:this.props,state:this.state,methods:this.methods}),this.props.separator&&l().createElement(E,{props:this.props,state:this.state,methods:this.methods}),this.props.dropdownHandle&&l().createElement(C,{props:this.props,state:this.state,methods:this.methods}),this.state.dropdown&&!this.props.disabled&&this.renderDropdown()))},t}(a.Component);B.defaultProps={additionalProps:null,addPlaceholder:"",allowFreeTextEntry:!1,backspaceDelete:!0,clearable:!1,clearAllLabel:"Clear all",clearOnBlur:!0,clearOnSelect:!0,closeOnClickInput:!1,closeOnScroll:!1,closeOnSelect:!1,compareValuesFunc:function(e,t){return JSON.stringify(e)===JSON.stringify(t)},debounceDelay:0,defaultMenuIsOpen:!1,direction:"ltr",disabled:!1,disabledLabel:"disabled",dropdownGap:5,dropdownHandle:!0,dropdownHeight:"300px",dropdownPosition:"bottom",handleKeyDownFn:function(){},keepOpen:!1,keepSelectedInList:!0,labelField:"label",loading:!1,multi:!1,name:null,noDataLabel:"No data",onBlur:null,onChange:function(){},onClearAll:function(){},onDeselect:function(){},onDropdownClose:function(){},onDropdownOpen:function(){},onSelect:function(){},onSelectAll:function(){},options:[],placeholder:"Select...",required:!1,searchable:!0,searchBy:"label",searchFn:function(){},selectAll:!1,selectAllLabel:"Select all",separator:!1,sortBy:null,valueField:"value",values:[]};const F=B;return s})());
@@ -1 +1 @@
1
- "use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_propTypes=_interopRequireDefault(require("prop-types")),_constants=require("../constants"),_Input=_interopRequireDefault(require("./Input")),_Selection=_interopRequireDefault(require("./Selection")),_SelectMethodsModel=_interopRequireDefault(require("../models/SelectMethodsModel")),_SelectPropsModel=_interopRequireDefault(require("../models/SelectPropsModel")),_SelectStateModel=_interopRequireDefault(require("../models/SelectStateModel"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var Content=function(a){var b=a.props,c=a.state,d=a.methods,e=function(){if(c.values&&0<c.values.length){var a=d.selectedOptions();if(b.multi)return a.map(function(a){return/*#__PURE__*/_react.default.createElement(_Selection.default,{key:""+a[b.valueField]+a[b.labelField],option:a,state:c,props:b,methods:d})});var e=a[0];if(e&&e[b.labelField])return/*#__PURE__*/_react.default.createElement("span",{"data-testid":_constants.LIB_NAME+"-"+b.name+"-Selection"},e[b.labelField])}};return/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-content "+(b.multi?_constants.LIB_NAME+"-type-multi":_constants.LIB_NAME+"-type-single"),"data-testid":_constants.LIB_NAME+"-"+b.name+"-Content",onClick:function(a){return a.stopPropagation(),!0===c.dropdown&&b.closeOnClickInput&&!c.search?d.dropDown("close"):d.dropDown("open")}},function(){return b.contentRenderer?b.contentRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement(_react.default.Fragment,null,e(),/*#__PURE__*/_react.default.createElement(_Input.default,{props:b,methods:d,state:c}))}(),b.required&&/*#__PURE__*/_react.default.createElement("input",{className:_constants.LIB_NAME+"-input-zero","data-testid":_constants.LIB_NAME+"-"+b.name+"-input-zero",defaultValue:c.values,disabled:b.disabled,name:b.name,required:b.required,tabIndex:-1}))},_default=exports.default=Content;
1
+ "use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_propTypes=_interopRequireDefault(require("prop-types")),_constants=require("../constants"),_Input=_interopRequireDefault(require("./Input")),_Selection=_interopRequireDefault(require("./Selection")),_SelectMethodsModel=_interopRequireDefault(require("../models/SelectMethodsModel")),_SelectPropsModel=_interopRequireDefault(require("../models/SelectPropsModel")),_SelectStateModel=_interopRequireDefault(require("../models/SelectStateModel"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var Content=function(a){var b=a.props,c=a.state,d=a.methods,e=a.inputRef,f=function(){if(c.values&&0<c.values.length){var a=d.selectedOptions();if(b.multi)return a.map(function(a){return/*#__PURE__*/_react.default.createElement(_Selection.default,{key:""+a[b.valueField]+a[b.labelField],option:a,state:c,props:b,methods:d})});var e=a[0];if(e&&e[b.labelField])return/*#__PURE__*/_react.default.createElement("span",{"data-testid":_constants.LIB_NAME+"-"+b.name+"-Selection"},e[b.labelField])}};return/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-content "+(b.multi?_constants.LIB_NAME+"-type-multi":_constants.LIB_NAME+"-type-single"),"data-testid":_constants.LIB_NAME+"-"+b.name+"-Content",onClick:function(a){return a.stopPropagation(),!0===c.dropdown&&b.closeOnClickInput&&!c.search?d.dropDown("close"):d.dropDown("open")}},function(){return b.contentRenderer?b.contentRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement(_react.default.Fragment,null,f(),/*#__PURE__*/_react.default.createElement(_Input.default,{props:b,methods:d,state:c,inputRef:e}))}(),b.required&&/*#__PURE__*/_react.default.createElement("input",{className:_constants.LIB_NAME+"-input-zero","data-testid":_constants.LIB_NAME+"-"+b.name+"-input-zero",defaultValue:c.values,disabled:b.disabled,name:b.name,required:b.required,tabIndex:-1}))},_default=exports.default=Content;
@@ -1 +1 @@
1
- "use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireWildcard(require("react")),PropTypes=_interopRequireWildcard(require("prop-types")),_constants=require("../constants");function _interopRequireWildcard(a,b){if("function"==typeof WeakMap)var c=new WeakMap,d=new WeakMap;return(_interopRequireWildcard=function(a,b){if(!b&&a&&a.__esModule)return a;var e,g,h={__proto__:null,default:a};if(null===a||"object"!=typeof a&&"function"!=typeof a)return h;if(e=b?d:c){if(e.has(a))return e.get(a);e.set(a,h)}for(var f in a)"default"!=f&&{}.hasOwnProperty.call(a,f)&&((g=(e=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,f))&&(g.get||g.set)?e(h,f,g):h[f]=a[f]);return h})(a,b)}function _inheritsLoose(a,b){a.prototype=Object.create(b.prototype),a.prototype.constructor=a,_setPrototypeOf(a,b)}function _setPrototypeOf(a,b){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,b){return a.__proto__=b,a},_setPrototypeOf(a,b)}/* eslint-disable react/jsx-handler-names */var handlePlaceHolder=function(a,b){var c=a.addPlaceholder,d=a.searchable,e=a.placeholder,f=b.values&&0===b.values.length,g=b.values&&0<b.values.length;return g&&c&&d?c:f?e:g&&!d?"":""},Input=/*#__PURE__*/function(a){function b(){for(var b,c=arguments.length,d=Array(c),e=0;e<c;e++)d[e]=arguments[e];return b=a.call.apply(a,[this].concat(d))||this,b.input=/*#__PURE__*/_react.default.createRef(),b.onBlur=function(a){a.stopPropagation();var c=b.props,d=c.props,e=c.state;return d.onBlur&&d.onBlur(),e.dropdown?b.input.current.focus():b.input.current.blur()},b}_inheritsLoose(b,a);var c=b.prototype;return c.componentDidUpdate=function(a){(this.props.state.dropdown||a.state.dropdown!==this.props.state.dropdown&&this.props.state.dropdown||this.props.props.autoFocus)&&this.input.current.focus(),a.state.dropdown===this.props.state.dropdown||this.props.state.dropdown||this.input.current.blur()},c.render=function(){var a=this.props,b=a.props,c=a.state,d=a.methods;return b.inputRenderer?b.inputRenderer({props:b,state:c,methods:d,inputRef:this.input}):/*#__PURE__*/_react.default.createElement("input",{ref:this.input,className:_constants.LIB_NAME+"-input"+(b.searchable?"":" "+_constants.LIB_NAME+"-input-readonly"),"data-testid":_constants.LIB_NAME+"-"+b.name+"-Input",disabled:b.disabled,onBlur:this.onBlur,onChange:d.setSearch,onClick:function(a){a.stopPropagation(),d.dropDown("open")},onFocus:function(a){return a.stopPropagation()},onKeyDown:d.handleKeyDown,placeholder:handlePlaceHolder(b,c),tabIndex:"-1",value:c.search})},b}(_react.Component),_default=exports.default=Input;
1
+ "use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),PropTypes=_interopRequireWildcard(require("prop-types")),_constants=require("../constants");function _interopRequireWildcard(a,b){if("function"==typeof WeakMap)var c=new WeakMap,d=new WeakMap;return(_interopRequireWildcard=function(a,b){if(!b&&a&&a.__esModule)return a;var e,g,h={__proto__:null,default:a};if(null===a||"object"!=typeof a&&"function"!=typeof a)return h;if(e=b?d:c){if(e.has(a))return e.get(a);e.set(a,h)}for(var f in a)"default"!=f&&{}.hasOwnProperty.call(a,f)&&((g=(e=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,f))&&(g.get||g.set)?e(h,f,g):h[f]=a[f]);return h})(a,b)}function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}/* eslint-disable react/jsx-handler-names */var Input=function(a){var b=a.props,c=a.state,d=a.methods,e=a.inputRef;if(b.inputRenderer)return b.inputRenderer({props:b,state:c,methods:d,inputRef:e});return/*#__PURE__*/_react.default.createElement("input",{ref:e,className:_constants.LIB_NAME+"-input"+(b.searchable?"":" "+_constants.LIB_NAME+"-input-readonly"),"data-testid":_constants.LIB_NAME+"-"+b.name+"-Input",disabled:b.disabled,onChange:d.setSearch,onClick:function(a){a.stopPropagation(),d.dropDown("open",!0)},onFocus:function(){return d.dropDown("open",!0)},onKeyDown:d.handleKeyDown,placeholder:function(){var a=b.addPlaceholder,d=b.searchable,e=b.placeholder,f=c.values&&0===c.values.length,g=c.values&&0<c.values.length;return g&&a&&d?a:f?e:g&&!d?"":""}(),value:c.search})},_default=exports.default=Input;
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";exports.__esModule=!0,exports.default=exports.Select=void 0;var _react=_interopRequireWildcard(require("react")),_ClickOutside=_interopRequireDefault(require("./components/ClickOutside")),_Content=_interopRequireDefault(require("./components/Content")),_Dropdown=_interopRequireDefault(require("./components/Dropdown")),_Loading=_interopRequireDefault(require("./components/Loading")),_Clear=_interopRequireDefault(require("./components/Clear")),_Separator=_interopRequireDefault(require("./components/Separator")),_DropdownHandle=_interopRequireDefault(require("./components/DropdownHandle")),_util=require("./util"),_constants=require("./constants"),_SelectPropsModel=_interopRequireDefault(require("./models/SelectPropsModel"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _interopRequireWildcard(a,b){if("function"==typeof WeakMap)var c=new WeakMap,d=new WeakMap;return(_interopRequireWildcard=function(a,b){if(!b&&a&&a.__esModule)return a;var e,g,h={__proto__:null,default:a};if(null===a||"object"!=typeof a&&"function"!=typeof a)return h;if(e=b?d:c){if(e.has(a))return e.get(a);e.set(a,h)}for(var f in a)"default"!=f&&{}.hasOwnProperty.call(a,f)&&((g=(e=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,f))&&(g.get||g.set)?e(h,f,g):h[f]=a[f]);return h})(a,b)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)({}).hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(null,arguments)}function _inheritsLoose(a,b){a.prototype=Object.create(b.prototype),a.prototype.constructor=a,_setPrototypeOf(a,b)}function _setPrototypeOf(a,b){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,b){return a.__proto__=b,a},_setPrototypeOf(a,b)}var Select=exports.Select=/*#__PURE__*/function(a){function b(b){var d,c=Math.floor;return{}.hasOwnProperty.call(b,"name")||(b.name="field"+c(1e3*Math.random())),d=a.call(this,b)||this,d.onDropdownClose=function(){d.setState({cursor:null}),d.props.onDropdownClose()},d.onScroll=function(){d.props.closeOnScroll&&d.dropDown("close"),d.updateSelectBounds()},d.updateSelectBounds=function(){return d.select.current&&d.setState({selectBounds:d.select.current.getBoundingClientRect()})},d.getSelectBounds=function(){return d.state.selectBounds},d.dropDown=function(a,b){return void 0===a&&(a="toggle"),void 0===b&&(b=!1),d.props.keepOpen?void(!0!==d.state.dropdown&&d.setState({dropdown:!0})):void 0!==d.props.onDropdownCloseRequest&&d.state.dropdown&&!1===b&&"close"===a?d.props.onDropdownCloseRequest({props:d.props,methods:d.methods,state:d.state,close:function(){return d.dropDown("close",!0)}}):"close"===a&&d.state.dropdown?(d.select.current.blur(),d.setState({dropdown:!1,search:d.props.clearOnBlur?"":d.state.search}),d.setState({searchResults:d.searchResults()})):"open"!==a||d.state.dropdown?"toggle"===a&&(d.select.current.focus(),d.setState({dropdown:!d.state.dropdown})):d.setState({dropdown:!0})},d.getSelectRef=function(){return d.select.current},d.getValue=function(a){return a[d.props.valueField]},d.searchExistsInOptions=function(){return!!d.props.options.find(function(a){return d.state.search===d.getValue(a)})},d.addOption=function(a){var b={},c=d.getValue(a);if(d.props.multi){if(d.state.values&&d.state.values.includes(c))return d.removeOption(null,a,!1);b.values=[].concat(d.state.values,[c]),d.props.onSelect([].concat(d.state.values,[c]))}else b.values=[c],d.props.onSelect([c]);return d.props.clearOnSelect&&(b.search=""),(d.props.closeOnSelect||!d.props.multi)&&(b.cursor=null,b.dropdown=!1),d.setState(b),!0},d.removeOption=function(a,b,c){void 0===c&&(c=!1),a&&(a.preventDefault(),a.stopPropagation());var e=d.getValue(b),f=d.state.values.filter(function(a){return a!==e});d.setState({dropdown:!c,values:f}),d.props.onDeselect(f)},d.setSearch=function(a){d.setSearchState(a.target.value)},d.setSearchState=function(a){d.setState({cursor:null,search:a},function(){return d.setState({searchResults:d.searchResults()})})},d.getInputSize=function(){return d.state.search?d.state.search.length:0<d.state.values.length?d.props.addPlaceholder.length:d.props.placeholder.length},d.toggleSelectAll=function(){return d.setState({values:0===d.state.values.length?d.selectAll():d.clearAll()})},d.clearAll=function(){d.props.onClearAll(),d.setState({values:[]})},d.selectAll=function(){d.props.onSelectAll(),d.setState({values:d.props.options.filter(function(a){return!a.disabled}).map(function(a){return d.getValue(a)})})},d.isSelected=function(a){return d.state.values&&d.state.values.includes(d.getValue(a))},d.areAllSelected=function(){return d.state.values.length===d.props.options.filter(function(a){return!a.disabled}).length},d.selectedOptions=function(){return d.props.options.filter(function(a){return d.isSelected(a)})},d.safeString=function(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},d.sortBy=function(){var a=d.props,c=a.sortBy,e=a.options;return c?(e.sort(function(d,a){return(0,_util.getProp)(d,c)<(0,_util.getProp)(a,c)?-1:(0,_util.getProp)(d,c)>(0,_util.getProp)(a,c)?1:0}),e):e},d.searchFn=function(a){var b=a.state,c=a.methods,e=new RegExp(c.safeString(b.search),"i");return c.sortBy().filter(function(a){return e.test(a[d.props.searchBy]||a[d.props.labelField])})},d.searchResults=function(){var a={state:d.state,props:d.props,methods:d.methods},b=d.props.searchFn(a)||d.searchFn(a);return d.props.multi&&!d.props.keepSelectedInList?b.filter(function(a){return!d.methods.isSelected(a)}):b},d.activeCursorOption=function(a){return d.setState({activeCursorOption:a})},d.handleKeyDown=function(a){var b={event:a,state:d.state,props:d.props,methods:d.methods,setState:d.setState.bind(d)};return d.props.handleKeyDownFn(b)||d.handleKeyDownFn(b)},d.handleKeyDownFn=function(a){var b=a.event,c=a.state,e=a.props,f=a.methods,g=a.setState,h=c.cursor,i=c.searchResults,j="Escape"===b.key,k="Enter"===b.key,l="ArrowUp"===b.key,m="ArrowDown"===b.key,n="Backspace"===b.key,o="Tab"===b.key&&!b.shiftKey,p=b.shiftKey&&"Tab"===b.key;if(j)return d.dropDown("close");if(k){var q=i[h];if(q&&!q.disabled)return e.multi&&!e.keepSelectedInList&&0<h&&g({cursor:h-1}),f.addOption(q)}return(l||m||p&&c.dropdown||o&&c.dropdown)&&b.preventDefault(),(m||l)&&!c.dropdown?(d.dropDown("open"),g({cursor:m?0:i.length-1})):void((m||o&&c.dropdown)&&(null===h||i.length-1===h)?g({cursor:0}):m||o&&c.dropdown?g({cursor:h+1}):(l||p&&c.dropdown)&&(null===h||0===h)?g({cursor:i.length-1}):(l||p&&c.dropdown)&&0<h?g({cursor:h-1}):n&&e.backspaceDelete&&0===d.getInputSize()&&g({values:d.state.values.slice(0,-1)}))},d.renderDropdown=function(){return/*#__PURE__*/_react.default.createElement(_Dropdown.default,{props:d.props,state:d.state,methods:d.methods})},d.state={dropdown:!1,values:b.values,search:"",selectBounds:{},cursor:null,searchResults:b.options},d.methods={activeCursorOption:d.activeCursorOption,addOption:d.addOption,areAllSelected:d.areAllSelected,clearAll:d.clearAll,dropDown:d.dropDown,getInputSize:d.getInputSize,getSelectBounds:d.getSelectBounds,getSelectRef:d.getSelectRef,getValue:d.getValue,handleKeyDown:d.handleKeyDown,isSelected:d.isSelected,removeOption:d.removeOption,safeString:d.safeString,searchExistsInOptions:d.searchExistsInOptions,searchResults:d.searchResults,selectAll:d.selectAll,selectedOptions:d.selectedOptions,setSearch:d.setSearch,sortBy:d.sortBy,toggleSelectAll:d.toggleSelectAll},d.select=/*#__PURE__*/_react.default.createRef(),d.dropdownRoot="undefined"!=typeof document&&document.createElement("div"),d}_inheritsLoose(b,a);var c=b.prototype;return c.componentDidMount=function(){(0,_util.isomorphicWindow)().addEventListener("resize",(0,_util.debounce)(this.updateSelectBounds)),(0,_util.isomorphicWindow)().addEventListener("scroll",(0,_util.debounce)(this.onScroll)),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen?this.dropDown("open"):this.dropDown("close"),this.setState({searchResults:this.searchResults()})},c.componentDidUpdate=function(a,b){var c=this;!this.props.compareValuesFunc(a.values,this.props.values)&&this.props.compareValuesFunc(a.values,b.values)&&(this.setState({values:this.props.values},function(){c.props.onChange(c.state.values)}),this.updateSelectBounds()),a.options!==this.props.options&&this.setState({searchResults:this.searchResults()}),b.values!==this.state.values&&(this.props.onChange(this.state.values),this.updateSelectBounds()),b.search!==this.state.search&&this.updateSelectBounds(),a.multi!==this.props.multi&&this.updateSelectBounds(),b.dropdown&&b.dropdown!==this.state.dropdown&&this.onDropdownClose(),b.dropdown||b.dropdown===this.state.dropdown||this.props.onDropdownOpen()},c.componentWillUnmount=function(){(0,_util.isomorphicWindow)().removeEventListener("resize",(0,_util.debounce)(this.updateSelectBounds,this.props.debounceDelay)),(0,_util.isomorphicWindow)().removeEventListener("scroll",(0,_util.debounce)(this.onScroll,this.props.debounceDelay))},c.render=function(){var a=this,b=[_constants.LIB_NAME];return"rtl"===this.props.direction&&b.push(_constants.LIB_NAME+"-rtl"),this.props.disabled&&b.push(_constants.LIB_NAME+"-disabled"),void 0!==this.props.className&&b.push(this.props.className),/*#__PURE__*/_react.default.createElement(_ClickOutside.default,{props:this.props,onClickOutside:function(){return a.dropDown("close")}},/*#__PURE__*/_react.default.createElement("div",_extends({"aria-expanded":this.state.dropdown,"aria-label":"Dropdown select",className:b.join(" "),"data-testid":_constants.LIB_NAME+"-"+this.props.name,onClick:function(b){b.stopPropagation(),a.dropDown("open")},onKeyDown:this.handleKeyDown,ref:this.select,tabIndex:this.props.disabled?"-1":"0"},this.props.additionalProps),/*#__PURE__*/_react.default.createElement(_Content.default,{props:this.props,state:this.state,methods:this.methods}),this.props.loading&&/*#__PURE__*/_react.default.createElement(_Loading.default,{props:this.props}),this.props.clearable&&/*#__PURE__*/_react.default.createElement(_Clear.default,{props:this.props,state:this.state,methods:this.methods}),this.props.separator&&/*#__PURE__*/_react.default.createElement(_Separator.default,{props:this.props,state:this.state,methods:this.methods}),this.props.dropdownHandle&&/*#__PURE__*/_react.default.createElement(_DropdownHandle.default,{props:this.props,state:this.state,methods:this.methods}),this.state.dropdown&&!this.props.disabled&&this.renderDropdown()))},b}(_react.Component);Select.defaultProps={additionalProps:null,addPlaceholder:"",autoFocus:!1,backspaceDelete:!0,clearable:!1,clearAllLabel:"Clear all",clearOnBlur:!0,clearOnSelect:!0,closeOnClickInput:!1,closeOnScroll:!1,closeOnSelect:!1,compareValuesFunc:_util.isEqual,debounceDelay:0,defaultMenuIsOpen:!1,direction:"ltr",disabled:!1,disabledLabel:"disabled",dropdownGap:5,dropdownHandle:!0,dropdownHeight:"300px",dropdownPosition:"bottom",handleKeyDownFn:function(){},keepOpen:!1,keepSelectedInList:!0,labelField:"label",loading:!1,multi:!1,name:null,noDataLabel:"No data",onBlur:null,onChange:function(){},onClearAll:function(){},onDeselect:function(){},onDropdownClose:function(){},onDropdownCloseRequest:void 0,onDropdownOpen:function(){},onSelect:function(){},onSelectAll:function(){},options:[],placeholder:"Select...",required:!1,searchable:!0,searchBy:"label",searchFn:function(){},selectAll:!1,selectAllLabel:"Select all",separator:!1,sortBy:null,valueField:"value",values:[]};var _default=exports.default=Select;
1
+ "use strict";exports.__esModule=!0,exports.default=exports.Select=void 0;var _react=_interopRequireWildcard(require("react")),_ClickOutside=_interopRequireDefault(require("./components/ClickOutside")),_Content=_interopRequireDefault(require("./components/Content")),_Dropdown=_interopRequireDefault(require("./components/Dropdown")),_Loading=_interopRequireDefault(require("./components/Loading")),_Clear=_interopRequireDefault(require("./components/Clear")),_Separator=_interopRequireDefault(require("./components/Separator")),_DropdownHandle=_interopRequireDefault(require("./components/DropdownHandle")),_util=require("./util"),_constants=require("./constants"),_SelectPropsModel=_interopRequireDefault(require("./models/SelectPropsModel"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _interopRequireWildcard(a,b){if("function"==typeof WeakMap)var c=new WeakMap,d=new WeakMap;return(_interopRequireWildcard=function(a,b){if(!b&&a&&a.__esModule)return a;var e,g,h={__proto__:null,default:a};if(null===a||"object"!=typeof a&&"function"!=typeof a)return h;if(e=b?d:c){if(e.has(a))return e.get(a);e.set(a,h)}for(var f in a)"default"!=f&&{}.hasOwnProperty.call(a,f)&&((g=(e=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,f))&&(g.get||g.set)?e(h,f,g):h[f]=a[f]);return h})(a,b)}function _extends(){return _extends=Object.assign?Object.assign.bind():function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)({}).hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(null,arguments)}function _inheritsLoose(a,b){a.prototype=Object.create(b.prototype),a.prototype.constructor=a,_setPrototypeOf(a,b)}function _setPrototypeOf(a,b){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,b){return a.__proto__=b,a},_setPrototypeOf(a,b)}var Select=exports.Select=/*#__PURE__*/function(a){function b(b){var d,c=Math.floor;return{}.hasOwnProperty.call(b,"name")||(b.name="field"+c(1e3*Math.random())),d=a.call(this,b)||this,d.onDropdownClose=function(){d.setState({cursor:null}),d.props.onDropdownClose()},d.onScroll=function(){d.props.closeOnScroll&&d.dropDown("close"),d.updateSelectBounds()},d.updateSelectBounds=function(){return d.select.current&&d.setState({selectBounds:d.select.current.getBoundingClientRect()})},d.getSelectBounds=function(){return d.state.selectBounds},d.dropDown=function(a,b){if(void 0===a&&(a="toggle"),void 0===b&&(b=!1),d.props.keepOpen)return void(d.state.dropdown||(d.setState({dropdown:!0}),!b&&d.input.current.focus()));if(("close"===a||"toggle"===a)&&d.state.dropdown){d.select.current.blur();var c={dropdown:!1,search:d.props.clearOnBlur?"":d.state.search};return d.props.allowFreeTextEntry&&!d.props.multi&&""!==d.state.search&&(c.values=[d.state.search]),d.setState(c),d.setState({searchResults:d.searchResults()})}return!("open"!==a&&"toggle"!==a||d.state.dropdown)&&(d.setState({dropdown:!0}),void(b||d.input.current.focus()))},d.getSelectRef=function(){return d.select.current},d.getValue=function(a){return a[d.props.valueField]},d.searchExistsInOptions=function(){return!!d.props.options.find(function(a){return d.state.search===d.getValue(a)})},d.addOption=function(a){var b={},c=d.getValue(a);if(d.props.multi){if(d.state.values&&d.state.values.includes(c))return d.removeOption(null,a,!1);b.values=[].concat(d.state.values,[c]),d.props.onSelect([].concat(d.state.values,[c]))}else b.values=[c],d.props.onSelect([c]);return d.props.clearOnSelect&&(b.search=""),(d.props.closeOnSelect||!d.props.multi)&&(b.cursor=null,b.dropdown=!1),d.setState(b),!0},d.removeOption=function(a,b,c){void 0===c&&(c=!1),a&&(a.preventDefault(),a.stopPropagation());var e=d.getValue(b),f=d.state.values.filter(function(a){return a!==e});d.setState({dropdown:!c,values:f}),d.props.onDeselect(f)},d.setSearch=function(a){d.setSearchState(a.target.value)},d.setSearchState=function(a){d.setState({cursor:null,search:a},function(){return d.setState({searchResults:d.searchResults()})})},d.getInputSize=function(){return d.state.search?d.state.search.length:0<d.state.values.length?d.props.addPlaceholder.length:d.props.placeholder.length},d.toggleSelectAll=function(){return d.setState({values:0===d.state.values.length?d.selectAll():d.clearAll()})},d.clearAll=function(){d.props.onClearAll(),d.setState({values:[]})},d.selectAll=function(){d.props.onSelectAll(),d.setState({values:d.props.options.filter(function(a){return!a.disabled}).map(function(a){return d.getValue(a)})})},d.isSelected=function(a){return d.state.values&&d.state.values.includes(d.getValue(a))},d.areAllSelected=function(){return d.state.values.length===d.props.options.filter(function(a){return!a.disabled}).length},d.selectedOptions=function(){return d.props.options.filter(function(a){return d.isSelected(a)})},d.safeString=function(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},d.sortBy=function(){var a=d.props,c=a.sortBy,e=a.options;return c?(e.sort(function(d,a){return(0,_util.getProp)(d,c)<(0,_util.getProp)(a,c)?-1:(0,_util.getProp)(d,c)>(0,_util.getProp)(a,c)?1:0}),e):e},d.searchFn=function(a){var b=a.state,c=a.methods,e=new RegExp(c.safeString(b.search),"i");return c.sortBy().filter(function(a){return e.test(a[d.props.searchBy]||a[d.props.labelField])})},d.searchResults=function(){var a={state:d.state,props:d.props,methods:d.methods},b=d.props.searchFn(a)||d.searchFn(a);return d.props.multi&&!d.props.keepSelectedInList?b.filter(function(a){return!d.methods.isSelected(a)}):b},d.activeCursorOption=function(a){return d.setState({activeCursorOption:a})},d.handleBlur=function(){d.props.onBlur&&d.props.onBlur()},d.handleKeyDown=function(a){var b={event:a,state:d.state,props:d.props,methods:d.methods,setState:d.setState.bind(d)};return d.props.handleKeyDownFn(b)||d.handleKeyDownFn(b)},d.handleKeyDownFn=function(a){var b=a.event,c=a.state,e=a.props,f=a.methods,g=a.setState;if("Escape"===b.key||"Tab"===b.key)return d.dropDown("close");var h=c.cursor,i=c.searchResults,j="ArrowDown"===b.key,k="ArrowUp"===b.key,l="Backspace"===b.key,m="Enter"===b.key;if(m)if(null!==h){var n=i[h];if(n&&!n.disabled)return e.multi&&!e.keepSelectedInList&&0<h&&g({cursor:h-1}),b.preventDefault(),f.addOption(n)}else if(d.props.allowFreeTextEntry&&!d.props.multi&&""!==d.state.search)return b.preventDefault(),d.setState({dropdown:!1,search:"",values:[d.state.search]}),d.setState({searchResults:d.searchResults()});return(j||k)&&b.preventDefault(),(j||k)&&!c.dropdown?(d.dropDown("open"),g({cursor:j?0:i.length-1})):void(j&&(null===h||i.length-1===h)?g({cursor:0}):j?g({cursor:h+1}):k&&(null===h||0===h)?g({cursor:i.length-1}):k&&0<h?g({cursor:h-1}):l&&e.backspaceDelete&&0===d.getInputSize()&&g({values:d.state.values.slice(0,-1)}))},d.renderDropdown=function(){return/*#__PURE__*/_react.default.createElement(_Dropdown.default,{props:d.props,state:d.state,methods:d.methods})},d.state={dropdown:!1,values:b.values,search:"",selectBounds:{},cursor:null,searchResults:b.options},d.methods={activeCursorOption:d.activeCursorOption,addOption:d.addOption,areAllSelected:d.areAllSelected,clearAll:d.clearAll,dropDown:d.dropDown,getInputSize:d.getInputSize,getSelectBounds:d.getSelectBounds,getSelectRef:d.getSelectRef,getValue:d.getValue,handleBlur:d.handleBlur,handleKeyDown:d.handleKeyDown,isSelected:d.isSelected,removeOption:d.removeOption,safeString:d.safeString,searchExistsInOptions:d.searchExistsInOptions,searchResults:d.searchResults,selectAll:d.selectAll,selectedOptions:d.selectedOptions,setSearch:d.setSearch,sortBy:d.sortBy,toggleSelectAll:d.toggleSelectAll},d.select=/*#__PURE__*/_react.default.createRef(),d.input=/*#__PURE__*/_react.default.createRef(),d.dropdownRoot="undefined"!=typeof document&&document.createElement("div"),d}_inheritsLoose(b,a);var c=b.prototype;return c.componentDidMount=function(){(0,_util.isomorphicWindow)().addEventListener("resize",(0,_util.debounce)(this.updateSelectBounds)),(0,_util.isomorphicWindow)().addEventListener("scroll",(0,_util.debounce)(this.onScroll)),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen?this.dropDown("open"):this.dropDown("close"),this.setState({searchResults:this.searchResults()})},c.componentDidUpdate=function(a,b){var c=this;!this.props.compareValuesFunc(a.values,this.props.values)&&this.props.compareValuesFunc(a.values,b.values)&&(this.setState({values:this.props.values},function(){c.props.onChange(c.state.values)}),this.updateSelectBounds()),a.options!==this.props.options&&this.setState({searchResults:this.searchResults()}),b.values!==this.state.values&&(this.props.onChange(this.state.values),this.updateSelectBounds()),b.search!==this.state.search&&this.updateSelectBounds(),a.multi!==this.props.multi&&this.updateSelectBounds(),b.dropdown&&b.dropdown!==this.state.dropdown&&this.onDropdownClose(),b.dropdown||b.dropdown===this.state.dropdown||this.props.onDropdownOpen()},c.componentWillUnmount=function(){(0,_util.isomorphicWindow)().removeEventListener("resize",(0,_util.debounce)(this.updateSelectBounds,this.props.debounceDelay)),(0,_util.isomorphicWindow)().removeEventListener("scroll",(0,_util.debounce)(this.onScroll,this.props.debounceDelay))},c.render=function(){var a=this,b=[_constants.LIB_NAME];return"rtl"===this.props.direction&&b.push(_constants.LIB_NAME+"-rtl"),this.props.disabled&&b.push(_constants.LIB_NAME+"-disabled"),void 0!==this.props.className&&b.push(this.props.className),/*#__PURE__*/_react.default.createElement(_ClickOutside.default,{props:this.props,onClickOutside:function(){return a.dropDown("close")}},/*#__PURE__*/_react.default.createElement("div",_extends({ref:this.select,"aria-expanded":this.state.dropdown,"aria-label":"Dropdown select",className:b.join(" "),"data-testid":_constants.LIB_NAME+"-"+this.props.name,onBlur:this.handleBlur,onClick:function(b){b.stopPropagation(),a.dropDown("open")}},this.props.additionalProps),/*#__PURE__*/_react.default.createElement(_Content.default,{props:this.props,state:this.state,methods:this.methods,inputRef:this.input}),this.props.loading&&/*#__PURE__*/_react.default.createElement(_Loading.default,{props:this.props}),this.props.clearable&&/*#__PURE__*/_react.default.createElement(_Clear.default,{props:this.props,state:this.state,methods:this.methods}),this.props.separator&&/*#__PURE__*/_react.default.createElement(_Separator.default,{props:this.props,state:this.state,methods:this.methods}),this.props.dropdownHandle&&/*#__PURE__*/_react.default.createElement(_DropdownHandle.default,{props:this.props,state:this.state,methods:this.methods}),this.state.dropdown&&!this.props.disabled&&this.renderDropdown()))},b}(_react.Component);Select.defaultProps={additionalProps:null,addPlaceholder:"",allowFreeTextEntry:!1,backspaceDelete:!0,clearable:!1,clearAllLabel:"Clear all",clearOnBlur:!0,clearOnSelect:!0,closeOnClickInput:!1,closeOnScroll:!1,closeOnSelect:!1,compareValuesFunc:_util.isEqual,debounceDelay:0,defaultMenuIsOpen:!1,direction:"ltr",disabled:!1,disabledLabel:"disabled",dropdownGap:5,dropdownHandle:!0,dropdownHeight:"300px",dropdownPosition:"bottom",handleKeyDownFn:function(){},keepOpen:!1,keepSelectedInList:!0,labelField:"label",loading:!1,multi:!1,name:null,noDataLabel:"No data",onBlur:null,onChange:function(){},onClearAll:function(){},onDeselect:function(){},onDropdownClose:function(){},onDropdownOpen:function(){},onSelect:function(){},onSelectAll:function(){},options:[],placeholder:"Select...",required:!1,searchable:!0,searchBy:"label",searchFn:function(){},selectAll:!1,selectAllLabel:"Select all",separator:!1,sortBy:null,valueField:"value",values:[]};var _default=exports.default=Select;
@@ -15,6 +15,8 @@
15
15
  */getSelectRef:_propTypes.default.func.isRequired,/**
16
16
  * Get the correct value property from an option
17
17
  */getValue:_propTypes.default.func.isRequired,/**
18
+ * Handle blur event
19
+ */handleBlur:_propTypes.default.func.isRequired,/**
18
20
  * Handle key down event
19
21
  */handleKeyDown:_propTypes.default.func.isRequired,/**
20
22
  * Check if an option is selected
@@ -3,8 +3,8 @@
3
3
  */addPlaceholder:_propTypes.default.string,/**
4
4
  * Additional props to pass to Select
5
5
  */additionalProps:_propTypes.default.object,/**
6
- * If true, and searchable, dropdown will autofocus
7
- */autoFocus:_propTypes.default.bool,/**
6
+ * If true - and multi is false - anything the user types will be accepted, treating options as mere suggestions
7
+ */allowFreeTextEntry:_propTypes.default.bool,/**
8
8
  * If true, backspace key will delete last value
9
9
  */backspaceDelete:_propTypes.default.bool,/**
10
10
  * CSS class attribute to pass to select
@@ -88,9 +88,6 @@
88
88
  */onClearAll:_propTypes.default.func,/**
89
89
  * Fires upon dropdown close
90
90
  */onDropdownClose:_propTypes.default.func,/**
91
- * Fires upon dropdown closing state, stops the closing and provides own method close()
92
- * @return undefined
93
- */onDropdownCloseRequest:_propTypes.default.func,/**
94
91
  * Fires upon dropdown open
95
92
  */onDropdownOpen:_propTypes.default.func,/**
96
93
  * Fires upon selecting all values (via custom renderers)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-clean-select",
3
- "version": "0.0.9",
3
+ "version": "0.0.11-alpha-1",
4
4
  "description": "Customizable single- and multi- select component for react with basic, easily-overrideable CSS",
5
5
  "main": "dist/react-clean-select.js",
6
6
  "module": "lib/index.js",
package/types.d.ts CHANGED
@@ -31,7 +31,7 @@ declare module 'react-clean-select' {
31
31
  addOption: (option: T) => void;
32
32
  areAllSelected: () => boolean;
33
33
  clearAll: () => void;
34
- dropDown: (action: string, event?: MouseEvent<HTMLElement> | null) => void;
34
+ dropDown: (action: string) => void;
35
35
  getInputSize: () => number;
36
36
  getSelectBounds: () => {} | DOMRect;
37
37
  getSelectRef: () => HTMLDivElement;
@@ -80,7 +80,7 @@ declare module 'react-clean-select' {
80
80
  export interface SelectProps<T> {
81
81
  additionalProps?: HTMLAttributes<HTMLDivElement>;
82
82
  addPlaceholder?: string;
83
- autoFocus?: boolean;
83
+ allowFreeTextEntry?: boolean;
84
84
  backspaceDelete?: boolean;
85
85
  className?: string;
86
86
  clearable?: boolean;
@@ -127,12 +127,6 @@ declare module 'react-clean-select' {
127
127
  onClearAll?: () => void;
128
128
  onDeselect?: (value: T[]) => void;
129
129
  onDropdownClose?: () => void;
130
- onDropdownCloseRequest?: ({
131
- props,
132
- state,
133
- methods,
134
- close
135
- }: SelectOnDropdownCloseRequest<T>) => T[];
136
130
  onDropdownOpen?: () => void;
137
131
  onSelect?: (value: T[]) => void;
138
132
  onSelectAll?: () => void;