react-clean-select 0.0.6-alpha-3 → 0.0.6

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.
@@ -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:()=>x});var a=r(12),l=r.n(a),p=(r(513),"react-clean-select");function i(e,t){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},i(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,i(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.children;return l().createElement("div",{className:p+"-container",ref:this.container},e)},t}(l().Component);var d=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)}},u=function(e,t){return t?t.split(".").reduce(function(e,t){return e[t]},e):void 0},h=function(e,t){return(u(e,t.valueField)+"").replaceAll(/[^a-zA-Z0-9]/g,"-")},f=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?f(e[n.shift()],n,o):void 0===e?o:e},m=function(){return"undefined"==typeof window&&(global.window={}),window},v=function(e,t,o){return!!t.find(function(t){return u(t,o.valueField)===e||u(t,o.labelField)===e})};function w(e,t){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},w(e,t)}var b=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 S=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){return e.stopPropagation(),t.props.state.dropdown?t.input.current.focus():t.input.current.blur()},t.handleKeyDown=function(e){var o=t.props,n=o.props,r=o.state,s=o.methods;n.create&&"Enter"===e.key&&!v(r.search,[].concat(r.values,n.options),t.props)&&r.search&&null===r.cursor?s.createNew(r.search):s.handleKeyDown(e)},t}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,w(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,tabIndex:"-1",onFocus:function(e){return e.stopPropagation()},className:p+"-input"+(t.searchable?"":" "+p+"-input-readonly"),"data-testid":p+"-"+t.name+"-Input",value:o.search,onClick:function(){return n.dropDown("open")},onKeyDown:this.handleKeyDown,onChange:n.setSearch,onBlur:this.onBlur,placeholder:b(t,o),disabled:t.disabled})},t}(a.Component),y=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=h(t,o);return l().createElement("span",{role:"listitem",disabled:o.disabled,className:p+"-selection"+("rtl"===o.direction?" "+p+"-selection-rtl":""),"data-testid":p+"-"+o.name+"-Selection-"+s},l().createElement("span",{className:p+"-selection-label","data-testid":p+"-"+o.name+"-Selection-label-"+s},u(t,o.labelField)),l().createElement("span",{className:p+"-selection-remove-"+s,"data-testid":p+"-"+o.name+"-Selection-remove-"+s,onClick:function(e){return r.removeOption(e,t,o.closeOnSelect)}},"×"))},g=function(e){var t=e.props,o=e.state,n=e.methods;return l().createElement("div",{className:p+"-content "+(t.multi?p+"-type-multi":p+"-type-single"),"data-testid":p+"-"+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,t.multi?o.values&&o.values.map(function(e){return l().createElement(y,{key:""+u(e,t.valueField)+u(e,t.labelField),option:e,state:o,props:t,methods:n})}):o.values&&0<o.values.length&&l().createElement("span",null,u(o.values[0],t.labelField)),l().createElement(S,{props:t,methods:n,state:o})))},D=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:p+"-no-data","data-testid":p+"-"+t.name+"-NoData"},t.noDataLabel)};function O(e,t){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},O(e,t)}const R=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,O(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.render=function(){var e=this.props,t=e.props,o=e.state,n=e.methods,r=e.option,s=e.optionIndex;return t.optionRenderer?t.optionRenderer({option:r,optionIndex:s,props:t,state:o,methods:n}):!t.keepSelectedInList&&n.isSelected(r)?null:l().createElement("span",{role:"option",ref:this.option,"aria-selected":n.isSelected(r),"aria-disabled":r.disabled,"aria-label":u(r,t.labelField),key:""+u(r,t.valueField)+u(r,t.labelField),tabIndex:"-1",className:p+"-option"+(n.isSelected(r)?" "+p+"-option-selected":"")+(o.cursor===s?" "+p+"-option-active":"")+(r.disabled?" "+p+"-option-disabled":""),"data-testid":p+"-"+t.name+"-Option-"+h(r,t),onClick:r.disabled?void 0:function(){return n.addOption(r)},onKeyDown:r.disabled?void 0:function(){return n.addOption(r)}},u(r,t.labelField)," ",r.disabled&&l().createElement("ins",null,t.disabledLabel))},t}(a.Component);var C=function(e,t){var o=t.getSelectRef().getBoundingClientRect(),n=o.bottom+parseInt(e.dropdownHeight,10)+parseInt(e.dropdownGap,10);return"auto"===e.dropdownPosition?n>m().innerHeight&&n>o.top?"top":"bottom":e.dropdownPosition};const E=function(e){var t=e.props,o=e.state,n=e.methods;return l().createElement("div",{tabIndex:"-1","aria-expanded":"true",role:"list",className:p+"-dropdown "+p+"-dropdown-position-"+C(t,n),"data-testid":p+"-"+t.name+"-Dropdown"},t.dropdownRenderer?t.dropdownRenderer({props:t,state:o,methods:n}):l().createElement(l().Fragment,null,t.create&&o.search&&!v(o.search,[].concat(o.values,t.options),t)&&l().createElement("div",{role:"button",className:p+"-dropdown-add-new",color:t.color,onClick:function(){return n.createNew(o.search)}},t.createNewLabel.replace("{search}",'"'+o.search+'"')),0===o.searchResults.length?l().createElement(D,{className:p+"-no-data",state:o,props:t,methods:n}):o.searchResults.map(function(e,r){return l().createElement(R,{key:e[t.valueField].toString(),option:e,optionIndex:r,state:o,props:t,methods:n})}),t.selectAll&&t.options&&t.multi&&l().createElement("div",{role:"button",className:p+"-dropdown-select-all",color:t.color,onClick:function(){return n.areAllSelected()?n.clearAll():n.selectAll()}},n.areAllSelected()?t.clearAllLabel:t.selectAllLabel)))},k=function(e){var t=e.props;return t.loadingRenderer?t.loadingRenderer({props:t}):l().createElement("div",{className:p+"-loading","data-testid":p+"-"+t.name+"-Loading"})},A=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:p+"-clear","data-testid":p+"-"+t.name+"-Clear",tabIndex:"-1",onClick:function(){return n.clearAll()},onKeyDown:function(){return n.clearAll()}},"×")},F=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:p+"-separator","data-testid":p+"-"+t.name+"-Separator"})},N=function(e){var t=e.props,o=e.state,n=e.methods;return l().createElement("div",{className:p+"-dropdown-handle "+p+"-dropdown-handle-"+(o.dropdown?"open":"closed")+(t.dropdownHandleRenderer?"":" "+p+"-dropdown-handle-rotate"),"data-testid":p+"-"+t.name+"-DropdownHandle",onClick:function(e){return n.dropDown(o.dropdown?"close":"open",e)},onKeyDown:function(e){return n.dropDown("toggle",e)},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,n){return void 0===e&&(e="toggle"),void 0===n&&(n=!1),void 0!==o.props.onDropdownCloseRequest&&o.state.dropdown&&!1===n&&"close"===e?o.props.onDropdownCloseRequest({props:o.props,methods:o.methods,state:o.state,close:function(){return o.dropDown("close",null,!0)}}):o.props.keepOpen?o.setState({dropdown:!0}):"close"===e&&o.state.dropdown?(o.select.current.blur(),o.setState({dropdown:!1,search:o.props.clearOnBlur?"":o.state.search,searchResults:o.props.options})):"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.addOption=function(e){if(o.props.multi){if(v(u(e,o.props.valueField),o.state.values,o.props))return o.removeOption(null,e,!1);o.setState({values:[].concat(o.state.values,[e])}),o.props.onSelect([].concat(o.state.values,[e]))}else o.setState({values:[e],dropdown:!1}),o.props.onSelect([e]);return o.props.clearOnSelect&&o.setState({search:""},function(){o.setState({searchResults:o.searchResults()})}),!0},o.removeOption=function(e,t,n){void 0===n&&(n=!1),e&&n&&(e.preventDefault(),e.stopPropagation(),o.dropDown("close"));var r=o.state.values.filter(function(e){return u(e,o.props.valueField)!==u(t,o.props.valueField)});o.setState({values:r}),o.props.onDeselect(r)},o.setSearch=function(e){o.setState({cursor:null}),o.setState({search:e.target.value},function(){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(e){void 0===e&&(e=[]),o.props.onSelectAll();var t=0<e.length?e:o.props.options.filter(function(e){return!e.disabled});o.setState({values:t})},o.isSelected=function(e){return!!o.state.values.find(function(t){return u(t,o.props.valueField)===u(e,o.props.valueField)})},o.areAllSelected=function(){return o.state.values.length===o.props.options.filter(function(e){return!e.disabled}).length},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 f(e,t)<f(o,t)?-1:f(e,t)>f(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(u(e,o.props.searchBy)||u(e,o.props.valueField))})},o.searchResults=function(){var e={state:o.state,props:o.props,methods:o.methods};return o.props.searchFn(e)||o.searchFn(e)},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,p=n.searchResults,i="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((d||u||m&&n.dropdown||f&&n.dropdown)&&t.preventDefault(),u&&!n.dropdown)return o.dropDown("open"),a({cursor:0});if((u||f&&n.dropdown)&&null===l)return a({cursor:0});if(i&&o.dropDown("close"),c){var w=p[l];if(w&&!w.disabled){if(r.create&&v(n.search,n.values,r))return null;s.addOption(w)}}return(u||f&&n.dropdown)&&p.length===l?a({cursor:0}):((u||f&&n.dropdown)&&a({cursor:l+1}),(d||m&&n.dropdown)&&0<l&&a({cursor:l-1}),(d||m&&n.dropdown)&&0===l&&a({cursor:p.length}),void(h&&r.backspaceDelete&&0===o.getInputSize()&&o.setState({values:o.state.values.slice(0,-1)})))},o.renderDropdown=function(){return l().createElement(E,{props:o.props,state:o.state,methods:o.methods})},o.createNew=function(e){var t,n=((t={})[o.props.labelField]=e,t[o.props.valueField]=e,t);o.addOption(n),o.props.onCreateNew(n),o.setState({search:""})},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,createNew:o.createNew,dropDown:o.dropDown,getInputSize:o.getInputSize,getSelectBounds:o.getSelectBounds,getSelectRef:o.getSelectRef,handleKeyDown:o.handleKeyDown,isSelected:o.isSelected,removeOption:o.removeOption,safeString:o.safeString,searchResults:o.searchResults,selectAll:o.selectAll,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(){m().addEventListener("resize",d(this.updateSelectBounds)),m().addEventListener("scroll",d(this.onScroll)),this.dropDown("close"),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen&&this.dropDown("open")},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(),t.values!==this.state.values&&this.props.closeOnSelect&&this.dropDown("close"),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(){m().removeEventListener("resize",d(this.updateSelectBounds,this.props.debounceDelay)),m().removeEventListener("scroll",d(this.onScroll,this.props.debounceDelay))},o.render=function(){var e=this,t=[p];return"rtl"===this.props.direction&&t.push(p+"-rtl"),this.props.disabled&&t.push(p+"-disabled"),void 0!==this.props.className&&t.push(this.props.className),l().createElement(c,{onClickOutside:function(t){return e.dropDown("close",t)}},l().createElement("div",B({"aria-expanded":this.state.dropdown,"aria-label":"Dropdown select",className:t.join(" "),"data-testid":p+"-"+this.props.name,onClick:function(t){return e.dropDown("open",t)},onKeyDown:this.handleKeyDown,ref:this.select,tabIndex:this.props.disabled?"-1":"0"},this.props.additionalProps),l().createElement(g,{props:this.props,state:this.state,methods:this.methods}),(this.props.name||this.props.required)&&l().createElement("input",{className:p+"-input-zero","data-testid":p+"-"+this.props.name+"-input-zero",defaultValue:this.state.values.map(function(t){return t[e.props.labelField]}).toString()||[],disabled:this.props.disabled,name:this.props.name,pattern:this.props.pattern,required:this.props.required,tabIndex:-1}),this.props.loading&&l().createElement(k,{props:this.props}),this.props.clearable&&l().createElement(A,{props:this.props,state:this.state,methods:this.methods}),this.props.separator&&l().createElement(F,{props:this.props,state:this.state,methods:this.methods}),this.props.dropdownHandle&&l().createElement(N,{onClick:function(){return e.select.current.focus()},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)},create:!1,createNewLabel:"add {search}",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",onChange:function(){},onClearAll:function(){},onCreateNew:function(){},onDeselect:function(){},onDropdownClose:function(){},onDropdownCloseRequest:void 0,onDropdownOpen:function(){},onSelect:function(){},onSelectAll:function(){},options:[],pattern:void 0,placeholder:"Select...",required:!1,searchable:!0,searchBy:"label",searchFn:function(){},selectAll:!1,selectAllLabel:"Select all",separator:!1,sortBy:null,valueField:"value",values:[]};const x=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 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:()=>x});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.children;return l().createElement("div",{className:i+"-container",ref:this.container},e)},t}(l().Component);var d=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)}},u=function(e,t){return t?t.split(".").reduce(function(e,t){return e[t]},e):void 0},h=function(e,t){return(u(e,t.valueField)+"").replaceAll(/[^a-zA-Z0-9]/g,"-")},f=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?f(e[n.shift()],n,o):void 0===e?o:e},m=function(){return"undefined"==typeof window&&(global.window={}),window},v=function(e,t,o){return!!t.find(function(t){return u(t,o.valueField)===e||u(t,o.labelField)===e})};function w(e,t){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},w(e,t)}var b=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 S=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){return e.stopPropagation(),t.props.state.dropdown?t.input.current.focus():t.input.current.blur()},t.handleKeyDown=function(e){var o=t.props,n=o.props,r=o.state,s=o.methods;n.create&&"Enter"===e.key&&!v(r.search,[].concat(r.values,n.options),t.props)&&r.search&&null===r.cursor?s.createNew(r.search):s.handleKeyDown(e)},t}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,w(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(){return n.dropDown("open")},onFocus:function(e){return e.stopPropagation()},onKeyDown:this.handleKeyDown,placeholder:b(t,o),tabIndex:"-1",value:o.search})},t}(a.Component),y=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=h(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},u(t,o.labelField)),l().createElement("span",{className:i+"-selection-remove-"+s,"data-testid":i+"-"+o.name+"-Selection-remove-"+s,onClick:function(e){return r.removeOption(e,t,o.closeOnSelect)}},"×"))},g=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,t.multi?o.values&&o.values.map(function(e){return l().createElement(y,{key:""+u(e,t.valueField)+u(e,t.labelField),option:e,state:o,props:t,methods:n})}):o.values&&0<o.values.length&&l().createElement("span",null,u(o.values[0],t.labelField)),l().createElement(S,{props:t,methods:n,state:o})))},O=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+"-no-data","data-testid":i+"-"+t.name+"-NoData"},t.noDataLabel)};function D(e,t){return D=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},D(e,t)}const R=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,D(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.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-"+h(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":u(s,t.labelField),key:""+u(s,t.valueField)+u(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:s.disabled||r?void 0:function(){return n.addOption(s)},onKeyDown:s.disabled||r?void 0:function(){return n.addOption(s)}},u(s,t.labelField)," ",s.disabled&&l().createElement("ins",null,t.disabledLabel))},t}(a.Component);var C=function(e,t){var o=t.getSelectRef().getBoundingClientRect(),n=o.bottom+parseInt(e.dropdownHeight,10)+parseInt(e.dropdownGap,10);return"auto"===e.dropdownPosition?n>m().innerHeight&&n>o.top?"top":"bottom":e.dropdownPosition};const E=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-"+C(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.create&&o.search&&!v(o.search,[].concat(o.values,t.options),t))return l().createElement("div",{role:"button",className:i+"-dropdown-add-new",onClick:function(){return n.createNew(o.search)}},t.createNewLabel.replace("{search}",'"'+o.search+'"'))}(),function(){if(t.instructionsOption&&(!o.search||""===o.search)){var e={};return e[t.labelField]=t.instructionsOption,l().createElement(R,{key:"instructionsOption",nonSelectable:!0,option:e,optionIndex:-1,state:o,props:t,methods:n})}}(),0===o.searchResults.length?void l().createElement(O,{className:i+"-no-data",state:o,props:t,methods:n}):o.searchResults.map(function(e,r){return l().createElement(R,{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(){return n.areAllSelected()?n.clearAll():n.selectAll()}},n.areAllSelected()?t.clearAllLabel:t.selectAllLabel)}()))},k=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"})},A=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(){return n.clearAll()},onKeyDown:function(){return n.clearAll()}},"×")},F=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"})},N=function(e){var t=e.props,o=e.state,n=e.methods;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:function(e){return n.dropDown(o.dropdown?"close":"open",e)},onKeyDown:function(e){return n.dropDown("toggle",e)},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,n){return void 0===e&&(e="toggle"),void 0===n&&(n=!1),void 0!==o.props.onDropdownCloseRequest&&o.state.dropdown&&!1===n&&"close"===e?o.props.onDropdownCloseRequest({props:o.props,methods:o.methods,state:o.state,close:function(){return o.dropDown("close",null,!0)}}):o.props.keepOpen?o.setState({dropdown:!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.addOption=function(e){if(o.props.multi){if(v(u(e,o.props.valueField),o.state.values,o.props))return o.removeOption(null,e,!1);o.setState({values:[].concat(o.state.values,[e])}),o.props.onSelect([].concat(o.state.values,[e]))}else o.setState({values:[e],dropdown:!1}),o.props.onSelect([e]);return o.props.clearOnSelect&&o.setSearchState(""),!0},o.removeOption=function(e,t,n){void 0===n&&(n=!1),e&&n&&(e.preventDefault(),e.stopPropagation(),o.dropDown("close"));var r=o.state.values.filter(function(e){return u(e,o.props.valueField)!==u(t,o.props.valueField)});o.setState({values:r}),o.props.onDeselect(r)},o.setSearch=function(e){o.setSearchState(e.target.value)},o.setSearchState=function(e){o.setState({cursor:null}),o.setState({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(e){void 0===e&&(e=[]),o.props.onSelectAll();var t=0<e.length?e:o.props.options.filter(function(e){return!e.disabled});o.setState({values:t})},o.isSelected=function(e){return!!o.state.values.find(function(t){return u(t,o.props.valueField)===u(e,o.props.valueField)})},o.areAllSelected=function(){return o.state.values.length===o.props.options.filter(function(e){return!e.disabled}).length},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 f(e,t)<f(o,t)?-1:f(e,t)>f(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(u(e,o.props.searchBy)||u(e,o.props.valueField))})},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 w=i[l];if(w&&!w.disabled)return r.create&&v(n.search,n.values,r)?null:(r.multi&&!r.keepSelectedInList&&0<l&&a({cursor:l-1}),s.addOption(w))}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(E,{props:o.props,state:o.state,methods:o.methods})},o.createNew=function(e){var t,n=((t={})[o.props.labelField]=e,t[o.props.valueField]=e,t);o.addOption(n),o.props.onCreateNew(n),o.setState({search:""})},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,createNew:o.createNew,dropDown:o.dropDown,getInputSize:o.getInputSize,getSelectBounds:o.getSelectBounds,getSelectRef:o.getSelectRef,handleKeyDown:o.handleKeyDown,isSelected:o.isSelected,removeOption:o.removeOption,safeString:o.safeString,searchResults:o.searchResults,selectAll:o.selectAll,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(){m().addEventListener("resize",d(this.updateSelectBounds)),m().addEventListener("scroll",d(this.onScroll)),this.dropDown("close"),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen&&this.dropDown("open"),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(),t.values!==this.state.values&&this.props.closeOnSelect&&this.dropDown("close"),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(){m().removeEventListener("resize",d(this.updateSelectBounds,this.props.debounceDelay)),m().removeEventListener("scroll",d(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,{onClickOutside:function(t){return e.dropDown("close",t)}},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){return e.dropDown("open",t)},onKeyDown:this.handleKeyDown,ref:this.select,tabIndex:this.props.disabled?"-1":"0"},this.props.additionalProps),l().createElement(g,{props:this.props,state:this.state,methods:this.methods}),(this.props.name||this.props.required)&&l().createElement("input",{className:i+"-input-zero","data-testid":i+"-"+this.props.name+"-input-zero",defaultValue:this.state.values.map(function(t){return t[e.props.labelField]}).toString()||[],disabled:this.props.disabled,name:this.props.name,pattern:this.props.pattern,required:this.props.required,tabIndex:-1}),this.props.loading&&l().createElement(k,{props:this.props}),this.props.clearable&&l().createElement(A,{props:this.props,state:this.state,methods:this.methods}),this.props.separator&&l().createElement(F,{props:this.props,state:this.state,methods:this.methods}),this.props.dropdownHandle&&l().createElement(N,{onClick:function(){return e.select.current.focus()},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)},create:!1,createNewLabel:"add {search}",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",onChange:function(){},onClearAll:function(){},onCreateNew:function(){},onDeselect:function(){},onDropdownClose:function(){},onDropdownCloseRequest:void 0,onDropdownOpen:function(){},onSelect:function(){},onSelectAll:function(){},options:[],pattern:void 0,placeholder:"Select...",required:!1,searchable:!0,searchBy:"label",searchFn:function(){},selectAll:!1,selectAllLabel:"Select all",separator:!1,sortBy:null,valueField:"value",values:[]};const x=P;return s})());
@@ -1 +1 @@
1
- "use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_NoData=_interopRequireDefault(require("../components/NoData")),_Option=_interopRequireDefault(require("../components/Option")),_constants=require("../constants"),_util=require("../util");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var dropdownPosition=function(a,b){var c=b.getSelectRef().getBoundingClientRect(),d=c.bottom+parseInt(a.dropdownHeight,10)+parseInt(a.dropdownGap,10);return"auto"===a.dropdownPosition?d>(0,_util.isomorphicWindow)().innerHeight&&d>c.top?"top":"bottom":a.dropdownPosition},Dropdown=function(a){var b=a.props,c=a.state,d=a.methods;return/*#__PURE__*/_react.default.createElement("div",{tabIndex:"-1","aria-expanded":"true",role:"list",className:_constants.LIB_NAME+"-dropdown "+_constants.LIB_NAME+"-dropdown-position-"+dropdownPosition(b,d),"data-testid":_constants.LIB_NAME+"-"+b.name+"-Dropdown"},b.dropdownRenderer?b.dropdownRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement(_react.default.Fragment,null,b.create&&c.search&&!(0,_util.valueExistInSelected)(c.search,[].concat(c.values,b.options),b)&&/*#__PURE__*/_react.default.createElement("div",{role:"button",className:_constants.LIB_NAME+"-dropdown-add-new",color:b.color,onClick:function(){return d.createNew(c.search)}},b.createNewLabel.replace("{search}","\""+c.search+"\"")),0===c.searchResults.length?/*#__PURE__*/_react.default.createElement(_NoData.default,{className:_constants.LIB_NAME+"-no-data",state:c,props:b,methods:d}):c.searchResults.map(function(a,e){return/*#__PURE__*/_react.default.createElement(_Option.default,{key:a[b.valueField].toString(),option:a,optionIndex:e,state:c,props:b,methods:d})}),b.selectAll&&b.options&&b.multi&&/*#__PURE__*/_react.default.createElement("div",{role:"button",className:_constants.LIB_NAME+"-dropdown-select-all",color:b.color,onClick:function(){return d.areAllSelected()?d.clearAll():d.selectAll()}},d.areAllSelected()?b.clearAllLabel:b.selectAllLabel)))},_default=exports.default=Dropdown;
1
+ "use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_NoData=_interopRequireDefault(require("../components/NoData")),_Option=_interopRequireDefault(require("../components/Option")),_constants=require("../constants"),_util=require("../util");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var dropdownPosition=function(a,b){var c=b.getSelectRef().getBoundingClientRect(),d=c.bottom+parseInt(a.dropdownHeight,10)+parseInt(a.dropdownGap,10);return"auto"===a.dropdownPosition?d>(0,_util.isomorphicWindow)().innerHeight&&d>c.top?"top":"bottom":a.dropdownPosition},Dropdown=function(a){var b=a.props,c=a.state,d=a.methods,e=function(){if(b.create&&c.search&&!(0,_util.valueExistInSelected)(c.search,[].concat(c.values,b.options),b))return/*#__PURE__*/_react.default.createElement("div",{role:"button",className:_constants.LIB_NAME+"-dropdown-add-new",onClick:function(){return d.createNew(c.search)}},b.createNewLabel.replace("{search}","\""+c.search+"\""))},f=function(){if(b.selectAll&&b.options&&b.multi)return/*#__PURE__*/_react.default.createElement("div",{role:"button",className:_constants.LIB_NAME+"-dropdown-select-all",onClick:function(){return d.areAllSelected()?d.clearAll():d.selectAll()}},d.areAllSelected()?b.clearAllLabel:b.selectAllLabel)},g=function(){if(b.instructionsOption&&(!c.search||""===c.search)){var a={};return a[b.labelField]=b.instructionsOption,/*#__PURE__*/_react.default.createElement(_Option.default,{key:"instructionsOption",nonSelectable:!0,option:a,optionIndex:-1,state:c,props:b,methods:d})}},h=function(){return 0===c.searchResults.length?void _react.default.createElement(_NoData.default,{className:_constants.LIB_NAME+"-no-data",state:c,props:b,methods:d}):c.searchResults.map(function(a,e){return/*#__PURE__*/_react.default.createElement(_Option.default,{key:a[b.valueField].toString(),option:a,optionIndex:e,state:c,props:b,methods:d})})};return/*#__PURE__*/_react.default.createElement("div",{tabIndex:"-1","aria-expanded":"true",role:"list",className:_constants.LIB_NAME+"-dropdown "+_constants.LIB_NAME+"-dropdown-position-"+dropdownPosition(b,d),"data-testid":_constants.LIB_NAME+"-"+b.name+"-Dropdown"},function(){return b.dropdownRenderer?b.dropdownRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement(_react.default.Fragment,null,e(),g(),h(),f())}())},_default=exports.default=Dropdown;
@@ -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"),_util=require("../util");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){return a.stopPropagation(),b.props.state.dropdown?b.input.current.focus():b.input.current.blur()},b.handleKeyDown=function(a){var c=b.props,d=c.props,e=c.state,f=c.methods;d.create&&"Enter"===a.key&&!(0,_util.valueExistInSelected)(e.search,[].concat(e.values,d.options),b.props)&&e.search&&null===e.cursor?f.createNew(e.search):f.handleKeyDown(a)},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,tabIndex:"-1",onFocus:function(a){return a.stopPropagation()},className:_constants.LIB_NAME+"-input"+(b.searchable?"":" "+_constants.LIB_NAME+"-input-readonly"),"data-testid":_constants.LIB_NAME+"-"+b.name+"-Input",value:c.search,onClick:function(){return d.dropDown("open")},onKeyDown:this.handleKeyDown,onChange:d.setSearch,onBlur:this.onBlur,placeholder:handlePlaceHolder(b,c),disabled:b.disabled})},b}(_react.Component),_default=exports.default=Input;
1
+ "use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireWildcard(require("react")),PropTypes=_interopRequireWildcard(require("prop-types")),_constants=require("../constants"),_util=require("../util");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){return a.stopPropagation(),b.props.state.dropdown?b.input.current.focus():b.input.current.blur()},b.handleKeyDown=function(a){var c=b.props,d=c.props,e=c.state,f=c.methods;d.create&&"Enter"===a.key&&!(0,_util.valueExistInSelected)(e.search,[].concat(e.values,d.options),b.props)&&e.search&&null===e.cursor?f.createNew(e.search):f.handleKeyDown(a)},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(){return d.dropDown("open")},onFocus:function(a){return a.stopPropagation()},onKeyDown:this.handleKeyDown,placeholder:handlePlaceHolder(b,c),tabIndex:"-1",value:c.search})},b}(_react.Component),_default=exports.default=Input;
@@ -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"),_util=require("../util");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)}var Option=/*#__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.option=/*#__PURE__*/_react.default.createRef(),b}_inheritsLoose(b,a);var c=b.prototype;return c.componentDidMount=function(){var a=this.props,b=a.props,c=a.methods;this.option.current&&this.option.current.scrollIntoView&&!b.multi&&b.keepSelectedInList&&c.isSelected(this.props.option)&&this.option.current.scrollIntoView({block:"nearest",inline:"start"})},c.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"})},c.render=function(){var a=this.props,b=a.props,c=a.state,d=a.methods,e=a.option,f=a.optionIndex;return b.optionRenderer?b.optionRenderer({option:e,optionIndex:f,props:b,state:c,methods:d}):!b.keepSelectedInList&&d.isSelected(e)?null:/*#__PURE__*/_react.default.createElement("span",{role:"option",ref:this.option,"aria-selected":d.isSelected(e),"aria-disabled":e.disabled,"aria-label":(0,_util.getByPath)(e,b.labelField),key:""+(0,_util.getByPath)(e,b.valueField)+(0,_util.getByPath)(e,b.labelField),tabIndex:"-1",className:_constants.LIB_NAME+"-option"+(d.isSelected(e)?" "+_constants.LIB_NAME+"-option-selected":"")+(c.cursor===f?" "+_constants.LIB_NAME+"-option-active":"")+(e.disabled?" "+_constants.LIB_NAME+"-option-disabled":""),"data-testid":_constants.LIB_NAME+"-"+b.name+"-Option-"+(0,_util.getOptionSlug)(e,b),onClick:e.disabled?void 0:function(){return d.addOption(e)},onKeyDown:e.disabled?void 0:function(){return d.addOption(e)}},(0,_util.getByPath)(e,b.labelField)," ",e.disabled&&/*#__PURE__*/_react.default.createElement("ins",null,b.disabledLabel))},b}(_react.Component),_default=exports.default=Option;
1
+ "use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireWildcard(require("react")),PropTypes=_interopRequireWildcard(require("prop-types")),_constants=require("../constants"),_util=require("../util");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)}var Option=/*#__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.option=/*#__PURE__*/_react.default.createRef(),b}_inheritsLoose(b,a);var c=b.prototype;return c.componentDidMount=function(){var a=this.props,b=a.props,c=a.methods;this.option.current&&this.option.current.scrollIntoView&&!b.multi&&b.keepSelectedInList&&c.isSelected(this.props.option)&&this.option.current.scrollIntoView({block:"nearest",inline:"start"})},c.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"})},c.render=function(){var a=this.props,b=a.props,c=a.state,d=a.methods,e=a.nonSelectable,f=a.option,g=a.optionIndex;if(b.optionRenderer)return b.optionRenderer(this.props);if(!b.keepSelectedInList&&d.isSelected(f))return null;var h=_constants.LIB_NAME+"-"+b.name+"-Option-"+(0,_util.getOptionSlug)(f,b);return e&&(h=_constants.LIB_NAME+"-"+b.name+"-OptionInstructions"),/*#__PURE__*/_react.default.createElement("span",{role:"option",ref:this.option,"aria-selected":d.isSelected(f),"aria-disabled":f.disabled,"aria-label":(0,_util.getByPath)(f,b.labelField),key:""+(0,_util.getByPath)(f,b.valueField)+(0,_util.getByPath)(f,b.labelField),tabIndex:"-1",className:_constants.LIB_NAME+"-option"+(d.isSelected(f)?" "+_constants.LIB_NAME+"-option-selected":"")+(c.cursor===g?" "+_constants.LIB_NAME+"-option-active":"")+(f.disabled?" "+_constants.LIB_NAME+"-option-disabled":""),"data-testid":h,"data-non-selectable":e?"true":null,onClick:f.disabled||e?void 0:function(){return d.addOption(f)},onKeyDown:f.disabled||e?void 0:function(){return d.addOption(f)}},(0,_util.getByPath)(f,b.labelField)," ",f.disabled&&/*#__PURE__*/_react.default.createElement("ins",null,b.disabledLabel))},b}(_react.Component),_default=exports.default=Option;
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,c){return void 0===a&&(a="toggle"),void 0===c&&(c=!1),void 0!==d.props.onDropdownCloseRequest&&d.state.dropdown&&!1===c&&"close"===a?d.props.onDropdownCloseRequest({props:d.props,methods:d.methods,state:d.state,close:function(){return d.dropDown("close",null,!0)}}):d.props.keepOpen?d.setState({dropdown:!0}):"close"===a&&d.state.dropdown?(d.select.current.blur(),d.setState({dropdown:!1,search:d.props.clearOnBlur?"":d.state.search,searchResults:d.props.options})):"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.addOption=function(a){if(d.props.multi){if((0,_util.valueExistInSelected)((0,_util.getByPath)(a,d.props.valueField),d.state.values,d.props))return d.removeOption(null,a,!1);d.setState({values:[].concat(d.state.values,[a])}),d.props.onSelect([].concat(d.state.values,[a]))}else d.setState({values:[a],dropdown:!1}),d.props.onSelect([a]);return d.props.clearOnSelect&&d.setState({search:""},function(){d.setState({searchResults:d.searchResults()})}),!0},d.removeOption=function(a,b,c){void 0===c&&(c=!1),a&&c&&(a.preventDefault(),a.stopPropagation(),d.dropDown("close"));var e=d.state.values.filter(function(a){return(0,_util.getByPath)(a,d.props.valueField)!==(0,_util.getByPath)(b,d.props.valueField)});d.setState({values:e}),d.props.onDeselect(e)},d.setSearch=function(a){d.setState({cursor:null}),d.setState({search:a.target.value},function(){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(a){void 0===a&&(a=[]),d.props.onSelectAll();var b=0<a.length?a:d.props.options.filter(function(a){return!a.disabled});d.setState({values:b})},d.isSelected=function(a){return!!d.state.values.find(function(b){return(0,_util.getByPath)(b,d.props.valueField)===(0,_util.getByPath)(a,d.props.valueField)})},d.areAllSelected=function(){return d.state.values.length===d.props.options.filter(function(a){return!a.disabled}).length},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((0,_util.getByPath)(a,d.props.searchBy)||(0,_util.getByPath)(a,d.props.valueField))})},d.searchResults=function(){var a={state:d.state,props:d.props,methods:d.methods};return d.props.searchFn(a)||d.searchFn(a)},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((l||m||p&&c.dropdown||o&&c.dropdown)&&b.preventDefault(),m&&!c.dropdown)return d.dropDown("open"),g({cursor:0});if((m||o&&c.dropdown)&&null===h)return g({cursor:0});if(j&&d.dropDown("close"),k){var q=i[h];if(q&&!q.disabled){if(e.create&&(0,_util.valueExistInSelected)(c.search,c.values,e))return null;f.addOption(q)}}return(m||o&&c.dropdown)&&i.length===h?g({cursor:0}):void((m||o&&c.dropdown)&&g({cursor:h+1}),(l||p&&c.dropdown)&&0<h&&g({cursor:h-1}),(l||p&&c.dropdown)&&0===h&&g({cursor:i.length}),n&&e.backspaceDelete&&0===d.getInputSize()&&d.setState({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.createNew=function(a){var b,c=(b={},b[d.props.labelField]=a,b[d.props.valueField]=a,b);d.addOption(c),d.props.onCreateNew(c),d.setState({search:""})},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,createNew:d.createNew,dropDown:d.dropDown,getInputSize:d.getInputSize,getSelectBounds:d.getSelectBounds,getSelectRef:d.getSelectRef,handleKeyDown:d.handleKeyDown,isSelected:d.isSelected,removeOption:d.removeOption,safeString:d.safeString,searchResults:d.searchResults,selectAll:d.selectAll,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.dropDown("close"),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen&&this.dropDown("open")},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(),b.values!==this.state.values&&this.props.closeOnSelect&&this.dropDown("close"),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,{onClickOutside:function(b){return a.dropDown("close",b)}},/*#__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){return a.dropDown("open",b)},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.name||this.props.required)&&/*#__PURE__*/_react.default.createElement("input",{className:_constants.LIB_NAME+"-input-zero","data-testid":_constants.LIB_NAME+"-"+this.props.name+"-input-zero",defaultValue:this.state.values.map(function(b){return b[a.props.labelField]}).toString()||[],disabled:this.props.disabled,name:this.props.name,pattern:this.props.pattern,required:this.props.required,tabIndex:-1}),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,{onClick:function(){return a.select.current.focus()},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,create:!1,createNewLabel:"add {search}",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",onChange:function(){},onClearAll:function(){},onCreateNew:function(){},onDeselect:function(){},onDropdownClose:function(){},onDropdownCloseRequest:void 0,onDropdownOpen:function(){},onSelect:function(){},onSelectAll:function(){},options:[],pattern:void 0,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,c){return void 0===a&&(a="toggle"),void 0===c&&(c=!1),void 0!==d.props.onDropdownCloseRequest&&d.state.dropdown&&!1===c&&"close"===a?d.props.onDropdownCloseRequest({props:d.props,methods:d.methods,state:d.state,close:function(){return d.dropDown("close",null,!0)}}):d.props.keepOpen?d.setState({dropdown:!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.addOption=function(a){if(d.props.multi){if((0,_util.valueExistInSelected)((0,_util.getByPath)(a,d.props.valueField),d.state.values,d.props))return d.removeOption(null,a,!1);d.setState({values:[].concat(d.state.values,[a])}),d.props.onSelect([].concat(d.state.values,[a]))}else d.setState({values:[a],dropdown:!1}),d.props.onSelect([a]);return d.props.clearOnSelect&&d.setSearchState(""),!0},d.removeOption=function(a,b,c){void 0===c&&(c=!1),a&&c&&(a.preventDefault(),a.stopPropagation(),d.dropDown("close"));var e=d.state.values.filter(function(a){return(0,_util.getByPath)(a,d.props.valueField)!==(0,_util.getByPath)(b,d.props.valueField)});d.setState({values:e}),d.props.onDeselect(e)},d.setSearch=function(a){d.setSearchState(a.target.value)},d.setSearchState=function(a){d.setState({cursor:null}),d.setState({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(a){void 0===a&&(a=[]),d.props.onSelectAll();var b=0<a.length?a:d.props.options.filter(function(a){return!a.disabled});d.setState({values:b})},d.isSelected=function(a){return!!d.state.values.find(function(b){return(0,_util.getByPath)(b,d.props.valueField)===(0,_util.getByPath)(a,d.props.valueField)})},d.areAllSelected=function(){return d.state.values.length===d.props.options.filter(function(a){return!a.disabled}).length},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((0,_util.getByPath)(a,d.props.searchBy)||(0,_util.getByPath)(a,d.props.valueField))})},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.create&&(0,_util.valueExistInSelected)(c.search,c.values,e)?null:(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.createNew=function(a){var b,c=(b={},b[d.props.labelField]=a,b[d.props.valueField]=a,b);d.addOption(c),d.props.onCreateNew(c),d.setState({search:""})},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,createNew:d.createNew,dropDown:d.dropDown,getInputSize:d.getInputSize,getSelectBounds:d.getSelectBounds,getSelectRef:d.getSelectRef,handleKeyDown:d.handleKeyDown,isSelected:d.isSelected,removeOption:d.removeOption,safeString:d.safeString,searchResults:d.searchResults,selectAll:d.selectAll,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.dropDown("close"),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen&&this.dropDown("open"),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(),b.values!==this.state.values&&this.props.closeOnSelect&&this.dropDown("close"),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,{onClickOutside:function(b){return a.dropDown("close",b)}},/*#__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){return a.dropDown("open",b)},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.name||this.props.required)&&/*#__PURE__*/_react.default.createElement("input",{className:_constants.LIB_NAME+"-input-zero","data-testid":_constants.LIB_NAME+"-"+this.props.name+"-input-zero",defaultValue:this.state.values.map(function(b){return b[a.props.labelField]}).toString()||[],disabled:this.props.disabled,name:this.props.name,pattern:this.props.pattern,required:this.props.required,tabIndex:-1}),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,{onClick:function(){return a.select.current.focus()},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,create:!1,createNewLabel:"add {search}",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",onChange:function(){},onClearAll:function(){},onCreateNew:function(){},onDeselect:function(){},onDropdownClose:function(){},onDropdownCloseRequest:void 0,onDropdownOpen:function(){},onSelect:function(){},onSelectAll:function(){},options:[],pattern:void 0,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;
@@ -25,8 +25,6 @@
25
25
  */closeOnSelect:_propTypes.default.bool,/**
26
26
  * If true, clicking input will close the dropdown if you are not searching.
27
27
  */closeOnClickInput:_propTypes.default.bool,/**
28
- * Base color (any CSS compatible) to use in component, also can be overwritten via CSS
29
- */color:_propTypes.default.string,/**
30
28
  * Compare values override function
31
29
  */compareValuesFunc:_propTypes.default.func,/**
32
30
  * Overrides internal content component (the contents of the select component)
@@ -38,6 +36,8 @@
38
36
  */createNewLabel:_propTypes.default.string,/**
39
37
  * Debounce Delay for updates upon component interactions
40
38
  */debounceDelay:_propTypes.default.number,/**
39
+ * If true, dropdown will be open by default
40
+ */defaultMenuIsOpen:_propTypes.default.bool,/**
41
41
  * Direction of a dropdown "ltr", "rtl" or "auto"
42
42
  */direction:_propTypes.default.string,/**
43
43
  * Disable select and all interactions
@@ -61,6 +61,8 @@
61
61
  */handleKeyDownFn:_propTypes.default.func,/**
62
62
  * Overrides internal input text
63
63
  */inputRenderer:_propTypes.default.func,/**
64
+ * Adds a first, non-selectable option with instructions (hidden after search is entered)
65
+ */instructionsOption:_propTypes.default.string,/**
64
66
  * Overrides internal option in a dropdown
65
67
  */optionRenderer:_propTypes.default.func,/**
66
68
  * If true, dropdown will always stay open (good for debugging)
@@ -126,6 +128,4 @@
126
128
  * Field in data to use for value
127
129
  */valueField:_propTypes.default.string,/**
128
130
  * Selected values
129
- */values:_propTypes.default.array,/**
130
- * If true, dropdown will be open by default
131
- */defaultMenuIsOpen:_propTypes.default.bool}),_default=exports.default=SelectPropsModel;
131
+ */values:_propTypes.default.array}),_default=exports.default=SelectPropsModel;
@@ -1,13 +1,13 @@
1
1
  "use strict";var _propTypes=_interopRequireDefault(require("prop-types"));exports.__esModule=!0,exports.default=void 0;function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var SelectStateModel=Object.freeze({/**
2
+ * Cursor position
3
+ */cursor:_propTypes.default.number,/**
2
4
  * Flag indicating whether the dropdown is open or closed
3
5
  */dropdown:_propTypes.default.bool.isRequired,/**
4
- * Array of selected values
5
- */values:_propTypes.default.arrayOf(_propTypes.default.shape({})),/**
6
6
  * Search string
7
7
  */search:_propTypes.default.string.isRequired,/**
8
+ * Array of search results
9
+ */searchResults:_propTypes.default.arrayOf(_propTypes.default.shape({})),/**
8
10
  * Array of bounds for the select component
9
11
  */selectBounds:_propTypes.default.shape({}),/**
10
- * Cursor position
11
- */cursor:_propTypes.default.number,/**
12
- * Array of search results
13
- */searchResults:_propTypes.default.arrayOf(_propTypes.default.shape({}))}),_default=exports.default=SelectStateModel;
12
+ * Array of selected values
13
+ */values:_propTypes.default.arrayOf(_propTypes.default.shape({}))}),_default=exports.default=SelectStateModel;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-clean-select",
3
- "version": "0.0.6-alpha-3",
3
+ "version": "0.0.6",
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
@@ -10,143 +10,135 @@ declare module 'react-clean-select' {
10
10
  } from 'react';
