react-ui-basics 0.0.172 → 0.0.175

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Animated.js","sources":["../../../src/react-ui-basics/Animated.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './Animated.css'\nimport {allPropsExcept, classNames, setOf, setTimeout, requestAnimationFrame, clearTimeout} from \"./Tools\";\nimport {props, state, setState, componentWillUnmount, componentDidMount, render, componentDidUpdate, className, children, PureComponent} from \"./ReactConstants\";\n\nlet mounting = 'mounting',\n unmounting = 'unmounting',\n mounted = 'mounted',\n enabled = 'enabled',\n mountingDelay = 'mountingDelay',\n unmountingDelay = 'unmountingDelay',\n timeout = 'timeout',\n value = 'value'\n;\n\nconst selfProps = setOf([\n children,\n className,\n 'styles',\n mountingDelay,\n unmountingDelay,\n mounting,\n unmounting,\n value,\n]);\n\nconst clearTimer = that => clearTimeout(that[timeout]);\n\nconst animatedState = (isEnabled, isMounting, isMounted, isUnMounting) => {\n const r = {};\n r[enabled] = isEnabled;\n r[mounting] = isMounting;\n r[mounted] = isMounted;\n r[unmounting] = isUnMounting;\n return r;\n};\n\nconst doMounting = (that, duration) => {\n setState(that, animatedState(true, true, false, false));\n\n that[timeout] = setTimeout(setState, duration, that, animatedState(true, false, true, false))\n};\n\nconst processMounting = (that, duration, mountingDelay) => {\n const _state = state(that);\n if (_state[mounting] || _state[mounted]) return;\n clearTimer(that);\n\n if (_state[unmounting])\n return doMounting(that, duration);\n\n if (mountingDelay) {\n that[timeout] = setTimeout(() => {\n if (state(that)[mounted]) return;\n doMounting(that, duration)\n }, mountingDelay);\n } else {\n doMounting(that, duration);\n }\n};\n\nconst doUnmounting = (that, duration) => {\n setState(that, animatedState(true, false, false, true));\n that[timeout] = setTimeout(setState, duration, that, animatedState(false, false, false, false));\n};\n\nconst processUnmounting = (that, duration, unmountingDelay) => {\n const _state = state(that);\n if (_state[unmounting]) return;\n clearTimer(that);\n\n if (_state[mounting])\n return doUnmounting(that, duration);\n\n if (unmountingDelay) {\n that[timeout] = setTimeout(() => {\n if (props(that)[value]) return;\n doUnmounting(that, duration);\n }, unmountingDelay);\n } else {\n doUnmounting(that, duration);\n }\n};\n\nclass Animated extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = animatedState(!!properties[value]);\n\n that[componentDidMount] = () => {\n const _props = props(that);\n if (!!_props[value])\n processMounting(that, _props[mounting], _props[mountingDelay])\n };\n\n that[componentWillUnmount] = () => {\n clearTimer(that)\n };\n\n that[render] = () => {\n const _state = state(that);\n if (!_state[enabled]) return null;\n\n const _props = props(that),\n {styles} = _props,\n {\n [mounting]: isMounting,\n [unmounting]: isUnMounting,\n [mounted]: isMounted,\n } = _state;\n\n let childStyles = styles.default;\n if (isMounting)\n childStyles = styles[mounting];\n else if (isUnMounting)\n childStyles = styles[unmounting];\n else if (isMounted)\n childStyles = styles[mounted] || styles[mounting];\n\n const otherProps = allPropsExcept(_props, selfProps);\n return React.Children.map(_props[children], child =>\n child && React.cloneElement(child, {\n [className]: classNames(\n props(child)[className],\n _props[className],\n isMounting && mounting,\n isMounted && mounted,\n isUnMounting && unmounting\n ),\n style: {...props(child).style, ...childStyles},\n ...otherProps,\n }));\n };\n\n that[componentDidUpdate] = () => {\n const p = props;\n const t = that;\n const _props = p(t)||props(that),\n _state = state(that),\n {\n [value]: v,\n [mounting]: mountingDuration,\n [unmounting]: unmountingDuration,\n } = _props,\n {\n [mounting]: isMounting,\n [unmounting]: isUnMounting,\n [mounted]: isMounted,\n [enabled]: isEnabled,\n } = _state;\n\n if (isUnMounting && v)\n return processMounting(that, mountingDuration, _props[mountingDelay]);\n if (isMounting && !v)\n return processUnmounting(that, unmountingDuration, _props[unmountingDelay]);\n\n let toggled = (isEnabled && !v) || (!isEnabled && !!v);\n if (toggled) {\n if (!!v) {\n // just set enable to true and wait until react will mount children\n setState(that, animatedState(true))\n } else\n processUnmounting(that, unmountingDuration, _props[unmountingDelay]);\n } else {\n if (isEnabled && !isMounting && !isMounted && !isUnMounting) {\n // react requires a delay to mount children, one requestAnimationFrame is not enough\n requestAnimationFrame(() => requestAnimationFrame(() => processMounting(that, mountingDuration, _props[mountingDelay])))\n }\n }\n }\n }\n}\n\nif (window.isNotProductionEnvironment) {\n Animated.propTypes = {\n [value]: PropTypes.bool,\n [className]: PropTypes.string,\n styles: PropTypes.shape({\n [mounting]: PropTypes.object,\n [mounted]: PropTypes.object,\n [unmounting]: PropTypes.object,\n }),\n [mountingDelay]: PropTypes.number,\n [unmountingDelay]: PropTypes.number,\n [mounting]: PropTypes.number,\n [unmounting]: PropTypes.number,\n };\n}\n\nAnimated.defaultProps = {\n [className]: 'animated',\n [mounting]: 250,\n [unmounting]: 250,\n styles: {},\n [mountingDelay]: 0,\n [unmountingDelay]: 0,\n};\n\n// forcing webpack to NOT inline constant fields\n// mounting = mounting || 1;\n// mounted = mounted || 1;\n// unmounting = unmounting || 1;\n// enabled = enabled || 1;\n// mountingDelay = mountingDelay || 1;\n// unmountingDelay = unmountingDelay || 1;\n// value = value || 1;\n// timeout = timeout || 1;\n\nexport default Animated"],"names":["mounting","unmounting","mounted","enabled","mountingDelay","unmountingDelay","timeout","value","selfProps","setOf","children","className","clearTimer","that","clearTimeout","animatedState","isEnabled","isMounting","isMounted","isUnMounting","r","doMounting","duration","setState","setTimeout","processMounting","_state","state","doUnmounting","processUnmounting","props","Animated","properties","componentDidMount","_props","componentWillUnmount","render","styles","childStyles","otherProps","allPropsExcept","React","Children","map","child","_objectSpread2","cloneElement","classNames","style","componentDidUpdate","p","t","v","mountingDuration","unmountingDuration","toggled","requestAnimationFrame","PureComponent","window","isNotProductionEnvironment","propTypes","PropTypes","bool","string","shape","object","number","defaultProps"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutocompleteSelect.js","sources":["../../../src/react-ui-basics/AutocompleteSelect.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from 'prop-types';\nimport './AutocompleteSelect.css'\nimport TextField from \"./TextField\";\nimport FilteredList, {getLabel} from \"./FilteredList\";\nimport {\n classNames,\n continuousIncludes,\n getRandomId,\n ref,\n orNoop,\n preventDefault,\n stopPropagation,\n DOCUMENT,\n addEventListener,\n removeEventListener,\n isObject,\n isFunction,\n isString, UNDEFINED, memo\n} from \"./Tools\";\nimport Button from \"./Button\";\nimport MaterialIcon from \"./MaterialIcon\";\nimport {PureComponent} from \"./ReactConstants\";\n\nexport const MODE_DEFAULT = 'default';\nexport const MODE_INLINE = 'inline';\nexport const MODE_INLINE_MULTIPLE = 'inline-multiple';\nexport const MODE_MULTIPLE_AUTO = 'multiple-auto';\nexport const MODE_MULTIPLE = 'multiple';\nexport const MODE_MULTIPLE_MINI = 'multiple-mini';\nexport const MODE_MINI = 'mini';\nexport const MODE_MULTIPLE_MINI_INLINE = 'multiple-mini-inline';\n\n\nconst DummyChild = ({id, label, dataConsumer, onClick}) => {\n orNoop(dataConsumer)(label || id);\n return <div className={`DummyChild`} onClick={onClick}>{label || id}</div>\n};\n\nconst prepareSelected = (value) => {\n let result;\n if (value != null) {\n if (Array.isArray(value))\n result = value.reduce((map, obj) => {\n map[obj] = obj;\n return map;\n }, {});\n else if (isObject(value))\n result = value;\n else if (value)\n result = {[value]: value};\n else\n result = {}\n } else {\n result = {};\n }\n return result;\n};\n\nconst findParent = (el, tag) => {\n if (el != null) {\n const tagName = el.tagName;\n if (tagName && tagName.toUpperCase() === tag.toUpperCase()) {\n return el;\n } else {\n return findParent(el.parentNode, tag)\n }\n }\n return null;\n}\n\nfunction isMultipleSelect(mode) {\n return mode === MODE_MULTIPLE || mode === MODE_MULTIPLE_AUTO || mode === MODE_INLINE_MULTIPLE || mode === MODE_MULTIPLE_MINI || mode === MODE_MULTIPLE_MINI_INLINE;\n}\n\nclass AutocompleteSelect extends PureComponent {\n\n static propTypes = {\n mode: PropTypes.oneOf([MODE_DEFAULT, MODE_INLINE, MODE_MULTIPLE, MODE_MULTIPLE_AUTO, MODE_MULTIPLE_MINI, MODE_MULTIPLE_MINI_INLINE, MODE_INLINE_MULTIPLE, MODE_MINI])\n };\n\n constructor(props) {\n super(props);\n const that = this;\n that.state = {\n selected: prepareSelected(props.value),\n isActive: !!props.focused,\n\n };\n that.randomId = getRandomId('acs-');\n\n const {data, getSelected} = props;\n isFunction(data) && data(data => that.setState({data}));\n\n getSelected && getSelected(() => Object.values(that.state.selected));\n }\n\n componentDidMount() {\n addEventListener(DOCUMENT, 'mousedown', this.listener = (e) => {\n if (this.state.isActive && this.el && !this.el.contains(e.target)) {\n this.onClickOutside()\n }\n })\n if (this.props.required) {\n const form = findParent(this.el.parentNode, 'form')\n if (form) {\n addEventListener(this.submitButton = form.querySelector('button[type=submit]'), 'click', this.formSubmitListener = (e) => {\n const errored = Object.keys(this.state.selected).length === 0;\n this.setState({errored: errored})\n })\n }\n }\n this.initSelected(this.props, this.state)\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.value !== prevProps.value)\n this.initSelected(this.props, this.state)\n }\n\n initSelected = ({value, mode, allowCustom}, {filterValue = ''}) => {\n this.setState({\n selected: prepareSelected(value),\n filterValue: allowCustom && isString(value) && !isMultipleSelect(mode) ? value : filterValue,\n });\n };\n\n componentWillUnmount() {\n removeEventListener(DOCUMENT, 'mousedown', this.listener)\n removeEventListener(this.submitButton, 'click', this.formSubmitListener)\n }\n\n static defaultProps = {\n childComponent: DummyChild,\n withArrow: true,\n withFilter: true,\n withReset: false,\n scrollToValue: false,\n mode: MODE_DEFAULT,\n selectedMode: 'full',\n removeIcon: <MaterialIcon icon=\"close\"/>,\n };\n\n createFilter = memo((prefilter, filterValue, filterValueTrimmed, filter) => it => {\n if (!it) return false;\n if (prefilter && !prefilter(it)) return false;\n if (!filterValue) return true;\n\n if (filter) return filter(it, filterValueTrimmed);\n\n let value = (isString(it) ? it : (it.name || it.label || '')).toLowerCase().trim();\n return continuousIncludes(value, filterValueTrimmed);\n }\n )\n\n render() {\n const {\n childComponent,\n childProps,\n withArrow,\n withFilter,\n withReset,\n filter,\n label,\n inputLabel,\n mode,\n selectedMode,\n prefilter,\n className,\n scrollToValue,\n scroll,\n required,\n allowCustom,\n inlineSelected,\n removeIcon,\n } = this.props;\n const id = this.props.id || this.randomId;\n const selectedComponent = this.props.selectedComponent || childComponent;\n const {selected = {}, filterValue = '', errored} = this.state;\n let {isActive} = this.state;\n if (this.props.isActive !== UNDEFINED) {\n isActive = this.props.isActive\n }\n let {data = [], labels = {}} = this.props;\n if (this.state.data)\n data = this.state.data;\n\n if (!Array.isArray(data))\n data = [];\n\n const selectedIds = Object.values(selected);\n const hasSelected = selectedIds.length !== 0;\n const setActive = (e) => {\n stopPropagation(e);\n this.setState({isActive: true}, () => (scrollToValue && selectedIds.length > 0) && this.list.scrollTo(selectedIds[0]));\n };\n const toggle = (e) => {\n if (!this.state.isActive) {\n setActive(e);\n } else {\n stopPropagation(e);\n this.setState({isActive: false});\n }\n };\n\n const isInline = mode === MODE_INLINE || mode === MODE_INLINE_MULTIPLE || mode === MODE_MULTIPLE_MINI_INLINE;\n const filterValueTrimmed = filterValue.trim();\n const dataFiltered = allowCustom ? [filterValueTrimmed, ...data.filter(suggestion => suggestion !== filterValueTrimmed)] : data;\n\n const filterFunction = this.createFilter(prefilter, filterValue, filterValueTrimmed.toLowerCase(), filter)\n return (\n <div id={id}\n className={classNames(\n 'AutocompleteSelect',\n mode,\n isMultipleSelect(mode) && 'multi',\n className,\n withFilter ? 'withFilter' : 'withoutFilter',\n isActive && 'active',\n errored && 'errored',\n inlineSelected && 'inlineSelected',\n hasSelected && 'hasSelected',\n )}\n ref={ref('el', this)}>\n {label && <label className={classNames(`label`, (hasSelected || filterValue) && 'active', hasSelected && 'hasSelected')}\n htmlFor={'f-' + id}\n onClick={() => {\n if (mode === MODE_MULTIPLE_MINI_INLINE || !isActive) {\n toggle();\n }\n }}\n >\n {label}\n {required && ' *'}\n {withArrow && <span className=\"arrow\"/>}\n </label>}\n\n {(!isActive || mode === MODE_MULTIPLE || mode === MODE_INLINE_MULTIPLE || mode === MODE_MULTIPLE_MINI_INLINE || mode === MODE_MULTIPLE_AUTO || !withFilter) && !inlineSelected && hasSelected && (\n <div\n className={classNames('selected',\n !label && 'nolabel',\n (mode === MODE_MULTIPLE_MINI || mode === MODE_MINI || mode === MODE_MULTIPLE_MINI_INLINE) && 'clickable',\n selectedMode)}\n onClick={toggle}>\n\n {selectedMode === 'full' && selectedIds.map(id =>\n <div className=\"value\" key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n <div className=\"button remove\" onClick={e => {\n stopPropagation(e);\n this.remove(id);\n }}>\n {removeIcon}\n </div>\n </div>\n )}\n {selectedMode === 'inline' && selectedIds.map(id =>\n <React.Fragment key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n {id !== selectedIds[selectedIds.length - 1] && ', '}\n </React.Fragment>\n )}\n {!label && withArrow && <span className=\"arrow\"/>}\n {withReset && <Button className=\"reset\" raised={false} onClick={this.clean}>\n {removeIcon}\n </Button>}\n </div>\n )}\n\n {inlineSelected && hasSelected && <>\n {selectedMode === 'full' && selectedIds.map(id =>\n <div className=\"value\" key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n <div className=\"button remove\" onClick={e => {\n stopPropagation(e);\n this.remove(id);\n }}>\n {removeIcon}\n </div>\n </div>\n )}\n {selectedMode === 'inline' && selectedIds.map(id =>\n <React.Fragment key={id}>\n {React.createElement(selectedComponent, {...childProps, id, label: getLabel(labels, id), onClick: setActive})}\n {id !== selectedIds[selectedIds.length - 1] && ', '}\n </React.Fragment>\n )}\n </>}\n\n {(isActive || (!hasSelected && mode !== MODE_MULTIPLE_MINI_INLINE) || mode === MODE_MULTIPLE || (mode === MODE_MULTIPLE_AUTO && selectedIds.length > 1) || mode === MODE_INLINE_MULTIPLE) && (\n <div className={`input`} data-value={filterValue}>\n {withFilter && <TextField autoComplete=\"new-password\" id={'f-' + id}\n ref={ref('input', this)}\n focused={isActive}\n value={filterValue}\n label={inputLabel}\n onChange={this.onChange}\n onFocus={e => this.setState({isActive: true})}\n check={this.props.filterCheck}\n onKeyDown={e => {\n const keyCode = e.keyCode;\n if (keyCode === 38/*up*/) {\n preventDefault(e);\n this.prev();\n } else if (keyCode === 40/*down*/) {\n preventDefault(e);\n this.next();\n } else if (keyCode === 13/*enter*/) {\n preventDefault(e);\n this.onSelect(this.getSelected())\n } else if (keyCode === 9/*tab*/) {\n this.onSelect(this.getSelected())\n } else if (keyCode === 8/*backspace*/) {\n if (!filterValue && (selectedIds.length !== 0) && isMultipleSelect(mode)) {\n this.remove(selectedIds[selectedIds.length - 1]);\n }\n this.reset()\n } else if (keyCode === 46/*delete*/) {\n this.reset()\n } else if (keyCode === 27/*esc*/) {\n this.setState({\n isActive: false,\n filterValue: isMultipleSelect(mode) ? '' : (allowCustom ? filterValue : ''),\n });\n this.input.getInput().blur()\n this.onCancel();\n }\n // console.log('key pressed:', e.keyCode)\n }}\n />}\n {!withFilter && inputLabel && <label>{inputLabel}</label>}\n </div>\n )}\n\n <FilteredList className={classNames(isActive && 'visible')}\n ref={ref('list', this)}\n filter={filterFunction}\n selectSingle={!allowCustom}\n scroll={scroll}\n inline={isInline}\n nextProvider={ref('next', this)}\n prevProvider={ref('prev', this)}\n selectedProvider={ref('getSelected', this)}\n resetProvider={ref('reset', this)}\n onSelect={this.onSelect}\n selected={selected}\n childComponent={childComponent}\n childProps={childProps}\n data={dataFiltered}\n labels={labels}\n />\n </div>\n )\n }\n\n onClickOutside = () => {\n const {allowCustom, required} = this.props;\n const {filterValue} = this.state;\n if (allowCustom && (!!filterValue || !required)) {\n this.onSelect()\n }\n\n this.setState({isActive: false});\n\n this.onCancel();\n };\n\n onCancel = () => {\n orNoop(this.props.onCancel)()\n };\n\n onSelect = (selectedId) => {\n const {mode, required, allowCustom, onSelect, onChange, default: defaultValue} = this.props;\n const {filterValue, selected: currentSelection} = this.state;\n const {labels = {}} = this.props;\n\n if (selectedId == null && (!!filterValue || !required) && allowCustom && (!this.input || !this.input.check()))\n selectedId = filterValue.trim();\n\n const isMultiSelect = isMultipleSelect(mode);\n\n if (!selectedId && isMultiSelect) {\n selectedId = null;\n }\n\n // debugger\n\n const isSelected = selectedId != null;\n\n let selected = {...currentSelection};\n if (selected[selectedId] && (defaultValue || isMultiSelect)) {\n delete selected[selectedId];\n if (defaultValue && Object.keys(selected).length === 0)\n selected[defaultValue] = defaultValue;\n } else if (isSelected && (isMultiSelect)) {\n selected[selectedId] = selectedId;\n } else if (isSelected) {\n selected = {[selectedId]: selectedId};\n }\n\n const errored = required && Object.keys(selected) === 0;\n\n const isActive = mode === MODE_MULTIPLE_MINI_INLINE || (isMultiSelect && isSelected)\n\n let customValue = '';\n if (allowCustom && selectedId) {\n let label\n if (isFunction(labels))\n label = labels(selectedId)\n else\n label = labels[selectedId]\n\n if (label && isString(label))\n customValue = label\n }\n\n let filterValueWithCustom = isMultiSelect ? '' : customValue;\n this.setState({\n isActive: isActive,\n selected: selected,\n filterValue: filterValueWithCustom,\n errored,\n });\n\n if (isActive && this.input)\n this.input.getInput().focus()\n\n orNoop(onSelect)(selectedId);\n orNoop(onChange)(Object.values(selected));\n };\n\n clean = (e) => {\n preventDefault(e);\n stopPropagation(e);\n\n this.setState({\n isActive: false,\n selected: {},\n filterValue: '',\n });\n\n orNoop(this.props.onSelect)(null);\n orNoop(this.props.onChange)([]);\n\n this.initSelected(this.props, this.state);\n };\n\n remove = (id) => {\n let result = {\n ...this.state,\n selected: {...this.state.selected},\n filterValue: '',\n };\n delete result.selected[id];\n this.setState(result);\n orNoop(this.props.onChange)(Object.values(result.selected));\n };\n\n onChange = (event) => {\n const value = event.target.value;\n this.setState({filterValue: value});\n this.props.onFilterInputChange?.(value);\n }\n}\n\nexport default AutocompleteSelect;\n"],"names":["MODE_DEFAULT","MODE_INLINE","MODE_INLINE_MULTIPLE","MODE_MULTIPLE_AUTO","MODE_MULTIPLE","MODE_MULTIPLE_MINI","MODE_MINI","MODE_MULTIPLE_MINI_INLINE","DummyChild","id","label","dataConsumer","onClick","orNoop","prepareSelected","value","result","Array","isArray","reduce","map","obj","isObject","findParent","el","tag","tagName","toUpperCase","parentNode","isMultipleSelect","mode","AutocompleteSelect","props","initSelected","allowCustom","filterValue","setState","selected","isString","createFilter","memo","prefilter","filterValueTrimmed","filter","it","name","toLowerCase","trim","continuousIncludes","onClickOutside","required","state","onSelect","isActive","onCancel","selectedId","onChange","defaultValue","currentSelection","labels","input","check","isMultiSelect","isSelected","Object","keys","length","errored","customValue","isFunction","filterValueWithCustom","getInput","focus","values","clean","e","preventDefault","stopPropagation","remove","_objectSpread","event","target","onFilterInputChange","that","focused","randomId","getRandomId","data","getSelected","addEventListener","DOCUMENT","listener","contains","form","submitButton","querySelector","formSubmitListener","prevProps","prevState","snapshot","removeEventListener","childComponent","childProps","withArrow","withFilter","withReset","inputLabel","selectedMode","className","scrollToValue","scroll","inlineSelected","removeIcon","selectedComponent","UNDEFINED","selectedIds","hasSelected","setActive","list","scrollTo","toggle","isInline","dataFiltered","suggestion","filterFunction","classNames","ref","React","createElement","getLabel","filterCheck","keyCode","prev","next","reset","blur","PureComponent","propTypes","PropTypes","oneOf","defaultProps"],"mappings":"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"}
package/Button.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sources":["../../../src/react-ui-basics/Button.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Button.css'\nimport {classNames, DOCUMENT, addEventListener, createRef, orNoop} from \"./Tools\";\nimport PropTypes from \"prop-types\";\nimport {PureComponent, render, stateGS, props} from \"./ReactConstants\";\n\nclass Button extends PureComponent {\n constructor(properties) {\n super(properties);\n\n const that = this;\n const el = createRef();\n const ripple = createRef();\n\n const rippleClassName = stateGS(that);\n\n const onMouseDown = (e) => {\n if (!props(that).withRipple) return;\n\n const rect = el().getBoundingClientRect();\n const rippleElement = ripple();\n const style = rippleElement.style;\n const body = DOCUMENT.body;\n\n style.height = style.width = Math.max(rect.width, rect.height) + 'px';\n style.top = (e.pageY - rect.top - rippleElement.offsetHeight / 2 - body.scrollTop) + 'px';\n style.left = (e.pageX - rect.left - rippleElement.offsetWidth / 2 - body.scrollLeft) + 'px';\n\n rippleClassName('show');\n\n addEventListener(rippleElement, 'animationend', () => {\n rippleClassName('showed');\n });\n };\n\n const onFocus = e => {\n orNoop(props(that).onFocus)(e)\n if (rippleClassName() === 'show')\n return\n\n const rect = el().getBoundingClientRect();\n const style = ripple().style;\n\n let size = Math.max(rect.width, rect.height) * 0.8\n style.height = style.width = size + 'px';\n style.top = (rect.height / 2 - size / 2) + 'px';\n style.left = (rect.width / 2 - size / 2) + 'px';\n\n rippleClassName('focused');\n }\n\n that[render] = () => {\n const {children, type, className, onClick, flat, raised = !flat, round, style, disabled} = props(that);\n return (\n <button className={classNames('Button',\n className,\n disabled && 'disabled',\n raised && 'raised',\n flat && 'flat',\n round && 'round')\n }\n onFocus={onFocus}\n disabled={disabled}\n style={style}\n type={type}\n onClick={onClick}\n onMouseDown={onMouseDown}\n ref={el}>\n {children}\n <span className={classNames(`ripple`, rippleClassName())} ref={ripple}/>\n </button>\n );\n }\n }\n}\n\nif (window.isNotProductionEnvironment) {\n Button.propTypes = {\n flat: PropTypes.bool,\n raised: PropTypes.bool,\n round: PropTypes.bool,\n disabled: PropTypes.bool,\n withRipple: PropTypes.bool,\n type: PropTypes.oneOf(['button', 'submit', 'reset']),\n className: PropTypes.string,\n onClick: PropTypes.func,\n onFocus: PropTypes.func,\n style: PropTypes.object,\n };\n}\n\nButton.defaultProps = {\n type: 'button',\n withRipple: true,\n};\n\nexport default Button;"],"names":["Button","properties","that","el","createRef","ripple","rippleClassName","stateGS","onMouseDown","e","props","withRipple","rect","getBoundingClientRect","rippleElement","style","body","DOCUMENT","height","width","Math","max","top","pageY","offsetHeight","scrollTop","left","pageX","offsetWidth","scrollLeft","addEventListener","onFocus","orNoop","size","render","children","type","className","onClick","flat","raised","round","disabled","classNames","PureComponent","window","isNotProductionEnvironment","propTypes","PropTypes","bool","oneOf","string","func","object","defaultProps"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../src/react-ui-basics/Checkbox.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Checkbox.css'\nimport {classNames, getRandomId} from \"./Tools\";\nimport {PureComponent, render, propsGetter} from \"./ReactConstants\";\nimport PropTypes from \"prop-types\";\n\nclass Checkbox extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const randomId = getRandomId('cb-');\n const props = propsGetter(this);\n\n this[render] = () => {\n const {label, name, onChange, value, className, disabled} = props();\n const id = props().id || randomId;\n return (\n <div className={classNames(\"Checkbox\", className)}>\n <input name={name} id={id} type=\"checkbox\" onChange={onChange} checked={value} disabled={disabled}/>\n <label htmlFor={id}>{label}</label>\n </div>\n )\n }\n }\n}\n\nif (window.isNotProductionEnvironment) {\n Checkbox.propTypes = {\n onChange: PropTypes.func.isRequired,\n value: PropTypes.bool,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n name: PropTypes.string,\n id: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n };\n}\n\nexport default Checkbox"],"names":["Checkbox","properties","randomId","getRandomId","props","propsGetter","render","label","name","onChange","value","className","disabled","id","classNames","PureComponent","window","isNotProductionEnvironment","propTypes","PropTypes","func","isRequired","bool","string","oneOfType","element","number"],"mappings":";;;;;;;IAOMA;;;AAEF,EAAA,SAAA,QAAA,CAAYC,UAAZ,EAAwB;AAAA,IAAA,IAAA,KAAA,CAAA;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AACpB,IAAA,KAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,EAAMA,UAAN,CAAA,CAAA;AACA,IAAA,IAAMC,QAAQ,GAAGC,WAAW,CAAC,KAAD,CAA5B,CAAA;AACA,IAAMC,IAAAA,KAAK,GAAGC,WAAW,CAAzB,sBAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAEA,IAAKC,KAAAA,CAAAA,MAAL,IAAe,YAAM;AACjB,MAAA,IAAA,MAAA,GAA4DF,KAAK,EAAjE;AAAA,UAAOG,KAAP,UAAOA,KAAP;AAAA,UAAcC,IAAd,UAAcA,IAAd;AAAA,UAAoBC,QAApB,UAAoBA,QAApB;AAAA,UAA8BC,KAA9B,UAA8BA,KAA9B;AAAA,UAAqCC,SAArC,UAAqCA,SAArC;AAAA,UAAgDC,QAAhD,UAAgDA,QAAhD,CAAA;AACA,MAAA,IAAMC,EAAE,GAAGT,KAAK,EAAGS,CAAAA,EAAR,IAAcX,QAAzB,CAAA;AACA,MACI,OAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAEY,UAAU,CAAC,UAAD,EAAaH,SAAb,CAAA;AAA1B,OACI,EAAA,kBAAA,CAAA,OAAA,EAAA;AAAO,QAAA,IAAI,EAAEH,IAAb;AAAmB,QAAA,EAAE,EAAEK,EAAvB;AAA2B,QAAA,IAAI,EAAC,UAAhC;AAA2C,QAAA,QAAQ,EAAEJ,QAArD;AAA+D,QAAA,OAAO,EAAEC,KAAxE;AAA+E,QAAA,QAAQ,EAAEE,QAAAA;AAAzF,OAAA,CADJ,EAEI,kBAAA,CAAA,OAAA,EAAA;AAAO,QAAA,OAAO,EAAEC,EAAAA;AAAhB,OAAqBN,EAAAA,KAArB,CAFJ,CADJ,CAAA;AAMH,KATD,CAAA;AALoB,IAAA,OAAA,KAAA,CAAA;AAevB,GAAA;;EAjBkBQ;AAoBvB,IAAIC,MAAM,CAACC,0BAAX,EAAuC;AACnCjB,EAAAA,QAAQ,CAACkB,SAAT,GAAqB;AACjBT,IAAAA,QAAQ,EAAEU,SAAS,CAACC,IAAV,CAAeC,UADR;AAEjBX,IAAAA,KAAK,EAAES,SAAS,CAACG,IAFA;AAGjBV,IAAAA,QAAQ,EAAEO,SAAS,CAACG,IAHH;AAIjBX,IAAAA,SAAS,EAAEQ,SAAS,CAACI,MAJJ;AAKjBhB,IAAAA,KAAK,EAAEY,SAAS,CAACK,SAAV,CAAoB,CACvBL,SAAS,CAACI,MADa,EAEvBJ,SAAS,CAACM,OAFa,CAApB,CALU;AASjBjB,IAAAA,IAAI,EAAEW,SAAS,CAACI,MATC;AAUjBV,IAAAA,EAAE,EAAEM,SAAS,CAACK,SAAV,CAAoB,CACpBL,SAAS,CAACI,MADU,EAEpBJ,SAAS,CAACO,MAFU,CAApB,CAAA;AAVa,GAArB,CAAA;AAeH,CAAA;AAED,iBAAe1B,QAAf;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircleProgress.js","sources":["../../../src/react-ui-basics/CircleProgress.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport PropTypes from \"prop-types\";\nimport './CircleProgress.css'\n\nconst radius = 8.75;\nconst length = 2 * Math.PI * radius;\n\nconst dashoffset = (percent) => length * (100 - percent) / 100;\n\nconst CircleProgress = ({value}) => {\n value = Number.parseFloat(value);\n return (\n <div className=\"CircleProgress\">\n <svg viewBox=\"0 0 24 24\">\n <path className=\"line\" style={{strokeDashoffset: dashoffset(Number.isFinite(value) ? value : 0), strokeDasharray: length}}\n d=\"M12 3.25A8.75 8.75 0 1 1 3.25 12 A 8.75,8.75 0 0 1 12,3.25\"/>\n </svg>\n </div>\n );\n};\n\nCircleProgress.defaultProps = {\n value: 0,\n};\nif (window.isNotProductionEnvironment) {\n CircleProgress.propTypes = {\n value: PropTypes.number,\n };\n}\n\nexport default CircleProgress;"],"names":["radius","length","Math","PI","dashoffset","percent","CircleProgress","value","Number","parseFloat","strokeDashoffset","isFinite","strokeDasharray","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","number"],"mappings":";;;;AAKA,IAAMA,MAAM,GAAG,IAAf,CAAA;AACA,IAAMC,MAAM,GAAG,CAAA,GAAIC,IAAI,CAACC,EAAT,GAAcH,MAA7B,CAAA;AAEA,IAAMI,UAAU,GAAG,SAAbA,UAAa,CAACC,OAAD,EAAA;AAAA,EAAA,OAAaJ,MAAM,IAAI,GAAA,GAAMI,OAAV,CAAN,GAA2B,GAAxC,CAAA;AAAA,CAAnB,CAAA;AAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAa,IAAA,EAAA;AAAA,EAAXC,IAAAA,KAAW,QAAXA,KAAW,CAAA;AAChCA,EAAAA,KAAK,GAAGC,MAAM,CAACC,UAAP,CAAkBF,KAAlB,CAAR,CAAA;AACA,EACI,OAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,gBAAA;AAAf,GACI,EAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,IAAA,OAAO,EAAC,WAAA;AAAb,GACI,EAAA,kBAAA,CAAA,MAAA,EAAA;AAAM,IAAA,SAAS,EAAC,MAAhB;AAAuB,IAAA,KAAK,EAAE;AAACG,MAAAA,gBAAgB,EAAEN,UAAU,CAACI,MAAM,CAACG,QAAP,CAAgBJ,KAAhB,CAAA,GAAyBA,KAAzB,GAAiC,CAAlC,CAA7B;AAAmEK,MAAAA,eAAe,EAAEX,MAAAA;AAApF,KAA9B;AACM,IAAA,CAAC,EAAC,4DAAA;AADR,GAAA,CADJ,CADJ,CADJ,CAAA;AAQH,CAVD,CAAA;AAYAK,cAAc,CAACO,YAAf,GAA8B;AAC1BN,EAAAA,KAAK,EAAE,CAAA;AADmB,CAA9B,CAAA;AAGA,IAAIO,MAAM,CAACC,0BAAX,EAAuC;AACnCT,EAAAA,cAAc,CAACU,SAAf,GAA2B;AACvBT,IAAAA,KAAK,EAAEU,SAAS,CAACC,MAAAA;AADM,GAA3B,CAAA;AAGH,CAAA;AAED,uBAAeZ,cAAf;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommonFields.js","sources":["../../../src/react-ui-basics/CommonFields.js"],"sourcesContent":["export const createAccessor = (field) => (o) => {\n return o[field];\n}\n\nexport const width = createAccessor('width')\nexport const height = createAccessor('height')\nexport const top = createAccessor('top')\nexport const left = createAccessor('left')\nexport const style = createAccessor('style')\nexport const length = createAccessor('length')\nexport const pageX = createAccessor('pageX')\nexport const pageY = createAccessor('pageY')\nexport const value = createAccessor('value')\nexport const clientHeight = createAccessor('clientHeight')\nexport const clientWidth = createAccessor('clientWidth')\nexport const scrollTop = createAccessor('scrollTop')\nexport const scrollLeft = createAccessor('scrollLeft')\nexport const target = createAccessor('target')\nexport const data = createAccessor('data')\nexport const state = createAccessor('state')\nexport const props = createAccessor('props')"],"names":["createAccessor","field","o","width","height","top","left","style","length","pageX","pageY","value","clientHeight","clientWidth","scrollTop","scrollLeft","target","data","state","props"],"mappings":"IAAaA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,KAAD,EAAA;AAAA,EAAW,OAAA,UAACC,CAAD,EAAO;AAC5C,IAAOA,OAAAA,CAAC,CAACD,KAAD,CAAR,CAAA;AACH,GAF6B,CAAA;AAAA,EAAvB;IAIME,KAAK,GAAGH,cAAc,CAAC,OAAD,EAA5B;IACMI,MAAM,GAAGJ,cAAc,CAAC,QAAD,EAA7B;IACMK,GAAG,GAAGL,cAAc,CAAC,KAAD,EAA1B;IACMM,IAAI,GAAGN,cAAc,CAAC,MAAD,EAA3B;IACMO,KAAK,GAAGP,cAAc,CAAC,OAAD,EAA5B;IACMQ,MAAM,GAAGR,cAAc,CAAC,QAAD,EAA7B;IACMS,KAAK,GAAGT,cAAc,CAAC,OAAD,EAA5B;IACMU,KAAK,GAAGV,cAAc,CAAC,OAAD,EAA5B;IACMW,KAAK,GAAGX,cAAc,CAAC,OAAD,EAA5B;IACMY,YAAY,GAAGZ,cAAc,CAAC,cAAD,EAAnC;IACMa,WAAW,GAAGb,cAAc,CAAC,aAAD,EAAlC;IACMc,SAAS,GAAGd,cAAc,CAAC,WAAD,EAAhC;IACMe,UAAU,GAAGf,cAAc,CAAC,YAAD,EAAjC;IACMgB,MAAM,GAAGhB,cAAc,CAAC,QAAD,EAA7B;IACMiB,IAAI,GAAGjB,cAAc,CAAC,MAAD,EAA3B;IACMkB,KAAK,GAAGlB,cAAc,CAAC,OAAD,EAA5B;IACMmB,KAAK,GAAGnB,cAAc,CAAC,OAAD;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DNDContainer.js","sources":["../../../src/react-ui-basics/DNDContainer.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './DNDContainer.css'\nimport {classNames, NOOP, orNoop, preventDefault, ref, DOCUMENT, WINDOW, addEventListener, removeEventListener, setTimeout, clearTimeout, requestAnimationFrame} from \"./Tools\";\n\nconst clearSelection = () => {\n const getSelection = WINDOW.getSelection;\n if (getSelection) {\n if (getSelection().empty) { // Chrome\n getSelection().empty();\n } else if (getSelection().removeAllRanges) { // Firefox\n getSelection().removeAllRanges();\n }\n } else if (DOCUMENT.selection) { // IE?\n DOCUMENT.selection.empty();\n }\n};\n\nconst droppables = 'ds';\nconst positionListener = 'pl';\n\nclass DNDContainer extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n draggable: null,\n };\n\n this[droppables] = [];\n this[positionListener] = NOOP;\n }\n\n render() {\n const {children, className} = this.props;\n const {draggable} = this.state;\n return <div className={classNames('DNDContainer', className)} ref={ref('container', this)}>\n {children}\n <div className=\"overlay\">{draggable}</div>\n </div>;\n };\n\n componentDidMount() {\n const {\n provideDraggableInitializer,\n provideDroppableInitializer,\n } = this.props;\n\n orNoop(provideDraggableInitializer)(this.draggableInitializer);\n orNoop(provideDroppableInitializer)(this.droppableInitializer);\n addEventListener(this.container, 'dragover', this.onDrag, {capture: true, passive: true})\n };\n\n draggableInitializer = (item) => {\n const handle = item.props.handle;\n const draggableElement = (handle && item.element.childNodes[0]) || item.element;\n draggableElement.draggable = true;\n\n const dragStartListener = (e) => {\n clearSelection();\n const container = this.container;\n this.data = item.props.data;\n this.draggable = item;\n this.scrollOffsetX = e.pageX - e.clientX;\n this.scrollOffsetY = e.pageY - e.clientY;\n const dataTransfer = e.dataTransfer;\n const itemOffset = item.element.getBoundingClientRect();\n\n item.width = itemOffset.width;\n item.height = itemOffset.height;\n\n let clone = orNoop(item.props.copy)((it) => {\n let style = it.element.style;\n\n const offsetLeft = totalOffsetLeft(container) + (e.clientX - itemOffset.left);\n const offsetTop = totalOffsetTop(container) + (e.clientY - itemOffset.top);\n this[positionListener] = orNoop(it.createPositionListener)(e, style, itemOffset, container) || ((e) => {\n if (e.pageX === 0)\n return;\n\n style.transform = 'translate(' + (e.pageX - offsetLeft) + 'px, ' + (e.pageY - offsetTop) + 'px)';\n });\n\n\n requestAnimationFrame(() => {\n if (dataTransfer && !dataTransfer.setDragImage) {\n style.opacity = '0'; // hide dragged element in ie and edge\n }\n if (it.initDraggedStyles)\n it.initDraggedStyles(style, itemOffset);\n else {\n style.position = 'absolute';\n style.pointerEvents = 'none';\n style.opacity = '1';\n style.top = '0px';\n style.left = '0px';\n style.width = itemOffset.width + 'px';\n style.height = itemOffset.height + 'px';\n }\n\n this.onDrag(e);\n it.setState({dragged: true});\n });\n return it;\n }, 'copy', item);\n\n dataTransfer && dataTransfer.setData && dataTransfer.setData('text', ''); // required by firefox\n dataTransfer && (dataTransfer.dropEffect = \"move\");\n if (clone) {\n if (dataTransfer && dataTransfer.setDragImage) {\n clone !== item && this.setState({draggable: clone});\n const img = document.createElement('img');\n img.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n dataTransfer.setDragImage(img, 0, 0);\n }\n }\n this.onDragStart(e);\n setTimeout(() => item.setState({placeholder: true}), 1)\n };\n addListener(draggableElement, item, 'dragend', (e) => {\n item.setState({placeholder: false});\n this.onDragEnd()\n });\n addListener(draggableElement, item, 'dragstart', dragStartListener);\n\n let longTouch;\n let dragStarted = false;\n let dragged = false;\n addListener(draggableElement, item, 'touchstart', e => {\n if (e.touches.length > 1)\n return;\n\n dragged = dragStarted = false;\n const touch = e.targetTouches[0];\n longTouch = setTimeout(() => longTouch && (dragStarted = true) && (longTouch = dragStartListener(touch)), !handle ? 500 : 0)\n });\n\n addListener(draggableElement, item, 'touchmove', e => {\n if (longTouch) {\n longTouch = clearTimeout(longTouch);\n return;\n }\n if (!dragStarted)\n return;\n\n if (e.touches.length > 1)\n return;\n\n preventDefault(e);\n dragged = true;\n const touch = e.targetTouches[0];\n this[positionListener](touch);\n this[droppables].forEach(it => it.isHover(touch, item))\n });\n\n addListener(draggableElement, item, 'touchend', e => {\n longTouch = clearTimeout(longTouch);\n if (!dragged)\n return;\n\n item.setState({placeholder: false});\n if (e.touches.length > 0)\n return;\n\n this[droppables].forEach(it => it.dropIfHover());\n this.onDragEnd();\n });\n };\n\n\n droppableInitializer = (item) => {\n this[droppables].push(item);\n\n addEventListener(item.element, 'drop', (e) => {\n preventDefault(e);\n this.data && orNoop(item.props.onDrop)(this.data);\n }, false);\n\n item.onDragStart = (e, draggable) => {\n item.bounds = item.element.getBoundingClientRect();\n item.setState({allow: true});\n orNoop(item.props.onDragStart)(e, draggable);\n };\n item.isHover = (e, draggable) => {\n const bounds = item.bounds;\n if (!bounds)\n return;\n\n let y = e.pageY - this.scrollOffsetY;\n let x = e.pageX - this.scrollOffsetX;\n let hover = bounds.left <= x && bounds.right >= x && bounds.top <= y && bounds.bottom >= y;\n\n hover && orNoop(item.props.onHover)(e, draggable);\n\n if (hover)\n !item.state.hover && item.setState({hover});\n else\n item.state.hover && item.setState({hover});\n };\n item.dropIfHover = () => {\n this.data && item.state.hover && orNoop(item.props.onDrop)(this.data);\n };\n item.onDragEnd = () => {\n orNoop(orNoop(this.draggable).onDragEnd)();\n item.setState({allow: false, hover: false});\n };\n item.onUnmount = () => this[droppables].splice(this[droppables].indexOf(item), 1);\n };\n\n onDrag = (e) => {\n if (!this.draggable)\n return;\n\n this[positionListener](e);\n this[droppables].forEach(it => it.isHover(e, this.draggable))\n };\n onDragStart = (e) => {\n this[droppables].forEach(it => it.onDragStart(e, this.draggable))\n };\n onDragEnd = () => {\n const draggable = this.draggable;\n if (draggable.element) {\n let style = draggable.element.style;\n style.position = '';\n style.pointerEvents = '';\n style.width = ``;\n style.height = ``;\n style.opacity = '';\n }\n draggable.setState({dragged: false});\n\n this.setState({draggable: null});\n\n this[droppables].forEach(it => {\n it.onDragEnd();\n orNoop(it.props.onDragEnd)(this.draggable)\n });\n this.data = null;\n this.draggable = null;\n };\n}\n\nexport const removeListener = (el, item, type) => item[type] && removeEventListener(el, type, item[type]);\nexport const addListener = (el, item, type, listener) => {\n removeListener(el, item, type);\n addEventListener(el, type, item[type] = listener);\n};\n\nconst totalOffsetTop = (el) => {\n return el.getBoundingClientRect().top + (WINDOW.pageYOffset || DOCUMENT.documentElement.scrollTop);\n};\nconst totalOffsetLeft = (el) => {\n return el.getBoundingClientRect().left + (WINDOW.pageXOffset || DOCUMENT.documentElement.scrollLeft);\n};\n\nexport default DNDContainer;"],"names":["clearSelection","getSelection","WINDOW","empty","removeAllRanges","DOCUMENT","selection","droppables","positionListener","DNDContainer","props","draggableInitializer","item","handle","draggableElement","element","childNodes","draggable","dragStartListener","e","container","data","scrollOffsetX","pageX","clientX","scrollOffsetY","pageY","clientY","dataTransfer","itemOffset","getBoundingClientRect","width","height","clone","orNoop","copy","it","style","offsetLeft","totalOffsetLeft","left","offsetTop","totalOffsetTop","top","createPositionListener","transform","requestAnimationFrame","setDragImage","opacity","initDraggedStyles","position","pointerEvents","onDrag","setState","dragged","setData","dropEffect","img","document","createElement","src","onDragStart","setTimeout","placeholder","addListener","onDragEnd","longTouch","dragStarted","touches","length","touch","targetTouches","clearTimeout","preventDefault","forEach","isHover","dropIfHover","droppableInitializer","push","addEventListener","onDrop","bounds","allow","y","x","hover","right","bottom","onHover","state","onUnmount","splice","indexOf","NOOP","children","className","classNames","ref","provideDraggableInitializer","provideDroppableInitializer","capture","passive","Component","removeListener","el","type","removeEventListener","listener","pageYOffset","documentElement","scrollTop","pageXOffset","scrollLeft"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DNDDraggable.js","sources":["../../../src/react-ui-basics/DNDDraggable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport {classNames, orNoop, ref} from \"./Tools\";\nimport {componentDidUpdate, props, state, render, children, className, componentDidMount, componentWillUnmount, PureComponent} from \"./ReactConstants\";\n\nconst hover = 'hover',\n dragged = 'dragged',\n placeholder = 'placeholder',\n initializer = 'initializer',\n handle = 'handle'\n;\n\nconst init = that => orNoop(props(that)[initializer])(that);\n\nclass Draggable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n that[componentDidUpdate] = (prevProps) => {\n if (prevProps[handle] !== props(that)[handle] || prevProps[initializer] !== props(that)[initializer])\n init(that)\n };\n that[componentDidMount] = () => {\n init(that)\n };\n that[componentWillUnmount] = () => {\n orNoop(that.onUnmount)();\n };\n that[render] = () => {\n const _state = state(that),\n _props = props(that);\n return <div className={classNames('Draggable', _props[className],\n _state[dragged] && dragged,\n _state[placeholder] && placeholder,\n _state[hover] && hover,\n )}\n onClick={_props.onClick}\n ref={ref('element', that)}\n >\n {_props[handle]}\n {_props[children]}\n </div>;\n }\n }\n}\n\n\nexport default Draggable;"],"names":["hover","dragged","placeholder","initializer","handle","init","that","orNoop","props","Draggable","properties","state","componentDidUpdate","prevProps","componentDidMount","componentWillUnmount","onUnmount","render","_state","_props","classNames","className","onClick","ref","children","PureComponent"],"mappings":";;;;;;AAKA,IAAMA,KAAK,GAAG,OAAd;AAAA,IACIC,OAAO,GAAG,SADd;AAAA,IAEIC,WAAW,GAAG,aAFlB;AAAA,IAGIC,WAAW,GAAG,aAHlB;AAAA,IAIIC,MAAM,GAAG,QAJb,CAAA;AAOA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAAAC,IAAI,EAAA;AAAA,EAAA,OAAIC,MAAM,CAACC,KAAK,CAACF,IAAD,CAAL,CAAYH,WAAZ,CAAD,CAAN,CAAiCG,IAAjC,CAAJ,CAAA;AAAA,CAAjB,CAAA;IAEMG;;;AAEF,EAAA,SAAA,SAAA,CAAYC,UAAZ,EAAwB;AAAA,IAAA,IAAA,KAAA,CAAA;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AACpB,IAAA,KAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,EAAMA,UAAN,CAAA,CAAA;AACA,IAAA,IAAMJ,IAAI,GAAV,sBAAA,CAAA,KAAA,CAAA,CAAA;AACAA,IAAAA,IAAI,CAACK,KAAL,GAAa,EAAb,CAAA;AACAL,IAAAA,IAAI,CAACM,kBAAD,CAAJ,GAA2B,UAACC,SAAD,EAAe;AACtC,MAAA,IAAIA,SAAS,CAACT,MAAD,CAAT,KAAsBI,KAAK,CAACF,IAAD,CAAL,CAAYF,MAAZ,CAAtB,IAA6CS,SAAS,CAACV,WAAD,CAAT,KAA2BK,KAAK,CAACF,IAAD,CAAL,CAAYH,WAAZ,CAA5E,EACIE,IAAI,CAACC,IAAD,CAAJ,CAAA;AACP,KAHD,CAAA;AAIAA,IAAAA,IAAI,CAACQ,iBAAD,CAAJ,GAA0B,YAAM;AAC5BT,MAAAA,IAAI,CAACC,IAAD,CAAJ,CAAA;AACH,KAFD,CAAA;AAGAA,IAAAA,IAAI,CAACS,oBAAD,CAAJ,GAA6B,YAAM;AAC/BR,MAAAA,MAAM,CAACD,IAAI,CAACU,SAAN,CAAN,EAAA,CAAA;AACH,KAFD,CAAA;AAGAV,IAAAA,IAAI,CAACW,MAAD,CAAJ,GAAe,YAAM;AACjB,MAAA,IAAMC,MAAM,GAAGP,KAAK,CAACL,IAAD,CAApB;AAAA,UACIa,MAAM,GAAGX,KAAK,CAACF,IAAD,CADlB,CAAA;AAEA,MAAO,OAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAEc,UAAU,CAAC,WAAD,EAAcD,MAAM,CAACE,SAAD,CAApB,EAC7BH,MAAM,CAACjB,OAAD,CAAN,IAAmBA,OADU,EAE7BiB,MAAM,CAAChB,WAAD,CAAN,IAAuBA,WAFM,EAG7BgB,MAAM,CAAClB,KAAD,CAAN,IAAiBA,KAHY,CAA1B;AAKK,QAAA,OAAO,EAAEmB,MAAM,CAACG,OALrB;AAMK,QAAA,GAAG,EAAEC,GAAG,CAAC,SAAD,EAAYjB,IAAZ,CAAA;AANb,OAQFa,EAAAA,MAAM,CAACf,MAAD,CARJ,EASFe,MAAM,CAACK,QAAD,CATJ,CAAP,CAAA;AAWH,KAdD,CAAA;AAdoB,IAAA,OAAA,KAAA,CAAA;AA6BvB,GAAA;;EA/BmBC;AAmCxB,mBAAehB,SAAf;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DNDDroppable.js","sources":["../../../src/react-ui-basics/DNDDroppable.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport {classNames, orNoop, ref, preventDefault, stopPropagation} from \"./Tools\";\nimport {componentDidMount, componentDidUpdate, render, props, state, componentWillUnmount, children, className, PureComponent} from \"./ReactConstants\";\n\nconst hover = 'hover',\n allow = 'allow',\n initializer = 'initializer'\n;\n\nconst init = that => orNoop(props(that)[initializer])(that);\n\nclass Droppable extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n\n that[componentDidUpdate] = (prevProps) => {\n if (prevProps[initializer] !== props(that)[initializer])\n init(that)\n };\n\n that[componentDidMount] = () => {\n init(that)\n };\n\n that[componentWillUnmount] = () => {\n orNoop(that.onUnmount)();\n };\n\n that[render] = () => {\n const _props = props(that),\n _state = state(that);\n return <div className={\n classNames(\n 'Droppable',\n _props[className],\n _state[hover] && hover,\n _state[allow] && allow,\n )}\n onDragOver={e => {\n preventDefault(e);\n stopPropagation(e);\n }}\n ref={ref('element', that)}>\n {_props[children]}\n </div>;\n };\n }\n}\n\nexport default Droppable;"],"names":["hover","allow","initializer","init","that","orNoop","props","Droppable","properties","componentDidUpdate","prevProps","componentDidMount","componentWillUnmount","onUnmount","render","_props","_state","state","classNames","className","e","preventDefault","stopPropagation","ref","children","PureComponent"],"mappings":";;;;;;AAKA,IAAMA,KAAK,GAAG,OAAd;AAAA,IACIC,KAAK,GAAG,OADZ;AAAA,IAEIC,WAAW,GAAG,aAFlB,CAAA;AAKA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAAAC,IAAI,EAAA;AAAA,EAAA,OAAIC,MAAM,CAACC,KAAK,CAACF,IAAD,CAAL,CAAYF,WAAZ,CAAD,CAAN,CAAiCE,IAAjC,CAAJ,CAAA;AAAA,CAAjB,CAAA;IAEMG;;;AAEF,EAAA,SAAA,SAAA,CAAYC,UAAZ,EAAwB;AAAA,IAAA,IAAA,KAAA,CAAA;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AACpB,IAAA,KAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,EAAMA,UAAN,CAAA,CAAA;AACA,IAAA,IAAMJ,IAAI,GAAV,sBAAA,CAAA,KAAA,CAAA,CAAA;AAEAA,IAAAA,IAAI,CAACK,kBAAD,CAAJ,GAA2B,UAACC,SAAD,EAAe;AACtC,MAAA,IAAIA,SAAS,CAACR,WAAD,CAAT,KAA2BI,KAAK,CAACF,IAAD,CAAL,CAAYF,WAAZ,CAA/B,EACIC,IAAI,CAACC,IAAD,CAAJ,CAAA;AACP,KAHD,CAAA;AAKAA,IAAAA,IAAI,CAACO,iBAAD,CAAJ,GAA0B,YAAM;AAC5BR,MAAAA,IAAI,CAACC,IAAD,CAAJ,CAAA;AACH,KAFD,CAAA;AAIAA,IAAAA,IAAI,CAACQ,oBAAD,CAAJ,GAA6B,YAAM;AAC/BP,MAAAA,MAAM,CAACD,IAAI,CAACS,SAAN,CAAN,EAAA,CAAA;AACH,KAFD,CAAA;AAIAT,IAAAA,IAAI,CAACU,MAAD,CAAJ,GAAe,YAAM;AACjB,MAAA,IAAMC,MAAM,GAAGT,KAAK,CAACF,IAAD,CAApB;AAAA,UACIY,MAAM,GAAGC,KAAK,CAACb,IAAD,CADlB,CAAA;AAEA,MAAO,OAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EACjBc,UAAU,CACN,WADM,EAENH,MAAM,CAACI,SAAD,CAFA,EAGNH,MAAM,CAAChB,KAAD,CAAN,IAAiBA,KAHX,EAINgB,MAAM,CAACf,KAAD,CAAN,IAAiBA,KAJX,CADP;AAOK,QAAA,UAAU,EAAE,SAAAmB,UAAAA,CAAAA,CAAC,EAAI;AACbC,UAAAA,cAAc,CAACD,CAAD,CAAd,CAAA;AACAE,UAAAA,eAAe,CAACF,CAAD,CAAf,CAAA;AACH,SAVN;AAWK,QAAA,GAAG,EAAEG,GAAG,CAAC,SAAD,EAAYnB,IAAZ,CAAA;AAXb,OAAA,EAYFW,MAAM,CAACS,QAAD,CAZJ,CAAP,CAAA;AAcH,KAjBD,CAAA;AAjBoB,IAAA,OAAA,KAAA,CAAA;AAmCvB,GAAA;;EArCmBC;AAwCxB,mBAAelB,SAAf;;;;"}
package/Dialog.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.js","sources":["../../../src/react-ui-basics/Dialog.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './Dialog.css'\nimport Button from \"./Button\";\nimport Modal from \"./Modal\";\nimport {isUndefined, orNoop, preventDefault, ref, UNDEFINED, classNames, createRef} from \"./Tools\";\nimport {PureComponent, render, componentDidMount, propsGetter, stateGSs} from \"./ReactConstants\";\nimport PropTypes from \"prop-types\";\n\nclass Dialog extends PureComponent {\n constructor(properties) {\n super(properties);\n\n this[render] = () => {\n const {title, description, accept, cancel, onAccept, onCancel, children} = this.props;\n return <div className=\"Dialog\">\n {title && <div className=\"title\">{title}</div>}\n {description && <div className=\"description\">{description}</div>}\n {children}\n <div className=\"row right\">\n {cancel && <Button flat={true} onClick={onCancel}>{cancel}</Button>}\n {accept && <Button flat={true} onClick={onAccept}>{accept}</Button>}\n </div>\n </div>\n }\n }\n}\n\nDialog.defaultProps = {\n accept: 'Accept',\n cancel: 'Decline',\n};\n\nconst throwIfPropExists = (key, props) => {\n if (props[key]) throw Error(key + \" was already set by props\")\n};\n\nclass DialogWrapper extends Component {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const openRef = createRef();\n const closeRef = createRef();\n\n const [titleState,\n descriptionState,\n onAcceptState,\n onCancelState,\n acceptState,\n cancelState\n ] = stateGSs(that, 6);\n\n const onCancel = (e) => {\n preventDefault(e);\n orNoop(props().onCancel || onCancelState())();\n closeRef()();\n };\n\n const onAccept = (e) => {\n preventDefault(e);\n orNoop(props().onAccept || onAcceptState())();\n closeRef()();\n };\n\n that[render] = () => {\n const {top, className, ...other} = props();\n return (\n <Modal\n top={top}\n className={classNames('DialogModal', className)}\n open={openRef}\n close={closeRef}\n onClose={onCancel}\n >\n <Dialog title={titleState()} description={descriptionState()} accept={acceptState()} cancel={cancelState()} {...other} onAccept={onAccept} onCancel={onCancel}/>\n </Modal>\n );\n };\n\n that.open = (onAccept, onCancel, title, description, accept, cancel) => {\n titleState(UNDEFINED);\n descriptionState(UNDEFINED);\n onAcceptState(UNDEFINED);\n onCancelState(UNDEFINED);\n acceptState(UNDEFINED);\n cancelState(UNDEFINED);\n\n const _props = props();\n if (!isUndefined(onAccept)) {\n throwIfPropExists(\"onAccept\", _props);\n onAcceptState(onAccept);\n }\n if (!isUndefined(onCancel)) {\n throwIfPropExists(\"onCancel\", _props);\n onCancelState(onCancel);\n }\n if (!isUndefined(title)) {\n throwIfPropExists(\"title\", _props);\n titleState(title);\n }\n if (!isUndefined(description)) {\n throwIfPropExists(\"description\", _props);\n descriptionState(description);\n }\n if (!isUndefined(accept)) {\n throwIfPropExists(\"accept\", _props);\n acceptState(accept);\n }\n if (!isUndefined(cancel)) {\n throwIfPropExists(\"cancel\", _props);\n cancelState(cancel);\n }\n openRef()();\n };\n\n that[componentDidMount] = () => {\n const _props = props();\n orNoop(_props.open)(that.open);\n orNoop(_props.close)(closeRef());\n _props.show && that.open();\n }\n }\n}\n\nexport default DialogWrapper;\n\nif (window.isNotProductionEnvironment) {\n DialogWrapper.propTypes = {\n title: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n description: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n accept: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n cancel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n onAccept: PropTypes.func,\n onCancel: PropTypes.func,\n className: PropTypes.string,\n top: PropTypes.number,\n };\n}"],"names":["Dialog","properties","render","props","title","description","accept","cancel","onAccept","onCancel","children","PureComponent","defaultProps","throwIfPropExists","key","Error","DialogWrapper","that","state","propsGetter","openRef","createRef","closeRef","stateGSs","titleState","descriptionState","onAcceptState","onCancelState","acceptState","cancelState","e","preventDefault","orNoop","top","className","other","classNames","open","UNDEFINED","_props","isUndefined","componentDidMount","close","show","Component","window","isNotProductionEnvironment","propTypes","PropTypes","oneOfType","string","element","func","number"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropFileInput.js","sources":["../../../src/react-ui-basics/DropFileInput.js"],"sourcesContent":["import React from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './DropFileInput.css'\nimport Dropzone from \"./Dropzone\";\nimport PropTypes from \"prop-types\";\nimport {classNames} from \"./Tools\";\nimport MaterialIcon from \"./MaterialIcon\";\n\nconst DropFileInput = ({icon, label, onDrop, droppable, multiple, accept}) => (\n <section className=\"DropFileInput\">\n <Dropzone droppable={droppable} onDrop={onDrop} accept={accept} multiple={multiple}>\n <MaterialIcon className={classNames(`icon`, label && 'withText')} icon={icon}/>\n {label && <div>{label}</div>}\n </Dropzone>\n </section>\n);\n\nDropFileInput.defaultProps = {\n icon: 'cloud_upload',\n droppable: false,\n multiple: true,\n};\n\nif (window.isNotProductionEnvironment) {\n DropFileInput.propTypes = {\n icon: MaterialIcon.propTypes.icon,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n droppable: PropTypes.bool,\n onDrop: PropTypes.func,\n multiple: PropTypes.bool,\n accept: PropTypes.string,\n };\n}\n\n\nexport default DropFileInput;\n"],"names":["DropFileInput","icon","label","onDrop","droppable","multiple","accept","classNames","defaultProps","window","isNotProductionEnvironment","propTypes","MaterialIcon","PropTypes","oneOfType","string","element","bool","func"],"mappings":";;;;;;;AAQA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAAA,IAAA,EAAA;AAAA,EAAEC,IAAAA,IAAF,QAAEA,IAAF;AAAA,MAAQC,KAAR,QAAQA,KAAR;AAAA,MAAeC,MAAf,QAAeA,MAAf;AAAA,MAAuBC,SAAvB,QAAuBA,SAAvB;AAAA,MAAkCC,QAAlC,QAAkCA,QAAlC;AAAA,MAA4CC,MAA5C,QAA4CA,MAA5C,CAAA;AAAA,EAClB,OAAA,kBAAA,CAAA,SAAA,EAAA;AAAS,IAAA,SAAS,EAAC,eAAA;AAAnB,GAAA,EACI,mBAAC,QAAD,EAAA;AAAU,IAAA,SAAS,EAAEF,SAArB;AAAgC,IAAA,MAAM,EAAED,MAAxC;AAAgD,IAAA,MAAM,EAAEG,MAAxD;AAAgE,IAAA,QAAQ,EAAED,QAAAA;AAA1E,GAAA,EACI,mBAAC,YAAD,EAAA;AAAc,IAAA,SAAS,EAAEE,UAAU,SAASL,KAAK,IAAI,UAAlB,CAAnC;AAAkE,IAAA,IAAI,EAAED,IAAAA;AAAxE,GAAA,CADJ,EAEKC,KAAK,IAAI,gCAAMA,KAAN,CAFd,CADJ,CADkB,CAAA;AAAA,CAAtB,CAAA;AASAF,aAAa,CAACQ,YAAd,GAA6B;AACzBP,EAAAA,IAAI,EAAE,cADmB;AAEzBG,EAAAA,SAAS,EAAE,KAFc;AAGzBC,EAAAA,QAAQ,EAAE,IAAA;AAHe,CAA7B,CAAA;AAMA,IAAII,MAAM,CAACC,0BAAX,EAAuC;AACnCV,EAAAA,aAAa,CAACW,SAAd,GAA0B;AACtBV,IAAAA,IAAI,EAAEW,YAAY,CAACD,SAAb,CAAuBV,IADP;AAEtBC,IAAAA,KAAK,EAAEW,SAAS,CAACC,SAAV,CAAoB,CACvBD,SAAS,CAACE,MADa,EAEvBF,SAAS,CAACG,OAFa,CAApB,CAFe;AAMtBZ,IAAAA,SAAS,EAAES,SAAS,CAACI,IANC;AAOtBd,IAAAA,MAAM,EAAEU,SAAS,CAACK,IAPI;AAQtBb,IAAAA,QAAQ,EAAEQ,SAAS,CAACI,IARE;AAStBX,IAAAA,MAAM,EAAEO,SAAS,CAACE,MAAAA;AATI,GAA1B,CAAA;AAWH,CAAA;AAGD,sBAAef,aAAf;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DroppableHorizontalList.js","sources":["../../../src/react-ui-basics/DroppableHorizontalList.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './DroppableList.css'\nimport DNDDroppable from \"./DNDDroppable\";\nimport {classNames, orNoop, setTimeout, NOOP} from \"./Tools\";\nimport DNDDraggable from \"./DNDDraggable\";\nimport {addListener} from \"./DNDContainer\";\nimport {stateGS, setState, propsGetter, props as getProps, render, componentDidUpdate, componentDidMount, children} from \"./ReactConstants\";\n\nclass DroppableHorizontalList extends Component {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const resetting = stateGS(that);\n const draggables = {};\n let list;\n\n const init = () => {\n list = [];\n React.Children.forEach(props()[children], child => {\n child && child.type === DNDDraggable && list.push(getProps(child).id);\n })\n };\n\n init();\n\n that[componentDidUpdate] = (prevProps) => {\n if (prevProps[children] !== props()[children]) {\n init();\n }\n };\n\n let dropped;\n let dragging;\n let oldIndex;\n let newIndex;\n\n that[componentDidMount] = () => {\n let inTransition = false;\n orNoop(props().provideDraggableEnhancer)(initializer => it => {\n orNoop(initializer)(it);\n it.createPositionListener = (e, style) => {\n const offset = e.pageX;\n return e => {\n e.pageX && (style.transform = 'translateX(' + (e.pageX - offset) + 'px)');\n };\n };\n it.initDraggedStyles = NOOP;\n it.onDragEnd = () => {\n const style = it.element.style;\n inTransition = true;\n setTimeout(() => {\n const droppingDuration = props().droppingDuration || 100;\n style.transition = 'transform ' + droppingDuration + 'ms linear';\n style.transform = '';\n style.zIndex = '10';\n setTimeout(() => {\n style.transition = '';\n style.zIndex = '';\n setTimeout(() => {\n inTransition = false;\n }, 50) // ignore mouseenter on the old position\n }, droppingDuration)\n }, 1);\n };\n addListener(it.element, it, 'mouseenter', (e) => {\n !(dragging || inTransition) && setState(it, {hover: true});\n });\n addListener(it.element, it, 'mouseleave', (e) => {\n !dragging && setState(it, {hover: false});\n });\n it.onUnmount = () => {\n delete draggables[getProps(it).id];\n };\n draggables[getProps(it).id] = it;\n })\n };\n\n const onHover = (e, draggable) => {\n const offset = e.pageX - that.scrollOffsetX;\n const transformLeft = 'translateX(' + draggable.width + 'px)';\n const transformRight = 'translateX(-' + draggable.width + 'px)';\n list.forEach((id, i) => {\n if (i !== oldIndex) {\n const d = draggables[id];\n const bounds = d.bounds;\n const style = d.element.style;\n if (i > oldIndex) {\n if (offset >= bounds.left)\n style.transform = transformRight;\n else\n style.transform = '';\n } else {\n if (offset <= bounds.right)\n style.transform = transformLeft;\n else\n style.transform = '';\n }\n }\n });\n\n let i = list.findIndex(id => {\n let bounds = draggables[id].bounds;\n return offset >= bounds.left && offset <= bounds.right\n });\n\n newIndex = i !== -1 ? i : list.length;\n };\n\n const onDragStart = (e, draggable) => {\n dragging = true;\n dropped = false;\n oldIndex = list.indexOf(getProps(draggable).id);\n that.scrollOffsetX = e.pageX - e.clientX;\n\n list.forEach((id) => {\n draggables[id].bounds = draggables[id].element.getBoundingClientRect();\n });\n };\n\n const reset = (ignoredIndex, transition) => {\n list.forEach((id, i) => {\n if (i !== ignoredIndex) {\n const s = draggables[id].element.style;\n s.transform = '';\n s.transition = transition;\n }\n });\n };\n\n const onDragEnd = (draggable) => {\n const index = list.indexOf(getProps(draggable).id);\n\n if (dropped) {\n reset(index, '');\n } else {\n resetting(true, () => {\n reset(index, '');\n });\n setTimeout(() => {\n resetting(false);\n }, props().droppingDuration || 100);\n }\n dragging = false;\n };\n const onDrop = (data) => {\n dropped = true;\n const draggable = draggables[list[oldIndex]];\n const style = draggable.element.style;\n\n const diff = (newIndex - oldIndex) * draggable.bounds.width;\n const transform = style.transform;\n const position = transform.substring(11, transform.length - 3);\n style.transform = 'translateX(' + (position - diff) + 'px)'; // set translateX against new position on the list to prevent long slide\n orNoop(props().onDrop)(data, oldIndex, newIndex);\n\n reset(newIndex, 'unset');\n };\n\n that[render] = () => {\n const _props = props();\n const {className, initializer} = _props;\n return <DNDDroppable className={classNames(\n 'DroppableList',\n className,\n resetting() && 'resetting',\n )}\n initializer={initializer}\n onHover={onHover}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onDrop={onDrop}\n >\n {_props[children]}\n </DNDDroppable>;\n };\n }\n}\n\n\nexport default DroppableHorizontalList;"],"names":["DroppableHorizontalList","properties","that","state","props","propsGetter","resetting","stateGS","draggables","list","init","React","Children","forEach","children","child","type","DNDDraggable","push","getProps","id","componentDidUpdate","prevProps","dropped","dragging","oldIndex","newIndex","componentDidMount","inTransition","orNoop","provideDraggableEnhancer","initializer","it","createPositionListener","e","style","offset","pageX","transform","initDraggedStyles","NOOP","onDragEnd","element","setTimeout","droppingDuration","transition","zIndex","addListener","setState","hover","onUnmount","onHover","draggable","scrollOffsetX","transformLeft","width","transformRight","i","d","bounds","left","right","findIndex","length","onDragStart","indexOf","clientX","getBoundingClientRect","reset","ignoredIndex","s","index","onDrop","data","diff","position","substring","render","_props","className","classNames","Component"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DroppableList.js","sources":["../../../src/react-ui-basics/DroppableList.js"],"sourcesContent":["import React, {Component} from 'react';\nimport ReactCreateElement from './ReactCreateElement';\nimport './DroppableList.css'\nimport DNDDroppable from \"./DNDDroppable\";\nimport {classNames, orNoop, setTimeout, NOOP} from \"./Tools\";\nimport DNDDraggable from \"./DNDDraggable\";\nimport {addListener} from \"./DNDContainer\";\nimport {stateGS, setState, propsGetter, props as getProps, render, componentDidUpdate, componentDidMount, children} from \"./ReactConstants\";\n\nclass DroppableList extends Component {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n const props = propsGetter(that);\n const resetting = stateGS(that);\n const draggables = {};\n let list;\n\n const init = () => {\n list = [];\n React.Children.forEach(props()[children], child => {\n child && child.type === DNDDraggable && list.push(getProps(child).id);\n })\n };\n\n init();\n\n that[componentDidUpdate] = (prevProps) => {\n if (prevProps[children] !== props()[children]) {\n init();\n }\n };\n\n let dropped;\n let dragging;\n let oldIndex;\n let newIndex;\n\n that[componentDidMount] = () => {\n let inTransition = false;\n orNoop(props().provideDraggableEnhancer)(initializer => it => {\n orNoop(initializer)(it);\n it.createPositionListener = (e, style) => {\n const offsetTop = e.pageY;\n return e => {\n e.pageY && (style.transform = 'translateY(' + (e.pageY - offsetTop - that.scrollDiff) + 'px)');\n };\n };\n it.initDraggedStyles = NOOP;\n it.onDragEnd = () => {\n const style = it.element.style;\n inTransition = true;\n setTimeout(() => {\n const droppingDuration = props().droppingDuration || 100;\n style.transition = 'transform ' + droppingDuration + 'ms linear';\n style.transform = '';\n style.zIndex = '10';\n setTimeout(() => {\n style.transition = '';\n style.zIndex = '';\n setTimeout(() => {\n inTransition = false;\n }, 50) // ignore mouseenter on the old position\n }, droppingDuration)\n }, 1);\n };\n addListener(it.element, it, 'mouseenter', (e) => {\n !(dragging || inTransition) && setState(it, {hover: true});\n });\n addListener(it.element, it, 'mouseleave', (e) => {\n !dragging && setState(it, {hover: false});\n });\n it.onUnmount = () => {\n delete draggables[getProps(it).id];\n };\n draggables[getProps(it).id] = it;\n })\n\n orNoop(props().provideScrollListener)(e => {\n if (!dragging)\n return\n\n that.scrollDiff = that.scroll - orNoop(props().getScrollPosition)() || 0;\n })\n };\n\n const onHover = (e, draggable) => {\n const y = e.pageY - that.scrollOffsetY - that.scrollDiff;\n const transformUp = 'translateY(' + draggable.height + 'px)';\n const transformDown = 'translateY(-' + draggable.height + 'px)';\n list.forEach((id, i) => {\n if (i !== oldIndex) {\n const d = draggables[id];\n const bounds = d.bounds;\n const style = d.element.style;\n if (i > oldIndex) {\n if (y >= bounds.top)\n style.transform = transformDown;\n else\n style.transform = '';\n } else {\n if (y <= bounds.bottom)\n style.transform = transformUp;\n else\n style.transform = '';\n }\n }\n });\n\n let i = list.findIndex(id => {\n let bounds = draggables[id].bounds;\n return y >= bounds.top && y <= bounds.bottom\n });\n\n newIndex = i !== -1 ? i : list.length;\n };\n\n const onDragStart = (e, draggable) => {\n dragging = true;\n dropped = false;\n oldIndex = list.indexOf(getProps(draggable).id);\n that.scrollOffsetY = e.pageY - e.clientY;\n that.scroll = orNoop(props().getScrollPosition)() || 0;\n that.scrollDiff = 0;\n\n list.forEach((id) => {\n draggables[id].bounds = draggables[id].element.getBoundingClientRect();\n });\n };\n\n const reset = (ignoredIndex, transition) => {\n list.forEach((id, i) => {\n if (i !== ignoredIndex) {\n const s = draggables[id].element.style;\n s.transform = '';\n s.transition = transition;\n }\n });\n };\n\n const onDragEnd = (draggable) => {\n const index = list.indexOf(getProps(draggable).id);\n\n if (dropped) {\n reset(index, '');\n } else {\n resetting(true, () => {\n reset(index, '');\n });\n setTimeout(() => {\n resetting(false);\n }, props().droppingDuration || 100);\n }\n dragging = false;\n };\n const onDrop = (data) => {\n dropped = true;\n const draggable = draggables[list[oldIndex]];\n const style = draggable.element.style;\n\n const diff = (newIndex - oldIndex) * draggable.bounds.height;\n const transform = style.transform;\n const position = transform.substring(11, transform.length - 3);\n style.transform = 'translateY(' + (position - diff) + 'px)'; // set translateY against new position on the list to prevent long slide\n\n orNoop(props().onDrop)(data, oldIndex, newIndex);\n\n reset(newIndex, 'unset');\n };\n\n that[render] = () => {\n const _props = props();\n const {className, initializer} = _props;\n return <DNDDroppable className={classNames(\n 'DroppableList',\n className,\n resetting() && 'resetting',\n )}\n initializer={initializer}\n onHover={onHover}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onDrop={onDrop}\n >\n {_props[children]}\n </DNDDroppable>;\n };\n }\n}\n\n\nexport default DroppableList;"],"names":["DroppableList","properties","that","state","props","propsGetter","resetting","stateGS","draggables","list","init","React","Children","forEach","children","child","type","DNDDraggable","push","getProps","id","componentDidUpdate","prevProps","dropped","dragging","oldIndex","newIndex","componentDidMount","inTransition","orNoop","provideDraggableEnhancer","initializer","it","createPositionListener","e","style","offsetTop","pageY","transform","scrollDiff","initDraggedStyles","NOOP","onDragEnd","element","setTimeout","droppingDuration","transition","zIndex","addListener","setState","hover","onUnmount","provideScrollListener","scroll","getScrollPosition","onHover","draggable","y","scrollOffsetY","transformUp","height","transformDown","i","d","bounds","top","bottom","findIndex","length","onDragStart","indexOf","clientY","getBoundingClientRect","reset","ignoredIndex","s","index","onDrop","data","diff","position","substring","render","_props","className","classNames","Component"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropzone.js","sources":["../../../src/react-ui-basics/Dropzone.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from \"prop-types\";\nimport ReactCreateElement from './ReactCreateElement';\nimport './Dropzone.css'\nimport {classNames, setOf, preventDefault, stopPropagation, UNDEFINED, createRef} from \"./Tools\";\nimport {propsGetter, PureComponent, render, stateGS} from \"./ReactConstants\";\n\nconst toArray = (o) => {\n if (o instanceof Array)\n return o;\n\n const l = [];\n for (let i = 0; i < o.length; i++) {\n l.push(o[i])\n }\n return l;\n};\n\nconst prevent = (e) => {\n preventDefault(e);\n stopPropagation(e);\n return false;\n};\n\nconst ignoredTypes = setOf([\n 'text',\n 'Text',\n 'text/plain',\n]);\n\nconst ignore = dt => dt && (!dt.types[0] || ignoredTypes[dt.types[0]]);\n\nclass Dropzone extends PureComponent {\n\n constructor(properties) {\n super(properties);\n const that = this;\n that.state = {};\n\n let entries = [];\n\n const props = propsGetter(that);\n const isDragging = stateGS(that);\n\n const onDrop = (e) => {\n const dt = e.dataTransfer;\n const files = toArray(dt && dt.files || e.target.files);\n props().onDrop(files);\n isDragging(false);\n entries = [];\n prevent(e);\n };\n const onDragOver = (e) => {\n const dt = e.dataTransfer;\n if (ignore(dt)) return;\n\n dt && (dt.dropEffect = 'copy');\n !isDragging() && isDragging(true);\n prevent(e);\n };\n const onDragEnter = (e) => {\n const dt = e.dataTransfer;\n if (ignore(dt)) return;\n if (entries.indexOf(e.target) === -1) {\n entries.push(e.target)\n }\n\n dt && (dt.dropEffect = 'copy');\n !isDragging() && isDragging(true);\n prevent(e);\n };\n const onDragLeave = (e) => {\n entries = entries.filter(el => el !== e.target);\n\n if (entries.length === 0)\n isDragging(false);\n\n prevent(e)\n };\n\n const inputRef = createRef()\n\n that[render] = () => {\n const {children, className, disabled, clickable, multiple, droppable, overlayLabel, accept} = props();\n\n return <div className={classNames('Dropzone', className, isDragging() && 'dragging')}\n onDragLeave={!disabled && droppable && onDragLeave || UNDEFINED}\n onDragOver={!disabled && droppable && onDragOver || UNDEFINED}\n onDragEnter={!disabled && droppable && onDragEnter || UNDEFINED}\n onDrop={!disabled && droppable && onDrop || UNDEFINED}\n >\n {overlayLabel && <div className=\"overlay\">\n <div className={'drop'}>\n {overlayLabel}\n </div>\n </div>}\n {!disabled && clickable && <input className={'file'}\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={!!multiple}\n onClick={() => {\n inputRef().value = '';\n }}\n onChange={onDrop}/>}\n {children}\n </div>\n }\n }\n}\n\nDropzone.defaultProps = {\n clickable: true,\n multiple: true,\n droppable: true,\n};\n\nif (window.isNotProductionEnvironment) {\n Dropzone.propTypes = {\n className: PropTypes.string,\n overlayLabel: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element\n ]),\n clickable: PropTypes.bool,\n droppable: PropTypes.bool,\n multiple: PropTypes.bool,\n disabled: PropTypes.bool,\n onDrop: PropTypes.func.isRequired,\n accept: PropTypes.string,\n };\n}\n\nexport default Dropzone;"],"names":["toArray","o","Array","l","i","length","push","prevent","e","preventDefault","stopPropagation","ignoredTypes","setOf","ignore","dt","types","Dropzone","properties","that","state","entries","props","propsGetter","isDragging","stateGS","onDrop","dataTransfer","files","target","onDragOver","dropEffect","onDragEnter","indexOf","onDragLeave","filter","el","inputRef","createRef","render","children","className","disabled","clickable","multiple","droppable","overlayLabel","accept","classNames","UNDEFINED","value","PureComponent","defaultProps","window","isNotProductionEnvironment","propTypes","PropTypes","string","oneOfType","element","bool","func","isRequired"],"mappings":";;;;;;;AAOA,IAAMA,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAO;AACnB,EAAA,IAAIA,CAAC,YAAYC,KAAjB,EACI,OAAOD,CAAP,CAAA;AAEJ,EAAME,IAAAA,CAAC,GAAG,EAAV,CAAA;AACA,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,CAAC,CAACI,MAAtB,EAA8BD,CAAC,EAA/B,EAAmC;AAC/BD,IAAAA,CAAC,CAACG,IAAF,CAAOL,CAAC,CAACG,CAAD,CAAR,CAAA,CAAA;AACH,GAAA;AACD,EAAA,OAAOD,CAAP,CAAA;AACH,CATD,CAAA;AAWA,IAAMI,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAAO;AACnBC,EAAAA,cAAc,CAACD,CAAD,CAAd,CAAA;AACAE,EAAAA,eAAe,CAACF,CAAD,CAAf,CAAA;AACA,EAAA,OAAO,KAAP,CAAA;AACH,CAJD,CAAA;AAMA,IAAMG,YAAY,GAAGC,KAAK,CAAC,CACvB,MADuB,EAEvB,MAFuB,EAGvB,YAHuB,CAAD,CAA1B,CAAA;AAMA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,EAAE,EAAA;AAAA,EAAA,OAAIA,EAAE,KAAK,CAACA,EAAE,CAACC,KAAH,CAAS,CAAT,CAAD,IAAgBJ,YAAY,CAACG,EAAE,CAACC,KAAH,CAAS,CAAT,CAAD,CAAjC,CAAN,CAAA;AAAA,CAAjB,CAAA;IAEMC;;;AAEF,EAAA,SAAA,QAAA,CAAYC,UAAZ,EAAwB;AAAA,IAAA,IAAA,KAAA,CAAA;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;AACpB,IAAA,KAAA,GAAA,MAAA,CAAA,IAAA,CAAA,IAAA,EAAMA,UAAN,CAAA,CAAA;AACA,IAAA,IAAMC,IAAI,GAAV,sBAAA,CAAA,KAAA,CAAA,CAAA;AACAA,IAAAA,IAAI,CAACC,KAAL,GAAa,EAAb,CAAA;AAEA,IAAIC,IAAAA,OAAO,GAAG,EAAd,CAAA;AAEA,IAAA,IAAMC,KAAK,GAAGC,WAAW,CAACJ,IAAD,CAAzB,CAAA;AACA,IAAA,IAAMK,UAAU,GAAGC,OAAO,CAACN,IAAD,CAA1B,CAAA;AAEA,IAAA,IAAMO,MAAM,GAAG,SAATA,MAAS,CAACjB,CAAD,EAAO;AAClB,MAAA,IAAMM,EAAE,GAAGN,CAAC,CAACkB,YAAb,CAAA;AACA,MAAA,IAAMC,KAAK,GAAG3B,OAAO,CAACc,EAAE,IAAIA,EAAE,CAACa,KAAT,IAAkBnB,CAAC,CAACoB,MAAF,CAASD,KAA5B,CAArB,CAAA;AACAN,MAAAA,KAAK,EAAA,CAAGI,MAAR,CAAeE,KAAf,CAAA,CAAA;AACAJ,MAAAA,UAAU,CAAC,KAAD,CAAV,CAAA;AACAH,MAAAA,OAAO,GAAG,EAAV,CAAA;AACAb,MAAAA,OAAO,CAACC,CAAD,CAAP,CAAA;AACH,KAPD,CAAA;AAQA,IAAA,IAAMqB,UAAU,GAAG,SAAbA,UAAa,CAACrB,CAAD,EAAO;AACtB,MAAA,IAAMM,EAAE,GAAGN,CAAC,CAACkB,YAAb,CAAA;AACA,MAAA,IAAIb,MAAM,CAACC,EAAD,CAAV,EAAgB,OAAA;AAEhBA,MAAAA,EAAE,KAAKA,EAAE,CAACgB,UAAH,GAAgB,MAArB,CAAF,CAAA;AACA,MAAA,CAACP,UAAU,EAAX,IAAiBA,UAAU,CAAC,IAAD,CAA3B,CAAA;AACAhB,MAAAA,OAAO,CAACC,CAAD,CAAP,CAAA;AACH,KAPD,CAAA;AAQA,IAAA,IAAMuB,WAAW,GAAG,SAAdA,WAAc,CAACvB,CAAD,EAAO;AACvB,MAAA,IAAMM,EAAE,GAAGN,CAAC,CAACkB,YAAb,CAAA;AACA,MAAA,IAAIb,MAAM,CAACC,EAAD,CAAV,EAAgB,OAAA;AAChB,MAAIM,IAAAA,OAAO,CAACY,OAAR,CAAgBxB,CAAC,CAACoB,MAAlB,CAAA,KAA8B,CAAC,CAAnC,EAAsC;AAClCR,QAAAA,OAAO,CAACd,IAAR,CAAaE,CAAC,CAACoB,MAAf,CAAA,CAAA;AACH,OAAA;AAEDd,MAAAA,EAAE,KAAKA,EAAE,CAACgB,UAAH,GAAgB,MAArB,CAAF,CAAA;AACA,MAAA,CAACP,UAAU,EAAX,IAAiBA,UAAU,CAAC,IAAD,CAA3B,CAAA;AACAhB,MAAAA,OAAO,CAACC,CAAD,CAAP,CAAA;AACH,KAVD,CAAA;AAWA,IAAA,IAAMyB,WAAW,GAAG,SAAdA,WAAc,CAACzB,CAAD,EAAO;AACvBY,MAAAA,OAAO,GAAGA,OAAO,CAACc,MAAR,CAAe,UAAAC,EAAE,EAAA;AAAA,QAAA,OAAIA,EAAE,KAAK3B,CAAC,CAACoB,MAAb,CAAA;AAAA,OAAjB,CAAV,CAAA;AAEA,MAAIR,IAAAA,OAAO,CAACf,MAAR,KAAmB,CAAvB,EACIkB,UAAU,CAAC,KAAD,CAAV,CAAA;AAEJhB,MAAAA,OAAO,CAACC,CAAD,CAAP,CAAA;AACH,KAPD,CAAA;AASA,IAAM4B,IAAAA,QAAQ,GAAGC,SAAS,EAA1B,CAAA;AAEAnB,IAAAA,IAAI,CAACoB,MAAD,CAAJ,GAAe,YAAM;AACjB,MAAA,IAAA,MAAA,GAA8FjB,KAAK,EAAnG;AAAA,UAAOkB,QAAP,UAAOA,QAAP;AAAA,UAAiBC,SAAjB,UAAiBA,SAAjB;AAAA,UAA4BC,QAA5B,UAA4BA,QAA5B;AAAA,UAAsCC,SAAtC,UAAsCA,SAAtC;AAAA,UAAiDC,QAAjD,UAAiDA,QAAjD;AAAA,UAA2DC,SAA3D,UAA2DA,SAA3D;AAAA,UAAsEC,YAAtE,UAAsEA,YAAtE;AAAA,UAAoFC,MAApF,UAAoFA,MAApF,CAAA;AAEA,MAAO,OAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAEC,UAAU,CAAC,UAAD,EAAaP,SAAb,EAAwBjB,UAAU,EAAM,IAAA,UAAxC,CAA1B;AACK,QAAA,WAAW,EAAE,CAACkB,QAAD,IAAaG,SAAb,IAA0BX,WAA1B,IAAyCe,SAD3D;AAEK,QAAA,UAAU,EAAE,CAACP,QAAD,IAAaG,SAAb,IAA0Bf,UAA1B,IAAwCmB,SAFzD;AAGK,QAAA,WAAW,EAAE,CAACP,QAAD,IAAaG,SAAb,IAA0Bb,WAA1B,IAAyCiB,SAH3D;AAIK,QAAA,MAAM,EAAE,CAACP,QAAD,IAAaG,SAAb,IAA0BnB,MAA1B,IAAoCuB,SAAAA;AAJjD,OAAA,EAMFH,YAAY,IAAI,kBAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAC,SAAA;AAAf,OACb,EAAA,kBAAA,CAAA,KAAA,EAAA;AAAK,QAAA,SAAS,EAAE,MAAA;AAAhB,OACKA,EAAAA,YADL,CADa,CANd,EAWF,CAACJ,QAAD,IAAaC,SAAb,IAA0B,kBAAA,CAAA,OAAA,EAAA;AAAO,QAAA,SAAS,EAAE,MAAlB;AACO,QAAA,GAAG,EAAEN,QADZ;AAEO,QAAA,IAAI,EAAC,MAFZ;AAGO,QAAA,MAAM,EAAEU,MAHf;AAIO,QAAA,QAAQ,EAAE,CAAC,CAACH,QAJnB;AAKO,QAAA,OAAO,EAAE,SAAM,OAAA,GAAA;AACXP,UAAAA,QAAQ,EAAA,CAAGa,KAAX,GAAmB,EAAnB,CAAA;AACH,SAPR;AAQO,QAAA,QAAQ,EAAExB,MAAAA;AARjB,OAXxB,CAAA,EAoBFc,QApBE,CAAP,CAAA;AAsBH,KAzBD,CAAA;AAhDoB,IAAA,OAAA,KAAA,CAAA;AA0EvB,GAAA;;EA5EkBW;AA+EvBlC,QAAQ,CAACmC,YAAT,GAAwB;AACpBT,EAAAA,SAAS,EAAE,IADS;AAEpBC,EAAAA,QAAQ,EAAE,IAFU;AAGpBC,EAAAA,SAAS,EAAE,IAAA;AAHS,CAAxB,CAAA;AAMA,IAAIQ,MAAM,CAACC,0BAAX,EAAuC;AACnCrC,EAAAA,QAAQ,CAACsC,SAAT,GAAqB;AACjBd,IAAAA,SAAS,EAAEe,SAAS,CAACC,MADJ;AAEjBX,IAAAA,YAAY,EAAEU,SAAS,CAACE,SAAV,CAAoB,CAC9BF,SAAS,CAACC,MADoB,EAE9BD,SAAS,CAACG,OAFoB,CAApB,CAFG;AAMjBhB,IAAAA,SAAS,EAAEa,SAAS,CAACI,IANJ;AAOjBf,IAAAA,SAAS,EAAEW,SAAS,CAACI,IAPJ;AAQjBhB,IAAAA,QAAQ,EAAEY,SAAS,CAACI,IARH;AASjBlB,IAAAA,QAAQ,EAAEc,SAAS,CAACI,IATH;AAUjBlC,IAAAA,MAAM,EAAE8B,SAAS,CAACK,IAAV,CAAeC,UAVN;AAWjBf,IAAAA,MAAM,EAAES,SAAS,CAACC,MAAAA;AAXD,GAArB,CAAA;AAaH,CAAA;AAED,iBAAexC,QAAf;;;;"}