react-ui-basics 0.0.189 → 0.0.190

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.
@@ -8,6 +8,7 @@ import { orNoop, isString, memo, continuousIncludes, isFunction, preventDefault,
8
8
  import Button from './Button.js';
9
9
  import MaterialIcon from './MaterialIcon.js';
10
10
  import { PureComponent } from './ReactConstants.js';
11
+ import ReactDOM from 'react-dom';
11
12
 
12
13
  var MODE_DEFAULT = 'default';
13
14
  var MODE_INLINE = 'inline';
@@ -61,6 +62,20 @@ var AutocompleteSelect = function (_PureComponent) {
61
62
  var _this;
62
63
  _classCallCheck(this, AutocompleteSelect);
63
64
  _this = _super.call(this, props);
65
+ _this.updateListPosition = function () {
66
+ if (__props(_this).listPortal && __state(_this).isActive) {
67
+ var rect = _this.el.getBoundingClientRect();
68
+ _this.setState({
69
+ listStyles: {
70
+ position: 'absolute',
71
+ top: rect.bottom + 'px',
72
+ left: __left(rect) + 'px',
73
+ minWidth: __width(rect) + 'px',
74
+ maxHeight: '300px'
75
+ }
76
+ });
77
+ }
78
+ };
64
79
  _this.initSelected = function (_ref2, _ref3) {
65
80
  var value = __value(_ref2),
66
81
  mode = _ref2.mode,
@@ -200,7 +215,10 @@ var AutocompleteSelect = function (_PureComponent) {
200
215
  var _this2 = this;
201
216
  addEventListener(DOCUMENT, 'mousedown', this.listener = function (e) {
202
217
  if (__state(_this2).isActive && _this2.el && !_this2.el.contains(__target(e))) {
203
- _this2.onClickOutside();
218
+ var _this2$list, _this2$list$el;
219
+ if (!__props(_this2).listPortal || !((_this2$list = _this2.list) != null && (_this2$list$el = _this2$list.el) != null && _this2$list$el.el) || !_this2.list.el.el.contains(__target(e))) {
220
+ _this2.onClickOutside();
221
+ }
204
222
  }
205
223
  });
206
224
  if (__props(this).required) {
@@ -215,11 +233,13 @@ var AutocompleteSelect = function (_PureComponent) {
215
233
  }
216
234
  }
217
235
  this.initSelected(__props(this), __state(this));
236
+ this.updateListPosition();
218
237
  }
219
238
  }, {
220
239
  key: [ReactConstants[2]],
221
240
  value: function componentDidUpdate(prevProps, prevState, snapshot) {
222
241
  if (__props(this).value !== __value(prevProps)) this.initSelected(__props(this), __state(this));
242
+ if (__state(this).isActive && !prevState.isActive) this.updateListPosition();
223
243
  }
224
244
  }, {
225
245
  key: [ReactConstants[1]],
@@ -249,7 +269,8 @@ var AutocompleteSelect = function (_PureComponent) {
249
269
  required = _this$props4.required,
250
270
  allowCustom = _this$props4.allowCustom,
251
271
  inlineSelected = _this$props4.inlineSelected,
252
- removeIcon = _this$props4.removeIcon;
272
+ removeIcon = _this$props4.removeIcon,
273
+ listPortal = _this$props4.listPortal;
253
274
  var id = __props(this).id || this.randomId;
254
275
  var selectedComponent = __props(this).selectedComponent || childComponent;
255
276
  var _this$state2 = __state(this),
@@ -258,7 +279,9 @@ var AutocompleteSelect = function (_PureComponent) {
258
279
  _this$state2$filterVa = _this$state2.filterValue,
259
280
  filterValue = _this$state2$filterVa === void 0 ? '' : _this$state2$filterVa,
260
281
  errored = _this$state2.errored;
261
- var isActive = __state(this).isActive;
282
+ var _this$state3 = __state(this),
283
+ isActive = _this$state3.isActive,
284
+ listStyles = _this$state3.listStyles;
262
285
  if (__props(this).isActive !== UNDEFINED) {
263
286
  isActive = __props(this).isActive;
264
287
  }
@@ -295,6 +318,26 @@ var AutocompleteSelect = function (_PureComponent) {
295
318
  return suggestion !== filterValueTrimmed;
296
319
  }))) : data;
297
320
  var filterFunction = this.createFilter(prefilter, filterValue, filterValueTrimmed.toLowerCase(), filter);
321
+ var filteredList = ReactCreateElement(FilteredList, {
322
+ [ReactConstants[5]]: classNames(isActive && 'visible', listPortal && 'portal'),
323
+ style: listStyles,
324
+ ref: ref('list', this),
325
+ filter: filterFunction,
326
+ selectSingle: !allowCustom,
327
+ scroll: scroll,
328
+ inline: isInline,
329
+ nextProvider: ref('next', this),
330
+ prevProvider: ref('prev', this),
331
+ selectedProvider: ref('getSelected', this),
332
+ resetProvider: ref('reset', this),
333
+ onSelect: this.onSelect,
334
+ selected: selected,
335
+ childComponent: childComponent,
336
+ childProps: childProps,
337
+ data: dataFiltered,
338
+ labels: labels
339
+ });
340
+ filteredList = listPortal ? ReactDOM.createPortal(filteredList, listPortal) : filteredList;
298
341
  return ReactCreateElement("div", {
299
342
  id: id,
300
343
  [ReactConstants[5]]: classNames('AutocompleteSelect', mode, isMultipleSelect(mode) && 'multi', className, withFilter ? 'withFilter' : 'withoutFilter', isActive && 'active', errored && 'errored', inlineSelected && 'inlineSelected', hasSelected && 'hasSelected'),
@@ -410,24 +453,7 @@ var AutocompleteSelect = function (_PureComponent) {
410
453
  _this3.onCancel();
411
454
  }
412
455
  }
413
- }), !withFilter && inputLabel && ReactCreateElement("label", null, inputLabel)), ReactCreateElement(FilteredList, {
414
- [ReactConstants[5]]: classNames(isActive && 'visible'),
415
- ref: ref('list', this),
416
- filter: filterFunction,
417
- selectSingle: !allowCustom,
418
- scroll: scroll,
419
- inline: isInline,
420
- nextProvider: ref('next', this),
421
- prevProvider: ref('prev', this),
422
- selectedProvider: ref('getSelected', this),
423
- resetProvider: ref('reset', this),
424
- onSelect: this.onSelect,
425
- selected: selected,
426
- childComponent: childComponent,
427
- childProps: childProps,
428
- data: dataFiltered,
429
- labels: labels
430
- }));
456
+ }), !withFilter && inputLabel && ReactCreateElement("label", null, inputLabel)), filteredList);
431
457
  }