11
11
 
12
12
  export interface SetStateFnArgs<T> {
13
+ activeCursorOption?: any;
14
+ cursor?: number | null;
13
15
  dropdown?: boolean;
14
- values?: T[];
15
16
  search?: string;
16
17
  selectBounds?: DOMRect | {};
17
- cursor?: number | null;
18
- activeCursorOption?: any;
18
+ values?: T[];
19
19
  }
20
20
 
21
21
  export interface SelectState<T> {
22
+ cursor: number;
22
23
  dropdown: boolean;
23
- values: T[];
24
24
  search: string;
25
25
  selectBounds: object;
26
- cursor: number;
26
+ values: T[];
27
27
  }
28
28
 
29
29
  export interface SelectMethods<T> {
30
- removeOption: (event: MouseEvent<HTMLElement> | null, option: T, close: boolean) => void;
31
- dropDown: (action: string, event?: MouseEvent<HTMLElement> | null) => void;
30
+ activeCursorOption: (activeCursorOption: any) => void;
32
31
  addOption: (option: T) => void;
33
- setSearch: (event: ChangeEvent<HTMLInputElement>) => void;
34
- getInputSize: () => number;
35
- toggleSelectAll: () => void;
32
+ areAllSelected: () => boolean;
36
33
  clearAll: () => void;
37
- selectAll: (options?: T[]) => void;
38
- searchResults: () => T[];
39
- getSelectRef: () => HTMLDivElement;
40
- isSelected: (option: T) => boolean;
34
+ createNew: (searchText: string) => void;
35
+ dropDown: (action: string, event?: MouseEvent<HTMLElement> | null) => void;
36
+ getInputSize: () => number;
41
37
  getSelectBounds: () => {} | DOMRect;
42
- areAllSelected: () => boolean;
38
+ getSelectRef: () => HTMLDivElement;
43
39
  handleKeyDown: (event: KeyboardEvent) => void;
44
- activeCursorOption: (activeCursorOption: any) => void;
45
- createNew: (searchText: string) => void;
46
- sortBy: () => T[];
40
+ isSelected: (option: T) => boolean;
41
+ removeOption: (event: MouseEvent<HTMLElement> | null, option: T, close: boolean) => void;
47
42
  safeString: (input: string) => string;
43
+ searchResults: () => T[];
44
+ selectAll: (options?: T[]) => void;
45
+ setSearch: (event: ChangeEvent<HTMLInputElement>) => void;
46
+ sortBy: () => T[];
47
+ toggleSelectAll: () => void;
48
48
  }
