react-ui-basics 0.0.204 → 0.0.206

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.
@@ -102,14 +102,17 @@ var AutocompleteSelect = function (_PureComponent) {
102
102
  _this.onClickOutside = function () {
103
103
  var _this$props = __props(_this),
104
104
  allowCustom = _this$props.allowCustom,
105
- required = _this$props.required;
105
+ required = _this$props.required,
106
+ onFilterInputChange = _this$props.onFilterInputChange;
106
107
  var filterValue = __state(_this).filterValue;
107
108
  if (allowCustom && (!!filterValue || !required)) {
108
109
  _this.onSelect();
109
110
  }
110
111
  _this.setState({
111
- isActive: false
112
+ isActive: false,
113
+ filterValue: ''
112
114
  });
115
+ onFilterInputChange && onFilterInputChange('');
113
116
  _this.onCancel();
114
117
  };
115
118
  _this.onCancel = function () {
@@ -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\";\nimport ReactDOM from \"react-dom\";\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 listPortalPosition: PropTypes.oneOf(['left', 'right']),\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 if(!this.props.listPortal || !this.list?.el?.el || !this.list.el.el.contains(e.target)){\n this.onClickOutside()\n }\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 this.updateListPosition()\n }\n\n updateListPosition = () => {\n if (this.props.listPortal && this.state.isActive) {\n var rect = this.el.getBoundingClientRect();\n let listPortalPosition = this.props.listPortalPosition;\n let listStyles = {\n position: 'absolute',\n top: rect.bottom + 'px',\n minWidth: rect.width + 'px',\n maxHeight: '300px',\n };\n if (listPortalPosition === 'right')\n listStyles.right = (window.innerWidth - rect.right) + 'px'\n else\n listStyles.left = rect.left + 'px'\n\n this.setState({\n listStyles: listStyles\n })\n }\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value)\n this.initSelected(this.props, this.state)\n if (this.state.isActive && !prevState.isActive)\n this.updateListPosition()\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 listPortalPosition: 'left',\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 listPortal,\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, listStyles} = 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 let filteredList = <FilteredList className={classNames(isActive && 'visible', listPortal && 'portal')}\n style={listStyles}\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 filteredList = listPortal ? ReactDOM.createPortal(filteredList, listPortal) : filteredList\n\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}\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","updateListPosition","listPortal","state","isActive","rect","getBoundingClientRect","listPortalPosition","listStyles","position","top","bottom","minWidth","width","maxHeight","right","window","innerWidth","left","setState","initSelected","allowCustom","filterValue","selected","isString","createFilter","memo","prefilter","filterValueTrimmed","filter","it","name","toLowerCase","trim","continuousIncludes","onClickOutside","required","onSelect","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","list","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","scrollTo","toggle","isInline","dataFiltered","suggestion","filterFunction","filteredList","classNames","ref","ReactDOM","createPortal","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\";\nimport ReactDOM from \"react-dom\";\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 listPortalPosition: PropTypes.oneOf(['left', 'right']),\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 if(!this.props.listPortal || !this.list?.el?.el || !this.list.el.el.contains(e.target)){\n this.onClickOutside()\n }\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 this.updateListPosition()\n }\n\n updateListPosition = () => {\n if (this.props.listPortal && this.state.isActive) {\n var rect = this.el.getBoundingClientRect();\n let listPortalPosition = this.props.listPortalPosition;\n let listStyles = {\n position: 'absolute',\n top: rect.bottom + 'px',\n minWidth: rect.width + 'px',\n maxHeight: '300px',\n };\n if (listPortalPosition === 'right')\n listStyles.right = (window.innerWidth - rect.right) + 'px'\n else\n listStyles.left = rect.left + 'px'\n\n this.setState({\n listStyles: listStyles\n })\n }\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value)\n this.initSelected(this.props, this.state)\n if (this.state.isActive && !prevState.isActive)\n this.updateListPosition()\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 listPortalPosition: 'left',\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 listPortal,\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, listStyles} = 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 let filteredList = <FilteredList className={classNames(isActive && 'visible', listPortal && 'portal')}\n style={listStyles}\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 filteredList = listPortal ? ReactDOM.createPortal(filteredList, listPortal) : filteredList\n\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}\n </div>\n )\n }\n\n onClickOutside = () => {\n const {allowCustom, required, onFilterInputChange} = this.props;\n const {filterValue} = this.state;\n if (allowCustom && (!!filterValue || !required)) {\n this.onSelect()\n }\n\n this.setState({isActive: false, filterValue: ''});\n onFilterInputChange && onFilterInputChange('');\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","updateListPosition","listPortal","state","isActive","rect","getBoundingClientRect","listPortalPosition","listStyles","position","top","bottom","minWidth","width","maxHeight","right","window","innerWidth","left","setState","initSelected","allowCustom","filterValue","selected","isString","createFilter","memo","prefilter","filterValueTrimmed","filter","it","name","toLowerCase","trim","continuousIncludes","onClickOutside","required","onFilterInputChange","onSelect","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","that","focused","randomId","getRandomId","data","getSelected","addEventListener","DOCUMENT","listener","contains","list","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","scrollTo","toggle","isInline","dataFiltered","suggestion","filterFunction","filteredList","classNames","ref","ReactDOM","createPortal","React","createElement","getLabel","filterCheck","keyCode","prev","next","reset","blur","PureComponent","propTypes","PropTypes","oneOf","defaultProps"],"mappings":"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"}