react-ui-basics 0.0.235 → 0.0.237

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.
@@ -260,6 +260,7 @@ var AutocompleteSelect = function (_PureComponent) {
260
260
  value: function componentDidUpdate(prevProps, prevState, snapshot) {
261
261
  if (__props(this).value !== __value(prevProps)) this.initSelected(__props(this), __state(this));
262
262
  if (__state(this).isActive && !prevState.isActive) this.updateListPosition();
263
+ if (__state(this).isActive !== prevState.isActive) orNoop(__props(this).onIsActiveChange)(__state(this).isActive);
263
264
  }
264
265
  }, {
265
266
  key: [ReactConstants[1]],
@@ -319,7 +320,7 @@ var AutocompleteSelect = function (_PureComponent) {
319
320
  _this3.setState({
320
321
  isActive: true
321
322
  }, function () {
322
- return scrollToValue && __length(selectedIds) > 0 && _this3.list.selected(selectedIds[0]);
323
+ scrollToValue && __length(selectedIds) > 0 && data.includes(selectedIds[0]) && _this3.list.selected(selectedIds[0]);
323
324
  });
324
325
  };
325
326
  var toggle = function toggle(e) {
@@ -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 ifString = (s) => isString(s) && s\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, withFilter}, {filterValue = ''}) => {\n this.setState({\n selected: prepareSelected(value),\n filterValue: allowCustom && withFilter && 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) ? '' : ifString(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, withFilter} = this.props;\n let {filterValue, selected} = this.state;\n if (allowCustom && selectCustomOnClickOutside && (!!filterValue || !required)) {\n selected = this.onSelect()\n }\n\n filterValue = (!isMultipleSelect(mode) && withFilter && ifString(Object.values(selected)[0])) || ''\n\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, withFilter} = this.props;\n\n // debugger\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 nextFilterValue = (!isMultipleSelect(mode) && withFilter && ifString(Object.values(selected)[0])) || ''\n this.setState({\n isActive: isActive,\n selected: selected,\n filterValue: nextFilterValue,\n errored,\n });\n\n if (nextFilterValue !== filterValue)\n orNoop(onFilterInputChange)(nextFilterValue)\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 } else {\n this.list.reset()\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","ifString","s","isString","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","withFilter","_ref3$filterValue","filterValue","selected","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","isFunction","nextFilterValue","getInput","focus","clean","e","preventDefault","stopPropagation","remove","event","target","data","indexOf","list","reset","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","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","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 ifString = (s) => isString(s) && s\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 if (this.state.isActive !== prevState.isActive)\n orNoop(this.props.onIsActiveChange)(this.state.isActive)\n }\n\n initSelected = ({value, mode, allowCustom, withFilter}, {filterValue = ''}) => {\n this.setState({\n selected: prepareSelected(value),\n filterValue: allowCustom && withFilter && 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}, () => {\n scrollToValue && selectedIds.length > 0 && data.includes(selectedIds[0]) && this.list.selected(selectedIds[0]);\n });\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) ? '' : ifString(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, withFilter} = this.props;\n let {filterValue, selected} = this.state;\n if (allowCustom && selectCustomOnClickOutside && (!!filterValue || !required)) {\n selected = this.onSelect()\n }\n\n filterValue = (!isMultipleSelect(mode) && withFilter && ifString(Object.values(selected)[0])) || ''\n\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, withFilter} = this.props;\n\n // debugger\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 nextFilterValue = (!isMultipleSelect(mode) && withFilter && ifString(Object.values(selected)[0])) || ''\n this.setState({\n isActive: isActive,\n selected: selected,\n filterValue: nextFilterValue,\n errored,\n });\n\n if (nextFilterValue !== filterValue)\n orNoop(onFilterInputChange)(nextFilterValue)\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 } else {\n this.list.reset()\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","ifString","s","isString","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","withFilter","_ref3$filterValue","filterValue","selected","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","isFunction","nextFilterValue","getInput","focus","clean","e","preventDefault","stopPropagation","remove","event","target","data","indexOf","list","reset","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","onIsActiveChange","componentWillUnmount","removeEventListener","render","_this3","_this$props4","childComponent","childProps","withArrow","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","includes","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","blur","PureComponent","defaultProps","MaterialIcon","icon"],"mappings":"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"}
package/bundle.css CHANGED
@@ -1,12 +1,3 @@
1
- .animated {
2
- transition: opacity 250ms ease;
3
- opacity: 0;
4
- }
5
-
6
- .animated.mounting, .animated.mounted {
7
- opacity: 1;
8
- }
9
-
10
1
  .AutocompleteSelect {
11
2
  display: inline-flex;
12
3
  flex-flow: column;
@@ -302,6 +293,15 @@
302
293
  position: absolute;
303
294
  }
304
295
 
296
+ .animated {
297
+ transition: opacity 250ms ease;
298
+ opacity: 0;
299
+ }
300
+
301
+ .animated.mounting, .animated.mounted {
302
+ opacity: 1;
303
+ }
304
+
305
305
  .ImageGallery {
306
306
  position: fixed;
307
307
  top: 0;
@@ -555,6 +555,115 @@
555
555
  transition: transform 0.1s ease-in;
556
556
  }
557
557
 
558
+ .Checkbox {
559
+ position: relative;
560
+ white-space: pre;
561
+ }
562
+
563
+ .Checkbox *, .Checkbox *:before, .Checkbox *:after {
564
+ box-sizing: border-box;
565
+ }
566
+
567
+ .Checkbox label {
568
+ font-family: Roboto, sans-serif;
569
+ font-size: 14px;
570
+ color: #1e252d;
571
+ cursor: pointer;
572
+ }
573
+
574
+ .Checkbox label:before, .Checkbox label:after {
575
+ content: "";
576
+ position: absolute;
577
+ left: 0;
578
+ top: 0;
579
+ }
580
+
581
+ .Checkbox label:before {
582
+ width: 20px;
583
+ height: 20px;
584
+ background: #fff;
585
+ border: 2px solid #252525;
586
+ border-radius: 2px;
587
+ cursor: pointer;
588
+ transition: background 0.3s;
589
+ }
590
+
591
+ .Checkbox input[type=checkbox] {
592
+ outline: 0;
593
+ margin-right: 10px;
594
+ visibility: hidden;
595
+ }
596
+
597
+ .Checkbox input[type=checkbox]:checked + label:before {
598
+ background: #4AC263;
599
+ border: none;
600
+ }
601
+
602
+ .Checkbox input[type=checkbox]:checked + label:after {
603
+ transform: rotate(-45deg);
604
+ top: 6px;
605
+ left: 4px;
606
+ width: 12px;
607
+ height: 6px;
608
+ border: 2px solid #fff;
609
+ border-top-style: none;
610
+ border-right-style: none;
611
+ }
612
+
613
+ .Checkbox input[type=checkbox]:disabled + label {
614
+ color: gray;
615
+ }
616
+
617
+ .Checkbox input[type=checkbox]:disabled + label:before {
618
+ border-color: rgba(0, 0, 0, 0.26);
619
+ }
620
+
621
+ .Checkbox input[type=checkbox]:disabled:checked + label:before {
622
+ background: rgba(0, 0, 0, 0.26);
623
+ }
624
+
625
+ .DialogModal {
626
+ overflow: hidden;
627
+ }
628
+
629
+ .DialogModal .content {
630
+ top: 20vh;
631
+ }
632
+
633
+ .Dialog {
634
+ background-color: white;
635
+ min-width: 460px;
636
+ max-width: 40vw;
637
+ padding: 15px;
638
+ }
639
+
640
+ .Dialog .title {
641
+ margin-bottom: 15px;
642
+ padding: 20px 50px 0px 30px;
643
+ font-size: 1.25rem;
644
+ line-height: 2rem;
645
+ font-weight: 400;
646
+ letter-spacing: 0.0125em;
647
+ }
648
+
649
+ .Dialog .description {
650
+ color: rgba(0, 0, 0, 0.54);
651
+ font-size: 1rem;
652
+ line-height: 1.5rem;
653
+ font-weight: 400;
654
+ letter-spacing: 0.03125em;
655
+ margin-top: 20px;
656
+ padding: 0 24px 24px;
657
+ }
658
+
659
+ .Dialog > div.row {
660
+ margin-bottom: 15px;
661
+ }
662
+
663
+ .Dialog > div.row:last-child {
664
+ margin-bottom: 0;
665
+ }
666
+
558
667
  .Button {
559
668
  position: relative;
560
669
  min-width: 64px;
@@ -721,6 +830,19 @@
721
830
  border: 0;
722
831
  }
723
832
 
833
+ .CircleProgress {
834
+ width: 48px;
835
+ height: 48px;
836
+ }
837
+
838
+ .CircleProgress .line {
839
+ stroke-width: 2px;
840
+ stroke: black;
841
+ stroke-linecap: square;
842
+ fill: none;
843
+ transition: stroke-dashoffset 0.2s ease;
844
+ }
845
+
724
846
  .CalendarMonthView {
725
847
  display: flex;
726
848
  flex-flow: column nowrap;
@@ -746,6 +868,30 @@
746
868
  height: 100%;
747
869
  }
748
870
 
871
+ .Button.FloatingActionButton {
872
+ position: absolute;
873
+ right: 16px;
874
+ bottom: 16px;
875
+ width: 56px;
876
+ height: 56px;
877
+ padding: 16px;
878
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
879
+ }
880
+
881
+ .Button.FloatingActionButton.raised {
882
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
883
+ }
884
+
885
+ .Button.FloatingActionButton.mini {
886
+ width: 40px;
887
+ height: 40px;
888
+ padding: 8px;
889
+ }
890
+
891
+ .Button.FloatingActionButton.hidden {
892
+ bottom: -100px;
893
+ }
894
+
749
895
  .DatePicker {
750
896
  position: relative;
751
897
  }
@@ -863,233 +1009,87 @@
863
1009
  background-color: #51adf6;
864
1010
  }