49
49
 
50
50
  export interface SelectRenderer<T> {
51
+ methods: SelectMethods<T>;
51
52
  props: SelectProps<T>;
52
53
  state: SelectState<T>;
53
- methods: SelectMethods<T>;
54
54
  }
55
55
 
56
56
  export interface SelectOnDropdownCloseRequest<T> {
57
+ close: () => void;
58
+ methods: SelectMethods<T>;
57
59
  props: SelectProps<T>;
58
60
  state: SelectState<T>;
59
- methods: SelectMethods<T>;
60
- close: () => void;
61
61
  }
62
62
 
63
63
  export interface SelectKeyDown<T> {
64
64
  event: KeyboardEvent;
65
- props: SelectProps<T>;
66
- state: SelectState<T>;
67
65
  methods: SelectMethods<T>;
66
+ props: SelectProps<T>;
68
67
  setState: (
69
68
  setter: ((args: SetStateFnArgs<T>) => SetStateFnArgs<T>) | SetStateFnArgs<T>
70
69
  ) => void;
70
+ state: SelectState<T>;
71
71
  }
72
72
 
73
73
  export interface SelectOptionRenderer<T> {
74
+ methods: SelectMethods<T>;
74
75
  option: T;
75
76
  optionIndex?: number;
76
77
  props: SelectProps<T>;
77
78
  state: SelectState<T>;
78
- methods: SelectMethods<T>;
79
79
  }
