react-ui-basics 0.0.230 → 0.0.231

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.
@@ -103,16 +103,21 @@ var AutocompleteSelect = function (_PureComponent) {
103
103
  var _this$props = __props(_this),
104
104
  allowCustom = _this$props.allowCustom,
105
105
  required = _this$props.required,
106
- onFilterInputChange = _this$props.onFilterInputChange;
107
- var filterValue = __state(_this).filterValue;
108
- if (allowCustom && (!!filterValue || !required)) {
109
- _this.onSelect();
106
+ onFilterInputChange = _this$props.onFilterInputChange,
107
+ mode = _this$props.mode,
108
+ selectCustomOnClickOutside = _this$props.selectCustomOnClickOutside;
109
+ var _this$state = __state(_this),
110
+ filterValue = _this$state.filterValue,
111
+ selected = _this$state.selected;
112
+ if (allowCustom && selectCustomOnClickOutside && (!!filterValue || !required)) {
113
+ selected = _this.onSelect();
110
114
  }
115
+ filterValue = !isMultipleSelect(mode) && Object.values(selected)[0] || '';
111
116
  _this.setState({
112
117
  isActive: false,
113
- filterValue: ''
118
+ filterValue: filterValue
114
119
  });
115
- onFilterInputChange && onFilterInputChange('');
120
+ onFilterInputChange && onFilterInputChange(filterValue);
116
121
  _this.onCancel();
117
122
  };
118
123
  _this.onCancel = function () {
@@ -126,9 +131,9 @@ var AutocompleteSelect = function (_PureComponent) {
126
131
  onSelect = _this$props2.onSelect,
127
132
  onChange = _this$props2[ReactConstants[7]],
128
133
  defaultValue = _this$props2["default"];
129
- var _this$state = __state(_this),
130
- filterValue = _this$state.filterValue,
131
- currentSelection = _this$state.selected;
134
+ var _this$state2 = __state(_this),
135
+ filterValue = _this$state2.filterValue,
136
+ currentSelection = _this$state2.selected;
132
137
  var _this$props3 = __props(_this),
133
138
  _this$props3$labels = _this$props3.labels,
134
139
  labels = _this$props3$labels === void 0 ? {} : _this$props3$labels,
@@ -167,6 +172,7 @@ var AutocompleteSelect = function (_PureComponent) {
167
172
  if (isActive && _this.input) _this.input.getInput().focus();
168
173
  orNoop(onSelect)(selectedId);
169
174
  orNoop(onChange)(Object.values(selected));
175
+ return selected;
170
176
  };
171
177
  _this.clean = function (e) {
172
178
  preventDefault(e);
@@ -194,6 +200,10 @@ var AutocompleteSelect = function (_PureComponent) {
194
200
  _this.setState({
195
201
  filterValue: value
196
202
  });
203
+ var data = __state(_this).data || __props(_this).data || [];
204
+ if (data.indexOf(value) !== -1) {
205
+ _this.list.selected(value);
206
+ }
197
207
  __props(_this).onFilterInputChange == null ? void 0 : __props(_this).onFilterInputChange(value);
198
208
  };
199
209
  var that = _assertThisInitialized(_this);
@@ -202,9 +212,9 @@ var AutocompleteSelect = function (_PureComponent) {
202
212
  isActive: !!props.focused
203
213
  };
204
214
  that.randomId = getRandomId('acs-');
205
- var data = __data(props),
215
+ var _data = __data(props),
206
216
  getSelected = props.getSelected;
207
- isFunction(data) && data(function (data) {
217
+ isFunction(_data) && _data(function (data) {
208
218
  return that.setState({
209
219
  data: data
210
220
  });
@@ -278,15 +288,15 @@ var AutocompleteSelect = function (_PureComponent) {
278
288
  listPortal = _this$props4.listPortal;
279
289
  var id = __props(this).id || this.randomId;
280
290
  var selectedComponent = __props(this).selectedComponent || childComponent;
281
- var _this$state2 = __state(this),
282
- _this$state2$selected = _this$state2.selected,
283
- selected = _this$state2$selected === void 0 ? {} : _this$state2$selected,
284
- _this$state2$filterVa = _this$state2.filterValue,
285
- filterValue = _this$state2$filterVa === void 0 ? '' : _this$state2$filterVa,
286
- errored = _this$state2.errored;
287
291
  var _this$state3 = __state(this),
288
- isActive = _this$state3.isActive,
289
- listStyles = _this$state3.listStyles;
292
+ _this$state3$selected = _this$state3.selected,
293
+ selected = _this$state3$selected === void 0 ? {} : _this$state3$selected,
294
+ _this$state3$filterVa = _this$state3.filterValue,
295
+ filterValue = _this$state3$filterVa === void 0 ? '' : _this$state3$filterVa,
296
+ errored = _this$state3.errored;
297
+ var _this$state4 = __state(this),
298
+ isActive = _this$state4.isActive,
299
+ listStyles = _this$state4.listStyles;
290
300
  if (__props(this).isActive !== UNDEFINED) {
291
301
  isActive = __props(this).isActive;
292
302
  }
@@ -304,7 +314,7 @@ var AutocompleteSelect = function (_PureComponent) {
304
314
  _this3.setState({
305
315
  isActive: true
306
316
  }, function () {
307
- return scrollToValue && __length(selectedIds) > 0 && _this3.list.scrollTo(selectedIds[0]);
317
+ return scrollToValue && __length(selectedIds) > 0 && _this3.list.selected(selectedIds[0]);
308
318
  });
309
319
  };
310
320
  var toggle = function toggle(e) {
@@ -319,10 +329,10 @@ var AutocompleteSelect = function (_PureComponent) {
319
329
  };
320
330
  var isInline = mode === MODE_INLINE || mode === MODE_INLINE_MULTIPLE || mode === MODE_MULTIPLE_MINI_INLINE;
321
331
  var filterValueTrimmed = filterValue.trim();
322
- var dataFiltered = allowCustom ? [filterValueTrimmed].concat(_toConsumableArray(data.filter(function (suggestion) {
332
+ var dataFiltered = allowCustom && !scrollToValue ? [filterValueTrimmed].concat(_toConsumableArray(data.filter(function (suggestion) {
323
333
  return suggestion !== filterValueTrimmed;
324
334
  }))) : data;
325
- var filterFunction = this.createFilter(prefilter, filterValue, filterValueTrimmed.toLowerCase(), filter);
335
+ var filterFunction = !scrollToValue ? this.createFilter(prefilter, filterValue, filterValueTrimmed.toLowerCase(), filter) : UNDEFINED;
326
336
  var filteredList = ReactCreateElement(FilteredList, {
327
337
  [ReactConstants[5]]: classNames(isActive && 'visible', listPortal && 'portal'),
328
338
  style: listStyles,
@@ -452,7 +462,7 @@ var AutocompleteSelect = function (_PureComponent) {
452
462
  } else if (keyCode === 27 ) {
453
463
  _this3.setState({
454
464
  isActive: false,
455
- filterValue: isMultipleSelect(mode) ? '' : allowCustom ? filterValue : ''
465
+ filterValue: isMultipleSelect(mode) ? '' : Object.values(selected)[0] || ''
456
466
  });
457
467
  _this3.input.getInput().blur();
458
468
  _this3.onCancel();
@@ -467,6 +477,7 @@ AutocompleteSelect.defaultProps = {
467
477
  childComponent: DummyChild,
468
478
  withArrow: true,
469
479
  withFilter: true,
480
+ selectCustomOnClickOutside: true,
470
481
  withReset: false,
471
482
  scrollToValue: false,
472
483
  mode: MODE_DEFAULT,
@@ -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, 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","_ref","id","label","dataConsumer","onClick","orNoop","ReactCreateElement","className","prepareSelected","value","result","Array","isArray","reduce","map","obj","isObject","_defineProperty","findParent","el","tag","tagName","toUpperCase","parentNode","isMultipleSelect","mode","AutocompleteSelect","_PureComponent","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","updateListPosition","listPortal","state","isActive","rect","getBoundingClientRect","listPortalPosition","listStyles","position","top","bottom","minWidth","width","maxHeight","right","window","innerWidth","left","setState","initSelected","_ref2","_ref3","allowCustom","_ref3$filterValue","filterValue","selected","isString","createFilter","memo","prefilter","filterValueTrimmed","filter","it","name","toLowerCase","trim","continuousIncludes","onClickOutside","_this$props","required","onFilterInputChange","onSelect","onCancel","selectedId","_this$props2","onChange","defaultValue","_this$state","currentSelection","_this$props3","_this$props3$labels","labels","input","check","isMultiSelect","isSelected","_objectSpread","Object","keys","length","errored","customValue","isFunction","filterValueWithCustom","getInput","focus","values","clean","e","preventDefault","stopPropagation","remove","event","target","that","_assertThisInitialized","focused","randomId","getRandomId","data","getSelected","_createClass","key","componentDidMount","_this2","addEventListener","DOCUMENT","listener","contains","_this2$list","_this2$list$el","list","form","submitButton","querySelector","formSubmitListener","componentDidUpdate","prevProps","prevState","snapshot","componentWillUnmount","removeEventListener","render","_this3","_this$props4","childComponent","childProps","withArrow","withFilter","withReset","inputLabel","selectedMode","scrollToValue","scroll","inlineSelected","removeIcon","selectedComponent","_this$state2","_this$state2$selected","_this$state2$filterVa","_this$state3","UNDEFINED","_this$props5","_this$props5$data","_this$props5$labels","selectedIds","hasSelected","setActive","scrollTo","toggle","isInline","dataFiltered","concat","_toConsumableArray","suggestion","filterFunction","filteredList","FilteredList","classNames","style","ref","selectSingle","inline","nextProvider","prevProvider","selectedProvider","resetProvider","ReactDOM","createPortal","htmlFor","React","createElement","getLabel","Fragment","Button","raised","TextField","autoComplete","onFocus","filterCheck","onKeyDown","keyCode","prev","next","reset","blur","PureComponent","defaultProps","MaterialIcon","icon"],"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 selectCustomOnClickOutside: 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.selected(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 && !scrollToValue ? [filterValueTrimmed, ...data.filter(suggestion => suggestion !== filterValueTrimmed)] : data;\n\n const filterFunction = !scrollToValue ? this.createFilter(prefilter, filterValue, filterValueTrimmed.toLowerCase(), filter) : UNDEFINED\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) ? '' : Object.values(selected)[0] || '',\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, mode, selectCustomOnClickOutside} = this.props;\n let {filterValue, selected} = this.state;\n if (allowCustom && selectCustomOnClickOutside && (!!filterValue || !required)) {\n selected = this.onSelect()\n }\n\n filterValue = (!isMultipleSelect(mode) && Object.values(selected)[0]) || ''\n this.setState({isActive: false, filterValue});\n onFilterInputChange && onFilterInputChange(filterValue);\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 return 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 const data = this.state.data || this.props.data || []\n if (data.indexOf(value) !== -1) {\n this.list.selected(value)\n }\n\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","_ref","id","label","dataConsumer","onClick","orNoop","ReactCreateElement","className","prepareSelected","value","result","Array","isArray","reduce","map","obj","isObject","_defineProperty","findParent","el","tag","tagName","toUpperCase","parentNode","isMultipleSelect","mode","AutocompleteSelect","_PureComponent","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","updateListPosition","listPortal","state","isActive","rect","getBoundingClientRect","listPortalPosition","listStyles","position","top","bottom","minWidth","width","maxHeight","right","window","innerWidth","left","setState","initSelected","_ref2","_ref3","allowCustom","_ref3$filterValue","filterValue","selected","isString","createFilter","memo","prefilter","filterValueTrimmed","filter","it","name","toLowerCase","trim","continuousIncludes","onClickOutside","_this$props","required","onFilterInputChange","selectCustomOnClickOutside","_this$state","onSelect","Object","values","onCancel","selectedId","_this$props2","onChange","defaultValue","_this$state2","currentSelection","_this$props3","_this$props3$labels","labels","input","check","isMultiSelect","isSelected","_objectSpread","keys","length","errored","customValue","isFunction","filterValueWithCustom","getInput","focus","clean","e","preventDefault","stopPropagation","remove","event","target","data","indexOf","list","that","_assertThisInitialized","focused","randomId","getRandomId","getSelected","_createClass","key","componentDidMount","_this2","addEventListener","DOCUMENT","listener","contains","_this2$list","_this2$list$el","form","submitButton","querySelector","formSubmitListener","componentDidUpdate","prevProps","prevState","snapshot","componentWillUnmount","removeEventListener","render","_this3","_this$props4","childComponent","childProps","withArrow","withFilter","withReset","inputLabel","selectedMode","scrollToValue","scroll","inlineSelected","removeIcon","selectedComponent","_this$state3","_this$state3$selected","_this$state3$filterVa","_this$state4","UNDEFINED","_this$props5","_this$props5$data","_this$props5$labels","selectedIds","hasSelected","setActive","toggle","isInline","dataFiltered","concat","_toConsumableArray","suggestion","filterFunction","filteredList","FilteredList","classNames","style","ref","selectSingle","inline","nextProvider","prevProvider","selectedProvider","resetProvider","ReactDOM","createPortal","htmlFor","React","createElement","getLabel","Fragment","Button","raised","TextField","autoComplete","onFocus","filterCheck","onKeyDown","keyCode","prev","next","reset","blur","PureComponent","defaultProps","MaterialIcon","icon"],"mappings":"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"}
package/FilteredList.css CHANGED
@@ -37,7 +37,6 @@
37
37
  padding-right: 15px;
38
38
  cursor: pointer;
39
39
  overflow: hidden;
40
- transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
41
40
  border-left: 5px solid #4AC263;
42
41
  padding-left: 15px;
43
42
  margin-left: -5px;
package/FilteredList.d.ts CHANGED
@@ -52,11 +52,10 @@ declare class FilteredList<T extends string | number> extends PureComponent<Filt
52
52
  updateList: (props: FilteredListProps<T>) => void;
53
53
  render(): JSX.Element;
54
54
  onSelect: (id: any) => void;
55
- selected: () => T;
55
+ selected: (id?: T) => T;
56
56
  next: () => void;
57
57
  prev: () => void;
58
- updateScroll: (id: any) => void;
59
58
  reset: () => void;
60
- scrollTo: (id: any) => void;
59
+ scrollTo: (id: T) => void;
61
60
  }
62
61
  export default FilteredList;
package/FilteredList.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import ReactConstants from "./ReactConstants"; import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields"; import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import './FilteredList.css'; import { jsx as jsxRuntime_2 } from 'react/jsx-runtime';
2
2
  import React from 'react';
3
3
  import Scrollable from './Scrollable.js';
4
- import { orNoop, classNames, ref, stopPropagation, isObject, isFunction } from './Tools.js';
4
+ import { orNoop, classNames, ref, UNDEFINED, stopPropagation, isObject, isFunction } from './Tools.js';
5
5
  import { PureComponent } from './ReactConstants.js';
6
6
 
7
7
  // @ts-ignore
@@ -23,7 +23,12 @@ class FilteredList extends PureComponent {
23
23
  this.setState({ selected: id });
24
24
  __props(this).onSelect(id);
25
25
  };
26
- this.selected = () => {
26
+ this.selected = (id) => {
27
+ if (id !== UNDEFINED) {
28
+ this.setState({ selected: id });
29
+ this.scrollTo(id);
30
+ return id;
31
+ }
27
32
  const { selected: value } = __state(this);
28
33
  const { selectSingle } = __props(this);
29
34
  if (value === -1 || this.hidden.get(value)) {
@@ -49,7 +54,7 @@ class FilteredList extends PureComponent {
49
54
  if (position < __length(list)) {
50
55
  let id = list[position];
51
56
  this.setState({ selected: id });
52
- this.updateScroll(id);
57
+ this.scrollTo(id);
53
58
  }
54
59
  };
55
60
  this.prev = () => {
@@ -65,33 +70,17 @@ class FilteredList extends PureComponent {
65
70
  if (position >= 0) {
66
71
  let id = list[position];
67
72
  this.setState({ selected: id });
68
- this.updateScroll(id);
69
- }
70
- };
71
- this.updateScroll = (id) => {
72
- const child = this.elements[id];
73
- if (!child)
74
- return;
75
- const container = this.el;
76
- const scrollTop = container.getScroll();
77
- const height = container.getHeight();
78
- let isVisible = scrollTop <= child.offsetTop && scrollTop + height >= child.offsetTop + __clientHeight(child);
79
- if (!isVisible) {
80
- let scrollToBottom = child.offsetTop + __clientHeight(child) - height;
81
- let scrollToTop = child.offsetTop;
82
- if (Math.abs(scrollTop - scrollToTop) < Math.abs(scrollTop - scrollToBottom)) {
83
- container.setScroll(scrollToTop);
84
- }
85
- else {
86
- container.setScroll(scrollToBottom);
87
- }
73
+ this.scrollTo(id);
88
74
  }
89
75
  };
90
76
  this.reset = () => {
91
77
  this.setState({ selected: null });
92
78
  this.el.setScroll(0);
93
79
  };
94
- this.scrollTo = (id) => this.el.setScroll(this.elements[id] && this.elements[id].offsetTop);
80
+ this.scrollTo = (id) => {
81
+ const child = this.elements.get(id);
82
+ child && this.el.setScroll(child.offsetTop - (this.el.getHeight() - __clientHeight(child)) / 2);
83
+ };
95
84
  this.state = { selected: null };
96
85
  }
97
86
  componentDidMount() {
@@ -1 +1 @@
1
- {"version":3,"file":"FilteredList.js","sources":["./src/FilteredList.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"FilteredList.js","sources":["./src/FilteredList.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}