432
458
  }]);
433
459
  return AutocompleteSelect;
@@ -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 = {}, 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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"}
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 };\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 this.setState({\n listStyles: {\n position: 'absolute',\n top: rect.bottom + 'px',\n left: rect.left + 'px',\n minWidth: rect.width + 'px',\n maxHeight: '300px',\n }\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 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","setState","listStyles","position","top","bottom","left","minWidth","width","maxHeight","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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"}
package/FilteredList.css CHANGED
@@ -18,6 +18,9 @@
18
18
  opacity: 1;
19
19
  visibility: visible;
20
20
  }
21
+ .FilteredList.portal {
22
+ transition: opacity 0.2s ease-out;
23
+ }
21
24
  .FilteredList.inline {
22
25
  max-height: 225px;
23
26
  margin-top: 5px;
package/Scrollable.js CHANGED
@@ -2,7 +2,7 @@ import ReactConstants from "./ReactConstants"; import {clientHeight as __clientH
2
2
  import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers"; import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers"; import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers"; import './Scrollable.css'; import 'react';
3
3
  import ReactCreateElement from './ReactCreateElement.js';
4
4
  import PropTypes from 'prop-types';
5
- import { classNames, createRef, clearInterval, clearTimeout, orNoop, addEventListener, WINDOW, preventDefault, setTimeout, setInterval, removeEventListener } from './Tools.js';
5
+ import { classNames, ref, createRef, clearInterval, clearTimeout, orNoop, addEventListener, WINDOW, preventDefault, setTimeout, setInterval, removeEventListener } from './Tools.js';
6
6
  import { stateGS, componentDidMount, componentWillUnmount, componentDidUpdate, render, PureComponent, propsGetter } from './ReactConstants.js';
7
7
 
8
8
  var SCROLLBAR_MODE_HIDDEN = 'hidden';
@@ -37,7 +37,6 @@ var Scrollable = function (_PureComponent) {
37
37
  var props = propsGetter(that);
38
38
  var status = stateGS(that);
39
39
  var statusH = stateGS(that);
40
- var containerRef = createRef();
41
40
  var viewportRef = createRef();
42
41
  var scrollbarRef = createRef();
43
42
  var horizontalScrollbarRef = createRef();
@@ -59,7 +58,7 @@ var Scrollable = function (_PureComponent) {
59
58
  var viewport = viewportRef();
60
59
  var scrollbar = scrollbarRef();
61
60
  var scrollbarH = horizontalScrollbarRef();
62
- var container = containerRef();
61
+ var container = that.el;
63
62
  var thumb = thumbRef();
64
63
  var thumbH = horizontalThumbRef();
65
64
  var scrolling = false;
@@ -283,7 +282,7 @@ var Scrollable = function (_PureComponent) {
283
282
  return scrollHeightOf(viewportRef());
284
283
  };
285
284
  that.getHeight = function () {
286
- return __clientHeight(containerRef());
285
+ return that.el.clientHeight;
287
286
  };
288
287
  that[ReactConstants[3]] = function () {
289
288
  var _props = props();
@@ -292,7 +291,7 @@ var Scrollable = function (_PureComponent) {
292
291
  return ReactCreateElement("div", {
293
292
  [ReactConstants[5]]: classNames('Scrollable', className, status() || WITH_SCROLL, statusH() + '-horizontal'),
294
293
  style: styleOf(_props),
295
- ref: containerRef
294
+ ref: ref('el', _assertThisInitialized(_this))
296
295
  }, ReactCreateElement("div", {
297
296
  [ReactConstants[5]]: "viewport",
298
297
  ref: viewportRef
package/Scrollable.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Scrollable.js","sources":["./src/Scrollable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './Scrollable.css'\nimport {classNames, preventDefault, WINDOW, addEventListener, removeEventListener, setTimeout, clearTimeout, setInterval, clearInterval, createRef, orNoop, NOOP} from \"./Tools\";\nimport {propsGetter, stateGS, PureComponent, render, componentDidMount, componentDidUpdate, componentWillUnmount} from \"./ReactConstants\";\n\nexport const SCROLLBAR_MODE_HIDDEN = 'hidden';\nexport const SCROLLBAR_MODE_VISIBLE = 'visible';\nexport const SCROLLBAR_MODE_AUTO = 'auto';\n\nlet NATIVE_SCROLL_WIDTH = -1;\nlet NATIVE_SCROLL_HEIGHT = -1;\n\nconst WITHOUT_SCROLL = 'without-scroll';\nconst WITH_SCROLL = 'with-scroll';\n\nconst createFieldGetter = field => el => el[field];\nconst scrollHeightOf = createFieldGetter('scrollHeight');\nconst scrollWidthOf = createFieldGetter('scrollWidth');\nconst offsetHeightOf = createFieldGetter('offsetHeight');\nconst offsetWidthOf = createFieldGetter('offsetWidth');\nconst styleOf = createFieldGetter('style');\nconst scrollBarModeOf = createFieldGetter('scrollBarMode');\nconst onScroll = createFieldGetter('onScroll');\nconst horizontalScrollBarModeOf = createFieldGetter('horizontalScrollBarMode');\n\nclass Scrollable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const status = stateGS(that);\n const statusH = stateGS(that);\n\n const containerRef = createRef();\n const viewportRef = createRef();\n const scrollbarRef = createRef();\n const horizontalScrollbarRef = createRef();\n const thumbRef = createRef();\n const horizontalThumbRef = createRef();\n\n let resizeInterval;\n let initTimeout;\n\n const clear = () => {\n clearInterval(resizeInterval);\n clearTimeout(initTimeout);\n };\n\n const init = () => {\n clear();\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN && horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n status(WITHOUT_SCROLL);\n statusH(WITHOUT_SCROLL);\n return;\n }\n\n const viewport = viewportRef();\n const scrollbar = scrollbarRef();\n const scrollbarH = horizontalScrollbarRef();\n const container = containerRef();\n const thumb = thumbRef();\n const thumbH = horizontalThumbRef();\n\n let scrolling = false;\n let scrolledToBottom = false;\n let scrolledToTop = false;\n let adjustedScrollWidth = false;\n let lastY = 0;\n let lastX = 0;\n let ratio = 0;\n let ratioH = 0;\n const onScrollListener = onScroll(props())\n\n viewport.onscroll = (e) => {\n const scrollHeight = scrollHeightOf(viewport);\n const offsetHeight = offsetHeightOf(viewport);\n const scrollWidth = scrollWidthOf(viewport);\n const offsetWidth = offsetWidthOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n let position = viewport.scrollTop / (scrollHeight - offsetHeight);\n const positionH = viewport.scrollLeft / (scrollWidth - offsetWidth);\n\n if (position > 1) {\n viewport.scrollTop = scrollHeight - offsetHeight;\n position = 1\n }\n\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n styleOf(thumbH).left = (positionH * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n\n if (position >= 0.98) {\n !scrolledToBottom && orNoop(props().onScrolledToBottom)();\n scrolledToBottom = true;\n } else {\n scrolledToBottom = false;\n }\n\n if (position <= 0.02) {\n !scrolledToTop && orNoop(props().onScrolledToTop)();\n scrolledToTop = true;\n } else {\n scrolledToTop = false;\n }\n\n onScrollListener && onScrollListener(e)\n };\n const reset = () => {\n removeEventListener(WINDOW, 'mouseup', reset);\n removeEventListener(WINDOW, 'mousemove', moveListener);\n viewport.style.scrollBehavior = ''\n scrolling = false;\n };\n const moveListener = (e) => {\n if (!scrolling)\n return;\n\n if (scrolling === 'v') {\n viewport.scrollTop += (e.clientY - lastY) * ratio;\n lastY = e.clientY;\n } else if (scrolling === 'h') {\n viewport.scrollLeft += (e.clientX - lastX) * ratioH;\n lastX = e.clientX;\n }\n };\n thumb.onmousedown = (e) => {\n lastY = e.clientY;\n scrolling = 'v';\n ratio = scrollHeightOf(viewport) / offsetHeightOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumb.ondragstart = preventDefault;\n thumb.onmouseup = reset;\n\n thumbH.onmousedown = (e) => {\n lastX = e.clientX;\n scrolling = 'h';\n ratioH = scrollWidthOf(viewport) / offsetWidthOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumbH.ondragstart = preventDefault;\n thumbH.onmouseup = reset;\n\n scrollbar.onclick = (e) => {\n if (e.target === scrollbar) {\n let thumbPosition = parseInt(styleOf(thumb).top);\n viewport.scrollTop += offsetHeightOf(viewport) * 0.9 * (e.offsetY < thumbPosition ? -1 : 1);\n }\n };\n scrollbarH.onclick = (e) => {\n if (e.target === scrollbarH) {\n let thumbPosition = parseInt(styleOf(thumbH).left);\n viewport.scrollLeft += offsetWidthOf(viewport) * 0.9 * (e.offsetX < thumbPosition ? -1 : 1);\n }\n };\n\n const adjustScrollWidth = () => {\n if (NATIVE_SCROLL_WIDTH < 0) {\n NATIVE_SCROLL_WIDTH = viewport.offsetWidth - viewport.clientWidth;\n if (NATIVE_SCROLL_WIDTH === 0 && scrollHeightOf(viewport) !== offsetHeightOf(viewport)) {\n NATIVE_SCROLL_WIDTH = -1;\n }\n }\n if (NATIVE_SCROLL_HEIGHT < 0) {\n NATIVE_SCROLL_HEIGHT = viewport.offsetHeight - viewport.clientHeight;\n if (NATIVE_SCROLL_HEIGHT === 0 && scrollWidthOf(viewport) !== offsetWidthOf(viewport)) {\n NATIVE_SCROLL_HEIGHT = -1;\n }\n }\n\n if (!adjustedScrollWidth) {\n if (NATIVE_SCROLL_WIDTH >= 0 && status() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingRight = (NATIVE_SCROLL_WIDTH) + scrollbar.clientWidth + 'px';\n styleOf(viewport).marginRight = -(NATIVE_SCROLL_WIDTH) - scrollbar.clientWidth + 'px';\n }\n if (NATIVE_SCROLL_HEIGHT >= 0 && statusH() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingBottom = (NATIVE_SCROLL_HEIGHT) + scrollbarH.clientHeight + 'px';\n styleOf(viewport).marginBottom = -(NATIVE_SCROLL_HEIGHT) - scrollbarH.clientHeight + 'px';\n }\n adjustedScrollWidth = true;\n }\n };\n\n adjustScrollWidth();\n\n const showScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).bottom = '0'; //enable scrollbar\n styleOf(viewport).overflowY = '';\n adjustScrollWidth();\n status() !== WITH_SCROLL && status(WITH_SCROLL);\n };\n\n const hideScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowY = 'inherit';\n styleOf(viewport).paddingRight = '0';\n styleOf(viewport).marginRight = '0';\n status() !== WITHOUT_SCROLL && status(WITHOUT_SCROLL);\n };\n\n const showHorizontalScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).right = '0'; //enable scrollbar\n styleOf(viewport).overflowX = '';\n adjustScrollWidth();\n statusH() !== WITH_SCROLL && statusH(WITH_SCROLL);\n };\n\n const hideHorizontalScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowX = 'inherit';\n styleOf(viewport).paddingBottom = '0';\n styleOf(viewport).marginBottom = '0';\n statusH() !== WITHOUT_SCROLL && statusH(WITHOUT_SCROLL);\n };\n\n const updateVerticalScrollbar = () => {\n const scrollHeight = scrollHeightOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollHeight / scrollbarHeight;\n if ((ratio === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetHeight = offsetHeightOf(viewport);\n const horizontalScrollBarOffset = statusH() !== WITHOUT_SCROLL ? scrollbarH.clientHeight + Math.max(NATIVE_SCROLL_HEIGHT, 0) : 0;\n\n let containerOffsetHeight = offsetHeightOf(container) + horizontalScrollBarOffset;\n if (containerOffsetHeight === scrollHeight && status() === WITHOUT_SCROLL)\n return;\n\n if (props().autoScrollTop && scrollHeight - offsetHeight - viewport.scrollTop <= 20 && newRatio < ratio && Number.isFinite(newRatio) && Number.isFinite(ratio)) {\n viewport.scrollTop = 0; // scroll to top if scrollbar gets smaller\n }\n\n ratio = newRatio;\n styleOf(thumb).height = (scrollbarHeight / newRatio) + 'px';\n\n styleOf(container).height = scrollHeight - horizontalScrollBarOffset + 'px';\n containerOffsetHeight = offsetHeightOf(container) + horizontalScrollBarOffset;\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (status() !== WITHOUT_SCROLL)\n hideScrollbar(scrollbar, viewport);\n\n return\n }\n\n if (containerOffsetHeight < scrollHeight) {\n adjustedScrollWidth = false;\n showScrollbar(scrollbar, viewport, adjustScrollWidth);\n } else {\n hideScrollbar(scrollbar, viewport);\n }\n\n scrolledToBottom = false;\n scrolledToTop = false;\n\n const position = viewport.scrollTop / (scrollHeight - offsetHeight);\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n };\n\n const updateHorizontalScrollbar = () => {\n\n const scrollWidth = scrollWidthOf(viewport);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollWidth / scrollbarWidth;\n if ((ratioH === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetWidth = offsetWidthOf(viewport);\n\n const verticalScrollBarOffset = status() !== WITHOUT_SCROLL ? scrollbar.clientWidth + Math.max(NATIVE_SCROLL_WIDTH, 0) : 0;\n let containerOffsetWidth = offsetWidthOf(container) + verticalScrollBarOffset;\n\n if (containerOffsetWidth === scrollWidth && statusH() === WITHOUT_SCROLL)\n return;\n\n ratioH = newRatio;\n styleOf(thumbH).width = (scrollbarWidth / newRatio) + 'px';\n\n\n if (horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (statusH() !== WITHOUT_SCROLL)\n hideHorizontalScrollbar(scrollbarH, viewport);\n\n return\n }\n\n styleOf(container).width = (scrollWidth - verticalScrollBarOffset) + 'px';\n containerOffsetWidth = offsetWidthOf(container) + verticalScrollBarOffset;\n\n if (containerOffsetWidth < scrollWidth) {\n adjustedScrollWidth = false;\n showHorizontalScrollbar(scrollbarH, viewport, adjustScrollWidth);\n } else {\n hideHorizontalScrollbar(scrollbarH, viewport);\n }\n\n const position = viewport.scrollLeft / (scrollWidth - offsetWidth);\n styleOf(thumbH).left = (position * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n };\n\n initTimeout = setTimeout(() => {\n resizeInterval = setInterval(() => {\n updateVerticalScrollbar();\n updateHorizontalScrollbar();\n }, 50);\n }, 200)\n };\n\n that[componentDidMount] = init;\n that[componentWillUnmount] = clear;\n\n that[componentDidUpdate] = (prevProps) => {\n if (scrollBarModeOf(props()) !== scrollBarModeOf(prevProps))\n init();\n else if (onScroll(props()) !== onScroll(prevProps))\n init();\n };\n\n that.setScroll = (y) => {\n viewportRef().scrollTop = y\n };\n that.getScroll = () => viewportRef().scrollTop;\n that.getScrollHeight = () => scrollHeightOf(viewportRef());\n that.getHeight = () => containerRef().clientHeight;\n\n that[render] = () => {\n const _props = props();\n const {className, children} = _props;\n return (\n <div className={classNames('Scrollable', className, status() || WITH_SCROLL, statusH() + '-horizontal')} style={styleOf(_props)} ref={containerRef}>\n <div className=\"viewport\" ref={viewportRef}>\n {children}\n </div>\n <div className={classNames('scrollbar', scrollBarModeOf(_props) || SCROLLBAR_MODE_AUTO)} ref={scrollbarRef}>\n <div className=\"thumb\" ref={thumbRef}/>\n </div>\n <div className={classNames('scrollbar horizontal', horizontalScrollBarModeOf(_props))} ref={horizontalScrollbarRef}>\n <div className=\"thumb\" ref={horizontalThumbRef}/>\n </div>\n </div>\n )\n };\n }\n}\n\nexport default Scrollable\n\nScrollable.defaultProps = {\n autoScrollTop: true,\n horizontalScrollBarMode: SCROLLBAR_MODE_HIDDEN\n};\n\nif (window.isNotProductionEnvironment) {\n Scrollable.propTypes = {\n scrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE]),\n horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE]),\n className: PropTypes.string,\n style: PropTypes.object,\n onScrolledToBottom: PropTypes.func,\n onScrolledToTop: PropTypes.func,\n autoScrollTop: PropTypes.bool,\n }\n}"],"names":["SCROLLBAR_MODE_HIDDEN","SCROLLBAR_MODE_VISIBLE","SCROLLBAR_MODE_AUTO","NATIVE_SCROLL_WIDTH","NATIVE_SCROLL_HEIGHT","WITHOUT_SCROLL","WITH_SCROLL","createFieldGetter","field","el","scrollHeightOf","scrollWidthOf","offsetHeightOf","offsetWidthOf","styleOf","scrollBarModeOf","onScroll","horizontalScrollBarModeOf","Scrollable","properties","that","state","props","propsGetter","status","stateGS","statusH","containerRef","createRef","viewportRef","scrollbarRef","horizontalScrollbarRef","thumbRef","horizontalThumbRef","resizeInterval","initTimeout","clear","clearInterval","clearTimeout","init","viewport","scrollbar","scrollbarH","container","thumb","thumbH","scrolling","scrolledToBottom","scrolledToTop","adjustedScrollWidth","lastY","lastX","ratio","ratioH","onScrollListener","onscroll","e","scrollHeight","offsetHeight","scrollWidth","offsetWidth","scrollbarHeight","scrollbarWidth","position","scrollTop","positionH","scrollLeft","top","left","orNoop","onScrolledToBottom","onScrolledToTop","reset","removeEventListener","WINDOW","moveListener","style","scrollBehavior","clientY","clientX","onmousedown","addEventListener","ondragstart","preventDefault","onmouseup","onclick","target","thumbPosition","parseInt","offsetY","offsetX","adjustScrollWidth","clientWidth","clientHeight","paddingRight","marginRight","paddingBottom","marginBottom","showScrollbar","visibility","bottom","overflowY","hideScrollbar","showHorizontalScrollbar","right","overflowX","hideHorizontalScrollbar","updateVerticalScrollbar","newRatio","Number","isFinite","isNaN","horizontalScrollBarOffset","Math","max","containerOffsetHeight","autoScrollTop","height","updateHorizontalScrollbar","verticalScrollBarOffset","containerOffsetWidth","width","setTimeout","setInterval","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","setScroll","y","getScroll","getScrollHeight","getHeight","render","_props","className","children","classNames","PureComponent","defaultProps","horizontalScrollBarMode","window","isNotProductionEnvironment","propTypes","scrollBarMode","PropTypes","oneOf","string","object","func","bool"],"mappings":"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"}
1
+ {"version":3,"file":"Scrollable.js","sources":["./src/Scrollable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './Scrollable.css'\nimport {\n classNames,\n preventDefault,\n WINDOW,\n addEventListener,\n removeEventListener,\n setTimeout,\n clearTimeout,\n setInterval,\n clearInterval,\n createRef,\n orNoop,\n NOOP,\n ref\n} from \"./Tools\";\nimport {propsGetter, stateGS, PureComponent, render, componentDidMount, componentDidUpdate, componentWillUnmount} from \"./ReactConstants\";\n\nexport const SCROLLBAR_MODE_HIDDEN = 'hidden';\nexport const SCROLLBAR_MODE_VISIBLE = 'visible';\nexport const SCROLLBAR_MODE_AUTO = 'auto';\n\nlet NATIVE_SCROLL_WIDTH = -1;\nlet NATIVE_SCROLL_HEIGHT = -1;\n\nconst WITHOUT_SCROLL = 'without-scroll';\nconst WITH_SCROLL = 'with-scroll';\n\nconst createFieldGetter = field => el => el[field];\nconst scrollHeightOf = createFieldGetter('scrollHeight');\nconst scrollWidthOf = createFieldGetter('scrollWidth');\nconst offsetHeightOf = createFieldGetter('offsetHeight');\nconst offsetWidthOf = createFieldGetter('offsetWidth');\nconst styleOf = createFieldGetter('style');\nconst scrollBarModeOf = createFieldGetter('scrollBarMode');\nconst onScroll = createFieldGetter('onScroll');\nconst horizontalScrollBarModeOf = createFieldGetter('horizontalScrollBarMode');\n\nclass Scrollable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const status = stateGS(that);\n const statusH = stateGS(that);\n\n const viewportRef = createRef();\n const scrollbarRef = createRef();\n const horizontalScrollbarRef = createRef();\n const thumbRef = createRef();\n const horizontalThumbRef = createRef();\n\n let resizeInterval;\n let initTimeout;\n\n const clear = () => {\n clearInterval(resizeInterval);\n clearTimeout(initTimeout);\n };\n\n const init = () => {\n clear();\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN && horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n status(WITHOUT_SCROLL);\n statusH(WITHOUT_SCROLL);\n return;\n }\n\n const viewport = viewportRef();\n const scrollbar = scrollbarRef();\n const scrollbarH = horizontalScrollbarRef();\n const container = that.el;\n const thumb = thumbRef();\n const thumbH = horizontalThumbRef();\n\n let scrolling = false;\n let scrolledToBottom = false;\n let scrolledToTop = false;\n let adjustedScrollWidth = false;\n let lastY = 0;\n let lastX = 0;\n let ratio = 0;\n let ratioH = 0;\n const onScrollListener = onScroll(props())\n\n viewport.onscroll = (e) => {\n const scrollHeight = scrollHeightOf(viewport);\n const offsetHeight = offsetHeightOf(viewport);\n const scrollWidth = scrollWidthOf(viewport);\n const offsetWidth = offsetWidthOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n let position = viewport.scrollTop / (scrollHeight - offsetHeight);\n const positionH = viewport.scrollLeft / (scrollWidth - offsetWidth);\n\n if (position > 1) {\n viewport.scrollTop = scrollHeight - offsetHeight;\n position = 1\n }\n\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n styleOf(thumbH).left = (positionH * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n\n if (position >= 0.98) {\n !scrolledToBottom && orNoop(props().onScrolledToBottom)();\n scrolledToBottom = true;\n } else {\n scrolledToBottom = false;\n }\n\n if (position <= 0.02) {\n !scrolledToTop && orNoop(props().onScrolledToTop)();\n scrolledToTop = true;\n } else {\n scrolledToTop = false;\n }\n\n onScrollListener && onScrollListener(e)\n };\n const reset = () => {\n removeEventListener(WINDOW, 'mouseup', reset);\n removeEventListener(WINDOW, 'mousemove', moveListener);\n viewport.style.scrollBehavior = ''\n scrolling = false;\n };\n const moveListener = (e) => {\n if (!scrolling)\n return;\n\n if (scrolling === 'v') {\n viewport.scrollTop += (e.clientY - lastY) * ratio;\n lastY = e.clientY;\n } else if (scrolling === 'h') {\n viewport.scrollLeft += (e.clientX - lastX) * ratioH;\n lastX = e.clientX;\n }\n };\n thumb.onmousedown = (e) => {\n lastY = e.clientY;\n scrolling = 'v';\n ratio = scrollHeightOf(viewport) / offsetHeightOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumb.ondragstart = preventDefault;\n thumb.onmouseup = reset;\n\n thumbH.onmousedown = (e) => {\n lastX = e.clientX;\n scrolling = 'h';\n ratioH = scrollWidthOf(viewport) / offsetWidthOf(viewport);\n viewport.style.scrollBehavior = 'unset'\n\n addEventListener(WINDOW, 'mouseup', reset);\n addEventListener(WINDOW, 'mousemove', moveListener);\n };\n thumbH.ondragstart = preventDefault;\n thumbH.onmouseup = reset;\n\n scrollbar.onclick = (e) => {\n if (e.target === scrollbar) {\n let thumbPosition = parseInt(styleOf(thumb).top);\n viewport.scrollTop += offsetHeightOf(viewport) * 0.9 * (e.offsetY < thumbPosition ? -1 : 1);\n }\n };\n scrollbarH.onclick = (e) => {\n if (e.target === scrollbarH) {\n let thumbPosition = parseInt(styleOf(thumbH).left);\n viewport.scrollLeft += offsetWidthOf(viewport) * 0.9 * (e.offsetX < thumbPosition ? -1 : 1);\n }\n };\n\n const adjustScrollWidth = () => {\n if (NATIVE_SCROLL_WIDTH < 0) {\n NATIVE_SCROLL_WIDTH = viewport.offsetWidth - viewport.clientWidth;\n if (NATIVE_SCROLL_WIDTH === 0 && scrollHeightOf(viewport) !== offsetHeightOf(viewport)) {\n NATIVE_SCROLL_WIDTH = -1;\n }\n }\n if (NATIVE_SCROLL_HEIGHT < 0) {\n NATIVE_SCROLL_HEIGHT = viewport.offsetHeight - viewport.clientHeight;\n if (NATIVE_SCROLL_HEIGHT === 0 && scrollWidthOf(viewport) !== offsetWidthOf(viewport)) {\n NATIVE_SCROLL_HEIGHT = -1;\n }\n }\n\n if (!adjustedScrollWidth) {\n if (NATIVE_SCROLL_WIDTH >= 0 && status() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingRight = (NATIVE_SCROLL_WIDTH) + scrollbar.clientWidth + 'px';\n styleOf(viewport).marginRight = -(NATIVE_SCROLL_WIDTH) - scrollbar.clientWidth + 'px';\n }\n if (NATIVE_SCROLL_HEIGHT >= 0 && statusH() !== WITHOUT_SCROLL) {\n styleOf(viewport).paddingBottom = (NATIVE_SCROLL_HEIGHT) + scrollbarH.clientHeight + 'px';\n styleOf(viewport).marginBottom = -(NATIVE_SCROLL_HEIGHT) - scrollbarH.clientHeight + 'px';\n }\n adjustedScrollWidth = true;\n }\n };\n\n adjustScrollWidth();\n\n const showScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).bottom = '0'; //enable scrollbar\n styleOf(viewport).overflowY = '';\n adjustScrollWidth();\n status() !== WITH_SCROLL && status(WITH_SCROLL);\n };\n\n const hideScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowY = 'inherit';\n styleOf(viewport).paddingRight = '0';\n styleOf(viewport).marginRight = '0';\n status() !== WITHOUT_SCROLL && status(WITHOUT_SCROLL);\n };\n\n const showHorizontalScrollbar = (scrollbar, viewport, adjustScrollWidth) => {\n styleOf(scrollbar).visibility = 'inherit';\n styleOf(scrollbar).right = '0'; //enable scrollbar\n styleOf(viewport).overflowX = '';\n adjustScrollWidth();\n statusH() !== WITH_SCROLL && statusH(WITH_SCROLL);\n };\n\n const hideHorizontalScrollbar = (scrollbar, viewport) => {\n styleOf(scrollbar).visibility = 'hidden'; //disable scrollbar\n styleOf(viewport).overflowX = 'inherit';\n styleOf(viewport).paddingBottom = '0';\n styleOf(viewport).marginBottom = '0';\n statusH() !== WITHOUT_SCROLL && statusH(WITHOUT_SCROLL);\n };\n\n const updateVerticalScrollbar = () => {\n const scrollHeight = scrollHeightOf(viewport);\n const scrollbarHeight = offsetHeightOf(scrollbar);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollHeight / scrollbarHeight;\n if ((ratio === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetHeight = offsetHeightOf(viewport);\n const horizontalScrollBarOffset = statusH() !== WITHOUT_SCROLL ? scrollbarH.clientHeight + Math.max(NATIVE_SCROLL_HEIGHT, 0) : 0;\n\n let containerOffsetHeight = offsetHeightOf(container) + horizontalScrollBarOffset;\n if (containerOffsetHeight === scrollHeight && status() === WITHOUT_SCROLL)\n return;\n\n if (props().autoScrollTop && scrollHeight - offsetHeight - viewport.scrollTop <= 20 && newRatio < ratio && Number.isFinite(newRatio) && Number.isFinite(ratio)) {\n viewport.scrollTop = 0; // scroll to top if scrollbar gets smaller\n }\n\n ratio = newRatio;\n styleOf(thumb).height = (scrollbarHeight / newRatio) + 'px';\n\n styleOf(container).height = scrollHeight - horizontalScrollBarOffset + 'px';\n containerOffsetHeight = offsetHeightOf(container) + horizontalScrollBarOffset;\n\n if (scrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (status() !== WITHOUT_SCROLL)\n hideScrollbar(scrollbar, viewport);\n\n return\n }\n\n if (containerOffsetHeight < scrollHeight) {\n adjustedScrollWidth = false;\n showScrollbar(scrollbar, viewport, adjustScrollWidth);\n } else {\n hideScrollbar(scrollbar, viewport);\n }\n\n scrolledToBottom = false;\n scrolledToTop = false;\n\n const position = viewport.scrollTop / (scrollHeight - offsetHeight);\n styleOf(thumb).top = (position * (scrollbarHeight - offsetHeightOf(thumb))) + 'px';\n };\n\n const updateHorizontalScrollbar = () => {\n\n const scrollWidth = scrollWidthOf(viewport);\n const scrollbarWidth = offsetWidthOf(scrollbarH);\n\n !adjustedScrollWidth && adjustScrollWidth();\n\n const newRatio = scrollWidth / scrollbarWidth;\n if ((ratioH === newRatio && Number.isFinite(newRatio)) || Number.isNaN(newRatio)) return;\n\n const offsetWidth = offsetWidthOf(viewport);\n\n const verticalScrollBarOffset = status() !== WITHOUT_SCROLL ? scrollbar.clientWidth + Math.max(NATIVE_SCROLL_WIDTH, 0) : 0;\n let containerOffsetWidth = offsetWidthOf(container) + verticalScrollBarOffset;\n\n if (containerOffsetWidth === scrollWidth && statusH() === WITHOUT_SCROLL)\n return;\n\n ratioH = newRatio;\n styleOf(thumbH).width = (scrollbarWidth / newRatio) + 'px';\n\n\n if (horizontalScrollBarModeOf(props()) === SCROLLBAR_MODE_HIDDEN) {\n if (statusH() !== WITHOUT_SCROLL)\n hideHorizontalScrollbar(scrollbarH, viewport);\n\n return\n }\n\n styleOf(container).width = (scrollWidth - verticalScrollBarOffset) + 'px';\n containerOffsetWidth = offsetWidthOf(container) + verticalScrollBarOffset;\n\n if (containerOffsetWidth < scrollWidth) {\n adjustedScrollWidth = false;\n showHorizontalScrollbar(scrollbarH, viewport, adjustScrollWidth);\n } else {\n hideHorizontalScrollbar(scrollbarH, viewport);\n }\n\n const position = viewport.scrollLeft / (scrollWidth - offsetWidth);\n styleOf(thumbH).left = (position * (scrollbarWidth - offsetWidthOf(thumbH))) + 'px';\n };\n\n initTimeout = setTimeout(() => {\n resizeInterval = setInterval(() => {\n updateVerticalScrollbar();\n updateHorizontalScrollbar();\n }, 50);\n }, 200)\n };\n\n that[componentDidMount] = init;\n that[componentWillUnmount] = clear;\n\n that[componentDidUpdate] = (prevProps) => {\n if (scrollBarModeOf(props()) !== scrollBarModeOf(prevProps))\n init();\n else if (onScroll(props()) !== onScroll(prevProps))\n init();\n };\n\n that.setScroll = (y) => {\n viewportRef().scrollTop = y\n };\n that.getScroll = () => viewportRef().scrollTop;\n that.getScrollHeight = () => scrollHeightOf(viewportRef());\n that.getHeight = () => that.el.clientHeight;\n\n that[render] = () => {\n const _props = props();\n const {className, children} = _props;\n return (\n <div className={classNames('Scrollable', className, status() || WITH_SCROLL, statusH() + '-horizontal')} style={styleOf(_props)} ref={ref('el', this)}>\n <div className=\"viewport\" ref={viewportRef}>\n {children}\n </div>\n <div className={classNames('scrollbar', scrollBarModeOf(_props) || SCROLLBAR_MODE_AUTO)} ref={scrollbarRef}>\n <div className=\"thumb\" ref={thumbRef}/>\n </div>\n <div className={classNames('scrollbar horizontal', horizontalScrollBarModeOf(_props))} ref={horizontalScrollbarRef}>\n <div className=\"thumb\" ref={horizontalThumbRef}/>\n </div>\n </div>\n )\n };\n }\n}\n\nexport default Scrollable\n\nScrollable.defaultProps = {\n autoScrollTop: true,\n horizontalScrollBarMode: SCROLLBAR_MODE_HIDDEN\n};\n\nif (window.isNotProductionEnvironment) {\n Scrollable.propTypes = {\n scrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE]),\n horizontalScrollBarMode: PropTypes.oneOf([SCROLLBAR_MODE_AUTO, SCROLLBAR_MODE_HIDDEN, SCROLLBAR_MODE_VISIBLE]),\n className: PropTypes.string,\n style: PropTypes.object,\n onScrolledToBottom: PropTypes.func,\n onScrolledToTop: PropTypes.func,\n autoScrollTop: PropTypes.bool,\n }\n}"],"names":["SCROLLBAR_MODE_HIDDEN","SCROLLBAR_MODE_VISIBLE","SCROLLBAR_MODE_AUTO","NATIVE_SCROLL_WIDTH","NATIVE_SCROLL_HEIGHT","WITHOUT_SCROLL","WITH_SCROLL","createFieldGetter","field","el","scrollHeightOf","scrollWidthOf","offsetHeightOf","offsetWidthOf","styleOf","scrollBarModeOf","onScroll","horizontalScrollBarModeOf","Scrollable","properties","that","state","props","propsGetter","status","stateGS","statusH","viewportRef","createRef","scrollbarRef","horizontalScrollbarRef","thumbRef","horizontalThumbRef","resizeInterval","initTimeout","clear","clearInterval","clearTimeout","init","viewport","scrollbar","scrollbarH","container","thumb","thumbH","scrolling","scrolledToBottom","scrolledToTop","adjustedScrollWidth","lastY","lastX","ratio","ratioH","onScrollListener","onscroll","e","scrollHeight","offsetHeight","scrollWidth","offsetWidth","scrollbarHeight","scrollbarWidth","position","scrollTop","positionH","scrollLeft","top","left","orNoop","onScrolledToBottom","onScrolledToTop","reset","removeEventListener","WINDOW","moveListener","style","scrollBehavior","clientY","clientX","onmousedown","addEventListener","ondragstart","preventDefault","onmouseup","onclick","target","thumbPosition","parseInt","offsetY","offsetX","adjustScrollWidth","clientWidth","clientHeight","paddingRight","marginRight","paddingBottom","marginBottom","showScrollbar","visibility","bottom","overflowY","hideScrollbar","showHorizontalScrollbar","right","overflowX","hideHorizontalScrollbar","updateVerticalScrollbar","newRatio","Number","isFinite","isNaN","horizontalScrollBarOffset","Math","max","containerOffsetHeight","autoScrollTop","height","updateHorizontalScrollbar","verticalScrollBarOffset","containerOffsetWidth","width","setTimeout","setInterval","componentDidMount","componentWillUnmount","componentDidUpdate","prevProps","setScroll","y","getScroll","getScrollHeight","getHeight","render","_props","className","children","classNames","ref","PureComponent","defaultProps","horizontalScrollBarMode","window","isNotProductionEnvironment","propTypes","scrollBarMode","PropTypes","oneOf","string","object","func","bool"],"mappings":"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"}
package/Table.css CHANGED
@@ -92,3 +92,9 @@
92
92
  padding: 0px;
93
93
  background-color: rgb(240, 240, 240);
94
94
  }
95
+ .Table .editable > .AutocompleteSelect {
96
+ min-width: unset;
97
+ }
98
+ .Table .editable > .AutocompleteSelect > .selected > .DummyChild {
99
+ margin: 0;
100
+ }
package/Table.d.ts CHANGED
@@ -91,5 +91,6 @@ export interface TableColumnSelect<T> extends TableColumn<T> {
91
91
  editorSelectedComponent?: any;
92
92
  editorChildComponent?: any;
93
93
  prefilter?: any;
94
+ filter?: (value: any, filterValue: string) => boolean;
94
95
  }
95
96
  export default Table;
package/Table.js CHANGED
@@ -4,7 +4,7 @@ import { Component } from 'react';
4
4
  import TextField from './TextField.js';
5
5
  import AutocompleteSelect, { MODE_MULTIPLE_MINI, MODE_DEFAULT } from './AutocompleteSelect.js';
6
6
  import Switch from './Switch.js';
7
- import { setInterval, classNames, isFunction, UNDEFINED, isString, preventDefault, stopPropagation, Comparators, createRef, createAccessor, orNoop, NOOP } from './Tools.js';
7
+ import { setInterval, classNames, isFunction, UNDEFINED, isString, preventDefault, DOCUMENT, stopPropagation, Comparators, createRef, createAccessor, orNoop, NOOP } from './Tools.js';
8
8
  import MaterialIcon from './MaterialIcon.js';
9
9
  import { stateGS, stateGSs, componentDidMount, componentDidUpdate, render, componentWillUnmount, PureComponent, propsGetter } from './ReactConstants.js';
10
10
 
@@ -154,11 +154,11 @@ var Row = /** @class */ (function (_super) {
154
154
  preventDefault(e);
155
155
  onFinishEditing();
156
156
  }
157
- } })), displayEditor && column.editor === editorSelect && (jsxRuntime_2(AutocompleteSelect, { value: value, data: column.editorData, focused: true, withArrow: false, withFilter: false, selectedMode: 'inline', selectedComponent: column.editorSelectedComponent, mode: column.multiSelect ? MODE_MULTIPLE_MINI : MODE_DEFAULT, [ReactConstants[7]]: column.multiSelect && (column.onSelect ? (function (value) {
157
+ } })), displayEditor && column.editor === editorSelect && (jsxRuntime_2(AutocompleteSelect, { value: value, data: column.editorData, focused: true, withArrow: false, withFilter: true, selectedMode: 'inline', selectedComponent: column.editorSelectedComponent, mode: column.multiSelect ? MODE_MULTIPLE_MINI : MODE_DEFAULT, [ReactConstants[7]]: column.multiSelect && (column.onSelect ? (function (value) {
158
158
  setValue(column.onSelect(value), item, column.field);
159
159
  }) : function (value) { return setValue(value, item, column.field); }), onSelect: !column.multiSelect && (column.onSelect ? (function (value) {
160
160
  setValue(column.onSelect(value), item, column.field);
161
- }) : function (value) { return setValue(value, item, column.field); }), childComponent: column.editorChildComponent, onCancel: cancelEditing, prefilter: column.prefilter })), displayEditor && column.editor === editorSwitch && (jsxRuntime_2(Switch, { [ReactConstants[6]]: function (e) {
161
+ }) : function (value) { return setValue(value, item, column.field); }), childComponent: column.editorChildComponent, onCancel: cancelEditing, prefilter: column.prefilter, filter: column.filter, listPortal: DOCUMENT.body })), displayEditor && column.editor === editorSwitch && (jsxRuntime_2(Switch, { [ReactConstants[6]]: function (e) {
162
162
  stopPropagation(e);
163
163
  preventDefault(e);
164
164
  setValue(!value, item, column.field);