react-clean-select 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/assets/index.css +17 -17
- package/dist/react-clean-select.js +1 -1
- package/lib/components/Clear.js +1 -1
- package/lib/components/Content.js +1 -1
- package/lib/components/Dropdown.js +1 -1
- package/lib/components/DropdownHandle.js +1 -1
- package/lib/components/Input.js +1 -1
- package/lib/components/Loading.js +1 -1
- package/lib/components/NoData.js +1 -1
- package/lib/components/Option.js +1 -1
- package/lib/components/Selection.js +1 -0
- package/lib/components/Separator.js +1 -1
- package/lib/index.js +2 -1
- package/lib/models/SelectMethodsModel.js +11 -11
- package/lib/models/SelectPropsModel.js +6 -6
- package/lib/util.js +1 -1
- package/package.json +47 -31
- package/types.d.ts +16 -16
- package/dist/react-dropdown-select-emotionless.js +0 -1
- package/dist/react-select-clean.js +0 -1
- package/lib/components/Item.js +0 -1
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ I need a combobox component that A) can work on a site where the Content-Securit
|
|
|
29
29
|
|
|
30
30
|
#### Credits
|
|
31
31
|
|
|
32
|
-
This is a fork of the [react-
|
|
32
|
+
This is a fork of the [react-dropdown-select](https://github.com/sanusart/react-dropdown-select) package by Sasha Khamkov.
|
|
33
33
|
|
|
34
34
|
### Usage
|
|
35
35
|
|
|
@@ -122,10 +122,10 @@ const options = [
|
|
|
122
122
|
| labelField | string | "label" | Field in data to use for label |
|
|
123
123
|
| valueField | string | "value" | Field in data to use for value |
|
|
124
124
|
| closeOnScroll | bool | false | If true, scrolling the page will close the dropdown |
|
|
125
|
-
| closeOnSelect | bool | false | If true, selecting option will close the dropdown
|
|
125
|
+
| closeOnSelect | bool | false | If true, selecting option will close the dropdown (only takes effect for multi-select fields) |
|
|
126
126
|
| closeOnClickInput | bool | false | If true, clicking input will close the dropdown if you are not searching. |
|
|
127
127
|
| [dropdownPosition](https://jlw.github.io/react-clean-select/prop/dropdown-position) | string | "bottom" | Available options are "auto", "top" and "bottom" defaults to "bottom". Auto will adjust itself according Select's position on the page |
|
|
128
|
-
| keepSelectedInList | bool | true | If false, selected
|
|
128
|
+
| keepSelectedInList | bool | true | If false, selected option will not appear in a list |
|
|
129
129
|
| create | bool | false | If true, select will create value from search string and fire `onCreateNew` callback prop |
|
|
130
130
|
| backspaceDelete | bool | true | If true, backspace key will delete last value |
|
|
131
131
|
| createNewLabel | string | "add {search}" | If create set to true, this will be the label of the "add new" component. `{search}` will be replaced by search value |
|
|
@@ -146,14 +146,14 @@ const options = [
|
|
|
146
146
|
| onDeselect | func | | On values change (user triggered) callback, returns array of values objects |
|
|
147
147
|
| onDropdownClose | func | | Fires upon dropdown close |
|
|
148
148
|
| onDropdownOpen | func | | Fires upon dropdown open |
|
|
149
|
-
| onCreateNew | func | | Fires upon creation of new
|
|
149
|
+
| onCreateNew | func | | Fires upon creation of new option if `create` prop set to `true` |
|
|
150
150
|
| onClearAll | func | | Fires upon clearing all values (via custom renderers) |
|
|
151
151
|
| onSelectAll | func | | Fires upon selecting all values (via custom renderers) |
|
|
152
152
|
| onDropdownCloseRequest | func | undefined | Fires upon dropdown closing state, stops the closing and provides own method `close()` |
|
|
153
153
|
| [contentRenderer](https://jlw.github.io/react-clean-select/prop/content-renderer) | func | | Overrides internal content component (the contents of the select component) |
|
|
154
|
-
| [
|
|
154
|
+
| [optionRenderer](https://jlw.github.io/react-clean-select/prop/option-renderer) | func | | Overrides internal option in a dropdown |
|
|
155
155
|
| [noDataRenderer](https://jlw.github.io/react-clean-select/prop/no-data-renderer) | func | | Overrides internal "no data" (shown where search has no results) |
|
|
156
|
-
| [
|
|
156
|
+
| [selectionRenderer](https://jlw.github.io/react-clean-select/prop/selection-renderer) | func | | Overrides internal selection (the pillow with an "x") on the select content |
|
|
157
157
|
| [inputRenderer](https://jlw.github.io/react-clean-select/prop/input-renderer) | func | | Overrides internal input text |
|
|
158
158
|
| [loadingRenderer](https://jlw.github.io/react-clean-select/prop/loading-renderer) | func | | Overrides internal loading |
|
|
159
159
|
| [clearRenderer](https://jlw.github.io/react-clean-select/prop/clear-renderer) | func | | Overrides internal clear button |
|
package/assets/index.css
CHANGED
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
}
|
|
112
112
|
.react-clean-select-dropdown-handle-open.react-clean-select-dropdown-handle-rotate {
|
|
113
113
|
transform: rotate(0deg);
|
|
114
|
-
margin:
|
|
114
|
+
margin: 0 0 -3px 5px;
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
.react-clean-select-input {
|
|
@@ -134,35 +134,35 @@
|
|
|
134
134
|
position: absolute;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
.react-clean-select-
|
|
137
|
+
.react-clean-select-option {
|
|
138
138
|
padding: 5px 10px;
|
|
139
139
|
cursor: pointer;
|
|
140
140
|
border-bottom: 1px solid #fff;
|
|
141
141
|
}
|
|
142
|
-
.react-clean-select-
|
|
142
|
+
.react-clean-select-option-active {
|
|
143
143
|
border-bottom: 1px solid #fff;
|
|
144
144
|
}
|
|
145
|
-
.react-clean-select-
|
|
145
|
+
.react-clean-select-option-disabled {
|
|
146
146
|
background: #f2f2f2;
|
|
147
147
|
color: #ccc;
|
|
148
148
|
}
|
|
149
|
-
.react-clean-select-
|
|
149
|
+
.react-clean-select-option-disabled ins {
|
|
150
150
|
text-decoration: none;
|
|
151
151
|
border:1px solid #ccc;
|
|
152
152
|
border-radius: 2px;
|
|
153
|
-
padding:
|
|
153
|
+
padding: 0 3px;
|
|
154
154
|
font-size: x-small;
|
|
155
155
|
text-transform: uppercase;
|
|
156
156
|
}
|
|
157
|
-
.react-clean-select-
|
|
158
|
-
.react-clean-select-
|
|
157
|
+
.react-clean-select-option:hover,
|
|
158
|
+
.react-clean-select-option:focus {
|
|
159
159
|
outline: none;
|
|
160
160
|
}
|
|
161
|
-
.react-clean-select-
|
|
161
|
+
.react-clean-select-option-selected {
|
|
162
162
|
color: #fff;
|
|
163
163
|
border-bottom: 1px solid #fff;
|
|
164
164
|
}
|
|
165
|
-
.react-clean-select-
|
|
165
|
+
.react-clean-select-option-disabled.react-clean-select-option-selected {
|
|
166
166
|
background: #f2f2f2;
|
|
167
167
|
color: #ccc;
|
|
168
168
|
}
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
text-align: center;
|
|
200
200
|
}
|
|
201
201
|
|
|
202
|
-
.react-clean-select-
|
|
202
|
+
.react-clean-select-selection {
|
|
203
203
|
padding: 0 5px;
|
|
204
204
|
border-radius: 2px;
|
|
205
205
|
line-height: 21px;
|
|
@@ -208,23 +208,23 @@
|
|
|
208
208
|
display: flex;
|
|
209
209
|
flex-direction: row;
|
|
210
210
|
}
|
|
211
|
-
.react-clean-select-
|
|
211
|
+
.react-clean-select-selection-rtl {
|
|
212
212
|
flex-direction: row-reverse;
|
|
213
213
|
}
|
|
214
|
-
.react-clean-select-
|
|
214
|
+
.react-clean-select-selection-remove {
|
|
215
215
|
cursor: pointer;
|
|
216
216
|
width: 22px;
|
|
217
217
|
height: 22px;
|
|
218
218
|
display: inline-block;
|
|
219
219
|
text-align: center;
|
|
220
|
-
margin: 0 -5px 0
|
|
220
|
+
margin: 0 -5px 0 0;
|
|
221
221
|
border-radius: 0 3px 3px 0;
|
|
222
222
|
}
|
|
223
|
-
.react-clean-select-
|
|
223
|
+
.react-clean-select-selection-remove:hover {
|
|
224
224
|
color: tomato;
|
|
225
225
|
}
|
|
226
|
-
.react-clean-select-
|
|
227
|
-
.react-clean-select-
|
|
226
|
+
.react-clean-select-selection:hover,
|
|
227
|
+
.react-clean-select-selection:hover > span {
|
|
228
228
|
opacity: 0.9;
|
|
229
229
|
}
|
|
230
230
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom"),require("prop-types")):"function"==typeof define&&define.amd?define("reactCleanSelect",["react","react-dom","prop-types"],t):"object"==typeof exports?exports.reactCleanSelect=t(require("react"),require("react-dom"),require("prop-types")):e.reactCleanSelect=t(e.React,e.ReactDOM,e.PropTypes)}(this,(e,t,r)=>(()=>{"use strict";var o={602:e=>{e.exports=r},359:t=>{t.exports=e},318:e=>{e.exports=t}},n={};function s(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={exports:{}};return o[e](r,r.exports,s),r.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{s.r(a),s.d(a,{Select:()=>k,default:()=>A});var e=s(359),t=s.n(e),r=(s(318),s(602),"react-clean-select");function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}const n=function(e){function n(){for(var r,o=arguments.length,n=Array(o),s=0;s<o;s++)n[s]=arguments[s];return(r=e.call.apply(e,[this].concat(n))||this).container=t().createRef(),r.handleClick=function(e){var t=r.container.current,o=e.target,n=r.props.onClickOutside;(t&&t===o||t&&!t.contains(o))&&n(e)},r}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,o(e,t)}(n,e);var s=n.prototype;return s.componentDidMount=function(){document.addEventListener("click",this.handleClick,!0)},s.componentWillUnmount=function(){document.removeEventListener("click",this.handleClick,!0)},s.render=function(){var e=this.props.children;return t().createElement("div",{className:r+"-container",ref:this.container},e)},n}(t().Component);var l=function(e,t,r){return!!t.find(function(t){return c(t,r.valueField)===e||c(t,r.labelField)===e})},p=function(e,t){var r;return void 0===t&&(t=0),function(){for(var o=arguments.length,n=Array(o),s=0;s<o;s++)n[s]=arguments[s];r&&clearTimeout(r),r=setTimeout(function(){e.apply(void 0,n),r=null},t)}},c=function(e,t){return t?t.split(".").reduce(function(e,t){return e[t]},e):void 0},i=function(e,t,r){if(!t)return e;var o=Array.isArray(t)?t:t.split(".").filter(function(e){return e.length});return o.length?i(e[o.shift()],o,r):void 0===e?r:e},d=function(){return"undefined"==typeof window&&(global.window={}),window};const u=function(e){var o=e.item,n=e.props,s=e.state,a=e.methods;return o&&n.optionRenderer?n.optionRenderer({item:o,props:n,state:s,methods:a}):t().createElement("span",{role:"listitem",disabled:n.disabled,className:r+"-option"+("rtl"===n.direction?" "+r+"-option-rtl":"")},t().createElement("span",{className:r+"-option-label"},c(o,n.labelField)),t().createElement("span",{className:r+"-option-remove",onClick:function(e){return a.removeItem(e,o,n.closeOnSelect)}},"×"))};function h(e,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},h(e,t)}var f=function(e,t){var r=e.addPlaceholder,o=e.searchable,n=e.placeholder,s=t.values&&0===t.values.length;return t.values&&0<t.values.length&&r&&o?r:s?n:""};const m=function(e){function o(){for(var r,o=arguments.length,n=Array(o),s=0;s<o;s++)n[s]=arguments[s];return(r=e.call.apply(e,[this].concat(n))||this).input=t().createRef(),r.onBlur=function(e){return e.stopPropagation(),r.props.state.dropdown?r.input.current.focus():r.input.current.blur()},r.handleKeyPress=function(e){var t=r.props,o=t.props,n=t.state,s=t.methods;return o.create&&"Enter"===e.key&&!l(n.search,[].concat(n.values,o.options),r.props)&&n.search&&null===n.cursor&&s.createNew(n.search)},r}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}(o,e);var n=o.prototype;return n.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()},n.render=function(){var e=this.props,o=e.props,n=e.state,s=e.methods;return o.inputRenderer?o.inputRenderer({props:o,state:n,methods:s,inputRef:this.input}):t().createElement("input",{ref:this.input,tabIndex:"-1",onFocus:function(e){return e.stopPropagation()},className:r+"-input"+(o.searchable?"":" "+r+"-input-readonly"),value:n.search,onClick:function(){return s.dropDown("open")},onKeyPress:this.handleKeyPress,onChange:s.setSearch,onBlur:this.onBlur,placeholder:f(o,n),disabled:o.disabled})},o}(e.Component),v=function(e){var o=e.props,n=e.state,s=e.methods;return t().createElement("div",{className:r+"-content "+(o.multi?r+"-type-multi":r+"-type-single"),onClick:function(e){return e.stopPropagation(),!0===n.dropdown&&o.closeOnClickInput&&!n.search?s.dropDown("close"):s.dropDown("open")}},o.contentRenderer?o.contentRenderer({props:o,state:n,methods:s}):t().createElement(t().Fragment,null,o.multi?n.values&&n.values.map(function(e){return t().createElement(u,{key:""+c(e,o.valueField)+c(e,o.labelField),item:e,state:n,props:o,methods:s})}):n.values&&0<n.values.length&&t().createElement("span",null,c(n.values[0],o.labelField)),t().createElement(m,{props:o,methods:s,state:n})))},w=function(e){var o=e.props,n=e.state,s=e.methods;return o.noDataRenderer?o.noDataRenderer({props:o,state:n,methods:s}):t().createElement("div",{className:r+"-no-data"},o.noDataLabel)};function b(e,t){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},b(e,t)}const S=function(e){function o(){for(var r,o=arguments.length,n=Array(o),s=0;s<o;s++)n[s]=arguments[s];return(r=e.call.apply(e,[this].concat(n))||this).item=t().createRef(),r}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,b(e,t)}(o,e);var n=o.prototype;return n.componentDidMount=function(){var e=this.props,t=e.props,r=e.methods;this.item.current&&!t.multi&&t.keepSelectedInList&&r.isSelected(this.props.item)&&this.item.current.scrollIntoView({block:"nearest",inline:"start"})},n.componentDidUpdate=function(){this.props.state.cursor===this.props.itemIndex&&this.item.current&&this.item.current.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})},n.render=function(){var e=this.props,o=e.props,n=e.state,s=e.methods,a=e.item,l=e.itemIndex;return o.itemRenderer?o.itemRenderer({item:a,itemIndex:l,props:o,state:n,methods:s}):!o.keepSelectedInList&&s.isSelected(a)?null:t().createElement("span",{role:"option",ref:this.item,"aria-selected":s.isSelected(a),"aria-disabled":a.disabled,"aria-label":c(a,o.labelField),key:""+c(a,o.valueField)+c(a,o.labelField),tabIndex:"-1",className:r+"-item"+(s.isSelected(a)?" "+r+"-item-selected":"")+(n.cursor===l?" "+r+"-item-active":"")+(a.disabled?" "+r+"-item-disabled":""),onClick:a.disabled?void 0:function(){return s.addItem(a)},onKeyPress:a.disabled?void 0:function(){return s.addItem(a)}},c(a,o.labelField)," ",a.disabled&&t().createElement("ins",null,o.disabledLabel))},o}(e.Component);var y=function(e,t){var r=t.getSelectRef().getBoundingClientRect(),o=r.bottom+parseInt(e.dropdownHeight,10)+parseInt(e.dropdownGap,10);return"auto"===e.dropdownPosition?o>d().innerHeight&&o>r.top?"top":"bottom":e.dropdownPosition};const g=function(e){var o=e.props,n=e.state,s=e.methods;return t().createElement("div",{tabIndex:"-1","aria-expanded":"true",role:"list",className:r+"-dropdown "+r+"-dropdown-position-"+y(o,s)},o.dropdownRenderer?o.dropdownRenderer({props:o,state:n,methods:s}):t().createElement(t().Fragment,null,o.create&&n.search&&!l(n.search,[].concat(n.values,o.options),o)&&t().createElement("div",{role:"button",className:r+"-dropdown-add-new",color:o.color,onClick:function(){return s.createNew(n.search)}},o.createNewLabel.replace("{search}",'"'+n.search+'"')),0===n.searchResults.length?t().createElement(w,{className:r+"-no-data",state:n,props:o,methods:s}):n.searchResults.map(function(e,r){return t().createElement(S,{key:e[o.valueField].toString(),item:e,itemIndex:r,state:n,props:o,methods:s})}),o.selectAll&&o.options&&o.multi&&t().createElement("div",{role:"button",className:r+"-dropdown-select-all",color:o.color,onClick:function(){return s.areAllSelected()?s.clearAll():s.selectAll()}},s.areAllSelected()?o.clearAllLabel:o.selectAllLabel)))},D=function(e){var o=e.props;return o.loadingRenderer?o.loadingRenderer({props:o}):t().createElement("div",{className:r+"-loading"})},R=function(e){var o=e.props,n=e.state,s=e.methods;return o.clearRenderer?o.clearRenderer({props:o,state:n,methods:s}):t().createElement("div",{className:r+"-clear",tabIndex:"-1",onClick:function(){return s.clearAll()},onKeyPress:function(){return s.clearAll()}},"×")},O=function(e){var o=e.props,n=e.state,s=e.methods;return o.separatorRenderer?o.separatorRenderer({props:o,state:n,methods:s}):t().createElement("div",{className:r+"-separator"})},C=function(e){var o=e.props,n=e.state,s=e.methods;return t().createElement("div",{tabIndex:"-1",onClick:function(e){return s.dropDown(n.dropdown?"close":"open",e)},onKeyPress:function(e){return s.dropDown("toggle",e)},onKeyDown:function(e){return s.dropDown("toggle",e)},className:r+"-dropdown-handle "+r+"-dropdown-handle-"+(n.dropdown?"open":"closed")+(o.dropdownHandleRenderer?"":" "+r+"-dropdown-handle-rotate")},o.dropdownHandleRenderer?o.dropdownHandleRenderer({props:o,state:n,methods:s}):t().createElement("svg",{fill:"currentColor",viewBox:"0 0 40 40"},t().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 E(){return E=Object.assign?Object.assign.bind():function(e){for(var t,r=1;r<arguments.length;r++)for(var o in t=arguments[r])({}).hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},E.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 k=function(e){function o(r){var o;return(o=e.call(this,r)||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,r){return void 0===e&&(e="toggle"),void 0===r&&(r=!1),t&&t.target||t&&t.srcElement,void 0!==o.props.onDropdownCloseRequest&&o.state.dropdown&&!1===r&&"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.addItem=function(e){if(o.props.multi){if(l(c(e,o.props.valueField),o.state.values,o.props))return o.removeItem(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.removeItem=function(e,t,r){void 0===r&&(r=!1),e&&r&&(e.preventDefault(),e.stopPropagation(),o.dropDown("close"));var n=o.state.values.filter(function(e){return c(e,o.props.valueField)!==c(t,o.props.valueField)});o.setState({values:n}),o.props.onDeselect(n)},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 c(t,o.props.valueField)===c(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,r=e.options;return t?(r.sort(function(e,r){return i(e,t)<i(r,t)?-1:i(e,t)>i(r,t)?1:0}),r):r},o.searchFn=function(e){var t=e.state,r=e.methods,n=new RegExp(r.safeString(t.search),"i");return r.sortBy().filter(function(e){return n.test(c(e,o.props.searchBy)||c(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.activeCursorItem=function(e){return o.setState({activeCursorItem: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,r=e.state,n=e.props,s=e.methods,a=e.setState,p=r.cursor,c=r.searchResults,i="Escape"===t.key,d="Enter"===t.key,u="ArrowUp"===t.key,h="ArrowDown"===t.key,f="Backspace"===t.key,m="Tab"===t.key&&!t.shiftKey,v=t.shiftKey&&"Tab"===t.key;if(h&&!r.dropdown)return t.preventDefault(),o.dropDown("open"),a({cursor:0});if((h||m&&r.dropdown)&&null===p)return a({cursor:0});if((u||h||v&&r.dropdown||m&&r.dropdown)&&t.preventDefault(),i&&o.dropDown("close"),d){var w=c[p];if(w&&!w.disabled){if(n.create&&l(r.search,r.values,n))return null;s.addItem(w)}}return(h||m&&r.dropdown)&&c.length===p?a({cursor:0}):((h||m&&r.dropdown)&&a(function(e){return{cursor:e.cursor+1}}),(u||v&&r.dropdown)&&0<p&&a(function(e){return{cursor:e.cursor-1}}),(u||v&&r.dropdown)&&0===p&&a({cursor:c.length}),void(f&&n.backspaceDelete&&0===o.getInputSize()&&o.setState({values:o.state.values.slice(0,-1)})))},o.renderDropdown=function(){return t().createElement(g,{props:o.props,state:o.state,methods:o.methods})},o.createNew=function(e){var t,r=((t={})[o.props.labelField]=e,t[o.props.valueField]=e,t);o.addItem(r),o.props.onCreateNew(r),o.setState({search:""})},o.state={dropdown:!1,values:r.values,search:"",selectBounds:{},cursor:null,searchResults:r.options},o.methods={activeCursorItem:o.activeCursorItem,addItem:o.addItem,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,removeItem:o.removeItem,safeString:o.safeString,searchResults:o.searchResults,selectAll:o.selectAll,setSearch:o.setSearch,sortBy:o.sortBy,toggleSelectAll:o.toggleSelectAll},o.select=t().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)}(o,e);var s=o.prototype;return s.componentDidMount=function(){d().addEventListener("resize",p(this.updateSelectBounds)),d().addEventListener("scroll",p(this.onScroll)),this.dropDown("close"),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen&&this.dropDown("open")},s.componentDidUpdate=function(e,t){var r=this;!this.props.compareValuesFunc(e.values,this.props.values)&&this.props.compareValuesFunc(e.values,t.values)&&(this.setState({values:this.props.values},function(){r.props.onChange(r.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()},s.componentWillUnmount=function(){d().removeEventListener("resize",p(this.updateSelectBounds,this.props.debounceDelay)),d().removeEventListener("scroll",p(this.onScroll,this.props.debounceDelay))},s.render=function(){var e=this,o=[r];return"rtl"===this.props.direction&&o.push(r+"-rtl"),this.props.disabled&&o.push(r+"-disabled"),void 0!==this.props.className&&o.push(this.props.className),t().createElement(n,{onClickOutside:function(t){return e.dropDown("close",t)}},t().createElement("div",E({onKeyDown:this.handleKeyDown,"aria-label":"Dropdown select","aria-expanded":this.state.dropdown,onClick:function(t){return e.dropDown("open",t)},tabIndex:this.props.disabled?"-1":"0",ref:this.select,className:o.join(" ")},this.props.additionalProps),t().createElement(v,{props:this.props,state:this.state,methods:this.methods}),(this.props.name||this.props.required)&&t().createElement("input",{tabIndex:-1,className:r+"-input-zero",name:this.props.name,required:this.props.required,pattern:this.props.pattern,defaultValue:this.state.values.map(function(t){return t[e.props.labelField]}).toString()||[],disabled:this.props.disabled}),this.props.loading&&t().createElement(D,{props:this.props}),this.props.clearable&&t().createElement(R,{props:this.props,state:this.state,methods:this.methods}),this.props.separator&&t().createElement(O,{props:this.props,state:this.state,methods:this.methods}),this.props.dropdownHandle&&t().createElement(C,{onClick:function(){return e.select.current.focus()},props:this.props,state:this.state,methods:this.methods}),this.state.dropdown&&!this.props.disabled&&this.renderDropdown()))},o}(e.Component);k.defaultProps={addPlaceholder:"",additionalProps:null,autoFocus:!1,backspaceDelete:!0,clearAllLabel:"Clear all",clearOnBlur:!0,clearOnSelect:!0,clearable:!1,closeOnScroll:!1,closeOnSelect:!1,closeOnClickInput:!1,compareValuesFunc:function(e,t){return JSON.stringify(e)===JSON.stringify(t)},create:!1,createNewLabel:"add {search}",debounceDelay:0,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(){},onSelect:function(){},onDeselect:function(){},onClearAll:function(){},onCreateNew:function(){},onDropdownClose:function(){},onDropdownCloseRequest:void 0,onDropdownOpen:function(){},onSelectAll:function(){},options:[],pattern:void 0,placeholder:"Select...",required:!1,searchBy:"label",searchFn:function(){},searchable:!0,selectAll:!1,selectAllLabel:"Select all",separator:!1,sortBy:null,valueField:"value",values:[],defaultMenuIsOpen:!1};const A=k})(),a})());
|
|
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={602:e=>{e.exports=t},359: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={};return(()=>{r.r(s),r.d(s,{Select:()=>F,default:()=>N});var e=r(359),t=r.n(e),o=(r(602),"react-clean-select");function n(e,t){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},n(e,t)}const a=function(e){function r(){for(var o,n=arguments.length,r=Array(n),s=0;s<n;s++)r[s]=arguments[s];return(o=e.call.apply(e,[this].concat(r))||this).container=t().createRef(),o.handleClick=function(e){var t=o.container.current,n=e.target,r=o.props.onClickOutside;(t&&t===n||t&&!t.contains(n))&&r(e)},o}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,n(e,t)}(r,e);var s=r.prototype;return s.componentDidMount=function(){document.addEventListener("click",this.handleClick,!0)},s.componentWillUnmount=function(){document.removeEventListener("click",this.handleClick,!0)},s.render=function(){var e=this.props.children;return t().createElement("div",{className:o+"-container",ref:this.container},e)},r}(t().Component);var l=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)}},p=function(e,t){return t?t.split(".").reduce(function(e,t){return e[t]},e):void 0},i=function(e,t){return(p(e,t.valueField)+"").replaceAll(/[^a-zA-Z0-9]/g,"-")},c=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?c(e[n.shift()],n,o):void 0===e?o:e},d=function(){return"undefined"==typeof window&&(global.window={}),window},u=function(e,t,o){return!!t.find(function(t){return p(t,o.valueField)===e||p(t,o.labelField)===e})};function h(e,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},h(e,t)}var f=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 m=function(e){function n(){for(var o,n=arguments.length,r=Array(n),s=0;s<n;s++)r[s]=arguments[s];return(o=e.call.apply(e,[this].concat(r))||this).input=t().createRef(),o.onBlur=function(e){return e.stopPropagation(),o.props.state.dropdown?o.input.current.focus():o.input.current.blur()},o.handleKeyPress=function(e){var t=o.props,n=t.props,r=t.state,s=t.methods;return n.create&&"Enter"===e.key&&!u(r.search,[].concat(r.values,n.options),o.props)&&r.search&&null===r.cursor&&s.createNew(r.search)},o}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}(n,e);var r=n.prototype;return r.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()},r.render=function(){var e=this.props,n=e.props,r=e.state,s=e.methods;return n.inputRenderer?n.inputRenderer({props:n,state:r,methods:s,inputRef:this.input}):t().createElement("input",{ref:this.input,tabIndex:"-1",onFocus:function(e){return e.stopPropagation()},className:o+"-input"+(n.searchable?"":" "+o+"-input-readonly"),"data-testid":o+"-"+n.name+"-Input",value:r.search,onClick:function(){return s.dropDown("open")},onKeyDown:this.handleKeyPress,onChange:s.setSearch,onBlur:this.onBlur,placeholder:f(n,r),disabled:n.disabled})},n}(e.Component),v=function(e){var n=e.option,r=e.props,s=e.state,a=e.methods;if(n&&r.selectionRenderer)return r.selectionRenderer({option:n,props:r,state:s,methods:a});var l=i(n,r);return t().createElement("span",{role:"listitem",disabled:r.disabled,className:o+"-selection"+("rtl"===r.direction?" "+o+"-selection-rtl":""),"data-testid":o+"-"+r.name+"-Selection-"+l},t().createElement("span",{className:o+"-selection-label","data-testid":o+"-"+r.name+"-Selection-label-"+l},p(n,r.labelField)),t().createElement("span",{className:o+"-selection-remove-"+l,"data-testid":o+"-"+r.name+"-Selection-remove-"+l,onClick:function(e){return a.removeOption(e,n,r.closeOnSelect)}},"×"))},w=function(e){var n=e.props,r=e.state,s=e.methods;return t().createElement("div",{className:o+"-content "+(n.multi?o+"-type-multi":o+"-type-single"),"data-testid":o+"-"+n.name+"-Content",onClick:function(e){return e.stopPropagation(),!0===r.dropdown&&n.closeOnClickInput&&!r.search?s.dropDown("close"):s.dropDown("open")}},n.contentRenderer?n.contentRenderer({props:n,state:r,methods:s}):t().createElement(t().Fragment,null,n.multi?r.values&&r.values.map(function(e){return t().createElement(v,{key:""+p(e,n.valueField)+p(e,n.labelField),option:e,state:r,props:n,methods:s})}):r.values&&0<r.values.length&&t().createElement("span",null,p(r.values[0],n.labelField)),t().createElement(m,{props:n,methods:s,state:r})))},b=function(e){var n=e.props,r=e.state,s=e.methods;return n.noDataRenderer?n.noDataRenderer({props:n,state:r,methods:s}):t().createElement("div",{className:o+"-no-data","data-testid":o+"-"+n.name+"-NoData"},n.noDataLabel)};function S(e,t){return S=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},S(e,t)}const y=function(e){function n(){for(var o,n=arguments.length,r=Array(n),s=0;s<n;s++)r[s]=arguments[s];return(o=e.call.apply(e,[this].concat(r))||this).option=t().createRef(),o}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,S(e,t)}(n,e);var r=n.prototype;return r.componentDidMount=function(){var e=this.props,t=e.props,o=e.methods;this.option.current&&!t.multi&&t.keepSelectedInList&&o.isSelected(this.props.option)&&this.option.current.scrollIntoView({block:"nearest",inline:"start"})},r.componentDidUpdate=function(){this.props.state.cursor===this.props.optionIndex&&this.option.current&&this.option.current.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})},r.render=function(){var e=this.props,n=e.props,r=e.state,s=e.methods,a=e.option,l=e.optionIndex;return n.optionRenderer?n.optionRenderer({option:a,optionIndex:l,props:n,state:r,methods:s}):!n.keepSelectedInList&&s.isSelected(a)?null:t().createElement("span",{role:"option",ref:this.option,"aria-selected":s.isSelected(a),"aria-disabled":a.disabled,"aria-label":p(a,n.labelField),key:""+p(a,n.valueField)+p(a,n.labelField),tabIndex:"-1",className:o+"-option"+(s.isSelected(a)?" "+o+"-option-selected":"")+(r.cursor===l?" "+o+"-option-active":"")+(a.disabled?" "+o+"-option-disabled":""),"data-testid":o+"-"+n.name+"-Option-"+i(a,n),onClick:a.disabled?void 0:function(){return s.addOption(a)},onKeyDown:a.disabled?void 0:function(){return s.addOption(a)}},p(a,n.labelField)," ",a.disabled&&t().createElement("ins",null,n.disabledLabel))},n}(e.Component);var g=function(e,t){var o=t.getSelectRef().getBoundingClientRect(),n=o.bottom+parseInt(e.dropdownHeight,10)+parseInt(e.dropdownGap,10);return"auto"===e.dropdownPosition?n>d().innerHeight&&n>o.top?"top":"bottom":e.dropdownPosition};const D=function(e){var n=e.props,r=e.state,s=e.methods;return t().createElement("div",{tabIndex:"-1","aria-expanded":"true",role:"list",className:o+"-dropdown "+o+"-dropdown-position-"+g(n,s),"data-testid":o+"-"+n.name+"-Dropdown"},n.dropdownRenderer?n.dropdownRenderer({props:n,state:r,methods:s}):t().createElement(t().Fragment,null,n.create&&r.search&&!u(r.search,[].concat(r.values,n.options),n)&&t().createElement("div",{role:"button",className:o+"-dropdown-add-new",color:n.color,onClick:function(){return s.createNew(r.search)}},n.createNewLabel.replace("{search}",'"'+r.search+'"')),0===r.searchResults.length?t().createElement(b,{className:o+"-no-data",state:r,props:n,methods:s}):r.searchResults.map(function(e,o){return t().createElement(y,{key:e[n.valueField].toString(),option:e,optionIndex:o,state:r,props:n,methods:s})}),n.selectAll&&n.options&&n.multi&&t().createElement("div",{role:"button",className:o+"-dropdown-select-all",color:n.color,onClick:function(){return s.areAllSelected()?s.clearAll():s.selectAll()}},s.areAllSelected()?n.clearAllLabel:n.selectAllLabel)))},O=function(e){var n=e.props;return n.loadingRenderer?n.loadingRenderer({props:n}):t().createElement("div",{className:o+"-loading","data-testid":o+"-"+n.name+"-Loading"})},R=function(e){var n=e.props,r=e.state,s=e.methods;return n.clearRenderer?n.clearRenderer({props:n,state:r,methods:s}):t().createElement("div",{className:o+"-clear","data-testid":o+"-"+n.name+"-Clear",tabIndex:"-1",onClick:function(){return s.clearAll()},onKeyDown:function(){return s.clearAll()}},"×")},C=function(e){var n=e.props,r=e.state,s=e.methods;return n.separatorRenderer?n.separatorRenderer({props:n,state:r,methods:s}):t().createElement("div",{className:o+"-separator","data-testid":o+"-"+n.name+"-Separator"})},E=function(e){var n=e.props,r=e.state,s=e.methods;return t().createElement("div",{className:o+"-dropdown-handle "+o+"-dropdown-handle-"+(r.dropdown?"open":"closed")+(n.dropdownHandleRenderer?"":" "+o+"-dropdown-handle-rotate"),"data-testid":o+"-"+n.name+"-DropdownHandle",onClick:function(e){return s.dropDown(r.dropdown?"close":"open",e)},onKeyDown:function(e){return s.dropDown("toggle",e)},tabIndex:"-1"},n.dropdownHandleRenderer?n.dropdownHandleRenderer({props:n,state:r,methods:s}):t().createElement("svg",{fill:"currentColor",viewBox:"0 0 40 40"},t().createElement("path",{d:"M31 26.4q0 .3-.2.5l-1.1 1.2q-.3.2-.6.2t-.5-.2l-8.7-8.8-8.8 8.8q-.2.2-.5.2t-.5-.2l-1.2-1.2q-.2-.2-.2-.5t.2-.5l10.4-10.4q.3-.2.6-.2t.5.2l10.4 10.4q.2.2.2.5z"})))};function k(){return k=Object.assign?Object.assign.bind():function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o])({}).hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},k.apply(null,arguments)}function A(e,t){return A=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},A(e,t)}var F=function(e){function n(o){var n,r=Math.floor;return{}.hasOwnProperty.call(o,"name")||(o.name="field"+r(1e3*Math.random())),(n=e.call(this,o)||this).onDropdownClose=function(){n.setState({cursor:null}),n.props.onDropdownClose()},n.onScroll=function(){n.props.closeOnScroll&&n.dropDown("close"),n.updateSelectBounds()},n.updateSelectBounds=function(){return n.select.current&&n.setState({selectBounds:n.select.current.getBoundingClientRect()})},n.getSelectBounds=function(){return n.state.selectBounds},n.dropDown=function(e,t,o){return void 0===e&&(e="toggle"),void 0===o&&(o=!1),void 0!==n.props.onDropdownCloseRequest&&n.state.dropdown&&!1===o&&"close"===e?n.props.onDropdownCloseRequest({props:n.props,methods:n.methods,state:n.state,close:function(){return n.dropDown("close",null,!0)}}):n.props.keepOpen?n.setState({dropdown:!0}):"close"===e&&n.state.dropdown?(n.select.current.blur(),n.setState({dropdown:!1,search:n.props.clearOnBlur?"":n.state.search,searchResults:n.props.options})):"open"!==e||n.state.dropdown?"toggle"===e&&(n.select.current.focus(),n.setState({dropdown:!n.state.dropdown})):n.setState({dropdown:!0})},n.getSelectRef=function(){return n.select.current},n.addOption=function(e){if(n.props.multi){if(u(p(e,n.props.valueField),n.state.values,n.props))return n.removeOption(null,e,!1);n.setState({values:[].concat(n.state.values,[e])}),n.props.onSelect([].concat(n.state.values,[e]))}else n.setState({values:[e],dropdown:!1}),n.props.onSelect([e]);return n.props.clearOnSelect&&n.setState({search:""},function(){n.setState({searchResults:n.searchResults()})}),!0},n.removeOption=function(e,t,o){void 0===o&&(o=!1),e&&o&&(e.preventDefault(),e.stopPropagation(),n.dropDown("close"));var r=n.state.values.filter(function(e){return p(e,n.props.valueField)!==p(t,n.props.valueField)});n.setState({values:r}),n.props.onDeselect(r)},n.setSearch=function(e){n.setState({cursor:null}),n.setState({search:e.target.value},function(){n.setState({searchResults:n.searchResults()})})},n.getInputSize=function(){return n.state.search?n.state.search.length:0<n.state.values.length?n.props.addPlaceholder.length:n.props.placeholder.length},n.toggleSelectAll=function(){return n.setState({values:0===n.state.values.length?n.selectAll():n.clearAll()})},n.clearAll=function(){n.props.onClearAll(),n.setState({values:[]})},n.selectAll=function(e){void 0===e&&(e=[]),n.props.onSelectAll();var t=0<e.length?e:n.props.options.filter(function(e){return!e.disabled});n.setState({values:t})},n.isSelected=function(e){return!!n.state.values.find(function(t){return p(t,n.props.valueField)===p(e,n.props.valueField)})},n.areAllSelected=function(){return n.state.values.length===n.props.options.filter(function(e){return!e.disabled}).length},n.safeString=function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},n.sortBy=function(){var e=n.props,t=e.sortBy,o=e.options;return t?(o.sort(function(e,o){return c(e,t)<c(o,t)?-1:c(e,t)>c(o,t)?1:0}),o):o},n.searchFn=function(e){var t=e.state,o=e.methods,r=new RegExp(o.safeString(t.search),"i");return o.sortBy().filter(function(e){return r.test(p(e,n.props.searchBy)||p(e,n.props.valueField))})},n.searchResults=function(){var e={state:n.state,props:n.props,methods:n.methods};return n.props.searchFn(e)||n.searchFn(e)},n.activeCursorOption=function(e){return n.setState({activeCursorOption:e})},n.handleKeyDown=function(e){var t={event:e,state:n.state,props:n.props,methods:n.methods,setState:n.setState.bind(n)};return n.props.handleKeyDownFn(t)||n.handleKeyDownFn(t)},n.handleKeyDownFn=function(e){var t=e.event,o=e.state,r=e.props,s=e.methods,a=e.setState,l=o.cursor,p=o.searchResults,i="Escape"===t.key,c="Enter"===t.key,d="ArrowUp"===t.key,h="ArrowDown"===t.key,f="Backspace"===t.key,m="Tab"===t.key&&!t.shiftKey,v=t.shiftKey&&"Tab"===t.key;if(h&&!o.dropdown)return t.preventDefault(),n.dropDown("open"),a({cursor:0});if((h||m&&o.dropdown)&&null===l)return a({cursor:0});if((d||h||v&&o.dropdown||m&&o.dropdown)&&t.preventDefault(),i&&n.dropDown("close"),c){var w=p[l];if(w&&!w.disabled){if(r.create&&u(o.search,o.values,r))return null;s.addOption(w)}}return(h||m&&o.dropdown)&&p.length===l?a({cursor:0}):((h||m&&o.dropdown)&&a(function(e){return{cursor:e.cursor+1}}),(d||v&&o.dropdown)&&0<l&&a(function(e){return{cursor:e.cursor-1}}),(d||v&&o.dropdown)&&0===l&&a({cursor:p.length}),void(f&&r.backspaceDelete&&0===n.getInputSize()&&n.setState({values:n.state.values.slice(0,-1)})))},n.renderDropdown=function(){return t().createElement(D,{props:n.props,state:n.state,methods:n.methods})},n.createNew=function(e){var t,o=((t={})[n.props.labelField]=e,t[n.props.valueField]=e,t);n.addOption(o),n.props.onCreateNew(o),n.setState({search:""})},n.state={dropdown:!1,values:o.values,search:"",selectBounds:{},cursor:null,searchResults:o.options},n.methods={activeCursorOption:n.activeCursorOption,addOption:n.addOption,areAllSelected:n.areAllSelected,clearAll:n.clearAll,createNew:n.createNew,dropDown:n.dropDown,getInputSize:n.getInputSize,getSelectBounds:n.getSelectBounds,getSelectRef:n.getSelectRef,handleKeyDown:n.handleKeyDown,isSelected:n.isSelected,removeOption:n.removeOption,safeString:n.safeString,searchResults:n.searchResults,selectAll:n.selectAll,setSearch:n.setSearch,sortBy:n.sortBy,toggleSelectAll:n.toggleSelectAll},n.select=t().createRef(),n.dropdownRoot="undefined"!=typeof document&&document.createElement("div"),n}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,A(e,t)}(n,e);var r=n.prototype;return r.componentDidMount=function(){d().addEventListener("resize",l(this.updateSelectBounds)),d().addEventListener("scroll",l(this.onScroll)),this.dropDown("close"),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen&&this.dropDown("open")},r.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()},r.componentWillUnmount=function(){d().removeEventListener("resize",l(this.updateSelectBounds,this.props.debounceDelay)),d().removeEventListener("scroll",l(this.onScroll,this.props.debounceDelay))},r.render=function(){var e=this,n=[o];return"rtl"===this.props.direction&&n.push(o+"-rtl"),this.props.disabled&&n.push(o+"-disabled"),void 0!==this.props.className&&n.push(this.props.className),t().createElement(a,{onClickOutside:function(t){return e.dropDown("close",t)}},t().createElement("div",k({"aria-expanded":this.state.dropdown,"aria-label":"Dropdown select",className:n.join(" "),"data-testid":o+"-"+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),t().createElement(w,{props:this.props,state:this.state,methods:this.methods}),(this.props.name||this.props.required)&&t().createElement("input",{className:o+"-input-zero","data-testid":o+"-"+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&&t().createElement(O,{props:this.props}),this.props.clearable&&t().createElement(R,{props:this.props,state:this.state,methods:this.methods}),this.props.separator&&t().createElement(C,{props:this.props,state:this.state,methods:this.methods}),this.props.dropdownHandle&&t().createElement(E,{onClick:function(){return e.select.current.focus()},props:this.props,state:this.state,methods:this.methods}),this.state.dropdown&&!this.props.disabled&&this.renderDropdown()))},n}(e.Component);F.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 N=F})(),s})());
|
package/lib/components/Clear.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var Clear=function(a){var b=a.props,c=a.state,d=a.methods;return b.clearRenderer?b.clearRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-clear",tabIndex:"-1",onClick:function(){return d.clearAll()},
|
|
1
|
+
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var Clear=function(a){var b=a.props,c=a.state,d=a.methods;return b.clearRenderer?b.clearRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-clear","data-testid":_constants.LIB_NAME+"-"+b.name+"-Clear",tabIndex:"-1",onClick:function(){return d.clearAll()},onKeyDown:function(){return d.clearAll()}},"\xD7")},_default=exports.default=Clear;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_propTypes=_interopRequireDefault(require("prop-types")),
|
|
1
|
+
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_propTypes=_interopRequireDefault(require("prop-types")),_constants=require("../constants"),_util=require("../util"),_Input=_interopRequireDefault(require("./Input")),_Selection=_interopRequireDefault(require("./Selection")),_SelectMethodsModel=_interopRequireDefault(require("../models/SelectMethodsModel")),_SelectPropsModel=_interopRequireDefault(require("../models/SelectPropsModel")),_SelectStateModel=_interopRequireDefault(require("../models/SelectStateModel"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var Content=function(a){var b=a.props,c=a.state,d=a.methods;return/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-content "+(b.multi?_constants.LIB_NAME+"-type-multi":_constants.LIB_NAME+"-type-single"),"data-testid":_constants.LIB_NAME+"-"+b.name+"-Content",onClick:function(a){return a.stopPropagation(),!0===c.dropdown&&b.closeOnClickInput&&!c.search?d.dropDown("close"):d.dropDown("open")}},b.contentRenderer?b.contentRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement(_react.default.Fragment,null,b.multi?c.values&&c.values.map(function(a){return/*#__PURE__*/_react.default.createElement(_Selection.default,{key:""+(0,_util.getByPath)(a,b.valueField)+(0,_util.getByPath)(a,b.labelField),option:a,state:c,props:b,methods:d})}):c.values&&0<c.values.length&&/*#__PURE__*/_react.default.createElement("span",null,(0,_util.getByPath)(c.values[0],b.labelField)),/*#__PURE__*/_react.default.createElement(_Input.default,{props:b,methods:d,state:c})))},_default=exports.default=Content;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var DropdownHandle=function(a){var b=a.props,c=a.state,d=a.methods;return/*#__PURE__*/_react.default.createElement("div",{
|
|
1
|
+
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var DropdownHandle=function(a){var b=a.props,c=a.state,d=a.methods;return/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-dropdown-handle "+_constants.LIB_NAME+"-dropdown-handle-"+(c.dropdown?"open":"closed")+(b.dropdownHandleRenderer?"":" "+_constants.LIB_NAME+"-dropdown-handle-rotate"),"data-testid":_constants.LIB_NAME+"-"+b.name+"-DropdownHandle",onClick:function(a){return d.dropDown(c.dropdown?"close":"open",a)},onKeyDown:function(a){return d.dropDown("toggle",a)},tabIndex:"-1"},b.dropdownHandleRenderer?b.dropdownHandleRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement("svg",{fill:"currentColor",viewBox:"0 0 40 40"},/*#__PURE__*/_react.default.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"})))},_default=exports.default=DropdownHandle;
|
package/lib/components/Input.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireWildcard(require("react")),
|
|
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.handleKeyPress=function(a){var c=b.props,d=c.props,e=c.state,f=c.methods;return 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)},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.handleKeyPress,onChange:d.setSearch,onBlur:this.onBlur,placeholder:handlePlaceHolder(b,c),disabled:b.disabled})},b}(_react.Component),_default=exports.default=Input;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var Loading=function(a){var b=a.props;return b.loadingRenderer?b.loadingRenderer({props:b}):/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-loading"})},_default=exports.default=Loading;
|
|
1
|
+
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var Loading=function(a){var b=a.props;return b.loadingRenderer?b.loadingRenderer({props:b}):/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-loading","data-testid":_constants.LIB_NAME+"-"+b.name+"-Loading"})},_default=exports.default=Loading;
|
package/lib/components/NoData.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var NoData=function(a){var b=a.props,c=a.state,d=a.methods;return b.noDataRenderer?b.noDataRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-no-data"},b.noDataLabel)},_default=exports.default=NoData;
|
|
1
|
+
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var NoData=function(a){var b=a.props,c=a.state,d=a.methods;return b.noDataRenderer?b.noDataRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-no-data","data-testid":_constants.LIB_NAME+"-"+b.name+"-NoData"},b.noDataLabel)},_default=exports.default=NoData;
|
package/lib/components/Option.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=
|
|
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&&!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({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;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants"),_util=require("../util");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var Selection=function(a){var b=a.option,c=a.props,d=a.state,e=a.methods;if(b&&c.selectionRenderer)return c.selectionRenderer({option:b,props:c,state:d,methods:e});var f=(0,_util.getOptionSlug)(b,c);return/*#__PURE__*/_react.default.createElement("span",{role:"listitem",disabled:c.disabled,className:_constants.LIB_NAME+"-selection"+("rtl"===c.direction?" "+_constants.LIB_NAME+"-selection-rtl":""),"data-testid":_constants.LIB_NAME+"-"+c.name+"-Selection-"+f},/*#__PURE__*/_react.default.createElement("span",{className:_constants.LIB_NAME+"-selection-label","data-testid":_constants.LIB_NAME+"-"+c.name+"-Selection-label-"+f},(0,_util.getByPath)(b,c.labelField)),/*#__PURE__*/_react.default.createElement("span",{className:_constants.LIB_NAME+"-selection-remove-"+f,"data-testid":_constants.LIB_NAME+"-"+c.name+"-Selection-remove-"+f,onClick:function(a){return e.removeOption(a,b,c.closeOnSelect)}},"\xD7"))},_default=exports.default=Selection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var Separator=function(a){var b=a.props,c=a.state,d=a.methods;return b.separatorRenderer?b.separatorRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-separator"})},_default=exports.default=Separator;
|
|
1
|
+
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireDefault(require("react")),_constants=require("../constants");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var Separator=function(a){var b=a.props,c=a.state,d=a.methods;return b.separatorRenderer?b.separatorRenderer({props:b,state:c,methods:d}):/*#__PURE__*/_react.default.createElement("div",{className:_constants.LIB_NAME+"-separator","data-testid":_constants.LIB_NAME+"-"+b.name+"-Separator"})},_default=exports.default=Separator;
|
package/lib/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=exports.Select=void 0;var _react=_interopRequireWildcard(require("react")),_reactDom=_interopRequireDefault(require("react-dom")),_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 c;return c=a.call(this,b)||this,c.onDropdownClose=function(){c.setState({cursor:null}),c.props.onDropdownClose()},c.onScroll=function(){c.props.closeOnScroll&&c.dropDown("close"),c.updateSelectBounds()},c.updateSelectBounds=function(){return c.select.current&&c.setState({selectBounds:c.select.current.getBoundingClientRect()})},c.getSelectBounds=function(){return c.state.selectBounds},c.dropDown=function(a,b,d){void 0===a&&(a="toggle"),void 0===d&&(d=!1);b&&b.target||b&&b.srcElement;return void 0!==c.props.onDropdownCloseRequest&&c.state.dropdown&&!1===d&&"close"===a?c.props.onDropdownCloseRequest({props:c.props,methods:c.methods,state:c.state,close:function(){return c.dropDown("close",null,!0)}}):c.props.keepOpen?c.setState({dropdown:!0}):"close"===a&&c.state.dropdown?(c.select.current.blur(),c.setState({dropdown:!1,search:c.props.clearOnBlur?"":c.state.search,searchResults:c.props.options})):"open"!==a||c.state.dropdown?"toggle"===a&&(c.select.current.focus(),c.setState({dropdown:!c.state.dropdown})):c.setState({dropdown:!0})},c.getSelectRef=function(){return c.select.current},c.addItem=function(a){if(c.props.multi){if((0,_util.valueExistInSelected)((0,_util.getByPath)(a,c.props.valueField),c.state.values,c.props))return c.removeItem(null,a,!1);c.setState({values:[].concat(c.state.values,[a])}),c.props.onSelect([].concat(c.state.values,[a]))}else c.setState({values:[a],dropdown:!1}),c.props.onSelect([a]);return c.props.clearOnSelect&&c.setState({search:""},function(){c.setState({searchResults:c.searchResults()})}),!0},c.removeItem=function(a,b,d){void 0===d&&(d=!1),a&&d&&(a.preventDefault(),a.stopPropagation(),c.dropDown("close"));var e=c.state.values.filter(function(a){return(0,_util.getByPath)(a,c.props.valueField)!==(0,_util.getByPath)(b,c.props.valueField)});c.setState({values:e}),c.props.onDeselect(e)},c.setSearch=function(a){c.setState({cursor:null}),c.setState({search:a.target.value},function(){c.setState({searchResults:c.searchResults()})})},c.getInputSize=function(){return c.state.search?c.state.search.length:0<c.state.values.length?c.props.addPlaceholder.length:c.props.placeholder.length},c.toggleSelectAll=function(){return c.setState({values:0===c.state.values.length?c.selectAll():c.clearAll()})},c.clearAll=function(){c.props.onClearAll(),c.setState({values:[]})},c.selectAll=function(a){void 0===a&&(a=[]),c.props.onSelectAll();var b=0<a.length?a:c.props.options.filter(function(a){return!a.disabled});c.setState({values:b})},c.isSelected=function(a){return!!c.state.values.find(function(b){return(0,_util.getByPath)(b,c.props.valueField)===(0,_util.getByPath)(a,c.props.valueField)})},c.areAllSelected=function(){return c.state.values.length===c.props.options.filter(function(a){return!a.disabled}).length},c.safeString=function(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},c.sortBy=function(){var a=c.props,d=a.sortBy,e=a.options;return d?(e.sort(function(c,a){return(0,_util.getProp)(c,d)<(0,_util.getProp)(a,d)?-1:(0,_util.getProp)(c,d)>(0,_util.getProp)(a,d)?1:0}),e):e},c.searchFn=function(a){var b=a.state,d=a.methods,e=new RegExp(d.safeString(b.search),"i");return d.sortBy().filter(function(a){return e.test((0,_util.getByPath)(a,c.props.searchBy)||(0,_util.getByPath)(a,c.props.valueField))})},c.searchResults=function(){var a={state:c.state,props:c.props,methods:c.methods};return c.props.searchFn(a)||c.searchFn(a)},c.activeCursorItem=function(a){return c.setState({activeCursorItem:a})},c.handleKeyDown=function(a){var b={event:a,state:c.state,props:c.props,methods:c.methods,setState:c.setState.bind(c)};return c.props.handleKeyDownFn(b)||c.handleKeyDownFn(b)},c.handleKeyDownFn=function(a){var b=a.event,d=a.state,e=a.props,f=a.methods,g=a.setState,h=d.cursor,i=d.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(m&&!d.dropdown)return b.preventDefault(),c.dropDown("open"),g({cursor:0});if((m||o&&d.dropdown)&&null===h)return g({cursor:0});if((l||m||p&&d.dropdown||o&&d.dropdown)&&b.preventDefault(),j&&c.dropDown("close"),k){var q=i[h];if(q&&!q.disabled){if(e.create&&(0,_util.valueExistInSelected)(d.search,d.values,e))return null;f.addItem(q)}}return(m||o&&d.dropdown)&&i.length===h?g({cursor:0}):void((m||o&&d.dropdown)&&g(function(a){return{cursor:a.cursor+1}}),(l||p&&d.dropdown)&&0<h&&g(function(a){return{cursor:a.cursor-1}}),(l||p&&d.dropdown)&&0===h&&g({cursor:i.length}),n&&e.backspaceDelete&&0===c.getInputSize()&&c.setState({values:c.state.values.slice(0,-1)}))},c.renderDropdown=function(){return/*#__PURE__*/_react.default.createElement(_Dropdown.default,{props:c.props,state:c.state,methods:c.methods})},c.createNew=function(a){var b,d=(b={},b[c.props.labelField]=a,b[c.props.valueField]=a,b);c.addItem(d),c.props.onCreateNew(d),c.setState({search:""})},c.state={dropdown:!1,values:b.values,search:"",selectBounds:{},cursor:null,searchResults:b.options},c.methods={activeCursorItem:c.activeCursorItem,addItem:c.addItem,areAllSelected:c.areAllSelected,clearAll:c.clearAll,createNew:c.createNew,dropDown:c.dropDown,getInputSize:c.getInputSize,getSelectBounds:c.getSelectBounds,getSelectRef:c.getSelectRef,handleKeyDown:c.handleKeyDown,isSelected:c.isSelected,removeItem:c.removeItem,safeString:c.safeString,searchResults:c.searchResults,selectAll:c.selectAll,setSearch:c.setSearch,sortBy:c.sortBy,toggleSelectAll:c.toggleSelectAll},c.select=/*#__PURE__*/_react.default.createRef(),c.dropdownRoot="undefined"!=typeof document&&document.createElement("div"),c}_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({onKeyDown:this.handleKeyDown,"aria-label":"Dropdown select","aria-expanded":this.state.dropdown,onClick:function(b){return a.dropDown("open",b)},tabIndex:this.props.disabled?"-1":"0",ref:this.select,className:b.join(" ")},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",{tabIndex:-1,className:_constants.LIB_NAME+"-input-zero",name:this.props.name,required:this.props.required,pattern:this.props.pattern,defaultValue:this.state.values.map(function(b){return b[a.props.labelField]}).toString()||[],disabled:this.props.disabled}),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={addPlaceholder:"",additionalProps:null,autoFocus:!1,backspaceDelete:!0,clearAllLabel:"Clear all",clearOnBlur:!0,clearOnSelect:!0,clearable:!1,closeOnScroll:!1,closeOnSelect:!1,closeOnClickInput:!1,compareValuesFunc:_util.isEqual,create:!1,createNewLabel:"add {search}",debounceDelay:0,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(){},onSelect:function(){},onDeselect:function(){},onClearAll:function(){},onCreateNew:function(){},onDropdownClose:function(){},onDropdownCloseRequest:void 0,onDropdownOpen:function(){},onSelectAll:function(){},options:[],pattern:void 0,placeholder:"Select...",required:!1,searchBy:"label",searchFn:function(){},searchable:!0,selectAll:!1,selectAllLabel:"Select all",separator:!1,sortBy:null,valueField:"value",values:[],defaultMenuIsOpen:!1};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){// const target = (event && event.target) || (event && event.srcElement)
|
|
2
|
+
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(m&&!c.dropdown)return b.preventDefault(),d.dropDown("open"),g({cursor:0});if((m||o&&c.dropdown)&&null===h)return g({cursor:0});if((l||m||p&&c.dropdown||o&&c.dropdown)&&b.preventDefault(),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(function(a){return{cursor:a.cursor+1}}),(l||p&&c.dropdown)&&0<h&&g(function(a){return{cursor:a.cursor-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,11 +1,11 @@
|
|
|
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 SelectMethodsModel=Object.freeze({
|
|
2
|
-
* Add a new
|
|
3
|
-
*/
|
|
4
|
-
* Check if all
|
|
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 SelectMethodsModel=Object.freeze({activeCursorOption:_propTypes.default.func,/**
|
|
2
|
+
* Add a new option
|
|
3
|
+
*/addOption:_propTypes.default.func.isRequired,/**
|
|
4
|
+
* Check if all options are selected
|
|
5
5
|
*/areAllSelected:_propTypes.default.func.isRequired,/**
|
|
6
|
-
* Clear all selected
|
|
6
|
+
* Clear all selected options
|
|
7
7
|
*/clearAll:_propTypes.default.func.isRequired,/**
|
|
8
|
-
* Create a new
|
|
8
|
+
* Create a new option
|
|
9
9
|
*/createNew:_propTypes.default.func.isRequired,/**
|
|
10
10
|
* Close/Toggle/Open
|
|
11
11
|
*/dropDown:_propTypes.default.func.isRequired,/**
|
|
@@ -17,19 +17,19 @@
|
|
|
17
17
|
*/getSelectRef:_propTypes.default.func.isRequired,/**
|
|
18
18
|
* Handle key down event
|
|
19
19
|
*/handleKeyDown:_propTypes.default.func.isRequired,/**
|
|
20
|
-
* Check if an
|
|
20
|
+
* Check if an option is selected
|
|
21
21
|
*/isSelected:_propTypes.default.func.isRequired,/**
|
|
22
|
-
* Remove an
|
|
23
|
-
*/
|
|
22
|
+
* Remove an option
|
|
23
|
+
*/removeOption:_propTypes.default.func.isRequired,/**
|
|
24
24
|
* Make a string safe
|
|
25
25
|
*/safeString:_propTypes.default.func.isRequired,/**
|
|
26
26
|
* Get search results
|
|
27
27
|
*/searchResults:_propTypes.default.func.isRequired,/**
|
|
28
|
-
* Select all
|
|
28
|
+
* Select all options
|
|
29
29
|
*/selectAll:_propTypes.default.func.isRequired,/**
|
|
30
30
|
* Set the search string
|
|
31
31
|
*/setSearch:_propTypes.default.func.isRequired,/**
|
|
32
|
-
* Sort
|
|
32
|
+
* Sort options
|
|
33
33
|
*/sortBy:_propTypes.default.func.isRequired,/**
|
|
34
34
|
* Toggle select all
|
|
35
35
|
*/toggleSelectAll:_propTypes.default.func.isRequired}),_default=exports.default=SelectMethodsModel;
|
|
@@ -61,11 +61,11 @@
|
|
|
61
61
|
*/handleKeyDownFn:_propTypes.default.func,/**
|
|
62
62
|
* Overrides internal input text
|
|
63
63
|
*/inputRenderer:_propTypes.default.func,/**
|
|
64
|
-
* Overrides internal
|
|
65
|
-
*/
|
|
64
|
+
* Overrides internal option in a dropdown
|
|
65
|
+
*/optionRenderer:_propTypes.default.func,/**
|
|
66
66
|
* If true, dropdown will always stay open (good for debugging)
|
|
67
67
|
*/keepOpen:_propTypes.default.bool,/**
|
|
68
|
-
* If false, selected
|
|
68
|
+
* If false, selected option will not appear in a list
|
|
69
69
|
*/keepSelectedInList:_propTypes.default.bool,/**
|
|
70
70
|
* Field in data to use for label
|
|
71
71
|
*/labelField:_propTypes.default.string,/**
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
*/onChange:_propTypes.default.func.isRequired,/**
|
|
87
87
|
* Fires upon clearing all values (via custom renderers)
|
|
88
88
|
*/onClearAll:_propTypes.default.func,/**
|
|
89
|
-
* Fires upon creation of new
|
|
89
|
+
* Fires upon creation of new option if create prop set to true
|
|
90
90
|
*/onCreateNew:_propTypes.default.func,/**
|
|
91
91
|
* Fires upon dropdown close
|
|
92
92
|
*/onDropdownClose:_propTypes.default.func,/**
|
|
@@ -97,8 +97,8 @@
|
|
|
97
97
|
*/onDropdownOpen:_propTypes.default.func,/**
|
|
98
98
|
* Fires upon selecting all values (via custom renderers)
|
|
99
99
|
*/onSelectAll:_propTypes.default.func,/**
|
|
100
|
-
* Overrides internal
|
|
101
|
-
*/
|
|
100
|
+
* Overrides internal selection (the pillow with an "x") on the select content
|
|
101
|
+
*/selectionRenderer:_propTypes.default.func,/**
|
|
102
102
|
* Available options, (option with key disabled: true will be disabled)
|
|
103
103
|
*/options:_propTypes.default.array.isRequired,/**
|
|
104
104
|
* If set, input type hidden would be added in the component with pattern prop as regex
|
package/lib/util.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.valueExistInSelected=exports.isomorphicWindow=exports.isEqual=exports.
|
|
1
|
+
"use strict";exports.__esModule=!0,exports.valueExistInSelected=exports.isomorphicWindow=exports.isEqual=exports.getProp=exports.getOptionSlug=exports.getByPath=exports.debounce=void 0;var debounce=exports.debounce=function(a,b){void 0===b&&(b=0);var c;return function(){for(var d=arguments.length,e=Array(d),f=0;f<d;f++)e[f]=arguments[f];c&&clearTimeout(c),c=setTimeout(function(){a.apply(void 0,e),c=null},b)}},getByPath=exports.getByPath=function(a,b){return b?b.split(".").reduce(function(a,b){return a[b]},a):void 0},getOptionSlug=exports.getOptionSlug=function(a,b){var c=getByPath(a,b.valueField);return(c+"").replaceAll(/[^a-zA-Z0-9]/g,"-")},_getProp=exports.getProp=function(a,b,c){if(!b)return a;var d=Array.isArray(b)?b:b.split(".").filter(function(a){return a.length});return d.length?_getProp(a[d.shift()],d,c):void 0===a?c:a},isEqual=exports.isEqual=function(c,a){return JSON.stringify(c)===JSON.stringify(a)},isomorphicWindow=exports.isomorphicWindow=function(){return"undefined"==typeof window&&(global.window={}),window},valueExistInSelected=exports.valueExistInSelected=function(a,b,c){return!!b.find(function(b){return getByPath(b,c.valueField)===a||getByPath(b,c.labelField)===a})};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-clean-select",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
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",
|
|
@@ -13,15 +13,17 @@
|
|
|
13
13
|
"types.d.ts"
|
|
14
14
|
],
|
|
15
15
|
"scripts": {
|
|
16
|
+
"build": "webpack && npm run transpile",
|
|
17
|
+
"coveralls": "jest --coverage && cat ./coverage/lcov.info | coveralls",
|
|
18
|
+
"lint": "standard",
|
|
19
|
+
"lint:fix": "standard --fix",
|
|
16
20
|
"test": "jest",
|
|
17
21
|
"test:watch": "jest --watch",
|
|
18
|
-
"coveralls": "jest --coverage && cat ./coverage/lcov.info | coveralls",
|
|
19
|
-
"build": "webpack && npm run transpile",
|
|
20
22
|
"transpile": "babel src -d lib",
|
|
21
23
|
"prepublishOnly": "npm run build",
|
|
22
24
|
"preversion": "sh change-log-builder.sh",
|
|
23
25
|
"storybook": "storybook dev -p 6006",
|
|
24
|
-
"build
|
|
26
|
+
"storybook-build": "storybook build"
|
|
25
27
|
},
|
|
26
28
|
"repository": {
|
|
27
29
|
"type": "git",
|
|
@@ -52,16 +54,17 @@
|
|
|
52
54
|
"react-dom": ">=16.x"
|
|
53
55
|
},
|
|
54
56
|
"devDependencies": {
|
|
55
|
-
"@babel/cli": "
|
|
56
|
-
"@babel/core": "
|
|
57
|
-
"@babel/
|
|
58
|
-
"@babel/plugin-proposal-
|
|
59
|
-
"@babel/plugin-
|
|
60
|
-
"@babel/
|
|
61
|
-
"@babel/preset-
|
|
57
|
+
"@babel/cli": "7",
|
|
58
|
+
"@babel/core": "7",
|
|
59
|
+
"@babel/eslint-parser": "7",
|
|
60
|
+
"@babel/plugin-proposal-class-properties": "7",
|
|
61
|
+
"@babel/plugin-proposal-object-rest-spread": "7",
|
|
62
|
+
"@babel/plugin-syntax-dynamic-import": "7",
|
|
63
|
+
"@babel/preset-env": "7",
|
|
64
|
+
"@babel/preset-react": "7",
|
|
62
65
|
"@emotion/babel-plugin": "11.11.0",
|
|
63
66
|
"@emotion/jest": "11.11.0",
|
|
64
|
-
"@faker-js/faker": "
|
|
67
|
+
"@faker-js/faker": "10",
|
|
65
68
|
"@storybook/addon-docs": "7.1.1",
|
|
66
69
|
"@storybook/addon-essentials": "7.1.1",
|
|
67
70
|
"@storybook/addon-interactions": "7.1.1",
|
|
@@ -70,6 +73,10 @@
|
|
|
70
73
|
"@storybook/react": "7.1.1",
|
|
71
74
|
"@storybook/react-webpack5": "7.1.1",
|
|
72
75
|
"@storybook/testing-library": "^0.2.0",
|
|
76
|
+
"@testing-library/dom": "10",
|
|
77
|
+
"@testing-library/jest-dom": "6",
|
|
78
|
+
"@testing-library/react": "12",
|
|
79
|
+
"@testing-library/user-event": "14",
|
|
73
80
|
"babel-core": "^7.0.0-bridge.0",
|
|
74
81
|
"babel-jest": "^25.3.0",
|
|
75
82
|
"babel-loader": "^8.0.6",
|
|
@@ -88,32 +95,16 @@
|
|
|
88
95
|
"prop-types": "^15.7.2",
|
|
89
96
|
"react": "16.14.0",
|
|
90
97
|
"react-dom": "^16.12.0",
|
|
91
|
-
"react-test-renderer": "^16.12.0",
|
|
92
98
|
"replace": "^1.2.0",
|
|
93
99
|
"storybook": "7.1.1",
|
|
100
|
+
"standard": "17",
|
|
94
101
|
"style-loader": "^3.3.1",
|
|
95
102
|
"webpack": "5.88.1",
|
|
96
103
|
"webpack-cli": "^5.0.1",
|
|
97
104
|
"webpack-dev-server": "4.15.1"
|
|
98
105
|
},
|
|
99
106
|
"jest": {
|
|
100
|
-
"snapshotSerializers": [
|
|
101
|
-
"@emotion/jest/serializer"
|
|
102
|
-
],
|
|
103
|
-
"transform": {
|
|
104
|
-
"^.+\\.(js)$": "babel-jest"
|
|
105
|
-
},
|
|
106
|
-
"testMatch": [
|
|
107
|
-
"**/?(*.)+(spec|test).js?(x)"
|
|
108
|
-
],
|
|
109
|
-
"testEnvironmentOptions": {
|
|
110
|
-
"url": "http://localhost/"
|
|
111
|
-
},
|
|
112
107
|
"collectCoverage": false,
|
|
113
|
-
"bail": true,
|
|
114
|
-
"roots": [
|
|
115
|
-
"<rootDir>/__tests__"
|
|
116
|
-
],
|
|
117
108
|
"collectCoverageFrom": [
|
|
118
109
|
"src/**/*.{js,jsx}",
|
|
119
110
|
"!src/**/ClickOutside.js",
|
|
@@ -121,7 +112,22 @@
|
|
|
121
112
|
"!docs/**",
|
|
122
113
|
"!dist/**",
|
|
123
114
|
"!coverage/**"
|
|
124
|
-
]
|
|
115
|
+
],
|
|
116
|
+
"moduleNameMapper": {
|
|
117
|
+
"^components(.*)$": "<rootDir>/src/components/$1"
|
|
118
|
+
},
|
|
119
|
+
"roots": [
|
|
120
|
+
"<rootDir>/__tests__"
|
|
121
|
+
],
|
|
122
|
+
"testEnvironmentOptions": {
|
|
123
|
+
"url": "http://localhost/"
|
|
124
|
+
},
|
|
125
|
+
"testMatch": [
|
|
126
|
+
"**/?(*.)+(spec|test).js?(x)"
|
|
127
|
+
],
|
|
128
|
+
"transform": {
|
|
129
|
+
"^.+\\.(js)$": "babel-jest"
|
|
130
|
+
}
|
|
125
131
|
},
|
|
126
132
|
"browserslist": [
|
|
127
133
|
"last 2 versions",
|
|
@@ -130,7 +136,17 @@
|
|
|
130
136
|
],
|
|
131
137
|
"husky": {
|
|
132
138
|
"hooks": {
|
|
133
|
-
"pre-commit": "
|
|
139
|
+
"pre-commit": "yarn lint && yarn test"
|
|
134
140
|
}
|
|
141
|
+
},
|
|
142
|
+
"standard": {
|
|
143
|
+
"env": [
|
|
144
|
+
"jest",
|
|
145
|
+
"node"
|
|
146
|
+
],
|
|
147
|
+
"parser": "@babel/eslint-parser",
|
|
148
|
+
"globals": [
|
|
149
|
+
"it"
|
|
150
|
+
]
|
|
135
151
|
}
|
|
136
152
|
}
|
package/types.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ declare module 'react-clean-select' {
|
|
|
15
15
|
search?: string;
|
|
16
16
|
selectBounds?: DOMRect | {};
|
|
17
17
|
cursor?: number | null;
|
|
18
|
-
|
|
18
|
+
activeCursorOption?: any;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export interface SelectState<T> {
|
|
@@ -27,21 +27,21 @@ declare module 'react-clean-select' {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export interface SelectMethods<T> {
|
|
30
|
-
|
|
30
|
+
removeOption: (event: MouseEvent<HTMLElement> | null, option: T, close: boolean) => void;
|
|
31
31
|
dropDown: (action: string, event?: MouseEvent<HTMLElement> | null) => void;
|
|
32
|
-
|
|
32
|
+
addOption: (option: T) => void;
|
|
33
33
|
setSearch: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
34
34
|
getInputSize: () => number;
|
|
35
35
|
toggleSelectAll: () => void;
|
|
36
36
|
clearAll: () => void;
|
|
37
|
-
selectAll: (
|
|
37
|
+
selectAll: (options?: T[]) => void;
|
|
38
38
|
searchResults: () => T[];
|
|
39
39
|
getSelectRef: () => HTMLDivElement;
|
|
40
|
-
isSelected: (
|
|
40
|
+
isSelected: (option: T) => boolean;
|
|
41
41
|
getSelectBounds: () => {} | DOMRect;
|
|
42
42
|
areAllSelected: () => boolean;
|
|
43
43
|
handleKeyDown: (event: KeyboardEvent) => void;
|
|
44
|
-
|
|
44
|
+
activeCursorOption: (activeCursorOption: any) => void;
|
|
45
45
|
createNew: (searchText: string) => void;
|
|
46
46
|
sortBy: () => T[];
|
|
47
47
|
safeString: (input: string) => string;
|
|
@@ -70,9 +70,9 @@ declare module 'react-clean-select' {
|
|
|
70
70
|
) => void;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
export interface
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
export interface SelectOptionRenderer<T> {
|
|
74
|
+
option: T;
|
|
75
|
+
optionIndex?: number;
|
|
76
76
|
props: SelectProps<T>;
|
|
77
77
|
state: SelectState<T>;
|
|
78
78
|
methods: SelectMethods<T>;
|
|
@@ -126,7 +126,7 @@ declare module 'react-clean-select' {
|
|
|
126
126
|
onClearAll?: () => void;
|
|
127
127
|
clearAllLabel?: string;
|
|
128
128
|
onSelectAll?: () => void;
|
|
129
|
-
onCreateNew?: (
|
|
129
|
+
onCreateNew?: (option: T) => void;
|
|
130
130
|
onDropdownCloseRequest?: ({
|
|
131
131
|
props,
|
|
132
132
|
state,
|
|
@@ -147,16 +147,16 @@ declare module 'react-clean-select' {
|
|
|
147
147
|
}: SelectRenderer<T> & {
|
|
148
148
|
inputRef: RefObject<HTMLInputElement>;
|
|
149
149
|
}) => JSX.Element;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
150
|
+
optionRenderer?: ({
|
|
151
|
+
option,
|
|
152
|
+
optionIndex,
|
|
153
153
|
props,
|
|
154
154
|
state,
|
|
155
155
|
methods
|
|
156
|
-
}:
|
|
157
|
-
loadingRenderer?: ({ props }:
|
|
156
|
+
}: SelectOptionRenderer<T>) => JSX.Element;
|
|
157
|
+
loadingRenderer?: ({ props }: SelectOptionRenderer<T>) => JSX.Element;
|
|
158
158
|
noDataRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
|
|
159
|
-
|
|
159
|
+
selectionRenderer?: ({ option, props, state, methods }: SelectOptionRenderer<T>) => JSX.Element;
|
|
160
160
|
separatorRenderer?: ({ props, state, methods }: SelectRenderer<T>) => JSX.Element;
|
|
161
161
|
additionalProps?: HTMLAttributes<HTMLDivElement>;
|
|
162
162
|
wrapperClassName?: string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom"),require("prop-types")):"function"==typeof define&&define.amd?define("reactDropdownSelect",["react","react-dom","prop-types"],t):"object"==typeof exports?exports.reactDropdownSelect=t(require("react"),require("react-dom"),require("prop-types")):e.reactDropdownSelect=t(e.React,e.ReactDOM,e.PropTypes)}(this,(e,t,o)=>(()=>{"use strict";var r={602:e=>{e.exports=o},359:t=>{t.exports=e},318:e=>{e.exports=t}},n={};function s(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,s),o.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var o in t)s.o(t,o)&&!s.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{s.r(a),s.d(a,{Select:()=>F,default:()=>P});var e=s(359),t=s.n(e),o=s(318),r=s.n(o),n=(s(602),"react-clean-select");function l(e,t){return l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},l(e,t)}const p=function(e){function o(){for(var o,r=arguments.length,n=Array(r),s=0;s<r;s++)n[s]=arguments[s];return(o=e.call.apply(e,[this].concat(n))||this).container=t().createRef(),o.handleClick=function(e){var t=o.container.current,r=e.target,n=o.props.onClickOutside;(t&&t===r||t&&!t.contains(r))&&n(e)},o}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,l(e,t)}(o,e);var r=o.prototype;return r.componentDidMount=function(){document.addEventListener("click",this.handleClick,!0)},r.componentWillUnmount=function(){document.removeEventListener("click",this.handleClick,!0)},r.render=function(){var e=this.props.children;return t().createElement("div",{className:n+"-container",ref:this.container},e)},o}(t().Component);var c=function(e,t,o){return!!t.find(function(t){return d(t,o.valueField)===e||d(t,o.labelField)===e})},i=function(e,t){var o;return void 0===t&&(t=0),function(){for(var r=arguments.length,n=Array(r),s=0;s<r;s++)n[s]=arguments[s];o&&clearTimeout(o),o=setTimeout(function(){e.apply(void 0,n),o=null},t)}},d=function(e,t){return t?t.split(".").reduce(function(e,t){return e[t]},e):void 0},u=function(e,t,o){if(!t)return e;var r=Array.isArray(t)?t:t.split(".").filter(function(e){return e.length});return r.length?u(e[r.shift()],r,o):void 0===e?o:e},h=function(){return"undefined"==typeof window&&(global.window={}),window};const f=function(e){var o=e.item,r=e.props,s=e.state,a=e.methods;return o&&r.optionRenderer?r.optionRenderer({item:o,props:r,state:s,methods:a}):t().createElement("span",{role:"listitem",disabled:r.disabled,className:n+"-option"+("rtl"===r.direction?" "+n+"-option-rtl":"")},t().createElement("span",{className:n+"-option-label"},d(o,r.labelField)),t().createElement("span",{className:n+"-option-remove",onClick:function(e){return a.removeItem(e,o,r.closeOnSelect)}},"×"))};function m(e,t){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},m(e,t)}var v=function(e,t){var o=e.addPlaceholder,r=e.searchable,n=e.placeholder,s=t.values&&0===t.values.length;return t.values&&0<t.values.length&&o&&r?o:s?n:""};const w=function(e){function o(){for(var o,r=arguments.length,n=Array(r),s=0;s<r;s++)n[s]=arguments[s];return(o=e.call.apply(e,[this].concat(n))||this).input=t().createRef(),o.onBlur=function(e){return e.stopPropagation(),o.props.state.dropdown?o.input.current.focus():o.input.current.blur()},o.handleKeyPress=function(e){var t=o.props,r=t.props,n=t.state,s=t.methods;return r.create&&"Enter"===e.key&&!c(n.search,[].concat(n.values,r.options),o.props)&&n.search&&null===n.cursor&&s.createNew(n.search)},o}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}(o,e);var r=o.prototype;return r.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()},r.render=function(){var e=this.props,o=e.props,r=e.state,s=e.methods;return o.inputRenderer?o.inputRenderer({props:o,state:r,methods:s,inputRef:this.input}):t().createElement("input",{ref:this.input,tabIndex:"-1",onFocus:function(e){return e.stopPropagation()},className:n+"-input"+(o.searchable?"":" "+n+"-input-readonly"),value:r.search,onClick:function(){return s.dropDown("open")},onKeyPress:this.handleKeyPress,onChange:s.setSearch,onBlur:this.onBlur,placeholder:v(o,r),disabled:o.disabled})},o}(e.Component),b=function(e){var o=e.props,r=e.state,s=e.methods;return t().createElement("div",{className:n+"-content "+(o.multi?n+"-type-multi":n+"-type-single"),onClick:function(e){return e.stopPropagation(),!0===r.dropdown&&o.closeOnClickInput&&!r.search?s.dropDown("close"):s.dropDown("open")}},o.contentRenderer?o.contentRenderer({props:o,state:r,methods:s}):t().createElement(t().Fragment,null,o.multi?r.values&&r.values.map(function(e){return t().createElement(f,{key:""+d(e,o.valueField)+d(e,o.labelField),item:e,state:r,props:o,methods:s})}):r.values&&0<r.values.length&&t().createElement("span",null,d(r.values[0],o.labelField)),t().createElement(w,{props:o,methods:s,state:r})))},S=function(e){var o=e.props,r=e.state,s=e.methods;return o.noDataRenderer?o.noDataRenderer({props:o,state:r,methods:s}):t().createElement("div",{className:n+"-no-data"},o.noDataLabel)};function y(e,t){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},y(e,t)}const g=function(e){function o(){for(var o,r=arguments.length,n=Array(r),s=0;s<r;s++)n[s]=arguments[s];return(o=e.call.apply(e,[this].concat(n))||this).item=t().createRef(),o}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,y(e,t)}(o,e);var r=o.prototype;return r.componentDidMount=function(){var e=this.props,t=e.props,o=e.methods;this.item.current&&!t.multi&&t.keepSelectedInList&&o.isSelected(this.props.item)&&this.item.current.scrollIntoView({block:"nearest",inline:"start"})},r.componentDidUpdate=function(){this.props.state.cursor===this.props.itemIndex&&this.item.current&&this.item.current.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})},r.render=function(){var e=this.props,o=e.props,r=e.state,s=e.methods,a=e.item,l=e.itemIndex;return o.itemRenderer?o.itemRenderer({item:a,itemIndex:l,props:o,state:r,methods:s}):!o.keepSelectedInList&&s.isSelected(a)?null:t().createElement("span",{role:"option",ref:this.item,"aria-selected":s.isSelected(a),"aria-disabled":a.disabled,"aria-label":d(a,o.labelField),key:""+d(a,o.valueField)+d(a,o.labelField),tabIndex:"-1",className:n+"-item"+(s.isSelected(a)?" "+n+"-item-selected":"")+(r.cursor===l?" "+n+"-item-active":"")+(a.disabled?" "+n+"-item-disabled":""),onClick:a.disabled?void 0:function(){return s.addItem(a)},onKeyPress:a.disabled?void 0:function(){return s.addItem(a)}},d(a,o.labelField)," ",a.disabled&&t().createElement("ins",null,o.disabledLabel))},o}(e.Component);var D=function(e,t){var o=t.getSelectRef().getBoundingClientRect(),r=o.bottom+parseInt(e.dropdownHeight,10)+parseInt(e.dropdownGap,10);return"auto"===e.dropdownPosition?r>h().innerHeight&&r>o.top?"top":"bottom":e.dropdownPosition};const R=function(e){var o=e.props,r=e.state,s=e.methods;return t().createElement("div",{tabIndex:"-1","aria-expanded":"true",role:"list",className:n+"-dropdown "+n+"-dropdown-position-"+D(o,s)},o.dropdownRenderer?o.dropdownRenderer({props:o,state:r,methods:s}):t().createElement(t().Fragment,null,o.create&&r.search&&!c(r.search,[].concat(r.values,o.options),o)&&t().createElement("div",{role:"button",className:n+"-dropdown-add-new",color:o.color,onClick:function(){return s.createNew(r.search)}},o.createNewLabel.replace("{search}",'"'+r.search+'"')),0===r.searchResults.length?t().createElement(S,{className:n+"-no-data",state:r,props:o,methods:s}):r.searchResults.map(function(e,n){return t().createElement(g,{key:e[o.valueField].toString(),item:e,itemIndex:n,state:r,props:o,methods:s})}),o.selectAll&&o.options&&o.multi&&t().createElement("div",{role:"button",className:n+"-dropdown-select-all",color:o.color,onClick:function(){return s.areAllSelected()?s.clearAll():s.selectAll()}},s.areAllSelected()?o.clearAllLabel:o.selectAllLabel)))},O=function(e){var o=e.props;return o.loadingRenderer?o.loadingRenderer({props:o}):t().createElement("div",{className:n+"-loading"})},E=function(e){var o=e.props,r=e.state,s=e.methods;return o.clearRenderer?o.clearRenderer({props:o,state:r,methods:s}):t().createElement("div",{className:n+"-clear",tabIndex:"-1",onClick:function(){return s.clearAll()},onKeyPress:function(){return s.clearAll()}},"×")},C=function(e){var o=e.props,r=e.state,s=e.methods;return o.separatorRenderer?o.separatorRenderer({props:o,state:r,methods:s}):t().createElement("div",{className:n+"-separator"})},I=function(e){var o=e.props,r=e.state,s=e.methods;return t().createElement("div",{tabIndex:"-1",onClick:function(e){return s.dropDown(r.dropdown?"close":"open",e)},onKeyPress:function(e){return s.dropDown("toggle",e)},onKeyDown:function(e){return s.dropDown("toggle",e)},className:n+"-dropdown-handle "+n+"-dropdown-handle-"+(r.dropdown?"open":"closed")+(o.dropdownHandleRenderer?"":" "+n+"-dropdown-handle-rotate")},o.dropdownHandleRenderer?o.dropdownHandleRenderer({props:o,state:r,methods:s}):t().createElement("svg",{fill:"currentColor",viewBox:"0 0 40 40"},t().createElement("path",{d:"M31 26.4q0 .3-.2.5l-1.1 1.2q-.3.2-.6.2t-.5-.2l-8.7-8.8-8.8 8.8q-.2.2-.5.2t-.5-.2l-1.2-1.2q-.2-.2-.2-.5t.2-.5l10.4-10.4q.3-.2.6-.2t.5.2l10.4 10.4q.2.2.2.5z"})))};function k(){return k=Object.assign?Object.assign.bind():function(e){for(var t,o=1;o<arguments.length;o++)for(var r in t=arguments[o])({}).hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},k.apply(null,arguments)}function A(e,t){return A=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},A(e,t)}var F=function(e){function o(o){var s;return(s=e.call(this,o)||this).onDropdownClose=function(){s.setState({cursor:null}),s.props.onDropdownClose()},s.onScroll=function(){s.props.closeOnScroll&&s.dropDown("close"),s.updateSelectBounds()},s.updateSelectBounds=function(){return s.select.current&&s.setState({selectBounds:s.select.current.getBoundingClientRect()})},s.getSelectBounds=function(){return s.state.selectBounds},s.dropDown=function(e,t,o){void 0===e&&(e="toggle"),void 0===o&&(o=!1);var r=t&&t.target||t&&t.srcElement;return void 0!==s.props.onDropdownCloseRequest&&s.state.dropdown&&!1===o&&"close"===e?s.props.onDropdownCloseRequest({props:s.props,methods:s.methods,state:s.state,close:function(){return s.dropDown("close",null,!0)}}):s.props.portal&&!s.props.closeOnScroll&&!s.props.closeOnSelect&&t&&r&&r.offsetParent&&r.offsetParent.classList.contains(n+"-dropdown")?void 0:s.props.keepOpen?s.setState({dropdown:!0}):"close"===e&&s.state.dropdown?(s.select.current.blur(),s.setState({dropdown:!1,search:s.props.clearOnBlur?"":s.state.search,searchResults:s.props.options})):"open"!==e||s.state.dropdown?"toggle"===e&&(s.select.current.focus(),s.setState({dropdown:!s.state.dropdown})):s.setState({dropdown:!0})},s.getSelectRef=function(){return s.select.current},s.addItem=function(e){if(s.props.multi){if(c(d(e,s.props.valueField),s.state.values,s.props))return s.removeItem(null,e,!1);s.setState({values:[].concat(s.state.values,[e])}),s.props.onSelect([].concat(s.state.values,[e]))}else s.setState({values:[e],dropdown:!1}),s.props.onSelect([e]);return s.props.clearOnSelect&&s.setState({search:""},function(){s.setState({searchResults:s.searchResults()})}),!0},s.removeItem=function(e,t,o){void 0===o&&(o=!1),e&&o&&(e.preventDefault(),e.stopPropagation(),s.dropDown("close"));var r=s.state.values.filter(function(e){return d(e,s.props.valueField)!==d(t,s.props.valueField)});s.setState({values:r}),s.props.onDeselect(r)},s.setSearch=function(e){s.setState({cursor:null}),s.setState({search:e.target.value},function(){s.setState({searchResults:s.searchResults()})})},s.getInputSize=function(){return s.state.search?s.state.search.length:0<s.state.values.length?s.props.addPlaceholder.length:s.props.placeholder.length},s.toggleSelectAll=function(){return s.setState({values:0===s.state.values.length?s.selectAll():s.clearAll()})},s.clearAll=function(){s.props.onClearAll(),s.setState({values:[]})},s.selectAll=function(e){void 0===e&&(e=[]),s.props.onSelectAll();var t=0<e.length?e:s.props.options.filter(function(e){return!e.disabled});s.setState({values:t})},s.isSelected=function(e){return!!s.state.values.find(function(t){return d(t,s.props.valueField)===d(e,s.props.valueField)})},s.areAllSelected=function(){return s.state.values.length===s.props.options.filter(function(e){return!e.disabled}).length},s.safeString=function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},s.sortBy=function(){var e=s.props,t=e.sortBy,o=e.options;return t?(o.sort(function(e,o){return u(e,t)<u(o,t)?-1:u(e,t)>u(o,t)?1:0}),o):o},s.searchFn=function(e){var t=e.state,o=e.methods,r=new RegExp(o.safeString(t.search),"i");return o.sortBy().filter(function(e){return r.test(d(e,s.props.searchBy)||d(e,s.props.valueField))})},s.searchResults=function(){var e={state:s.state,props:s.props,methods:s.methods};return s.props.searchFn(e)||s.searchFn(e)},s.activeCursorItem=function(e){return s.setState({activeCursorItem:e})},s.handleKeyDown=function(e){var t={event:e,state:s.state,props:s.props,methods:s.methods,setState:s.setState.bind(s)};return s.props.handleKeyDownFn(t)||s.handleKeyDownFn(t)},s.handleKeyDownFn=function(e){var t=e.event,o=e.state,r=e.props,n=e.methods,a=e.setState,l=o.cursor,p=o.searchResults,i="Escape"===t.key,d="Enter"===t.key,u="ArrowUp"===t.key,h="ArrowDown"===t.key,f="Backspace"===t.key,m="Tab"===t.key&&!t.shiftKey,v=t.shiftKey&&"Tab"===t.key;if(h&&!o.dropdown)return t.preventDefault(),s.dropDown("open"),a({cursor:0});if((h||m&&o.dropdown)&&null===l)return a({cursor:0});if((u||h||v&&o.dropdown||m&&o.dropdown)&&t.preventDefault(),i&&s.dropDown("close"),d){var w=p[l];if(w&&!w.disabled){if(r.create&&c(o.search,o.values,r))return null;n.addItem(w)}}return(h||m&&o.dropdown)&&p.length===l?a({cursor:0}):((h||m&&o.dropdown)&&a(function(e){return{cursor:e.cursor+1}}),(u||v&&o.dropdown)&&0<l&&a(function(e){return{cursor:e.cursor-1}}),(u||v&&o.dropdown)&&0===l&&a({cursor:p.length}),void(f&&r.backspaceDelete&&0===s.getInputSize()&&s.setState({values:s.state.values.slice(0,-1)})))},s.renderDropdown=function(){return s.props.portal?r().createPortal(t().createElement(R,{props:s.props,state:s.state,methods:s.methods}),s.dropdownRoot):t().createElement(R,{props:s.props,state:s.state,methods:s.methods})},s.createNew=function(e){var t,o=((t={})[s.props.labelField]=e,t[s.props.valueField]=e,t);s.addItem(o),s.props.onCreateNew(o),s.setState({search:""})},s.state={dropdown:!1,values:o.values,search:"",selectBounds:{},cursor:null,searchResults:o.options},s.methods={activeCursorItem:s.activeCursorItem,addItem:s.addItem,areAllSelected:s.areAllSelected,clearAll:s.clearAll,createNew:s.createNew,dropDown:s.dropDown,getInputSize:s.getInputSize,getSelectBounds:s.getSelectBounds,getSelectRef:s.getSelectRef,handleKeyDown:s.handleKeyDown,isSelected:s.isSelected,removeItem:s.removeItem,safeString:s.safeString,searchResults:s.searchResults,selectAll:s.selectAll,setSearch:s.setSearch,sortBy:s.sortBy,toggleSelectAll:s.toggleSelectAll},s.select=t().createRef(),s.dropdownRoot="undefined"!=typeof document&&document.createElement("div"),s}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,A(e,t)}(o,e);var s=o.prototype;return s.componentDidMount=function(){this.props.portal&&this.props.portal.appendChild(this.dropdownRoot),h().addEventListener("resize",i(this.updateSelectBounds)),h().addEventListener("scroll",i(this.onScroll)),this.dropDown("close"),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen&&this.dropDown("open")},s.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()},s.componentWillUnmount=function(){this.props.portal&&this.props.portal.removeChild(this.dropdownRoot),h().removeEventListener("resize",i(this.updateSelectBounds,this.props.debounceDelay)),h().removeEventListener("scroll",i(this.onScroll,this.props.debounceDelay))},s.render=function(){var e=this,o=[n];return"rtl"===this.props.direction&&o.push(n+"-rtl"),this.props.disabled&&o.push(n+"-disabled"),void 0!==this.props.className&&o.push(this.props.className),t().createElement(p,{onClickOutside:function(t){return e.dropDown("close",t)}},t().createElement("div",k({onKeyDown:this.handleKeyDown,"aria-label":"Dropdown select","aria-expanded":this.state.dropdown,onClick:function(t){return e.dropDown("open",t)},tabIndex:this.props.disabled?"-1":"0",ref:this.select,className:o.join(" ")},this.props.additionalProps),t().createElement(b,{props:this.props,state:this.state,methods:this.methods}),(this.props.name||this.props.required)&&t().createElement("input",{tabIndex:-1,className:n+"-input-zero",name:this.props.name,required:this.props.required,pattern:this.props.pattern,defaultValue:this.state.values.map(function(t){return t[e.props.labelField]}).toString()||[],disabled:this.props.disabled}),this.props.loading&&t().createElement(O,{props:this.props}),this.props.clearable&&t().createElement(E,{props:this.props,state:this.state,methods:this.methods}),this.props.separator&&t().createElement(C,{props:this.props,state:this.state,methods:this.methods}),this.props.dropdownHandle&&t().createElement(I,{onClick:function(){return e.select.current.focus()},props:this.props,state:this.state,methods:this.methods}),this.state.dropdown&&!this.props.disabled&&this.renderDropdown()))},o}(e.Component);F.defaultProps={addPlaceholder:"",additionalProps:null,autoFocus:!1,backspaceDelete:!0,clearAllLabel:"Clear all",clearOnBlur:!0,clearOnSelect:!0,clearable:!1,closeOnScroll:!1,closeOnSelect:!1,closeOnClickInput:!1,compareValuesFunc:function(e,t){return JSON.stringify(e)===JSON.stringify(t)},create:!1,createNewLabel:"add {search}",debounceDelay:0,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(){},onSelect:function(){},onDeselect:function(){},onClearAll:function(){},onCreateNew:function(){},onDropdownClose:function(){},onDropdownCloseRequest:void 0,onDropdownOpen:function(){},onSelectAll:function(){},options:[],pattern:void 0,placeholder:"Select...",portal:null,required:!1,searchBy:"label",searchFn:function(){},searchable:!0,selectAll:!1,selectAllLabel:"Select all",separator:!1,sortBy:null,valueField:"value",values:[],defaultMenuIsOpen:!1};const P=F})(),a})());
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom"),require("prop-types")):"function"==typeof define&&define.amd?define("reactDropdownSelect",["react","react-dom","prop-types"],t):"object"==typeof exports?exports.reactDropdownSelect=t(require("react"),require("react-dom"),require("prop-types")):e.reactDropdownSelect=t(e.React,e.ReactDOM,e.PropTypes)}(this,(e,t,r)=>(()=>{"use strict";var o={602:e=>{e.exports=r},359:t=>{t.exports=e},318:e=>{e.exports=t}},n={};function s(e){var t=n[e];if(void 0!==t)return t.exports;var r=n[e]={exports:{}};return o[e](r,r.exports,s),r.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{s.r(a),s.d(a,{Select:()=>k,default:()=>A});var e=s(359),t=s.n(e),r=(s(318),s(602),"react-clean-select");function o(e,t){return o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},o(e,t)}const n=function(e){function n(){for(var r,o=arguments.length,n=Array(o),s=0;s<o;s++)n[s]=arguments[s];return(r=e.call.apply(e,[this].concat(n))||this).container=t().createRef(),r.handleClick=function(e){var t=r.container.current,o=e.target,n=r.props.onClickOutside;(t&&t===o||t&&!t.contains(o))&&n(e)},r}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,o(e,t)}(n,e);var s=n.prototype;return s.componentDidMount=function(){document.addEventListener("click",this.handleClick,!0)},s.componentWillUnmount=function(){document.removeEventListener("click",this.handleClick,!0)},s.render=function(){var e=this.props.children;return t().createElement("div",{className:r+"-container",ref:this.container},e)},n}(t().Component);var l=function(e,t,r){return!!t.find(function(t){return c(t,r.valueField)===e||c(t,r.labelField)===e})},p=function(e,t){var r;return void 0===t&&(t=0),function(){for(var o=arguments.length,n=Array(o),s=0;s<o;s++)n[s]=arguments[s];r&&clearTimeout(r),r=setTimeout(function(){e.apply(void 0,n),r=null},t)}},c=function(e,t){return t?t.split(".").reduce(function(e,t){return e[t]},e):void 0},i=function(e,t,r){if(!t)return e;var o=Array.isArray(t)?t:t.split(".").filter(function(e){return e.length});return o.length?i(e[o.shift()],o,r):void 0===e?r:e},d=function(){return"undefined"==typeof window&&(global.window={}),window};const u=function(e){var o=e.item,n=e.props,s=e.state,a=e.methods;return o&&n.optionRenderer?n.optionRenderer({item:o,props:n,state:s,methods:a}):t().createElement("span",{role:"listitem",disabled:n.disabled,className:r+"-option"+("rtl"===n.direction?" "+r+"-option-rtl":"")},t().createElement("span",{className:r+"-option-label"},c(o,n.labelField)),t().createElement("span",{className:r+"-option-remove",onClick:function(e){return a.removeItem(e,o,n.closeOnSelect)}},"×"))};function h(e,t){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},h(e,t)}var f=function(e,t){var r=e.addPlaceholder,o=e.searchable,n=e.placeholder,s=t.values&&0===t.values.length;return t.values&&0<t.values.length&&r&&o?r:s?n:""};const m=function(e){function o(){for(var r,o=arguments.length,n=Array(o),s=0;s<o;s++)n[s]=arguments[s];return(r=e.call.apply(e,[this].concat(n))||this).input=t().createRef(),r.onBlur=function(e){return e.stopPropagation(),r.props.state.dropdown?r.input.current.focus():r.input.current.blur()},r.handleKeyPress=function(e){var t=r.props,o=t.props,n=t.state,s=t.methods;return o.create&&"Enter"===e.key&&!l(n.search,[].concat(n.values,o.options),r.props)&&n.search&&null===n.cursor&&s.createNew(n.search)},r}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}(o,e);var n=o.prototype;return n.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()},n.render=function(){var e=this.props,o=e.props,n=e.state,s=e.methods;return o.inputRenderer?o.inputRenderer({props:o,state:n,methods:s,inputRef:this.input}):t().createElement("input",{ref:this.input,tabIndex:"-1",onFocus:function(e){return e.stopPropagation()},className:r+"-input"+(o.searchable?"":" "+r+"-input-readonly"),value:n.search,onClick:function(){return s.dropDown("open")},onKeyPress:this.handleKeyPress,onChange:s.setSearch,onBlur:this.onBlur,placeholder:f(o,n),disabled:o.disabled})},o}(e.Component),v=function(e){var o=e.props,n=e.state,s=e.methods;return t().createElement("div",{className:r+"-content "+(o.multi?r+"-type-multi":r+"-type-single"),onClick:function(e){return e.stopPropagation(),!0===n.dropdown&&o.closeOnClickInput&&!n.search?s.dropDown("close"):s.dropDown("open")}},o.contentRenderer?o.contentRenderer({props:o,state:n,methods:s}):t().createElement(t().Fragment,null,o.multi?n.values&&n.values.map(function(e){return t().createElement(u,{key:""+c(e,o.valueField)+c(e,o.labelField),item:e,state:n,props:o,methods:s})}):n.values&&0<n.values.length&&t().createElement("span",null,c(n.values[0],o.labelField)),t().createElement(m,{props:o,methods:s,state:n})))},w=function(e){var o=e.props,n=e.state,s=e.methods;return o.noDataRenderer?o.noDataRenderer({props:o,state:n,methods:s}):t().createElement("div",{className:r+"-no-data"},o.noDataLabel)};function b(e,t){return b=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},b(e,t)}const S=function(e){function o(){for(var r,o=arguments.length,n=Array(o),s=0;s<o;s++)n[s]=arguments[s];return(r=e.call.apply(e,[this].concat(n))||this).item=t().createRef(),r}!function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,b(e,t)}(o,e);var n=o.prototype;return n.componentDidMount=function(){var e=this.props,t=e.props,r=e.methods;this.item.current&&!t.multi&&t.keepSelectedInList&&r.isSelected(this.props.item)&&this.item.current.scrollIntoView({block:"nearest",inline:"start"})},n.componentDidUpdate=function(){this.props.state.cursor===this.props.itemIndex&&this.item.current&&this.item.current.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})},n.render=function(){var e=this.props,o=e.props,n=e.state,s=e.methods,a=e.item,l=e.itemIndex;return o.itemRenderer?o.itemRenderer({item:a,itemIndex:l,props:o,state:n,methods:s}):!o.keepSelectedInList&&s.isSelected(a)?null:t().createElement("span",{role:"option",ref:this.item,"aria-selected":s.isSelected(a),"aria-disabled":a.disabled,"aria-label":c(a,o.labelField),key:""+c(a,o.valueField)+c(a,o.labelField),tabIndex:"-1",className:r+"-item"+(s.isSelected(a)?" "+r+"-item-selected":"")+(n.cursor===l?" "+r+"-item-active":"")+(a.disabled?" "+r+"-item-disabled":""),onClick:a.disabled?void 0:function(){return s.addItem(a)},onKeyPress:a.disabled?void 0:function(){return s.addItem(a)}},c(a,o.labelField)," ",a.disabled&&t().createElement("ins",null,o.disabledLabel))},o}(e.Component);var y=function(e,t){var r=t.getSelectRef().getBoundingClientRect(),o=r.bottom+parseInt(e.dropdownHeight,10)+parseInt(e.dropdownGap,10);return"auto"===e.dropdownPosition?o>d().innerHeight&&o>r.top?"top":"bottom":e.dropdownPosition};const g=function(e){var o=e.props,n=e.state,s=e.methods;return t().createElement("div",{tabIndex:"-1","aria-expanded":"true",role:"list",className:r+"-dropdown "+r+"-dropdown-position-"+y(o,s)},o.dropdownRenderer?o.dropdownRenderer({props:o,state:n,methods:s}):t().createElement(t().Fragment,null,o.create&&n.search&&!l(n.search,[].concat(n.values,o.options),o)&&t().createElement("div",{role:"button",className:r+"-dropdown-add-new",color:o.color,onClick:function(){return s.createNew(n.search)}},o.createNewLabel.replace("{search}",'"'+n.search+'"')),0===n.searchResults.length?t().createElement(w,{className:r+"-no-data",state:n,props:o,methods:s}):n.searchResults.map(function(e,r){return t().createElement(S,{key:e[o.valueField].toString(),item:e,itemIndex:r,state:n,props:o,methods:s})}),o.selectAll&&o.options&&o.multi&&t().createElement("div",{role:"button",className:r+"-dropdown-select-all",color:o.color,onClick:function(){return s.areAllSelected()?s.clearAll():s.selectAll()}},s.areAllSelected()?o.clearAllLabel:o.selectAllLabel)))},D=function(e){var o=e.props;return o.loadingRenderer?o.loadingRenderer({props:o}):t().createElement("div",{className:r+"-loading"})},R=function(e){var o=e.props,n=e.state,s=e.methods;return o.clearRenderer?o.clearRenderer({props:o,state:n,methods:s}):t().createElement("div",{className:r+"-clear",tabIndex:"-1",onClick:function(){return s.clearAll()},onKeyPress:function(){return s.clearAll()}},"×")},O=function(e){var o=e.props,n=e.state,s=e.methods;return o.separatorRenderer?o.separatorRenderer({props:o,state:n,methods:s}):t().createElement("div",{className:r+"-separator"})},E=function(e){var o=e.props,n=e.state,s=e.methods;return t().createElement("div",{tabIndex:"-1",onClick:function(e){return s.dropDown(n.dropdown?"close":"open",e)},onKeyPress:function(e){return s.dropDown("toggle",e)},onKeyDown:function(e){return s.dropDown("toggle",e)},className:r+"-dropdown-handle "+r+"-dropdown-handle-"+(n.dropdown?"open":"closed")+(o.dropdownHandleRenderer?"":" "+r+"-dropdown-handle-rotate")},o.dropdownHandleRenderer?o.dropdownHandleRenderer({props:o,state:n,methods:s}):t().createElement("svg",{fill:"currentColor",viewBox:"0 0 40 40"},t().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 C(){return C=Object.assign?Object.assign.bind():function(e){for(var t,r=1;r<arguments.length;r++)for(var o in t=arguments[r])({}).hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},C.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 k=function(e){function o(r){var o;return(o=e.call(this,r)||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,r){return void 0===e&&(e="toggle"),void 0===r&&(r=!1),t&&t.target||t&&t.srcElement,void 0!==o.props.onDropdownCloseRequest&&o.state.dropdown&&!1===r&&"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.addItem=function(e){if(o.props.multi){if(l(c(e,o.props.valueField),o.state.values,o.props))return o.removeItem(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.removeItem=function(e,t,r){void 0===r&&(r=!1),e&&r&&(e.preventDefault(),e.stopPropagation(),o.dropDown("close"));var n=o.state.values.filter(function(e){return c(e,o.props.valueField)!==c(t,o.props.valueField)});o.setState({values:n}),o.props.onDeselect(n)},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 c(t,o.props.valueField)===c(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,r=e.options;return t?(r.sort(function(e,r){return i(e,t)<i(r,t)?-1:i(e,t)>i(r,t)?1:0}),r):r},o.searchFn=function(e){var t=e.state,r=e.methods,n=new RegExp(r.safeString(t.search),"i");return r.sortBy().filter(function(e){return n.test(c(e,o.props.searchBy)||c(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.activeCursorItem=function(e){return o.setState({activeCursorItem: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,r=e.state,n=e.props,s=e.methods,a=e.setState,p=r.cursor,c=r.searchResults,i="Escape"===t.key,d="Enter"===t.key,u="ArrowUp"===t.key,h="ArrowDown"===t.key,f="Backspace"===t.key,m="Tab"===t.key&&!t.shiftKey,v=t.shiftKey&&"Tab"===t.key;if(h&&!r.dropdown)return t.preventDefault(),o.dropDown("open"),a({cursor:0});if((h||m&&r.dropdown)&&null===p)return a({cursor:0});if((u||h||v&&r.dropdown||m&&r.dropdown)&&t.preventDefault(),i&&o.dropDown("close"),d){var w=c[p];if(w&&!w.disabled){if(n.create&&l(r.search,r.values,n))return null;s.addItem(w)}}return(h||m&&r.dropdown)&&c.length===p?a({cursor:0}):((h||m&&r.dropdown)&&a(function(e){return{cursor:e.cursor+1}}),(u||v&&r.dropdown)&&0<p&&a(function(e){return{cursor:e.cursor-1}}),(u||v&&r.dropdown)&&0===p&&a({cursor:c.length}),void(f&&n.backspaceDelete&&0===o.getInputSize()&&o.setState({values:o.state.values.slice(0,-1)})))},o.renderDropdown=function(){return t().createElement(g,{props:o.props,state:o.state,methods:o.methods})},o.createNew=function(e){var t,r=((t={})[o.props.labelField]=e,t[o.props.valueField]=e,t);o.addItem(r),o.props.onCreateNew(r),o.setState({search:""})},o.state={dropdown:!1,values:r.values,search:"",selectBounds:{},cursor:null,searchResults:r.options},o.methods={activeCursorItem:o.activeCursorItem,addItem:o.addItem,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,removeItem:o.removeItem,safeString:o.safeString,searchResults:o.searchResults,selectAll:o.selectAll,setSearch:o.setSearch,sortBy:o.sortBy,toggleSelectAll:o.toggleSelectAll},o.select=t().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)}(o,e);var s=o.prototype;return s.componentDidMount=function(){d().addEventListener("resize",p(this.updateSelectBounds)),d().addEventListener("scroll",p(this.onScroll)),this.dropDown("close"),this.select&&this.updateSelectBounds(),this.props.defaultMenuIsOpen&&this.dropDown("open")},s.componentDidUpdate=function(e,t){var r=this;!this.props.compareValuesFunc(e.values,this.props.values)&&this.props.compareValuesFunc(e.values,t.values)&&(this.setState({values:this.props.values},function(){r.props.onChange(r.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()},s.componentWillUnmount=function(){d().removeEventListener("resize",p(this.updateSelectBounds,this.props.debounceDelay)),d().removeEventListener("scroll",p(this.onScroll,this.props.debounceDelay))},s.render=function(){var e=this,o=[r];return"rtl"===this.props.direction&&o.push(r+"-rtl"),this.props.disabled&&o.push(r+"-disabled"),void 0!==this.props.className&&o.push(this.props.className),t().createElement(n,{onClickOutside:function(t){return e.dropDown("close",t)}},t().createElement("div",C({onKeyDown:this.handleKeyDown,"aria-label":"Dropdown select","aria-expanded":this.state.dropdown,onClick:function(t){return e.dropDown("open",t)},tabIndex:this.props.disabled?"-1":"0",ref:this.select,className:o.join(" ")},this.props.additionalProps),t().createElement(v,{props:this.props,state:this.state,methods:this.methods}),(this.props.name||this.props.required)&&t().createElement("input",{tabIndex:-1,className:r+"-input-zero",name:this.props.name,required:this.props.required,pattern:this.props.pattern,defaultValue:this.state.values.map(function(t){return t[e.props.labelField]}).toString()||[],disabled:this.props.disabled}),this.props.loading&&t().createElement(D,{props:this.props}),this.props.clearable&&t().createElement(R,{props:this.props,state:this.state,methods:this.methods}),this.props.separator&&t().createElement(O,{props:this.props,state:this.state,methods:this.methods}),this.props.dropdownHandle&&t().createElement(E,{onClick:function(){return e.select.current.focus()},props:this.props,state:this.state,methods:this.methods}),this.state.dropdown&&!this.props.disabled&&this.renderDropdown()))},o}(e.Component);k.defaultProps={addPlaceholder:"",additionalProps:null,autoFocus:!1,backspaceDelete:!0,clearAllLabel:"Clear all",clearOnBlur:!0,clearOnSelect:!0,clearable:!1,closeOnScroll:!1,closeOnSelect:!1,closeOnClickInput:!1,compareValuesFunc:function(e,t){return JSON.stringify(e)===JSON.stringify(t)},create:!1,createNewLabel:"add {search}",debounceDelay:0,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(){},onSelect:function(){},onDeselect:function(){},onClearAll:function(){},onCreateNew:function(){},onDropdownClose:function(){},onDropdownCloseRequest:void 0,onDropdownOpen:function(){},onSelectAll:function(){},options:[],pattern:void 0,placeholder:"Select...",required:!1,searchBy:"label",searchFn:function(){},searchable:!0,selectAll:!1,selectAllLabel:"Select all",separator:!1,sortBy:null,valueField:"value",values:[],defaultMenuIsOpen:!1};const A=k})(),a})());
|
package/lib/components/Item.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.__esModule=!0,exports.default=void 0;var _react=_interopRequireWildcard(require("react")),_util=require("../util"),PropTypes=_interopRequireWildcard(require("prop-types")),_constants=require("../constants");function _interopRequireWildcard(a,b){if("function"==typeof WeakMap)var c=new WeakMap,d=new WeakMap;return(_interopRequireWildcard=function(a,b){if(!b&&a&&a.__esModule)return a;var e,g,h={__proto__:null,default:a};if(null===a||"object"!=typeof a&&"function"!=typeof a)return h;if(e=b?d:c){if(e.has(a))return e.get(a);e.set(a,h)}for(var f in a)"default"!=f&&{}.hasOwnProperty.call(a,f)&&((g=(e=Object.defineProperty)&&Object.getOwnPropertyDescriptor(a,f))&&(g.get||g.set)?e(h,f,g):h[f]=a[f]);return h})(a,b)}function _inheritsLoose(a,b){a.prototype=Object.create(b.prototype),a.prototype.constructor=a,_setPrototypeOf(a,b)}function _setPrototypeOf(a,b){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,b){return a.__proto__=b,a},_setPrototypeOf(a,b)}var Item=/*#__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.item=/*#__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.item.current&&!b.multi&&b.keepSelectedInList&&c.isSelected(this.props.item)&&this.item.current.scrollIntoView({block:"nearest",inline:"start"})},c.componentDidUpdate=function(){this.props.state.cursor===this.props.itemIndex&&this.item.current&&this.item.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.item,f=a.itemIndex;return b.itemRenderer?b.itemRenderer({item:e,itemIndex:f,props:b,state:c,methods:d}):!b.keepSelectedInList&&d.isSelected(e)?null:/*#__PURE__*/_react.default.createElement("span",{role:"option",ref:this.item,"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+"-item"+(d.isSelected(e)?" "+_constants.LIB_NAME+"-item-selected":"")+(c.cursor===f?" "+_constants.LIB_NAME+"-item-active":"")+(e.disabled?" "+_constants.LIB_NAME+"-item-disabled":""),onClick:e.disabled?void 0:function(){return d.addItem(e)},onKeyPress:e.disabled?void 0:function(){return d.addItem(e)}},(0,_util.getByPath)(e,b.labelField)," ",e.disabled&&/*#__PURE__*/_react.default.createElement("ins",null,b.disabledLabel))},b}(_react.Component),_default=exports.default=Item;
|