865
1011
 
866
- .Checkbox {
1012
+ .Dropzone {
867
1013
  position: relative;
868
- white-space: pre;
869
1014
  }
870
1015
 
871
- .Checkbox *, .Checkbox *:before, .Checkbox *:after {
872
- box-sizing: border-box;
1016
+ .Dropzone > .overlay {
1017
+ position: absolute;
1018
+ left: 0;
1019
+ right: 0;
1020
+ top: 0;
1021
+ bottom: 0;
1022
+ background-color: #38ADC4;
1023
+ z-index: 1;
1024
+ opacity: 0;
1025
+ transition: all 0.2s ease;
1026
+ transition-delay: 100ms;
1027
+ visibility: hidden;
1028
+ display: flex;
1029
+ justify-content: center;
1030
+ align-items: center;
873
1031
  }
874
1032
 
875
- .Checkbox label {
876
- font-family: Roboto, sans-serif;
877
- font-size: 14px;
878
- color: #1e252d;
879
- cursor: pointer;
1033
+ .Dropzone > .overlay .drop {
1034
+ border-radius: 4px;
1035
+ border: 1px dashed #FFFFFF;
1036
+ position: absolute;
1037
+ top: 18px;
1038
+ left: 18px;
1039
+ right: 18px;
1040
+ bottom: 18px;
1041
+ display: flex;
1042
+ justify-content: center;
1043
+ align-items: center;
1044
+ font-weight: 500;
1045
+ font-size: 18px;
1046
+ color: #FFFFFF;
880
1047
  }
881
1048
 
882
- .Checkbox label:before, .Checkbox label:after {
883
- content: "";
1049
+ .Dropzone.dragging > .overlay {
1050
+ opacity: 0.7;
1051
+ visibility: visible;
1052
+ transition-delay: 0s;
1053
+ }
1054
+
1055
+ .Dropzone.dragging > * {
1056
+ pointer-events: none;
1057
+ }
1058
+
1059
+ .Dropzone > input.file {
884
1060
  position: absolute;
885
1061
  left: 0;
1062
+ right: 0;
886
1063
  top: 0;
1064
+ bottom: 0;
1065
+ width: 100%;
1066
+ height: 100%;
1067
+ opacity: 0;
1068
+ cursor: pointer;
1069
+ z-index: 1;
887
1070
  }
888
1071
 
889
- .Checkbox label:before {
890
- width: 20px;
891
- height: 20px;
892
- background: #fff;
893
- border: 2px solid #252525;
894
- border-radius: 2px;
895
- cursor: pointer;
896
- transition: background 0.3s;
1072
+ .FilteredList {
1073
+ max-height: 250px;
1074
+ position: relative;
897
1075
  }
898
1076
 
899
- .Checkbox input[type=checkbox] {
900
- outline: 0;
901
- margin-right: 10px;
1077
+ .FilteredList.popup {
1078
+ padding: 0;
902
1079
  visibility: hidden;
1080
+ position: absolute;
1081
+ background: white;
1082
+ z-index: 4;
1083
+ box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
1084
+ transition: top 0.2s ease-out, opacity 0.2s ease-out;
1085
+ top: calc(100% + 4px);
1086
+ opacity: 0;
1087
+ border-radius: 2px;
903
1088
  }
904
1089
 
905
- .Checkbox input[type=checkbox]:checked + label:before {
906
- background: #4AC263;
907
- border: none;
908
- }
909
-
910
- .Checkbox input[type=checkbox]:checked + label:after {
911
- transform: rotate(-45deg);
912
- top: 6px;
913
- left: 4px;
914
- width: 12px;
915
- height: 6px;
916
- border: 2px solid #fff;
917
- border-top-style: none;
918
- border-right-style: none;
919
- }
920
-
921
- .Checkbox input[type=checkbox]:disabled + label {
922
- color: gray;
923
- }
924
-
925
- .Checkbox input[type=checkbox]:disabled + label:before {
926
- border-color: rgba(0, 0, 0, 0.26);
927
- }
928
-
929
- .Checkbox input[type=checkbox]:disabled:checked + label:before {
930
- background: rgba(0, 0, 0, 0.26);
931
- }
932
-
933
- .CircleProgress {
934
- width: 48px;
935
- height: 48px;
936
- }
937
-
938
- .CircleProgress .line {
939
- stroke-width: 2px;
940
- stroke: black;
941
- stroke-linecap: square;
942
- fill: none;
943
- transition: stroke-dashoffset 0.2s ease;
944
- }
945
-
946
- .DialogModal {
947
- overflow: hidden;
948
- }
949
-
950
- .DialogModal .content {
951
- top: 20vh;
952
- }
953
-
954
- .Dialog {
955
- background-color: white;
956
- min-width: 460px;
957
- max-width: 40vw;
958
- padding: 15px;
959
- }
960
-
961
- .Dialog .title {
962
- margin-bottom: 15px;
963
- padding: 20px 50px 0px 30px;
964
- font-size: 1.25rem;
965
- line-height: 2rem;
966
- font-weight: 400;
967
- letter-spacing: 0.0125em;
968
- }
969
-
970
- .Dialog .description {
971
- color: rgba(0, 0, 0, 0.54);
972
- font-size: 1rem;
973
- line-height: 1.5rem;
974
- font-weight: 400;
975
- letter-spacing: 0.03125em;
976
- margin-top: 20px;
977
- padding: 0 24px 24px;
978
- }
979
-
980
- .Dialog > div.row {
981
- margin-bottom: 15px;
982
- }
983
-
984
- .Dialog > div.row:last-child {
985
- margin-bottom: 0;
986
- }
987
-
988
- .Dropzone {
989
- position: relative;
990
- }
991
-
992
- .Dropzone > .overlay {
993
- position: absolute;
994
- left: 0;
995
- right: 0;
996
- top: 0;
997
- bottom: 0;
998
- background-color: #38ADC4;
999
- z-index: 1;
1000
- opacity: 0;
1001
- transition: all 0.2s ease;
1002
- transition-delay: 100ms;
1003
- visibility: hidden;
1004
- display: flex;
1005
- justify-content: center;
1006
- align-items: center;
1007
- }
1008
-
1009
- .Dropzone > .overlay .drop {
1010
- border-radius: 4px;
1011
- border: 1px dashed #FFFFFF;
1012
- position: absolute;
1013
- top: 18px;
1014
- left: 18px;
1015
- right: 18px;
1016
- bottom: 18px;
1017
- display: flex;
1018
- justify-content: center;
1019
- align-items: center;
1020
- font-weight: 500;
1021
- font-size: 18px;
1022
- color: #FFFFFF;
1023
- }
1024
-
1025
- .Dropzone.dragging > .overlay {
1026
- opacity: 0.7;
1027
- visibility: visible;
1028
- transition-delay: 0s;
1029
- }
1030
-
1031
- .Dropzone.dragging > * {
1032
- pointer-events: none;
1033
- }
1034
-
1035
- .Dropzone > input.file {
1036
- position: absolute;
1037
- left: 0;
1038
- right: 0;
1039
- top: 0;
1040
- bottom: 0;
1041
- width: 100%;
1042
- height: 100%;
1043
- opacity: 0;
1044
- cursor: pointer;
1045
- z-index: 1;
1046
- }
1047
-
1048
- .Button.FloatingActionButton {
1049
- position: absolute;
1050
- right: 16px;
1051
- bottom: 16px;
1052
- width: 56px;
1053
- height: 56px;
1054
- padding: 16px;
1055
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1056
- }
1057
-
1058
- .Button.FloatingActionButton.raised {
1059
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
1060
- }
1061
-
1062
- .Button.FloatingActionButton.mini {
1063
- width: 40px;
1064
- height: 40px;
1065
- padding: 8px;
1066
- }
1067
-
1068
- .Button.FloatingActionButton.hidden {
1069
- bottom: -100px;
1070
- }
1071
-
1072
- .FilteredList {
1073
- max-height: 250px;
1074
- position: relative;
1075
- }
1076
-
1077
- .FilteredList.popup {
1078
- padding: 0;
1079
- visibility: hidden;
1080
- position: absolute;
1081
- background: white;
1082
- z-index: 4;
1083
- box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
1084
- transition: top 0.2s ease-out, opacity 0.2s ease-out;
1085
- top: calc(100% + 4px);
1086
- opacity: 0;
1087
- border-radius: 2px;
1088
- }
1089
-
1090
- .FilteredList.popup.visible {
1091
- opacity: 1;
1092
- visibility: visible;
1090
+ .FilteredList.popup.visible {
1091
+ opacity: 1;
1092
+ visibility: visible;
1093
1093
  }
1094
1094
 
1095
1095
  .FilteredList.portal {
@@ -1153,101 +1153,36 @@
1153
1153
  margin-bottom: 8px;
1154
1154
  }
1155
1155
 
1156
- .DropFileInput {
1157
- flex-grow: 1;
1156
+ .DNDContainer {
1157
+ position: relative;
1158
1158
  }
1159
1159
 
1160
- .DropFileInput .Dropzone {
1161
- border: 1px dashed #808080;
1162
- padding: 12px;
1163
- display: flex;
1164
- flex-flow: row nowrap;
1165
- justify-content: center;
1166
- align-items: center;
1167
- color: gray;
1160
+ .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
1168
1161
  cursor: pointer;
1169
- border-radius: 3px;
1170
- font-weight: normal;
1171
- line-height: 22px;
1172
- font-size: 14px;
1173
- color: #7E7E7E;
1174
- max-width: 100%;
1175
- word-break: break-all;
1176
- word-break: break-word;
1177
1162
  }
1178
1163
 
1179
- .DropFileInput .Dropzone .icon.withText {
1180
- margin-right: 10px;
1164
+ .DNDContainer .Draggable.placeholder {
1165
+ opacity: 0.2;
1181
1166
  }
1182
1167
 
1183
- .Modal {
1184
- display: block;
1185
- position: fixed;
1186
- top: 0;
1187
- left: 0;
1188
- right: 0;
1189
- bottom: 100%;
1190
- overflow-y: scroll;
1191
- transition: bottom 0ms linear;
1192
- transition-delay: 0.2s;
1168
+ .DNDContainer .Draggable.copy {
1169
+ position: absolute;
1170
+ box-sizing: border-box;
1171
+ will-change: transform;
1172
+ opacity: 0;
1193
1173
  }
1194
1174
 
1195
- .Modal.show {
1196
- transition-delay: 0s;
1197
- bottom: 0;
1175
+ .DNDContainer .Draggable.dragged {
1176
+ z-index: 10;
1198
1177
  }
1199
1178
 
1200
- .Modal > .overlay {
1201
- position: fixed;
1179
+ .DNDContainer .overlay {
1180
+ position: absolute;
1202
1181
  top: 0;
1203
- bottom: 100%;
1204
1182
  left: 0;
1205
1183
  right: 0;
1206
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1207
- opacity: 0;
1208
- background-color: black;
1209
- pointer-events: none;
1210
- }
1211
-
1212
- .Modal > .overlay.show {
1213
- opacity: 0.5;
1214
1184
  bottom: 0;
1215
- }
1216
-
1217
- .Modal > .content {
1218
- left: 50%;
1219
- top: 10vh;
1220
- margin-bottom: 10vh;
1221
- font-size: 16px;
1222
- padding: 0;
1223
- opacity: 0;
1224
- transition: opacity 0.25s ease, transform 0.25s ease;
1225
- transform: scaleY(0) translateY(-200px) translateX(-50%);
1226
- transform-origin: top;
1227
- position: absolute;
1228
- border-radius: 2px;
1229
- box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
1230
- }
1231
-
1232
- .Modal > .content.show {
1233
- opacity: 1;
1234
- transform: scaleY(1) translateY(0px) translateX(-50%);
1235
- }
1236
-
1237
- .Modal > .content > .Scrollable {
1238
- overflow: visible;
1239
- max-height: 80vh;
1240
- }
1241
-
1242
- .Modal > .content > .Scrollable > .viewport {
1243
- min-width: 10px;
1244
- min-height: 10px;
1245
- }
1246
-
1247
- .Modal > .content > .Button.close {
1248
- top: 10px;
1249
- right: 10px;
1250
- position: absolute;
1185
+ pointer-events: none;
1251
1186
  }
1252
1187
 
1253
1188
  .FormUploadProgress {
@@ -1319,6 +1254,33 @@
1319
1254
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
1320
1255
  }
1321
1256
 
1257
+ .DropFileInput {
1258
+ flex-grow: 1;
1259
+ }
1260
+
1261
+ .DropFileInput .Dropzone {
1262
+ border: 1px dashed #808080;
1263
+ padding: 12px;
1264
+ display: flex;
1265
+ flex-flow: row nowrap;
1266
+ justify-content: center;
1267
+ align-items: center;
1268
+ color: gray;
1269
+ cursor: pointer;
1270
+ border-radius: 3px;
1271
+ font-weight: normal;
1272
+ line-height: 22px;
1273
+ font-size: 14px;
1274
+ color: #7E7E7E;
1275
+ max-width: 100%;
1276
+ word-break: break-all;
1277
+ word-break: break-word;
1278
+ }
1279
+
1280
+ .DropFileInput .Dropzone .icon.withText {
1281
+ margin-right: 10px;
1282
+ }
1283
+
1322
1284
  .Scrollable {
1323
1285
  max-height: 250px;
1324
1286
  max-width: 250px;
@@ -1386,35 +1348,142 @@
1386
1348
  background-color: rgba(0, 0, 0, 0.3);
1387
1349
  width: 5px;
1388
1350
  position: absolute;
1389
- right: 0px;
1390
- top: 0px;
1391
- user-select: none;
1392
- will-change: top;
1393
- border-radius: 2px;
1351
+ right: 0px;
1352
+ top: 0px;
1353
+ user-select: none;
1354
+ will-change: top;
1355
+ border-radius: 2px;
1356
+ }
1357
+
1358
+ .Scrollable .scrollbar .thumb:hover {
1359
+ background-color: rgba(0, 0, 0, 0.5);
1360
+ }
1361
+
1362
+ .Scrollable .scrollbar .thumb:active {
1363
+ background-color: rgba(0, 0, 0, 0.7);
1364
+ }
1365
+
1366
+ .Scrollable .scrollbar.horizontal {
1367
+ left: 0px;
1368
+ right: 0px;
1369
+ height: 5px;
1370
+ bottom: 0;
1371
+ width: unset;
1372
+ top: unset;
1373
+ }
1374
+
1375
+ .Scrollable .scrollbar.horizontal .thumb {
1376
+ height: 5px;
1377
+ left: 0px;
1378
+ bottom: 0px;
1379
+ will-change: left;
1380
+ }
1381
+
1382
+ .Modal {
1383
+ display: block;
1384
+ position: fixed;
1385
+ top: 0;
1386
+ left: 0;
1387
+ right: 0;
1388
+ bottom: 100%;
1389
+ overflow-y: scroll;
1390
+ transition: bottom 0ms linear;
1391
+ transition-delay: 0.2s;
1392
+ }
1393
+
1394
+ .Modal.show {
1395
+ transition-delay: 0s;
1396
+ bottom: 0;
1397
+ }
1398
+
1399
+ .Modal > .overlay {
1400
+ position: fixed;
1401
+ top: 0;
1402
+ bottom: 100%;
1403
+ left: 0;
1404
+ right: 0;
1405
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1406
+ opacity: 0;
1407
+ background-color: black;
1408
+ pointer-events: none;
1409
+ }
1410
+
1411
+ .Modal > .overlay.show {
1412
+ opacity: 0.5;
1413
+ bottom: 0;
1414
+ }
1415
+
1416
+ .Modal > .content {
1417
+ left: 50%;
1418
+ top: 10vh;
1419
+ margin-bottom: 10vh;
1420
+ font-size: 16px;
1421
+ padding: 0;
1422
+ opacity: 0;
1423
+ transition: opacity 0.25s ease, transform 0.25s ease;
1424
+ transform: scaleY(0) translateY(-200px) translateX(-50%);
1425
+ transform-origin: top;
1426
+ position: absolute;
1427
+ border-radius: 2px;
1428
+ box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
1429
+ }
1430
+
1431
+ .Modal > .content.show {
1432
+ opacity: 1;
1433
+ transform: scaleY(1) translateY(0px) translateX(-50%);
1434
+ }
1435
+
1436
+ .Modal > .content > .Scrollable {
1437
+ overflow: visible;
1438
+ max-height: 80vh;
1439
+ }
1440
+
1441
+ .Modal > .content > .Scrollable > .viewport {
1442
+ min-width: 10px;
1443
+ min-height: 10px;
1444
+ }
1445
+
1446
+ .Modal > .content > .Button.close {
1447
+ top: 10px;
1448
+ right: 10px;
1449
+ position: absolute;
1450
+ }
1451
+
1452
+ .ModalMenu {
1453
+ position: absolute;
1454
+ top: 10px;
1455
+ right: 50px;
1456
+ }
1457
+
1458
+ .ModalMenu .material-icons {
1459
+ color: #818181;
1460
+ }
1461
+
1462
+ .ModalMenu .Button.animated {
1463
+ position: absolute;
1464
+ transition: opacity 150ms ease-in, right 200ms ease-in;
1465
+ opacity: 0;
1466
+ right: 0;
1467
+ top: 0;
1394
1468
  }
1395
1469
 
1396
- .Scrollable .scrollbar .thumb:hover {
1397
- background-color: rgba(0, 0, 0, 0.5);
1470
+ .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
1471
+ opacity: 1;
1398
1472
  }
1399
1473
 
1400
- .Scrollable .scrollbar .thumb:active {
1401
- background-color: rgba(0, 0, 0, 0.7);
1474
+ .ModalMenu .Button.animated.unmounting {
1475
+ transition: opacity 100ms ease-out, right 200ms ease-out;
1402
1476
  }
1403
1477
 
1404
- .Scrollable .scrollbar.horizontal {
1405
- left: 0px;
1406
- right: 0px;
1407
- height: 5px;
1408
- bottom: 0;
1409
- width: unset;
1410
- top: unset;
1478
+ .ModalMenu .Button.active {
1479
+ background: #EBEBEB;
1411
1480
  }
1412
1481
 
1413
- .Scrollable .scrollbar.horizontal .thumb {
1414
- height: 5px;
1415
- left: 0px;
1416
- bottom: 0px;
1417
- will-change: left;
1482
+ .ModalMenu .separator {
1483
+ height: 24px;
1484
+ width: 1px;
1485
+ background-color: #D9D9D9;
1486
+ margin-left: 4px;
1418
1487
  }
1419
1488
 
1420
1489
  .Snackbar {
@@ -1462,120 +1531,6 @@
1462
1531
  color: #bf3727;
1463
1532
  }
1464
1533
 
1465
- .DNDContainer {
1466
- position: relative;
1467
- }
1468
-
1469
- .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
1470
- cursor: pointer;
1471
- }
1472
-
1473
- .DNDContainer .Draggable.placeholder {
1474
- opacity: 0.2;
1475
- }
1476
-
1477
- .DNDContainer .Draggable.copy {
1478
- position: absolute;
1479
- box-sizing: border-box;
1480
- will-change: transform;
1481
- opacity: 0;
1482
- }
1483
-
1484
- .DNDContainer .Draggable.dragged {
1485
- z-index: 10;
1486
- }
1487
-
1488
- .DNDContainer .overlay {
1489
- position: absolute;
1490
- top: 0;
1491
- left: 0;
1492
- right: 0;
1493
- bottom: 0;
1494
- pointer-events: none;
1495
- }
1496
-
1497
- .Switch {
1498
- display: inline-flex;
1499
- padding-top: 5px;
1500
- }
1501
-
1502
- .Switch .switch-input {
1503
- display: none;
1504
- }
1505
-
1506
- .Switch .switch-label {
1507
- position: relative;
1508
- display: inline-flex;
1509
- align-items: center;
1510
- min-width: 38px;
1511
- height: 24px;
1512
- cursor: pointer;
1513
- font-weight: 500;
1514
- text-align: left;
1515
- user-select: none;
1516
- margin: 0;
1517
- padding: 0;
1518
- padding-left: 44px;
1519
- box-sizing: border-box;
1520
- }
1521
-
1522
- .Switch .switch-label:before, .Switch .switch-label:after {
1523
- content: "";
1524
- box-sizing: border-box;
1525
- position: absolute;
1526
- margin: 0;
1527
- outline: 0;
1528
- top: 50%;
1529
- transform: translate(0, -50%);
1530
- transition: all 0.3s ease;
1531
- }
1532
-
1533
- .Switch .switch-label:before {
1534
- left: 1px;
1535
- width: 34px;
1536
- height: 14px;
1537
- background-color: #9E9E9E;
1538
- border-radius: 8px;
1539
- }
1540
-
1541
- .Switch .switch-label:after {
1542
- left: 0;
1543
- width: 20px;
1544
- height: 20px;
1545
- background-color: #FAFAFA;
1546
- border-radius: 50%;
1547
- box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.14), 0 2px 2px 0 rgba(0, 0, 0, 0.098), 0 1px 5px 0 rgba(0, 0, 0, 0.084);
1548
- }
1549
-
1550
- .Switch .switch-label .toggle--on {
1551
- display: none;
1552
- }
1553
-
1554
- .Switch .switch-label .toggle--off {
1555
- display: inline-block;
1556
- }
1557
-
1558
- .Switch .switch-label .label {
1559
- margin-right: 5px;
1560
- }
1561
-
1562
- .Switch .switch-input:checked + .switch-label:before {
1563
- background-color: #A5D6A7;
1564
- }
1565
-
1566
- .Switch .switch-input:checked + .switch-label:after {
1567
- background-color: #4CAF50;
1568
- transform: translate(80%, -50%);
1569
- }
1570
-
1571
- .Switch .switch-input:checked + .switch-label .toggle--on {
1572
- display: inline-block;
1573
- }
1574
-
1575
- .Switch .switch-input:checked + .switch-label .toggle--off {
1576
- display: none;
1577
- }
1578
-
1579
1534
  .SpinningProgress {
1580
1535
  width: 48px;
1581
1536
  height: 48px;
@@ -1629,6 +1584,14 @@
1629
1584
  stroke-dashoffset: -53px;
1630
1585
  }
1631
1586
  }
1587
+ .ScrollableTable .Scrollable .scrollbar {
1588
+ top: 56px;
1589
+ }
1590
+
1591
+ .ScrollableTable .Table {
1592
+ position: static;
1593
+ }
1594
+
1632
1595
  .Table {
1633
1596
  font-family: Roboto, sans-serif;
1634
1597
  font-size: 14px;
@@ -1751,41 +1714,86 @@
1751
1714
  margin: 0;
1752
1715
  }
1753
1716
 
1754
- .ModalMenu {
1755
- position: absolute;
1756
- top: 10px;
1757
- right: 50px;
1717
+ .Switch {
1718
+ display: inline-flex;
1719
+ padding-top: 5px;
1758
1720
  }
1759
1721
 
1760
- .ModalMenu .material-icons {
1761
- color: #818181;
1722
+ .Switch .switch-input {
1723
+ display: none;
1762
1724
  }
1763
1725
 
1764
- .ModalMenu .Button.animated {
1726
+ .Switch .switch-label {
1727
+ position: relative;
1728
+ display: inline-flex;
1729
+ align-items: center;
1730
+ min-width: 38px;
1731
+ height: 24px;
1732
+ cursor: pointer;
1733
+ font-weight: 500;
1734
+ text-align: left;
1735
+ user-select: none;
1736
+ margin: 0;
1737
+ padding: 0;
1738
+ padding-left: 44px;
1739
+ box-sizing: border-box;
1740
+ }
1741
+
1742
+ .Switch .switch-label:before, .Switch .switch-label:after {
1743
+ content: "";
1744
+ box-sizing: border-box;
1765
1745
  position: absolute;
1766
- transition: opacity 150ms ease-in, right 200ms ease-in;
1767
- opacity: 0;
1768
- right: 0;
1769
- top: 0;
1746
+ margin: 0;
1747
+ outline: 0;
1748
+ top: 50%;
1749
+ transform: translate(0, -50%);
1750
+ transition: all 0.3s ease;
1770
1751
  }
1771
1752
 
1772
- .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
1773
- opacity: 1;
1753
+ .Switch .switch-label:before {
1754
+ left: 1px;
1755
+ width: 34px;
1756
+ height: 14px;
1757
+ background-color: #9E9E9E;
1758
+ border-radius: 8px;
1774
1759
  }
1775
1760
 
1776
- .ModalMenu .Button.animated.unmounting {
1777
- transition: opacity 100ms ease-out, right 200ms ease-out;
1761
+ .Switch .switch-label:after {
1762
+ left: 0;
1763
+ width: 20px;
1764
+ height: 20px;
1765
+ background-color: #FAFAFA;
1766
+ border-radius: 50%;
1767
+ box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.14), 0 2px 2px 0 rgba(0, 0, 0, 0.098), 0 1px 5px 0 rgba(0, 0, 0, 0.084);
1778
1768
  }
1779
1769
 
1780
- .ModalMenu .Button.active {
1781
- background: #EBEBEB;
1770
+ .Switch .switch-label .toggle--on {
1771
+ display: none;
1782
1772
  }
1783
1773
 
1784
- .ModalMenu .separator {
1785
- height: 24px;
1786
- width: 1px;
1787
- background-color: #D9D9D9;
1788
- margin-left: 4px;
1774
+ .Switch .switch-label .toggle--off {
1775
+ display: inline-block;
1776
+ }
1777
+
1778
+ .Switch .switch-label .label {
1779
+ margin-right: 5px;
1780
+ }
1781
+
1782
+ .Switch .switch-input:checked + .switch-label:before {
1783
+ background-color: #A5D6A7;
1784
+ }
1785
+
1786
+ .Switch .switch-input:checked + .switch-label:after {
1787
+ background-color: #4CAF50;
1788
+ transform: translate(80%, -50%);
1789
+ }
1790
+
1791
+ .Switch .switch-input:checked + .switch-label .toggle--on {
1792
+ display: inline-block;
1793
+ }
1794
+
1795
+ .Switch .switch-input:checked + .switch-label .toggle--off {
1796
+ display: none;
1789
1797
  }
1790
1798
 
1791
1799
  .TextField {
@@ -1929,12 +1937,4 @@
1929
1937
  animation-fill-mode: both;
1930
1938
  animation-timing-function: ease-in-out;
1931
1939
  animation-name: shake;
1932
- }
1933
-
1934
- .ScrollableTable .Scrollable .scrollbar {
1935
- top: 56px;
1936
- }
1937
-
1938
- .ScrollableTable .Table {
1939
- position: static;
1940
1940
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-ui-basics",
3
- "version": "0.0.235",
3
+ "version": "0.0.237",
4
4
  "description": "",
5
5
  "module": "index.js",
6
6
  "_main": "index.cjs.js",
@@ -147,6 +147,8 @@ class AutocompleteSelect extends PureComponent {
147
147
  this.initSelected(__props(this), __state(this))
148
148
  if (__state(this).isActive && !prevState.isActive)
149
149
  this.updateListPosition()
150
+ if (__state(this).isActive !== prevState.isActive)
151
+ orNoop(__props(this).onIsActiveChange)(__state(this).isActive)
150
152
  }
151
153
 
152
154
  initSelected = ({value, mode, allowCustom, withFilter}, {filterValue = ''}) => {
@@ -226,7 +228,9 @@ class AutocompleteSelect extends PureComponent {
226
228
  const hasSelected = __length(selectedIds) !== 0;
227
229
  const setActive = (e) => {
228
230
  stopPropagation(e);
229
- this.setState({isActive: true}, () => (scrollToValue && __length(selectedIds) > 0) && this.list.selected(selectedIds[0]));
231
+ this.setState({isActive: true}, () => {
232
+ scrollToValue && __length(selectedIds) > 0 && data.includes(selectedIds[0]) && this.list.selected(selectedIds[0]);
233
+ });
230
234
  };
231
235
  const toggle = (e) => {
232
236
  if (!__state(this).isActive) {