react-ui-basics 0.0.179 → 0.0.180
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/AutocompleteSelect.js +29 -26
- package/AutocompleteSelect.js.map +1 -1
- package/bundle.css +597 -597
- package/package.json +1 -1
- package/src/AutocompleteSelect.js +4 -1
package/AutocompleteSelect.js
CHANGED
|
@@ -115,8 +115,10 @@ var AutocompleteSelect = function (_PureComponent) {
|
|
|
115
115
|
var _this$state = __state(_this),
|
|
116
116
|
filterValue = _this$state.filterValue,
|
|
117
117
|
currentSelection = _this$state.selected;
|
|
118
|
-
var _this$
|
|
119
|
-
|
|
118
|
+
var _this$props3 = __props(_this),
|
|
119
|
+
_this$props3$labels = _this$props3.labels,
|
|
120
|
+
labels = _this$props3$labels === void 0 ? {} : _this$props3$labels,
|
|
121
|
+
onFilterInputChange = _this$props3.onFilterInputChange;
|
|
120
122
|
if (selectedId == null && (!!filterValue || !required) && allowCustom && (!_this.input || !_this.input.check())) selectedId = filterValue.trim();
|
|
121
123
|
var isMultiSelect = isMultipleSelect(mode);
|
|
122
124
|
if (!selectedId && isMultiSelect) {
|
|
@@ -147,6 +149,7 @@ var AutocompleteSelect = function (_PureComponent) {
|
|
|
147
149
|
filterValue: filterValueWithCustom,
|
|
148
150
|
errored: errored
|
|
149
151
|
});
|
|
152
|
+
if (filterValueWithCustom !== filterValue) orNoop(onFilterInputChange)(filterValueWithCustom);
|
|
150
153
|
if (isActive && _this.input) _this.input.getInput().focus();
|
|
151
154
|
orNoop(onSelect)(selectedId);
|
|
152
155
|
orNoop(onChange)(Object.values(selected));
|
|
@@ -234,25 +237,25 @@ var AutocompleteSelect = function (_PureComponent) {
|
|
|
234
237
|
key: [ReactConstants[3]],
|
|
235
238
|
value: function render() {
|
|
236
239
|
var _this3 = this;
|
|
237
|
-
var _this$
|
|
238
|
-
childComponent = _this$
|
|
239
|
-
childProps = _this$
|
|
240
|
-
withArrow = _this$
|
|
241
|
-
withFilter = _this$
|
|
242
|
-
withReset = _this$
|
|
243
|
-
filter = _this$
|
|
244
|
-
label = _this$
|
|
245
|
-
inputLabel = _this$
|
|
246
|
-
mode = _this$
|
|
247
|
-
selectedMode = _this$
|
|
248
|
-
prefilter = _this$
|
|
249
|
-
className = _this$
|
|
250
|
-
scrollToValue = _this$
|
|
251
|
-
scroll = _this$
|
|
252
|
-
required = _this$
|
|
253
|
-
allowCustom = _this$
|
|
254
|
-
inlineSelected = _this$
|
|
255
|
-
removeIcon = _this$
|
|
240
|
+
var _this$props4 = __props(this),
|
|
241
|
+
childComponent = _this$props4.childComponent,
|
|
242
|
+
childProps = _this$props4.childProps,
|
|
243
|
+
withArrow = _this$props4.withArrow,
|
|
244
|
+
withFilter = _this$props4.withFilter,
|
|
245
|
+
withReset = _this$props4.withReset,
|
|
246
|
+
filter = _this$props4.filter,
|
|
247
|
+
label = _this$props4.label,
|
|
248
|
+
inputLabel = _this$props4.inputLabel,
|
|
249
|
+
mode = _this$props4.mode,
|
|
250
|
+
selectedMode = _this$props4.selectedMode,
|
|
251
|
+
prefilter = _this$props4.prefilter,
|
|
252
|
+
className = _this$props4[ReactConstants[5]],
|
|
253
|
+
scrollToValue = _this$props4.scrollToValue,
|
|
254
|
+
scroll = _this$props4.scroll,
|
|
255
|
+
required = _this$props4.required,
|
|
256
|
+
allowCustom = _this$props4.allowCustom,
|
|
257
|
+
inlineSelected = _this$props4.inlineSelected,
|
|
258
|
+
removeIcon = _this$props4.removeIcon;
|
|
256
259
|
var id = __props(this).id || this.randomId;
|
|
257
260
|
var selectedComponent = __props(this).selectedComponent || childComponent;
|
|
258
261
|
var _this$state2 = __state(this),
|
|
@@ -265,11 +268,11 @@ var AutocompleteSelect = function (_PureComponent) {
|
|
|
265
268
|
if (__props(this).isActive !== UNDEFINED) {
|
|
266
269
|
isActive = __props(this).isActive;
|
|
267
270
|
}
|
|
268
|
-
var _this$
|
|
269
|
-
_this$
|
|
270
|
-
data = _this$
|
|
271
|
-
_this$
|
|
272
|
-
labels = _this$
|
|
271
|
+
var _this$props5 = __props(this),
|
|
272
|
+
_this$props5$data = __data(_this$props5),
|
|
273
|
+
data = _this$props5$data === void 0 ? [] : _this$props5$data,
|
|
274
|
+
_this$props5$labels = _this$props5.labels,
|
|
275
|
+
labels = _this$props5$labels === void 0 ? {} : _this$props5$labels;
|
|
273
276
|
if (__state(this).data) data = __state(this).data;
|
|
274
277
|
if (!Array.isArray(data)) data = [];
|
|
275
278
|
var selectedIds = Object.values(selected);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteSelect.js","sources":["./src/AutocompleteSelect.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './AutocompleteSelect.css'\nimport TextField from \"./TextField\";\nimport FilteredList, {getLabel} from \"./FilteredList\";\nimport {\n classNames,\n continuousIncludes,\n getRandomId,\n ref,\n orNoop,\n preventDefault,\n stopPropagation,\n DOCUMENT,\n addEventListener,\n removeEventListener,\n isObject,\n isFunction,\n isString, UNDEFINED, memo\n} from \"./Tools\";\nimport Button from \"./Button\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport {PureComponent} from \"./ReactConstants\";\n\nexport const MODE_DEFAULT = 'default';\nexport const MODE_INLINE = 'inline';\nexport const MODE_INLINE_MULTIPLE = 'inline-multiple';\nexport const MODE_MULTIPLE_AUTO = 'multiple-auto';\nexport const MODE_MULTIPLE = 'multiple';\nexport const MODE_MULTIPLE_MINI = 'multiple-mini';\nexport const MODE_MINI = 'mini';\nexport const MODE_MULTIPLE_MINI_INLINE = 'multiple-mini-inline';\n\n\nconst DummyChild = ({id, label, dataConsumer, onClick}) => {\n orNoop(dataConsumer)(label || id);\n return <div className={`DummyChild`} onClick={onClick}>{label || id}</div>\n};\n\nconst prepareSelected = (value) => {\n let result;\n if (value != null) {\n if (Array.isArray(value))\n result = value.reduce((map, obj) => {\n map[obj] = obj;\n return map;\n }, {});\n else if (isObject(value))\n result = value;\n else if (value)\n result = {[value]: value};\n else\n result = {}\n } else {\n result = {};\n }\n return result;\n};\n\nconst findParent = (el, tag) => {\n if (el != null) {\n const tagName = el.tagName;\n if (tagName && tagName.toUpperCase() === tag.toUpperCase()) {\n return el;\n } else {\n return findParent(el.parentNode, tag)\n }\n }\n return null;\n}\n\nfunction isMultipleSelect(mode) {\n return mode === MODE_MULTIPLE || mode === MODE_MULTIPLE_AUTO || mode === MODE_INLINE_MULTIPLE || mode === MODE_MULTIPLE_MINI || mode === MODE_MULTIPLE_MINI_INLINE;\n}\n\nclass AutocompleteSelect extends PureComponent {\n\n static propTypes = {\n mode: PropTypes.oneOf([MODE_DEFAULT, MODE_INLINE, MODE_MULTIPLE, MODE_MULTIPLE_AUTO, MODE_MULTIPLE_MINI, MODE_MULTIPLE_MINI_INLINE, MODE_INLINE_MULTIPLE, MODE_MINI])\n };\n\n constructor(props) {\n super(props);\n const that = this;\n that.state = {\n selected: prepareSelected(props.value),\n isActive: !!props.focused,\n\n };\n that.randomId = getRandomId('acs-');\n\n const {data, getSelected} = props;\n isFunction(data) && data(data => that.setState({data}));\n\n getSelected && getSelected(() => Object.values(that.state.selected));\n }\n\n componentDidMount() {\n addEventListener(DOCUMENT, 'mousedown', this.listener = (e) => {\n if (this.state.isActive && this.el && !this.el.contains(e.target)) {\n this.onClickOutside()\n }\n })\n if (this.props.required) {\n const form = findParent(this.el.parentNode, 'form')\n if (form) {\n addEventListener(this.submitButton = form.querySelector('button[type=submit]'), 'click', this.formSubmitListener = (e) => {\n const errored = Object.keys(this.state.selected).length === 0;\n this.setState({errored: errored})\n })\n }\n }\n this.initSelected(this.props, this.state)\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value)\n this.initSelected(this.props, this.state)\n }\n\n initSelected = ({value, mode, allowCustom}, {filterValue = ''}) => {\n this.setState({\n selected: prepareSelected(value),\n filterValue: allowCustom && isString(value) && !isMultipleSelect(mode) ? value : filterValue,\n });\n };\n\n componentWillUnmount() {\n removeEventListener(DOCUMENT, 'mousedown', this.listener)\n removeEventListener(this.submitButton, 'click', this.formSubmitListener)\n }\n\n static defaultProps = {\n childComponent: DummyChild,\n withArrow: true,\n withFilter: true,\n withReset: false,\n scrollToValue: false,\n mode: MODE_DEFAULT,\n selectedMode: 'full',\n removeIcon: <MaterialIcon icon=\"close\"/>,\n };\n\n createFilter = memo((prefilter, filterValue, filterValueTrimmed, filter) => it => {\n if (!it) return false;\n if (prefilter && !prefilter(it)) return false;\n if (!filterValue) return true;\n\n if (filter) return filter(it, filterValueTrimmed);\n\n let value = (isString(it) ? it : (it.name || it.label || '')).toLowerCase().trim();\n return continuousIncludes(value, filterValueTrimmed);\n }\n )\n\n render() {\n const {\n childComponent,\n childProps,\n withArrow,\n withFilter,\n withReset,\n filter,\n label,\n inputLabel,\n mode,\n selectedMode,\n prefilter,\n className,\n scrollToValue,\n scroll,\n required,\n allowCustom,\n inlineSelected,\n removeIcon,\n } = this.props;\n const id = this.props.id || this.randomId;\n const selectedComponent = this.props.selectedComponent || childComponent;\n const {selected = {}, filterValue = '', errored} = this.state;\n let {isActive} = this.state;\n if (this.props.isActive !== UNDEFINED) {\n isActive = this.props.isActive\n }\n let {data = [], labels = {}} = this.props;\n if (this.state.data)\n data = this.state.data;\n\n if (!Array.isArray(data))\n data = [];\n\n const selectedIds = Object.values(selected);\n const hasSelected = selectedIds.length !== 0;\n const setActive = (e) => {\n stopPropagation(e);\n this.setState({isActive: true}, () => (scrollToValue && selectedIds.length > 0) && this.list.scrollTo(selectedIds[0]));\n };\n const toggle = (e) => {\n if (!this.state.isActive) {\n setActive(e);\n } else {\n stopPropagation(e);\n this.setState({isActive: false});\n }\n };\n\n const isInline = mode === MODE_INLINE || mode === MODE_INLINE_MULTIPLE || mode === MODE_MULTIPLE_MINI_INLINE;\n const filterValueTrimmed = filterValue.trim();\n const dataFiltered = allowCustom ? [filterValueTrimmed, ...data.filter(suggestion => suggestion !== filterValueTrimmed)] : data;\n\n const filterFunction = this.createFilter(prefilter, filterValue, filterValueTrimmed.toLowerCase(), filter)\n return (\n <div id={id}\n className={classNames(\n 'AutocompleteSelect',\n mode,\n isMultipleSelect(mode) && 'multi',\n className,\n withFilter ? 'withFilter' : 'withoutFilter',\n isActive && 'active',\n errored && 'errored',\n inlineSelected && 'inlineSelected',\n hasSelected && 'hasSelected',\n )}\n ref={ref('el', this)}>\n {label && <label className={classNames(`label`, (hasSelected || filterValue) && 'active', hasSelected && 'hasSelected')}\n htmlFor={'f-' + id}\n onClick={() => {\n if (mode === MODE_MULTIPLE_MINI_INLINE || !isActive) {\n toggle();\n }\n }}\n >\n {label}\n {required && ' *'}\n {withArrow && <span className=\"arrow\"/>}\n </label>}\n\n {(!isActive || mode === MODE_MULTIPLE || mode === MODE_INLINE_MULTIPLE || mode === MODE_MULTIPLE_MINI_INLINE || mode === MODE_MULTIPLE_AUTO || !withFilter) && !inlineSelected && hasSelected && (\n <div\n className={classNames('selected',\n !label && 'nolabel',\n (mode === MODE_MULTIPLE_MINI || mode === MODE_MINI || mode === MODE_MULTIPLE_MINI_INLINE) && 'clickable',\n selectedMode)}\n onClick={toggle}>\n\n {selectedMode === 'full' && selectedIds.map(id =>\n <div className=\"value\" key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n <div className=\"button remove\" onClick={e => {\n stopPropagation(e);\n this.remove(id);\n }}>\n {removeIcon}\n </div>\n </div>\n )}\n {selectedMode === 'inline' && selectedIds.map(id =>\n <React.Fragment key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n {id !== selectedIds[selectedIds.length - 1] && ', '}\n </React.Fragment>\n )}\n {!label && withArrow && <span className=\"arrow\"/>}\n {withReset && <Button className=\"reset\" raised={false} onClick={this.clean}>\n {removeIcon}\n </Button>}\n </div>\n )}\n\n {inlineSelected && hasSelected && <>\n {selectedMode === 'full' && selectedIds.map(id =>\n <div className=\"value\" key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n <div className=\"button remove\" onClick={e => {\n stopPropagation(e);\n this.remove(id);\n }}>\n {removeIcon}\n </div>\n </div>\n )}\n {selectedMode === 'inline' && selectedIds.map(id =>\n <React.Fragment key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n {id !== selectedIds[selectedIds.length - 1] && ', '}\n </React.Fragment>\n )}\n </>}\n\n {(isActive || (!hasSelected && mode !== MODE_MULTIPLE_MINI_INLINE) || mode === MODE_MULTIPLE || (mode === MODE_MULTIPLE_AUTO && selectedIds.length > 1) || mode === MODE_INLINE_MULTIPLE) && (\n <div className={`input`} data-value={filterValue}>\n {withFilter && <TextField autoComplete=\"new-password\" id={'f-' + id}\n ref={ref('input', this)}\n focused={isActive}\n value={filterValue}\n label={inputLabel}\n onChange={this.onChange}\n onFocus={e => this.setState({isActive: true})}\n check={this.props.filterCheck}\n onKeyDown={e => {\n const keyCode = e.keyCode;\n if (keyCode === 38/*up*/) {\n preventDefault(e);\n this.prev();\n } else if (keyCode === 40/*down*/) {\n preventDefault(e);\n this.next();\n } else if (keyCode === 13/*enter*/) {\n preventDefault(e);\n this.onSelect(this.getSelected())\n } else if (keyCode === 9/*tab*/) {\n this.onSelect(this.getSelected())\n } else if (keyCode === 8/*backspace*/) {\n if (!filterValue && (selectedIds.length !== 0) && isMultipleSelect(mode)) {\n this.remove(selectedIds[selectedIds.length - 1]);\n }\n this.reset()\n } else if (keyCode === 46/*delete*/) {\n this.reset()\n } else if (keyCode === 27/*esc*/) {\n this.setState({\n isActive: false,\n filterValue: isMultipleSelect(mode) ? '' : (allowCustom ? filterValue : ''),\n });\n this.input.getInput().blur()\n this.onCancel();\n }\n // console.log('key pressed:', e.keyCode)\n }}\n />}\n {!withFilter && inputLabel && <label>{inputLabel}</label>}\n </div>\n )}\n\n <FilteredList className={classNames(isActive && 'visible')}\n ref={ref('list', this)}\n filter={filterFunction}\n selectSingle={!allowCustom}\n scroll={scroll}\n inline={isInline}\n nextProvider={ref('next', this)}\n prevProvider={ref('prev', this)}\n selectedProvider={ref('getSelected', this)}\n resetProvider={ref('reset', this)}\n onSelect={this.onSelect}\n selected={selected}\n childComponent={childComponent}\n childProps={childProps}\n data={dataFiltered}\n labels={labels}\n />\n </div>\n )\n }\n\n onClickOutside = () => {\n const {allowCustom, required} = this.props;\n const {filterValue} = this.state;\n if (allowCustom && (!!filterValue || !required)) {\n this.onSelect()\n }\n\n this.setState({isActive: false});\n\n this.onCancel();\n };\n\n onCancel = () => {\n orNoop(this.props.onCancel)()\n };\n\n onSelect = (selectedId) => {\n const {mode, required, allowCustom, onSelect, onChange, default: defaultValue} = this.props;\n const {filterValue, selected: currentSelection} = this.state;\n const {labels = {}} = this.props;\n\n if (selectedId == null && (!!filterValue || !required) && allowCustom && (!this.input || !this.input.check()))\n selectedId = filterValue.trim();\n\n const isMultiSelect = isMultipleSelect(mode);\n\n if (!selectedId && isMultiSelect) {\n selectedId = null;\n }\n\n // debugger\n\n const isSelected = selectedId != null;\n\n let selected = {...currentSelection};\n if (selected[selectedId] && (defaultValue || isMultiSelect)) {\n delete selected[selectedId];\n if (defaultValue && Object.keys(selected).length === 0)\n selected[defaultValue] = defaultValue;\n } else if (isSelected && (isMultiSelect)) {\n selected[selectedId] = selectedId;\n } else if (isSelected) {\n selected = {[selectedId]: selectedId};\n }\n\n const errored = required && Object.keys(selected) === 0;\n\n const isActive = mode === MODE_MULTIPLE_MINI_INLINE || (isMultiSelect && isSelected)\n\n let customValue = '';\n if (allowCustom && selectedId) {\n let label\n if (isFunction(labels))\n label = labels(selectedId)\n else\n label = labels[selectedId]\n\n if (label && isString(label))\n customValue = label\n }\n\n let filterValueWithCustom = isMultiSelect ? '' : customValue;\n this.setState({\n isActive: isActive,\n selected: selected,\n filterValue: filterValueWithCustom,\n errored,\n });\n\n if (isActive && this.input)\n this.input.getInput().focus()\n\n orNoop(onSelect)(selectedId);\n orNoop(onChange)(Object.values(selected));\n };\n\n clean = (e) => {\n preventDefault(e);\n stopPropagation(e);\n\n this.setState({\n isActive: false,\n selected: {},\n filterValue: '',\n });\n\n orNoop(this.props.onSelect)(null);\n orNoop(this.props.onChange)([]);\n\n this.initSelected(this.props, this.state);\n };\n\n remove = (id) => {\n let result = {\n ...this.state,\n selected: {...this.state.selected},\n filterValue: '',\n };\n delete result.selected[id];\n this.setState(result);\n orNoop(this.props.onChange)(Object.values(result.selected));\n };\n\n onChange = (event) => {\n const value = event.target.value;\n this.setState({filterValue: value});\n this.props.onFilterInputChange?.(value);\n }\n}\n\nexport default AutocompleteSelect;\n"],"names":["MODE_DEFAULT","MODE_INLINE","MODE_INLINE_MULTIPLE","MODE_MULTIPLE_AUTO","MODE_MULTIPLE","MODE_MULTIPLE_MINI","MODE_MINI","MODE_MULTIPLE_MINI_INLINE","DummyChild","id","label","dataConsumer","onClick","orNoop","prepareSelected","value","result","Array","isArray","reduce","map","obj","isObject","findParent","el","tag","tagName","toUpperCase","parentNode","isMultipleSelect","mode","AutocompleteSelect","props","initSelected","allowCustom","filterValue","setState","selected","isString","createFilter","memo","prefilter","filterValueTrimmed","filter","it","name","toLowerCase","trim","continuousIncludes","onClickOutside","required","state","onSelect","isActive","onCancel","selectedId","onChange","defaultValue","currentSelection","labels","input","check","isMultiSelect","isSelected","Object","keys","length","errored","customValue","isFunction","filterValueWithCustom","getInput","focus","values","clean","e","preventDefault","stopPropagation","remove","_objectSpread","event","target","onFilterInputChange","that","focused","randomId","getRandomId","data","getSelected","addEventListener","DOCUMENT","listener","contains","form","submitButton","querySelector","formSubmitListener","prevProps","prevState","snapshot","removeEventListener","childComponent","childProps","withArrow","withFilter","withReset","inputLabel","selectedMode","className","scrollToValue","scroll","inlineSelected","removeIcon","selectedComponent","UNDEFINED","selectedIds","hasSelected","setActive","list","scrollTo","toggle","isInline","dataFiltered","suggestion","filterFunction","classNames","ref","React","createElement","getLabel","filterCheck","keyCode","prev","next","reset","blur","PureComponent","propTypes","PropTypes","oneOf","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AutocompleteSelect.js","sources":["./src/AutocompleteSelect.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './AutocompleteSelect.css'\nimport TextField from \"./TextField\";\nimport FilteredList, {getLabel} from \"./FilteredList\";\nimport {\n classNames,\n continuousIncludes,\n getRandomId,\n ref,\n orNoop,\n preventDefault,\n stopPropagation,\n DOCUMENT,\n addEventListener,\n removeEventListener,\n isObject,\n isFunction,\n isString, UNDEFINED, memo\n} from \"./Tools\";\nimport Button from \"./Button\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport {PureComponent} from \"./ReactConstants\";\n\nexport const MODE_DEFAULT = 'default';\nexport const MODE_INLINE = 'inline';\nexport const MODE_INLINE_MULTIPLE = 'inline-multiple';\nexport const MODE_MULTIPLE_AUTO = 'multiple-auto';\nexport const MODE_MULTIPLE = 'multiple';\nexport const MODE_MULTIPLE_MINI = 'multiple-mini';\nexport const MODE_MINI = 'mini';\nexport const MODE_MULTIPLE_MINI_INLINE = 'multiple-mini-inline';\n\n\nconst DummyChild = ({id, label, dataConsumer, onClick}) => {\n orNoop(dataConsumer)(label || id);\n return <div className={`DummyChild`} onClick={onClick}>{label || id}</div>\n};\n\nconst prepareSelected = (value) => {\n let result;\n if (value != null) {\n if (Array.isArray(value))\n result = value.reduce((map, obj) => {\n map[obj] = obj;\n return map;\n }, {});\n else if (isObject(value))\n result = value;\n else if (value)\n result = {[value]: value};\n else\n result = {}\n } else {\n result = {};\n }\n return result;\n};\n\nconst findParent = (el, tag) => {\n if (el != null) {\n const tagName = el.tagName;\n if (tagName && tagName.toUpperCase() === tag.toUpperCase()) {\n return el;\n } else {\n return findParent(el.parentNode, tag)\n }\n }\n return null;\n}\n\nfunction isMultipleSelect(mode) {\n return mode === MODE_MULTIPLE || mode === MODE_MULTIPLE_AUTO || mode === MODE_INLINE_MULTIPLE || mode === MODE_MULTIPLE_MINI || mode === MODE_MULTIPLE_MINI_INLINE;\n}\n\nclass AutocompleteSelect extends PureComponent {\n\n static propTypes = {\n mode: PropTypes.oneOf([MODE_DEFAULT, MODE_INLINE, MODE_MULTIPLE, MODE_MULTIPLE_AUTO, MODE_MULTIPLE_MINI, MODE_MULTIPLE_MINI_INLINE, MODE_INLINE_MULTIPLE, MODE_MINI])\n };\n\n constructor(props) {\n super(props);\n const that = this;\n that.state = {\n selected: prepareSelected(props.value),\n isActive: !!props.focused,\n\n };\n that.randomId = getRandomId('acs-');\n\n const {data, getSelected} = props;\n isFunction(data) && data(data => that.setState({data}));\n\n getSelected && getSelected(() => Object.values(that.state.selected));\n }\n\n componentDidMount() {\n addEventListener(DOCUMENT, 'mousedown', this.listener = (e) => {\n if (this.state.isActive && this.el && !this.el.contains(e.target)) {\n this.onClickOutside()\n }\n })\n if (this.props.required) {\n const form = findParent(this.el.parentNode, 'form')\n if (form) {\n addEventListener(this.submitButton = form.querySelector('button[type=submit]'), 'click', this.formSubmitListener = (e) => {\n const errored = Object.keys(this.state.selected).length === 0;\n this.setState({errored: errored})\n })\n }\n }\n this.initSelected(this.props, this.state)\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value)\n this.initSelected(this.props, this.state)\n }\n\n initSelected = ({value, mode, allowCustom}, {filterValue = ''}) => {\n this.setState({\n selected: prepareSelected(value),\n filterValue: allowCustom && isString(value) && !isMultipleSelect(mode) ? value : filterValue,\n });\n };\n\n componentWillUnmount() {\n removeEventListener(DOCUMENT, 'mousedown', this.listener)\n removeEventListener(this.submitButton, 'click', this.formSubmitListener)\n }\n\n static defaultProps = {\n childComponent: DummyChild,\n withArrow: true,\n withFilter: true,\n withReset: false,\n scrollToValue: false,\n mode: MODE_DEFAULT,\n selectedMode: 'full',\n removeIcon: <MaterialIcon icon=\"close\"/>,\n };\n\n createFilter = memo((prefilter, filterValue, filterValueTrimmed, filter) => it => {\n if (!it) return false;\n if (prefilter && !prefilter(it)) return false;\n if (!filterValue) return true;\n\n if (filter) return filter(it, filterValueTrimmed);\n\n let value = (isString(it) ? it : (it.name || it.label || '')).toLowerCase().trim();\n return continuousIncludes(value, filterValueTrimmed);\n }\n )\n\n render() {\n const {\n childComponent,\n childProps,\n withArrow,\n withFilter,\n withReset,\n filter,\n label,\n inputLabel,\n mode,\n selectedMode,\n prefilter,\n className,\n scrollToValue,\n scroll,\n required,\n allowCustom,\n inlineSelected,\n removeIcon,\n } = this.props;\n const id = this.props.id || this.randomId;\n const selectedComponent = this.props.selectedComponent || childComponent;\n const {selected = {}, filterValue = '', errored} = this.state;\n let {isActive} = this.state;\n if (this.props.isActive !== UNDEFINED) {\n isActive = this.props.isActive\n }\n let {data = [], labels = {}} = this.props;\n if (this.state.data)\n data = this.state.data;\n\n if (!Array.isArray(data))\n data = [];\n\n const selectedIds = Object.values(selected);\n const hasSelected = selectedIds.length !== 0;\n const setActive = (e) => {\n stopPropagation(e);\n this.setState({isActive: true}, () => (scrollToValue && selectedIds.length > 0) && this.list.scrollTo(selectedIds[0]));\n };\n const toggle = (e) => {\n if (!this.state.isActive) {\n setActive(e);\n } else {\n stopPropagation(e);\n this.setState({isActive: false});\n }\n };\n\n const isInline = mode === MODE_INLINE || mode === MODE_INLINE_MULTIPLE || mode === MODE_MULTIPLE_MINI_INLINE;\n const filterValueTrimmed = filterValue.trim();\n const dataFiltered = allowCustom ? [filterValueTrimmed, ...data.filter(suggestion => suggestion !== filterValueTrimmed)] : data;\n\n const filterFunction = this.createFilter(prefilter, filterValue, filterValueTrimmed.toLowerCase(), filter)\n return (\n <div id={id}\n className={classNames(\n 'AutocompleteSelect',\n mode,\n isMultipleSelect(mode) && 'multi',\n className,\n withFilter ? 'withFilter' : 'withoutFilter',\n isActive && 'active',\n errored && 'errored',\n inlineSelected && 'inlineSelected',\n hasSelected && 'hasSelected',\n )}\n ref={ref('el', this)}>\n {label && <label className={classNames(`label`, (hasSelected || filterValue) && 'active', hasSelected && 'hasSelected')}\n htmlFor={'f-' + id}\n onClick={() => {\n if (mode === MODE_MULTIPLE_MINI_INLINE || !isActive) {\n toggle();\n }\n }}\n >\n {label}\n {required && ' *'}\n {withArrow && <span className=\"arrow\"/>}\n </label>}\n\n {(!isActive || mode === MODE_MULTIPLE || mode === MODE_INLINE_MULTIPLE || mode === MODE_MULTIPLE_MINI_INLINE || mode === MODE_MULTIPLE_AUTO || !withFilter) && !inlineSelected && hasSelected && (\n <div\n className={classNames('selected',\n !label && 'nolabel',\n (mode === MODE_MULTIPLE_MINI || mode === MODE_MINI || mode === MODE_MULTIPLE_MINI_INLINE) && 'clickable',\n selectedMode)}\n onClick={toggle}>\n\n {selectedMode === 'full' && selectedIds.map(id =>\n <div className=\"value\" key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n <div className=\"button remove\" onClick={e => {\n stopPropagation(e);\n this.remove(id);\n }}>\n {removeIcon}\n </div>\n </div>\n )}\n {selectedMode === 'inline' && selectedIds.map(id =>\n <React.Fragment key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n {id !== selectedIds[selectedIds.length - 1] && ', '}\n </React.Fragment>\n )}\n {!label && withArrow && <span className=\"arrow\"/>}\n {withReset && <Button className=\"reset\" raised={false} onClick={this.clean}>\n {removeIcon}\n </Button>}\n </div>\n )}\n\n {inlineSelected && hasSelected && <>\n {selectedMode === 'full' && selectedIds.map(id =>\n <div className=\"value\" key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n <div className=\"button remove\" onClick={e => {\n stopPropagation(e);\n this.remove(id);\n }}>\n {removeIcon}\n </div>\n </div>\n )}\n {selectedMode === 'inline' && selectedIds.map(id =>\n <React.Fragment key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n {id !== selectedIds[selectedIds.length - 1] && ', '}\n </React.Fragment>\n )}\n </>}\n\n {(isActive || (!hasSelected && mode !== MODE_MULTIPLE_MINI_INLINE) || mode === MODE_MULTIPLE || (mode === MODE_MULTIPLE_AUTO && selectedIds.length > 1) || mode === MODE_INLINE_MULTIPLE) && (\n <div className={`input`} data-value={filterValue}>\n {withFilter && <TextField autoComplete=\"new-password\" id={'f-' + id}\n ref={ref('input', this)}\n focused={isActive}\n value={filterValue}\n label={inputLabel}\n onChange={this.onChange}\n onFocus={e => this.setState({isActive: true})}\n check={this.props.filterCheck}\n onKeyDown={e => {\n const keyCode = e.keyCode;\n if (keyCode === 38/*up*/) {\n preventDefault(e);\n this.prev();\n } else if (keyCode === 40/*down*/) {\n preventDefault(e);\n this.next();\n } else if (keyCode === 13/*enter*/) {\n preventDefault(e);\n this.onSelect(this.getSelected())\n } else if (keyCode === 9/*tab*/) {\n this.onSelect(this.getSelected())\n } else if (keyCode === 8/*backspace*/) {\n if (!filterValue && (selectedIds.length !== 0) && isMultipleSelect(mode)) {\n this.remove(selectedIds[selectedIds.length - 1]);\n }\n this.reset()\n } else if (keyCode === 46/*delete*/) {\n this.reset()\n } else if (keyCode === 27/*esc*/) {\n this.setState({\n isActive: false,\n filterValue: isMultipleSelect(mode) ? '' : (allowCustom ? filterValue : ''),\n });\n this.input.getInput().blur()\n this.onCancel();\n }\n // console.log('key pressed:', e.keyCode)\n }}\n />}\n {!withFilter && inputLabel && <label>{inputLabel}</label>}\n </div>\n )}\n\n <FilteredList className={classNames(isActive && 'visible')}\n ref={ref('list', this)}\n filter={filterFunction}\n selectSingle={!allowCustom}\n scroll={scroll}\n inline={isInline}\n nextProvider={ref('next', this)}\n prevProvider={ref('prev', this)}\n selectedProvider={ref('getSelected', this)}\n resetProvider={ref('reset', this)}\n onSelect={this.onSelect}\n selected={selected}\n childComponent={childComponent}\n childProps={childProps}\n data={dataFiltered}\n labels={labels}\n />\n </div>\n )\n }\n\n onClickOutside = () => {\n const {allowCustom, required} = this.props;\n const {filterValue} = this.state;\n if (allowCustom && (!!filterValue || !required)) {\n this.onSelect()\n }\n\n this.setState({isActive: false});\n\n this.onCancel();\n };\n\n onCancel = () => {\n orNoop(this.props.onCancel)()\n };\n\n onSelect = (selectedId) => {\n const {mode, required, allowCustom, onSelect, onChange, default: defaultValue} = this.props;\n const {filterValue, selected: currentSelection} = this.state;\n const {labels = {}, onFilterInputChange} = this.props;\n\n if (selectedId == null && (!!filterValue || !required) && allowCustom && (!this.input || !this.input.check()))\n selectedId = filterValue.trim();\n\n const isMultiSelect = isMultipleSelect(mode);\n\n if (!selectedId && isMultiSelect) {\n selectedId = null;\n }\n\n // debugger\n\n const isSelected = selectedId != null;\n\n let selected = {...currentSelection};\n if (selected[selectedId] && (defaultValue || isMultiSelect)) {\n delete selected[selectedId];\n if (defaultValue && Object.keys(selected).length === 0)\n selected[defaultValue] = defaultValue;\n } else if (isSelected && (isMultiSelect)) {\n selected[selectedId] = selectedId;\n } else if (isSelected) {\n selected = {[selectedId]: selectedId};\n }\n\n const errored = required && Object.keys(selected) === 0;\n\n const isActive = mode === MODE_MULTIPLE_MINI_INLINE || (isMultiSelect && isSelected)\n\n let customValue = '';\n if (allowCustom && selectedId) {\n let label\n if (isFunction(labels))\n label = labels(selectedId)\n else\n label = labels[selectedId]\n\n if (label && isString(label))\n customValue = label\n }\n\n let filterValueWithCustom = isMultiSelect ? '' : customValue;\n this.setState({\n isActive: isActive,\n selected: selected,\n filterValue: filterValueWithCustom,\n errored,\n });\n\n if (filterValueWithCustom !== filterValue)\n orNoop(onFilterInputChange)(filterValueWithCustom)\n\n if (isActive && this.input)\n this.input.getInput().focus()\n\n orNoop(onSelect)(selectedId);\n orNoop(onChange)(Object.values(selected));\n };\n\n clean = (e) => {\n preventDefault(e);\n stopPropagation(e);\n\n this.setState({\n isActive: false,\n selected: {},\n filterValue: '',\n });\n\n orNoop(this.props.onSelect)(null);\n orNoop(this.props.onChange)([]);\n\n this.initSelected(this.props, this.state);\n };\n\n remove = (id) => {\n let result = {\n ...this.state,\n selected: {...this.state.selected},\n filterValue: '',\n };\n delete result.selected[id];\n this.setState(result);\n orNoop(this.props.onChange)(Object.values(result.selected));\n };\n\n onChange = (event) => {\n const value = event.target.value;\n this.setState({filterValue: value});\n this.props.onFilterInputChange?.(value);\n }\n}\n\nexport default AutocompleteSelect;\n"],"names":["MODE_DEFAULT","MODE_INLINE","MODE_INLINE_MULTIPLE","MODE_MULTIPLE_AUTO","MODE_MULTIPLE","MODE_MULTIPLE_MINI","MODE_MINI","MODE_MULTIPLE_MINI_INLINE","DummyChild","id","label","dataConsumer","onClick","orNoop","prepareSelected","value","result","Array","isArray","reduce","map","obj","isObject","findParent","el","tag","tagName","toUpperCase","parentNode","isMultipleSelect","mode","AutocompleteSelect","props","initSelected","allowCustom","filterValue","setState","selected","isString","createFilter","memo","prefilter","filterValueTrimmed","filter","it","name","toLowerCase","trim","continuousIncludes","onClickOutside","required","state","onSelect","isActive","onCancel","selectedId","onChange","defaultValue","currentSelection","labels","onFilterInputChange","input","check","isMultiSelect","isSelected","Object","keys","length","errored","customValue","isFunction","filterValueWithCustom","getInput","focus","values","clean","e","preventDefault","stopPropagation","remove","_objectSpread","event","target","that","focused","randomId","getRandomId","data","getSelected","addEventListener","DOCUMENT","listener","contains","form","submitButton","querySelector","formSubmitListener","prevProps","prevState","snapshot","removeEventListener","childComponent","childProps","withArrow","withFilter","withReset","inputLabel","selectedMode","className","scrollToValue","scroll","inlineSelected","removeIcon","selectedComponent","UNDEFINED","selectedIds","hasSelected","setActive","list","scrollTo","toggle","isInline","dataFiltered","suggestion","filterFunction","classNames","ref","React","createElement","getLabel","filterCheck","keyCode","prev","next","reset","blur","PureComponent","propTypes","PropTypes","oneOf","defaultProps"],"mappings":"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"}
|