80
80
 
81
81
  export interface SelectProps<T> {
82
+ additionalProps?: HTMLAttributes<HTMLDivElement>;
83
+ addPlaceholder?: string;
84
+ autoFocus?: boolean;
82
85
  backspaceDelete?: boolean;
83
86
  className?: string;
84
- addPlaceholder?: string;
85
- placeholder?: string;
86
- loading?: boolean;
87
- values: T[];
88
- options: T[];
89
- multi?: boolean;
90
- disabled?: boolean;
91
- searchBy?: string;
92
- sortBy?: string;
93
87
  clearable?: boolean;
94
- searchable?: boolean;
95
- dropdownHandle?: boolean;
96
- separator?: boolean;
97
- keepOpen?: boolean;
98
- noDataLabel?: string;
99
- createNewLabel?: string;
100
- disabledLabel?: string;
101
- dropdownGap?: number;
102
- closeOnScroll?: boolean;
103
- debounceDelay?: number;
104
- labelField?: string;
105
- valueField?: string;
106
- color?: string;
107
- keepSelectedInList?: boolean;
108
- closeOnSelect?: boolean;
109
- closeOnClickInput?: boolean;
88
+ clearAllLabel?: string;
110
89
  clearOnBlur?: boolean;
111
90
  clearOnSelect?: boolean;
112
- dropdownPosition?: 'top' | 'bottom' | 'auto';
113
- dropdownHeight?: string;
114
- autoFocus?: boolean;
91
+ clearRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
92
+ closeOnClickInput?: boolean;
93
+ closeOnScroll?: boolean;
94
+ closeOnSelect?: boolean;
95
+ contentRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
115
96
  create?: boolean;
97
+ createNewLabel?: string;
98
+ debounceDelay?: number;
99
+ defaultMenuIsOpen?: boolean;
116
100
  direction?: 'ltr' | 'rtl';
101
+ disabled?: boolean;
102
+ disabledLabel?: string;
103
+ dropdownGap?: number;
104
+ dropdownHandle?: boolean;
105
+ dropdownHandleRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
106
+ dropdownHeight?: string;
107
+ dropdownPosition?: 'top' | 'bottom' | 'auto';
108
+ dropdownRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
109
+ handleKeyDownFn?: ({ event, props, state, methods, setState }: SelectKeyDown<T>) => void;
110
+ inputRenderer?: ({
111
+ props,
112
+ state,
113
+ methods,
114
+ inputRef
115
+ }: SelectRenderer<T> & {
116
+ inputRef: RefObject<HTMLInputElement>;
117
+ }) => JSX.Element;
118
+ instructionsOption?: string;
119
+ keepOpen?: boolean;
120
+ keepSelectedInList?: boolean;
121
+ labelField?: string;
122
+ loading?: boolean;
123
+ loadingRenderer?: ({ props }: SelectOptionRenderer<T>) => JSX.Element;
124
+ multi?: boolean;
117
125
  name?: string;
118
- required?: boolean;
119
- pattern?: string;
120
- defaultMenuIsOpen?: boolean;
126
+ noDataLabel?: string;
127
+ noDataRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
121
128
  onChange: (value: T[]) => void;
122
- onSelect?: (value: T[]) => void;
123
- onDeselect?: (value: T[]) => void;
124
- onDropdownOpen?: () => void;
125
- onDropdownClose?: () => void;
126
129
  onClearAll?: () => void;
127
- clearAllLabel?: string;
128
- onSelectAll?: () => void;
129
130
  onCreateNew?: (option: T) => void;
131
+ onDeselect?: (value: T[]) => void;
132
+ onDropdownClose?: () => void;
130
133
  onDropdownCloseRequest?: ({
131
134
  props,
132
135
  state,
133
136
  methods,
134
137
  close
135
138
  }: SelectOnDropdownCloseRequest<T>) => T[];
136
- searchFn?: ({ props, state, methods }: SelectRenderer<T>) => T[];
137
- handleKeyDownFn?: ({ event, props, state, methods, setState }: SelectKeyDown<T>) => void;
138
- clearRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
139
- contentRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
140
- dropdownRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
141
- dropdownHandleRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
142
- inputRenderer?: ({
143
- props,
144
- state,
145
- methods,
146
- inputRef
147
- }: SelectRenderer<T> & {
148
- inputRef: RefObject<HTMLInputElement>;
149
- }) => JSX.Element;
139
+ onDropdownOpen?: () => void;
140
+ onSelect?: (value: T[]) => void;
141
+ onSelectAll?: () => void;
150
142
  optionRenderer?: ({
151
143
  option,
152
144
  optionIndex,
@@ -154,21 +146,29 @@ declare module 'react-clean-select' {
154
146
  state,
155
147
  methods
156
148
  }: SelectOptionRenderer<T>) => JSX.Element;
157
- loadingRenderer?: ({ props }: SelectOptionRenderer<T>) => JSX.Element;
158
- noDataRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
149
+ options: T[];
150
+ pattern?: string;
151
+ placeholder?: string;
152
+ required?: boolean;
153
+ searchable?: boolean;
154
+ searchBy?: string;
155
+ searchFn?: ({ props, state, methods }: SelectRenderer<T>) => T[];
156
+ selectAll?: boolean;
157
+ selectAllLabel?: string;
159
158
  selectionRenderer?: ({ option, props, state, methods }: SelectOptionRenderer<T>) => JSX.Element;
159
+ separator?: boolean;
160
160
  separatorRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
161
- additionalProps?: HTMLAttributes<HTMLDivElement>;
161
+ sortBy?: string;
162
+ valueField?: string;
163
+ values: T[];
162
164
  wrapperClassName?: string;
163
- selectAll?: boolean;
164
- selectAllLabel?: string;
165
165
  }
166
166
 
167
167
  export interface DropDownProps {
168
- selectBounds: DOMRect;
169
168
  dropdownGap: number;
170
169
  dropdownHeight: string;
171
170
  dropdownPosition: 'auto' | 'top' | 'bottom';
171
+ selectBounds: DOMRect;
172
172
  }
173
173
 
174
174
  const Select: <T extends object | string = {}>(