@reltio/remotes 1.4.1480 → 1.4.1482
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.
- package/2114.js +1 -1
- package/2114.js.map +1 -1
- package/2180.js +1 -1
- package/2180.js.map +1 -1
- package/3396.js +1 -1
- package/3554.js +1 -1
- package/3554.js.map +1 -1
- package/4183.js +1 -1
- package/4183.js.map +1 -1
- package/747.js +1 -1
- package/747.js.map +1 -1
- package/8213.js +1 -1
- package/8213.js.map +1 -1
- package/package.json +1 -1
package/2114.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2114.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/HOCs/withContext/withContext.tsx","webpack://@reltio/remotes/../components/src/components/DataTypeValue/DataTypeValue.js","webpack://@reltio/remotes/../components/src/components/EmptySearchResult/NoResults.tsx","webpack://@reltio/remotes/../components/src/components/Highlighter/styles.ts","webpack://@reltio/remotes/../components/src/components/Highlighter/Highlighter.tsx","webpack://@reltio/remotes/../components/src/components/MultipleInput/styles.js","webpack://@reltio/remotes/../components/src/components/MultipleInput/MultipleInput.js","webpack://@reltio/remotes/../components/src/components/MultipliableSelect/styles.js","webpack://@reltio/remotes/../components/src/components/MultipliableSelect/MultipliableSelect.js","webpack://@reltio/remotes/../components/src/components/SearchHighlighter/styles.ts","webpack://@reltio/remotes/../components/src/components/SearchHighlighter/SearchHighlighter.tsx","webpack://@reltio/remotes/../components/src/components/ValueChip/styles.js","webpack://@reltio/remotes/../components/src/components/ValueChip/ValueChip.js","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/styles.js","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/LoadMoreButton.tsx","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/MenuList.tsx","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/OptionWithCheckIcon/styles.ts","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/OptionWithCheckIcon/OptionWithCheckIcon.tsx","webpack://@reltio/remotes/../components/src/components/editors/BooleanEditor/BooleanEditor.js","webpack://@reltio/remotes/../components/src/components/editors/BooleanRadioEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/BooleanRadioEditor/BooleanRadioEditor.js","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/entriesHelpers.js","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/GroupedDropDownEditor.js","webpack://@reltio/remotes/../components/src/components/editors/LookupEditor/entriesHelpers.js","webpack://@reltio/remotes/../components/src/components/editors/LookupEditor/LookupEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/helpers.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useLookupsResolver.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useDefaultOptions.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useAutopopulation.ts","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/DependentLookupEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useSavingFocus.ts","webpack://@reltio/remotes/../components/src/components/editors/SelectEditor/SelectEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DataTypeValueEditor/DataTypeValueEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DataTypeValueEditor/useEditorContext.js","webpack://@reltio/remotes/../components/src/components/editors/EditorsFactory.js","webpack://@reltio/remotes/../components/src/components/editors/DropDownEditor/DropDownEditor.js","webpack://@reltio/remotes/../components/src/components/UploadFileButton/styles.js","webpack://@reltio/remotes/../components/src/components/UploadFileButton/UploadFileButton.js","webpack://@reltio/remotes/../components/src/components/editors/FileTypeEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/FileTypeEditor/FileTypeEditor.tsx","webpack://@reltio/remotes/../components/src/components/editors/NumberEditor/NumberEditor.js","webpack://@reltio/remotes/../components/src/components/SimpleInput/SimpleInput.js","webpack://@reltio/remotes/../components/src/components/editors/TextEditor/TextEditor.js","webpack://@reltio/remotes/../components/src/components/editors/TypeaheadEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/TypeaheadEditor/TypeaheadEditor.js","webpack://@reltio/remotes/../components/src/components/editors/commonComponents/MultiValueChip/MultiValueChip.js","webpack://@reltio/remotes/../components/src/constants/prop-types.js","webpack://@reltio/remotes/../components/src/contexts/SearchValueContext/index.ts","webpack://@reltio/remotes/../components/src/hooks/usePrevious.js"],"sourcesContent":["import React, {memo, Context as ContextType, ComponentType} from 'react';\n\ntype AnyObject = Record<string, unknown>;\n\nexport const withContext = <C extends any, P extends AnyObject, SP extends AnyObject>(\n Context: ContextType<C>,\n contextSelector: (state: C, props?: P) => SP,\n Component: ComponentType<P>\n) => {\n if (Context && contextSelector) {\n const PureComponent = memo(Component);\n PureComponent.displayName = Component.name;\n const PureComponentWithContext = (props) => {\n return (\n <Context.Consumer>\n {(contextState) => <PureComponent {...props} {...contextSelector(contextState, props)} />}\n </Context.Consumer>\n );\n };\n return PureComponentWithContext;\n } else {\n return Component;\n }\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport mdm from '@reltio/mdm-module';\nimport {formatDataTypeValue, isAttributeValueLink, addProtocolToLink} from '@reltio/mdm-sdk';\nimport {useSelector} from 'react-redux';\nimport {Link as Link} from '@material-ui/core';\nimport SearchHighlighter from '../SearchHighlighter/SearchHighlighter';\n\nconst DataTypeValue = ({value = null, dataTypeDefinition, rich = true}) => {\n const attributePresentations = useSelector(mdm.selectors.getAttributePresentations);\n const localeDateFormat = moment.localeData().longDateFormat('L');\n const localeTimeFormat = moment.localeData().longDateFormat('LTS');\n const dateMask = useSelector(mdm.selectors.getDateMask) || localeDateFormat;\n const dateTimeMask = useSelector(mdm.selectors.getDateTimeMask) || localeDateFormat + ' ' + localeTimeFormat;\n const formattedValue = formatDataTypeValue(\n {attributePresentations, dataTypeDefinition, dateMask, dateTimeMask},\n value\n );\n\n return rich && isAttributeValueLink(dataTypeDefinition, value) ? (\n <Link target=\"_blank\" href={addProtocolToLink(formattedValue)} underline=\"none\">\n <SearchHighlighter text={formattedValue} />\n </Link>\n ) : (\n <SearchHighlighter text={formattedValue} />\n );\n};\n\nDataTypeValue.propTypes = {\n value: PropTypes.any,\n dataTypeDefinition: PropTypes.object,\n rich: PropTypes.bool\n};\n\nexport default DataTypeValue;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport NoMessageComponent from './NoMessageComponent';\n\ntype Props = Omit<React.ComponentPropsWithoutRef<typeof NoMessageComponent>, 'message'>;\n\nexport const NoResults = (props: Props) => {\n return <NoMessageComponent message={i18n.text('No results found')} {...props} />;\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n highlight: {\n fontWeight: 600\n }\n});\n","import React from 'react';\nimport {ascend, map, pipe, reverse, sort, split, toLower, trim} from 'ramda';\nimport {useStyles} from './styles';\n\ntype Props = {\n text?: string;\n highlight?: string;\n className?: string;\n multiTerm?: boolean;\n};\n\nconst Highlighter = ({text, highlight, className, multiTerm = false}: Props) => {\n const styles = useStyles();\n const hasHighlights = text && highlight;\n\n if (!hasHighlights) {\n return <>{text}</>;\n }\n\n const REG_SPACES = new RegExp(/\\s+/);\n const getMultiTerms = pipe(trim, split(REG_SPACES), map(toLower), sort(ascend), reverse);\n const highlightedValues = multiTerm ? getMultiTerms(highlight) : [toLower(highlight)];\n\n const regValues = highlightedValues.map((item) => item.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&'));\n\n const parts = text.split(new RegExp(`(${regValues.join('|')})`, 'gi'));\n\n return (\n <span>\n {parts.map((part, i) => {\n const isHighlightedText = highlightedValues.includes(part.toLocaleLowerCase());\n return isHighlightedText ? (\n <span key={i} className={className || styles.highlight}>\n {part}\n </span>\n ) : (\n part\n );\n })}\n </span>\n );\n};\n\nexport default Highlighter;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n inputRoot: {\n flexWrap: 'wrap'\n },\n autosizeInput: {\n width: 'auto',\n marginLeft: '5px',\n overflow: 'hidden',\n '& input': {\n background: '0px center',\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n color: 'inherit'\n }\n }\n});\n","import AutosizeInput from 'react-input-autosize';\nimport classnames from 'classnames';\nimport {TextField as TextField} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {identity, pipe, propEq, remove, uniq, when, trim, isEmpty} from 'ramda';\nimport {getValue, noop} from '../../core/utils';\nimport {useStyles} from './styles';\nimport ValueChip from '../ValueChip/ValueChip';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nconst AutosizeInputWrapper = ({CustomInputComponent, ...props}) =>\n CustomInputComponent ? (\n <CustomInputComponent {...props} customInput={AutosizeInput} />\n ) : (\n <AutosizeInput {...props} />\n );\n\nAutosizeInputWrapper.propTypes = {\n CustomInputComponent: PropTypes.elementType\n};\n\nconst BACKSPACE_KEY_CODE = 8;\nconst EMPTY_VALUES_EDIT_HINT = i18n.text('Press Enter to add. You may enter multiple values');\n\nconst isEmptyValue = pipe(trim, isEmpty);\n\nconst MultipleInput = ({\n values = [],\n InputProps = {},\n inputProps = {},\n classes = {},\n onChange = noop,\n getValueLabel = identity,\n ...otherProps\n}) => {\n const styles = useStyles();\n const {root, ...InputClasses} = InputProps.classes || {};\n\n const [inputValue, setInputValue] = useState('');\n const clearInputValue = () => setInputValue('');\n\n const removeValueAt = (index) => onChange(remove(index, 1, values));\n const appendValue = (value) => onChange(uniq([...values, value]));\n\n const hasValues = values.length > 0;\n\n const appendInputValueIfNotEmpty = () => {\n if (!isEmptyValue(inputValue)) {\n appendValue(inputValue);\n clearInputValue();\n }\n };\n const popLastValueIfInputIsEmpty = () => {\n if (inputValue === '' && hasValues) {\n removeValueAt(-1);\n }\n };\n\n const [isFocused, setIsFocused] = useState(false);\n const setFocused = () => setIsFocused(true);\n const setUnfocused = () => setIsFocused(false);\n\n const hintText = !hasValues && isFocused ? EMPTY_VALUES_EDIT_HINT : '';\n\n return (\n <Tooltip title={hintText}>\n <TextField\n {...otherProps}\n classes={{\n root: classes.root\n }}\n value={inputValue}\n onChange={pipe(getValue, setInputValue)}\n InputProps={{\n ...InputProps,\n startAdornment: values.map((value, index) => (\n <ValueChip key={value} label={getValueLabel(value)} onDelete={() => removeValueAt(index)} />\n )),\n inputComponent: AutosizeInputWrapper,\n classes: {\n root: classnames(styles.inputRoot, root),\n input: classnames(styles.autosizeInput, InputClasses.input),\n ...InputClasses\n }\n }}\n inputProps={{\n ...inputProps,\n CustomInputComponent: InputProps.inputComponent\n }}\n onKeyPress={when(propEq('key', 'Enter'), appendInputValueIfNotEmpty)}\n onKeyDown={when(propEq('keyCode', BACKSPACE_KEY_CODE), popLastValueIfInputIsEmpty)}\n onFocus={setFocused}\n onBlur={pipe(appendInputValueIfNotEmpty, setUnfocused)}\n />\n </Tooltip>\n );\n};\n\nMultipleInput.propTypes = {\n values: PropTypes.arrayOf(PropTypes.string),\n InputProps: PropTypes.shape({\n classes: PropTypes.shape({root: PropTypes.string}),\n inputComponent: PropTypes.elementType\n }),\n inputProps: PropTypes.object,\n onChange: PropTypes.func,\n classes: PropTypes.object,\n getValueLabel: PropTypes.func\n};\n\nexport default MultipleInput;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n multiSelect: {\n padding: '3px 48px 3px 8px !important',\n minHeight: '34px !important'\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap'\n }\n});\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classnames from 'classnames';\nimport {defaultTo, identity, pipe, prop, remove} from 'ramda';\nimport {TextField as TextField} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\nimport {SelectValueType} from '../../constants/prop-types';\nimport {getValue, noop} from '../../core/utils';\nimport ValueChip from '../ValueChip/ValueChip';\n\nconst MultipliableSelect = ({\n multiple,\n value,\n children,\n getValueLabel = noop,\n getValuePlaceholder = identity,\n onChange = noop,\n fullWidth,\n TextFieldProps,\n MenuProps,\n classes,\n ...otherProps\n}) => {\n const styles = useStyles();\n return (\n <TextField\n select\n fullWidth={fullWidth}\n {...TextFieldProps}\n value={defaultTo(multiple ? [] : '', value)}\n onChange={pipe(getValue, onChange)}\n SelectProps={{\n ...otherProps,\n MenuProps: {\n getContentAnchorEl: null,\n anchorOrigin: {vertical: 'bottom', horizontal: 'left'},\n ...MenuProps\n },\n classes: {\n ...classes,\n root: classnames({[styles.multiSelect]: multiple}, prop('root', classes))\n },\n multiple,\n // eslint-disable-next-line react/display-name\n renderValue: (selected) =>\n multiple ? (\n <div className={styles.chips}>\n {selected.map((value, index) => (\n <ValueChip\n key={value}\n label={getValueLabel(value) || getValuePlaceholder(value)}\n onMouseDown={(event) => event.stopPropagation()}\n onDelete={() => onChange(remove(index, 1, selected))}\n />\n ))}\n </div>\n ) : (\n getValueLabel(selected) || getValuePlaceholder(selected)\n )\n }}\n >\n {children}\n </TextField>\n );\n};\n\nMultipliableSelect.propTypes = {\n multiple: PropTypes.bool,\n fullWidth: PropTypes.bool,\n value: PropTypes.oneOfType([SelectValueType, PropTypes.arrayOf(SelectValueType)]),\n TextFieldProps: PropTypes.object,\n MenuProps: PropTypes.object,\n children: PropTypes.node,\n classes: PropTypes.object,\n onChange: PropTypes.func,\n getValueLabel: PropTypes.func,\n getValuePlaceholder: PropTypes.func\n};\n\nexport default MultipliableSelect;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n highlightedText: {\n background: 'rgb(255, 235, 203)'\n }\n});\n","import React, {useContext} from 'react';\nimport {SearchValueContext} from '../../contexts';\nimport Highlighter from '../Highlighter/Highlighter';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n text?: string;\n};\n\nconst SearchHighlighter = ({text}: Props) => {\n const styles = useStyles();\n const keywordValue = useContext(SearchValueContext);\n\n return <Highlighter text={text} highlight={keywordValue} className={styles.highlightedText} multiTerm />;\n};\n\nexport default SearchHighlighter;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst margin = 2;\nexport const useChipStyles = makeStyles({\n root: {\n height: '28px',\n backgroundColor: 'rgba(43, 152, 240, 0.12)',\n maxWidth: `calc(100% - ${margin * 2}px)`,\n margin: `${margin}px`\n },\n deleteIcon: {\n height: 18,\n width: 18,\n color: 'rgba(0,0,0,0.38)',\n marginRight: '8px'\n },\n label: {\n overflow: 'hidden'\n }\n});\n\nexport const useStyles = makeStyles((theme) => ({\n container: {\n display: 'flex',\n alignItems: 'center',\n width: '100%'\n },\n label: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n count: {\n color: theme.palette.text.secondary,\n fontSize: '13px',\n letterSpacing: 0,\n lineHeight: '15px',\n marginLeft: 8\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Chip as Chip} from '@material-ui/core';\n\nimport {useStyles, useChipStyles} from './styles';\nimport {mergeClasses} from '../../core/utils';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\n\nconst ValueChip = ({classes: classesProp = {}, label, count, ...otherProp}) => {\n const classes = useChipStyles();\n const styles = useStyles();\n return (\n <Chip\n classes={mergeClasses(classesProp, classes)}\n label={\n <div className={styles.container}>\n <ExpandedValueTooltip value={label}>\n <div className={styles.label}>{label}</div>\n </ExpandedValueTooltip>\n {count && <div className={styles.count}>{count}</div>}\n </div>\n }\n {...otherProp}\n />\n );\n};\n\nValueChip.propTypes = {\n classes: PropTypes.object,\n label: PropTypes.string,\n count: PropTypes.string\n};\n\nexport default ValueChip;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n loadMoreContainer: {\n display: 'flex',\n height: '32px'\n },\n moreButton: {\n padding: '9px 38px 9px 38px'\n },\n buttonLabel: {\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n loadingSpinner: {\n alignSelf: 'center',\n marginLeft: '40px'\n }\n});\n","import React from 'react';\nimport {Button as Button} from '@material-ui/core';\nimport {CircularProgress} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {useStyles} from './styles';\n\ntype Props = {\n loading: boolean;\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onMouseDown?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n};\n\nconst LoadMoreButton = ({loading, onClick, onMouseDown}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.loadMoreContainer}>\n {loading ? (\n <CircularProgress className={styles.loadingSpinner} size={24} />\n ) : (\n <Button color=\"primary\" onClick={onClick} onMouseDown={onMouseDown} className={styles.moreButton}>\n <div className={styles.buttonLabel}>{i18n.text('Load more')}</div>\n </Button>\n )}\n </div>\n );\n};\n\nexport default LoadMoreButton;\n","import React from 'react';\nimport {components} from 'react-select';\n\nconst MenuList = (props) => {\n const {\n selectProps: {menuListFooter},\n children\n } = props;\n\n return (\n <components.MenuList {...props}>\n {children}\n {menuListFooter}\n </components.MenuList>\n );\n};\nexport default MenuList;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n checkIcon: {\n transform: 'scale(.7)',\n marginLeft: '-30px',\n position: 'absolute'\n }\n});\n","import React from 'react';\nimport CheckIcon from '@material-ui/icons/Check';\nimport Option from '../../ReactSelect/commonComponents/Option';\nimport {useStyles} from './styles';\n\ntype Props = {\n children: React.ReactNode;\n isSelected: boolean;\n};\n\nconst OptionWithCheckIcon = (props: Props) => {\n const styles = useStyles();\n const {isSelected, children} = props;\n\n return (\n <Option {...props}>\n {isSelected && <CheckIcon className={styles.checkIcon} />}\n {children}\n </Option>\n );\n};\n\nOptionWithCheckIcon.displayName = 'OptionWithCheckIcon';\n\nexport default OptionWithCheckIcon;\n","import {Checkbox as Checkbox} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {getChecked} from '../../../core/utils';\nimport {pipe} from 'ramda';\n\nconst BooleanEditor = ({value, onChange, ...otherProps}) => (\n <Checkbox {...otherProps} checked={value} onChange={onChange && pipe(getChecked, onChange)} />\n);\n\nBooleanEditor.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.bool\n};\n\nexport default BooleanEditor;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n checkbox_primary: {\n color: theme.palette.divider\n },\n label: {\n color: theme.palette.text.secondary\n }\n}));\n","import BooleanEditor from '../BooleanEditor/BooleanEditor';\nimport {FormControlLabel as FormControlLabel} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport i18n from 'ui-i18n';\nimport {isNil, not, pipe} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BooleanRadioEditor = ({value, onChange, className}) => {\n const styles = useStyles();\n\n return (\n <div className={className}>\n <FormControlLabel\n classes={{label: styles.label}}\n control={\n <BooleanEditor\n classes={{root: styles['checkbox_primary']}}\n color=\"primary\"\n value={!isNil(value) && !!value}\n onChange={onChange}\n />\n }\n label={i18n.text('Yes')}\n />\n <FormControlLabel\n classes={{label: styles.label}}\n control={\n <BooleanEditor\n classes={{root: styles['checkbox_primary']}}\n color=\"primary\"\n value={!isNil(value) && !value}\n onChange={onChange && pipe(not, onChange)}\n />\n }\n label={i18n.text('No')}\n />\n </div>\n );\n};\n\nBooleanRadioEditor.propTypes = {\n value: PropTypes.bool,\n onChange: PropTypes.func,\n className: PropTypes.string\n};\n\nexport default BooleanRadioEditor;\n","import {chain, curry, has} from 'ramda';\n\nconst isGroupEntry = has('values');\n\nconst flattenEntry = curry((depth, entry) =>\n isGroupEntry(entry)\n ? [{label: entry.label, depth, isGroup: true}, ...chain(flattenEntry(depth + 1), entry.values)]\n : {...entry, depth}\n);\n\nconst flattenGroupedEntries = chain(flattenEntry(0));\n\nconst findEntryByValue = curry((entries, _value) => entries.find(({isGroup, value}) => !isGroup && value === _value));\n\nexport {flattenGroupedEntries, findEntryByValue};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n checkIcon: {\n transform: 'scale(.7)',\n marginLeft: '-25px',\n position: 'absolute'\n },\n emptyLabel: {\n padding: '4px 16px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {isNil, pipe, prop} from 'ramda';\nimport CheckIcon from '@material-ui/icons/Check';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport MultipliableSelect from '../../MultipliableSelect/MultipliableSelect';\nimport {DropDownEntryType, DropDownGroupEntryType, SelectValueType} from '../../../constants/prop-types';\nimport {findEntryByValue, flattenGroupedEntries} from './entriesHelpers';\nimport {useStyles} from './styles';\nimport {useSelectStyles} from '../constants';\nimport {wrapInArrayIfNeeded} from '@reltio/mdm-sdk';\n\nconst MENU_ITEM_OFFSET = 25;\n\nconst GroupedDropDownEditor = ({value, entries, classes, ...otherProps}) => {\n const flattenedEntries = flattenGroupedEntries(entries);\n const selectedValues = isNil(value) ? [] : wrapInArrayIfNeeded(value);\n const styles = useStyles();\n const selectStyles = useSelectStyles();\n\n return (\n <MultipliableSelect\n MenuProps={{\n disableAutoFocusItem: true\n }}\n classes={{\n ...classes,\n root: classnames(selectStyles.root, prop('root', classes)),\n icon: classnames(selectStyles.icon, prop('icon', classes))\n }}\n {...otherProps}\n value={value}\n getValueLabel={pipe(findEntryByValue(flattenedEntries), prop('label'))}\n >\n {flattenedEntries.length > 0 ? (\n flattenedEntries.map(({value, label, depth, isGroup}, index) => (\n <MenuItem\n key={index}\n disabled={isGroup}\n value={value}\n style={{paddingLeft: `${(depth + 1) * MENU_ITEM_OFFSET}px`}}\n >\n {selectedValues.includes(value) && <CheckIcon className={styles.checkIcon} />}\n {label || value.toString()}\n </MenuItem>\n ))\n ) : (\n <MenuItem className={styles.emptyLabel} disabled={true}>\n {i18n.text('No results found')}\n </MenuItem>\n )}\n </MultipliableSelect>\n );\n};\n\nGroupedDropDownEditor.propTypes = {\n value: PropTypes.oneOfType([SelectValueType, PropTypes.arrayOf(SelectValueType)]),\n entries: PropTypes.arrayOf(PropTypes.oneOfType([DropDownEntryType, DropDownGroupEntryType])).isRequired,\n classes: PropTypes.object\n};\n\nexport {GroupedDropDownEditor as default, MENU_ITEM_OFFSET};\n","import {ascend, assocPath, path, prop, curry, useWith} from 'ramda';\nimport {getLookupLabel} from '@reltio/mdm-sdk';\n\nconst LOOKUP_URI_SEPARATOR = '.';\n\nconst splitOnce = curry((separator, string) => {\n const [first, ...other] = string.split(separator);\n return [first, other.join(separator)];\n});\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nconst getLookupByUri = useWith(path, [splitOnce(LOOKUP_URI_SEPARATOR)]);\n\nconst byLabel = ascend(prop('label'));\n\nconst buildLookupEntries = (lookupTypeCode, lookups) => {\n const getLookupPath = (uri) => {\n const {parent} = getLookupByUri(uri, lookups);\n return parent ? getLookupPath(parent).concat(uri) : [uri];\n };\n\n const buildEntry = ([uri, value]) => {\n const lookup = getLookupByUri(uri, lookups);\n const [, code] = splitOnce(LOOKUP_URI_SEPARATOR, uri);\n const label = getLookupLabel(code, lookup.displayName);\n return lookup === value ? {label, value: code} : {label, values: buildEntries(value)};\n };\n\n const buildEntries = (value) => Object.entries(value).map(buildEntry).sort(byLabel);\n\n const hierarchy = Object.entries(lookups[lookupTypeCode] || []).reduce(\n (acc, [code, value]) => assocPath(getLookupPath(`${lookupTypeCode}${LOOKUP_URI_SEPARATOR}${code}`), value, acc),\n {}\n );\n\n return buildEntries(hierarchy);\n};\n\nexport {buildLookupEntries};\n","import GroupedDropDownEditor from '../GroupedDropDownEditor/GroupedDropDownEditor';\nimport PropTypes from 'prop-types';\nimport React, {useEffect} from 'react';\nimport {SimpleLookupType, LookupValueType} from '@reltio/mdm-sdk';\nimport {always, defaultTo, isEmpty, map, path, pipe, pluck, prop, propEq} from 'ramda';\nimport {buildLookupEntries} from './entriesHelpers';\n\nconst LookupEditor = ({multiple, value, lookupCode: lookupTypeCode, lookups, onChange, getLookups, ...otherProps}) => {\n const codeToLookup = (lookupCode) => ({\n lookupCode,\n value: path([lookupTypeCode, lookupCode, 'displayName'], lookups)\n });\n useEffect(() => {\n if (isEmpty(lookups) && getLookups) {\n getLookups();\n }\n }, [lookups, getLookups]);\n const entries = buildLookupEntries(lookupTypeCode, lookups); // TODO: this code could be not valid if lookups are not loaded\n const commonProps = {\n ...otherProps,\n multiple,\n entries\n };\n value = defaultTo(multiple ? [] : {}, value);\n\n return multiple ? (\n <GroupedDropDownEditor\n {...commonProps}\n value={pluck('lookupCode', value)}\n getValuePlaceholder={(lookupCode) => value.find(propEq('lookupCode', lookupCode)).value}\n onChange={pipe(map(codeToLookup), onChange)}\n />\n ) : (\n <GroupedDropDownEditor\n {...commonProps}\n value={prop('lookupCode', value)}\n getValuePlaceholder={always(prop('value', value))}\n onChange={pipe(codeToLookup, onChange)}\n />\n );\n};\n\nLookupEditor.propTypes = {\n multiple: PropTypes.bool,\n value: PropTypes.oneOfType([LookupValueType, PropTypes.arrayOf(LookupValueType)]),\n lookupCode: PropTypes.string.isRequired,\n lookups: PropTypes.objectOf(PropTypes.objectOf(SimpleLookupType)).isRequired,\n onChange: PropTypes.func,\n getLookups: PropTypes.func\n};\n\nexport default LookupEditor;\n","import {getLookupLabel, utils} from '@reltio/mdm-sdk';\n\nconst getOptionLabel = (obj) => {\n if (!obj) return '';\n const {lookupCode, value} = obj;\n return getLookupLabel(lookupCode, value);\n};\n\nconst buildLookupOptions = (lookups) =>\n Object.entries(lookups)\n .map(([lookupCode, {displayName}]) => ({\n lookupCode,\n value: displayName\n }))\n .sort((lookupA, lookupB) => {\n const labelALower = getOptionLabel(lookupA).toLowerCase();\n const labelBLower = getOptionLabel(lookupB).toLowerCase();\n return utils.strings.sort('asc', labelALower, labelBLower);\n });\n\nexport {getOptionLabel, buildLookupOptions};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n option: {\n paddingLeft: '35px'\n },\n dropdownIndicator: {\n padding: '8px 12px',\n cursor: 'pointer',\n color: theme.palette.text.secondary\n },\n clearIndicator: {\n display: 'none'\n },\n placeholder: {\n position: 'static'\n }\n}));\n","import {useEffect, useState} from 'react';\nimport {curry, filter, hasPath, map, partition, pipe, prop, concat, uniq} from 'ramda';\nimport {wrapInArrayIfNeeded} from '@reltio/mdm-sdk';\n\nconst isUnresolvedLookup = (lookupValue) => lookupValue && lookupValue.lookupCode && !lookupValue.value;\nconst isResolvedLookupCode = curry((resolvedValues, lookupCode) =>\n hasPath([lookupCode, 'displayName'], resolvedValues)\n);\n\nconst useLookupsResolver = ({lookups, resolvedValues, resolveLookups, onLookupsResolve}) => {\n const [requestedCodes, setRequestedCodes] = useState([]);\n useEffect(() => {\n const [resolvedCodes, codesToResolve] = pipe(\n wrapInArrayIfNeeded,\n filter(isUnresolvedLookup),\n map(prop('lookupCode')),\n partition(isResolvedLookupCode(resolvedValues))\n )(lookups);\n if (resolvedCodes.length > 0) {\n const resolvedLookups = resolvedCodes.map((lookupCode) => ({\n lookupCode,\n value: resolvedValues[lookupCode].displayName\n }));\n onLookupsResolve(resolvedLookups);\n }\n const unrequestedCodes = codesToResolve.filter((code) => !requestedCodes.includes(code));\n if (unrequestedCodes.length > 0) {\n setRequestedCodes(pipe(concat(unrequestedCodes), uniq));\n resolveLookups(unrequestedCodes);\n }\n }, [lookups, resolvedValues]); // eslint-disable-line\n};\n\nexport default useLookupsResolver;\n","import {useState, useEffect} from 'react';\nimport {useSafePromise} from '../../../hooks';\n\nconst useDefaultOptions = (loadOptions) => {\n const [defaultOptions, setDefaultOptions] = useState([]);\n const [initialDefaultOptions, setInitialDefaultOptions] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const safePromise = useSafePromise();\n\n useEffect(() => {\n setDefaultOptions([]);\n setIsLoading(true);\n safePromise(loadOptions(''))\n .then((options) => {\n setDefaultOptions(options);\n setInitialDefaultOptions((prevValue) => prevValue || options);\n setIsLoading(false);\n })\n .catch(() => {\n setIsLoading(false);\n });\n }, [loadOptions]); // eslint-disable-line\n return {defaultOptions, initialDefaultOptions, isLoading};\n};\n\nexport default useDefaultOptions;\n","import {useCallback, useEffect} from 'react';\n\ntype Option = {lookupCode: string; value: string};\n\ntype Props = {\n id: string;\n initialDefaultOptions: Option[];\n isEmptyValue: boolean;\n multiple: boolean;\n onChange: (value: Option | Option[]) => void;\n};\n\nconst touchedEditorsMap: {[id: string]: boolean} = {};\nconst addTouchedEditor = (id: string) => {\n touchedEditorsMap[id] = true;\n};\nconst isTouchedEditor = (id: string) => touchedEditorsMap[id];\n\n// Autopopulation for just added editor. Other autopopulation cases should be covered by cascadeUpdate flow.\nconst useAutopopulation = ({id, initialDefaultOptions, isEmptyValue, multiple, onChange}: Props) => {\n useEffect(() => {\n if (id && initialDefaultOptions && initialDefaultOptions.length === 1 && isEmptyValue && !isTouchedEditor(id)) {\n onChange(multiple ? initialDefaultOptions : initialDefaultOptions[0]);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialDefaultOptions]);\n const markAsTouched = useCallback(() => {\n if (id) {\n addTouchedEditor(id);\n }\n }, [id]);\n return {markAsTouched};\n};\n\nexport default useAutopopulation;\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport {components} from 'react-select';\nimport PropTypes from 'prop-types';\nimport {debounce, LookupValueType} from '@reltio/mdm-sdk';\nimport Select from '../../ReactSelect/Select';\nimport {concat, defaultTo, either, isEmpty, prop, T} from 'ramda';\nimport {buildLookupOptions, getOptionLabel} from './helpers';\nimport i18n from 'ui-i18n';\nimport {EmptyStub} from '../../../core/utils';\nimport DropdownIndicator from '../../commonReactSelectComponents/DropdownIndicator';\nimport MenuWithPopper from '../../commonReactSelectComponents/MenuWithPopper';\nimport MenuList from '../../commonReactSelectComponents/MenuList';\nimport {useStyles} from './styles';\nimport useLookupsResolver from './useLookupsResolver';\nimport MultiValueChip from '../commonComponents/MultiValueChip/MultiValueChip';\nimport OptionWithCheckIcon from '../../commonReactSelectComponents/OptionWithCheckIcon/OptionWithCheckIcon';\nimport useDefaultOptions from './useDefaultOptions';\nimport useAutopopulation from './useAutopopulation';\nimport useSavingFocus from './useSavingFocus';\nimport LoadMoreButton from '../../commonReactSelectComponents/LoadMoreButton';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst Input = (props) => <components.Input {...props} isHidden={false} />;\n\nconst SelectComponents = {\n IndicatorSeparator: EmptyStub,\n LoadingIndicator: EmptyStub,\n Option: OptionWithCheckIcon,\n DropdownIndicator,\n Menu: MenuWithPopper,\n MenuList: MenuList,\n MultiValue: MultiValueChip,\n Input\n};\n\nexport const DEBOUNCE_INTERVAL = 400;\nconst MAX_DEPENDENT_LOOKUP_VALUES = 50;\n\nconst DependentLookupEditor = ({\n multiple,\n value,\n lookupCode: lookupTypeCode,\n TextFieldProps,\n parents,\n onChange,\n getLookups,\n lookups = {},\n resolveLookups,\n fullWidth,\n disabled,\n placeholder,\n autopopulationId,\n max = MAX_DEPENDENT_LOOKUP_VALUES,\n ...otherProps\n}) => {\n const inputRef = useRef(null);\n const selectRef = useRef(null);\n const styles = useStyles();\n\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState([]);\n const [pageNumber, setPageNumber] = useState(1);\n const [optionsAreLoading, setOptionsAreLoading] = useState(false);\n\n useLookupsResolver({\n lookups: value,\n resolvedValues: lookups[lookupTypeCode],\n resolveLookups: (codeValues) => resolveLookups(lookupTypeCode, codeValues),\n onLookupsResolve: (lookups) => onChange(multiple ? lookups : lookups[0])\n });\n\n useSavingFocus(selectRef, inputRef, disabled);\n\n useEffect(() => {\n if (!multiple) {\n setInputValue(getOptionLabel(value));\n setOptions(defaultOptions);\n setPageNumber(1);\n }\n }, [value]);\n\n const handleChange = (value) => {\n markAsTouched();\n onChange(value);\n };\n\n const handleFocus = () => {\n value && selectRef.current?.select?.inputRef?.select();\n };\n\n const resetOptions = () => {\n setPageNumber(1);\n debouncedLoadOptions('', setOptions);\n };\n\n const restoreSelectedOption = () => {\n if (!multiple && inputValue && inputValue !== getOptionLabel(value)) {\n setInputValue(getOptionLabel(value));\n resetOptions();\n }\n };\n\n const handleInputChange = (newValue, {action}) => {\n switch (action) {\n case 'menu-close': {\n restoreSelectedOption();\n break;\n }\n case 'input-blur': {\n if (multiple && inputValue) {\n setInputValue('');\n resetOptions();\n break;\n }\n restoreSelectedOption();\n break;\n }\n case 'input-change': {\n setInputValue(newValue);\n setPageNumber(1);\n debouncedLoadOptions(newValue, setOptions);\n if (!multiple && newValue === '') {\n handleChange('');\n }\n break;\n }\n }\n };\n\n const loadOptions = useCallback(\n (value, pageNumber = 1) => {\n setOptionsAreLoading(true);\n return (\n parents === null\n ? Promise.resolve([])\n : getLookups({\n type: lookupTypeCode,\n parents,\n displayNamePrefix: value,\n max: max + 1,\n offset: (pageNumber - 1) * max\n })\n )\n .then((buildOptions) => buildLookupOptions(buildOptions))\n .catch(() => [])\n .finally(() => setOptionsAreLoading(false));\n },\n [max, lookupTypeCode, parents]\n );\n\n const loadMoreOptions = useCallback(() => {\n const filterValue = inputValue !== getOptionLabel(value) ? inputValue : '';\n\n loadOptions(multiple ? inputValue : filterValue, pageNumber + 1).then((buildOptions) => {\n setOptions((options) => concat(options.slice(0, pageNumber * max), buildOptions));\n setPageNumber((page) => page + 1);\n });\n }, [max, loadOptions, inputValue, pageNumber]);\n\n const debouncedLoadOptions = useCallback(\n debounce((value, callback) => {\n loadOptions(value).then((options) => callback(options));\n }, DEBOUNCE_INTERVAL),\n [loadOptions]\n );\n\n const {defaultOptions, initialDefaultOptions, isLoading: isLoadingDefaultOptions} = useDefaultOptions(loadOptions);\n\n useEffect(() => {\n setOptions(defaultOptions);\n }, [defaultOptions]);\n\n useDidUpdateEffect(() => {\n setPageNumber(1);\n }, [lookupTypeCode]);\n\n const displayedOptions = useMemo(() => options.slice(0, pageNumber * max), [max, options, pageNumber]);\n const showMoreButton = options.length > displayedOptions.length;\n\n const isEmptyValue = multiple ? isEmpty(value) : !value?.lookupCode && !value?.value;\n\n const {markAsTouched} = useAutopopulation({\n id: autopopulationId,\n initialDefaultOptions,\n isEmptyValue,\n multiple,\n onChange\n });\n\n return (\n <Select\n {...otherProps}\n isMulti={multiple}\n classes={styles}\n menuPortalTarget={document.body}\n menuPlacement=\"auto\"\n TextFieldProps={{\n ...TextFieldProps,\n ref: inputRef,\n disabled: TextFieldProps?.disabled || disabled\n }}\n inputRef={inputRef}\n innerRef={selectRef}\n styles={{\n menuPortal: (base) => ({...base, zIndex: 1300}),\n container: (base) => ({...base, ...(fullWidth ? {width: '100%'} : {})})\n }}\n noOptionsMessage={() =>\n optionsAreLoading && !showMoreButton ? i18n.text('Loading...') : i18n.text('No results found')\n }\n components={SelectComponents}\n isClearable={true}\n isSearchable={true}\n controlShouldRenderValue={multiple}\n inputValue={inputValue}\n filterOption={multiple ? undefined : T}\n onInputChange={handleInputChange}\n loadingMessage={() => i18n.text('Loading...')}\n isLoading={!inputValue && isLoadingDefaultOptions}\n hideSelectedOptions={false}\n placeholder={placeholder || ''}\n isDisabled={disabled}\n options={displayedOptions}\n getOptionValue={either(prop('value'), prop('lookupCode'))}\n getOptionLabel={getOptionLabel}\n onChange={handleChange}\n onFocus={multiple ? undefined : handleFocus}\n value={defaultTo(multiple ? [] : null, value)}\n menuListFooter={showMoreButton && <LoadMoreButton loading={optionsAreLoading} onClick={loadMoreOptions} />}\n />\n );\n};\n\nDependentLookupEditor.propTypes = {\n multiple: PropTypes.bool,\n value: PropTypes.oneOfType([LookupValueType, PropTypes.arrayOf(LookupValueType)]),\n TextFieldProps: PropTypes.shape({\n variant: PropTypes.string,\n margin: PropTypes.string,\n hiddenLabel: PropTypes.bool\n }),\n lookupCode: PropTypes.string.isRequired,\n parents: PropTypes.array,\n getLookups: PropTypes.func,\n onChange: PropTypes.func,\n lookups: PropTypes.object,\n resolveLookups: PropTypes.func,\n fullWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n autopopulationId: PropTypes.string,\n max: PropTypes.number\n};\n\nexport default DependentLookupEditor;\n","import {useEffect, useRef} from 'react';\n\nconst useSavingFocus = (selectRef, inputRef, disabled: boolean) => {\n const needFocusRef = useRef(false);\n\n if (\n !needFocusRef.current &&\n disabled &&\n document.activeElement === inputRef.current?.getElementsByTagName('input')[0]\n ) {\n needFocusRef.current = true;\n }\n useEffect(() => {\n const handler = () => {\n if (needFocusRef.current) {\n needFocusRef.current = false;\n }\n };\n if (!disabled && needFocusRef.current) {\n selectRef.current?.focus();\n needFocusRef.current = false;\n }\n if (disabled && needFocusRef.current) {\n document?.addEventListener('click', handler);\n return () => {\n document?.removeEventListener('click', handler);\n };\n }\n }, [disabled]);\n};\n\nexport default useSavingFocus;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {prop} from 'ramda';\nimport DropDownEditor from '../DropDownEditor/DropDownEditor';\nimport {useSelectStyles} from '../constants';\n\nconst SelectEditor = ({classes, ...otherProps}) => {\n const styles = useSelectStyles();\n return (\n <DropDownEditor\n MenuProps={{\n disableAutoFocusItem: true\n }}\n classes={{\n ...classes,\n root: classnames(styles.root, prop('root', classes)),\n icon: classnames(styles.icon, prop('icon', classes))\n }}\n {...otherProps}\n />\n );\n};\n\nSelectEditor.propTypes = {\n classes: PropTypes.object\n};\n\nexport default SelectEditor;\n","import {memo} from 'react';\nimport {has, is, mergeDeepLeft} from 'ramda';\nimport EditorsFactory from '../EditorsFactory';\nimport PropTypes from 'prop-types';\nimport useEditorContext from './useEditorContext';\nimport {commonTextFieldProps, useInputStyles} from '../constants';\nimport {isEmptyValue} from '@reltio/mdm-sdk';\n\nconst DataTypeValueEditor = ({fieldName, value, onChange, dataTypeDefinition, TextFieldProps = {}, ...otherProps}) => {\n const inputStyles = useInputStyles();\n const editorContext = useEditorContext(fieldName, dataTypeDefinition);\n const isEmpty = (value) => {\n return is(Object, value) && has('value', value) ? isEmptyValue(value.value) : isEmptyValue(value);\n };\n\n TextFieldProps = mergeDeepLeft(TextFieldProps, {\n ...commonTextFieldProps,\n className: inputStyles.marginDense,\n InputProps: {\n disableUnderline: isEmpty(value)\n }\n });\n\n return EditorsFactory.build(dataTypeDefinition.type, {\n onChange,\n value,\n TextFieldProps,\n ...editorContext,\n ...otherProps\n });\n};\n\nDataTypeValueEditor.propTypes = {\n fieldName: PropTypes.string,\n value: PropTypes.any,\n onChange: PropTypes.func,\n dataTypeDefinition: PropTypes.object\n};\n\nDataTypeValueEditor.displayName = 'DataTypeValueEditor';\n\nexport default memo(DataTypeValueEditor);\n","import mdm, {profile} from '@reltio/mdm-module';\nimport {DataTypes, getDependentLookups, getFacetedAttributeData, getLookups, resolveLookupsList} from '@reltio/mdm-sdk';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {useCallback} from 'react';\nimport {propOr, prop, pipe, keys} from 'ramda';\n\nconst useEditorContext = (fieldName, dataTypeDefinition) => {\n const tenant = useSelector(mdm.selectors.getTenant);\n const lookups = useSelector(mdm.selectors.getLookups);\n const attributePresentations = useSelector(mdm.selectors.getAttributePresentations);\n const globalSearchRequestOptions = useSelector(mdm.selectors.getGlobalSearchRequestOptions);\n const dispatch = useDispatch();\n const typeaheadGetSuggestion = useCallback(\n (searchValue, max, pageNo) =>\n getFacetedAttributeData({\n fieldName,\n searchValue,\n options: {...globalSearchRequestOptions, max, pageNo}\n }).then(pipe(prop(fieldName), keys)),\n [fieldName, globalSearchRequestOptions]\n );\n\n const {type, values, lookupCode, uri, dependentLookupCode, options} = dataTypeDefinition;\n\n switch (type) {\n case DataTypes.TYPE_ENUM:\n return {entries: values.map((value) => ({value}))};\n case DataTypes.TYPE_LOOKUP:\n return {\n lookups,\n lookupCode,\n getLookups: () =>\n getLookups().then((lookups) => {\n dispatch(profile.lookups.actions.lookupsLoaded(lookups));\n })\n };\n case DataTypes.TYPE_DEPENDENT_LOOKUP:\n return {\n lookups,\n lookupCode: dependentLookupCode,\n getLookups: ({type, parents, displayNamePrefix, max, offset}) => {\n return getDependentLookups({type, parents, displayNamePrefix, max, offset}).then(({codeValues}) =>\n propOr({}, type, codeValues)\n );\n },\n resolveLookups: (type, codeValues) => {\n const lookupsList = codeValues.map((codeValue) => ({type, codeValue}));\n return resolveLookupsList(lookupsList).then((response) => {\n if (Array.isArray(response)) {\n const lookups = response.reduce((acc, lookupData) => ({...acc, ...lookupData[type]}), {});\n dispatch(\n profile.lookups.actions.lookupsForTypeResolved({\n type,\n values: lookups\n })\n );\n }\n });\n }\n };\n case DataTypes.TYPE_TYPEAHEAD:\n return {\n getSuggestions: typeaheadGetSuggestion\n };\n case DataTypes.TYPE_NUMBER:\n case DataTypes.TYPE_FLOAT:\n case DataTypes.TYPE_DOUBLE:\n case DataTypes.TYPE_LONG:\n case DataTypes.TYPE_INT:\n return {\n format: attributePresentations[uri]\n };\n case DataTypes.TYPE_FILE:\n return {tenant};\n case DataTypes.TYPE_SELECT:\n return {entries: options};\n default:\n return {};\n }\n};\n\nexport default useEditorContext;\n","import BooleanRadioEditor from './BooleanRadioEditor/BooleanRadioEditor';\nimport DateEditor from './DateEditor/DateEditor';\nimport LookupEditor from './LookupEditor/LookupEditor';\nimport NumberEditor from './NumberEditor/NumberEditor';\nimport React from 'react';\nimport TextEditor from './TextEditor/TextEditor';\nimport TimestampEditor from './TimestampEditor/TimestampEditor';\nimport TypeaheadEditor from './TypeaheadEditor/TypeaheadEditor';\nimport {DataTypes} from '@reltio/mdm-sdk';\nimport DependentLookupEditor from './DependentLookupEditor/DependentLookupEditor';\nimport FileTypeEditor from './FileTypeEditor/FileTypeEditor';\nimport SelectEditor from './SelectEditor/SelectEditor';\n\nexport default class EditorsFactory {\n static build(type, {fullWidth, TextFieldProps, color, ...otherProps} = {}) {\n switch (type) {\n case DataTypes.TYPE_STRING:\n case DataTypes.TYPE_CIK_ID:\n case DataTypes.TYPE_ENTITY_ID:\n case DataTypes.TYPE_URL:\n case DataTypes.TYPE_BLOG_URL:\n case DataTypes.TYPE_IMAGE_URL:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_EMAIL:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} type={'email'} />;\n case DataTypes.TYPE_TEXT:\n case DataTypes.TYPE_BLOB:\n return (\n <TextEditor\n fullWidth={fullWidth}\n rowsMax={7}\n {...TextFieldProps}\n {...otherProps}\n multiline={true}\n />\n );\n case DataTypes.TYPE_PASSWORD:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} type=\"password\" />;\n case DataTypes.TYPE_LONG:\n case DataTypes.TYPE_INT:\n case DataTypes.TYPE_COUNT:\n return <NumberEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} integer={true} />;\n case DataTypes.TYPE_FLOAT:\n case DataTypes.TYPE_DOUBLE:\n case DataTypes.TYPE_NUMBER:\n case DataTypes.TYPE_DOLLAR:\n return <NumberEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_BOOLEAN:\n case DataTypes.TYPE_BOOLEAN_RADIO:\n case DataTypes.TYPE_RDM_LOOKUPS_NOT_RESOLVED:\n return (\n <BooleanRadioEditor\n color={color}\n {...otherProps}\n className={TextFieldProps?.booleanRadioEditorClassName}\n />\n );\n case DataTypes.TYPE_DATE:\n case DataTypes.TYPE_ACTIVENESS_DATE:\n case DataTypes.TYPE_LOCAL_DATE:\n return <DateEditor {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_TIMESTAMP:\n return <TimestampEditor {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_ENUM:\n case DataTypes.TYPE_SELECT:\n return <SelectEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_LOOKUP:\n return <LookupEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_TYPEAHEAD:\n return <TypeaheadEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_DEPENDENT_LOOKUP:\n return <DependentLookupEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_FILE:\n return <FileTypeEditor {...otherProps} />;\n default:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n }\n }\n}\n","import {MenuItem as MenuItem} from '@material-ui/core';\nimport MultipliableSelect from '../../MultipliableSelect/MultipliableSelect';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {DropDownEntryType} from '../../../constants/prop-types';\nimport {pipe, prop, propEq} from 'ramda';\n\nconst findEntryByValue = (entries) => (value) => entries.find(propEq('value', value));\n\nconst DropDownEditor = ({entries, classes = {}, ...otherProps}) => {\n const {menuItem, ...otherClasses} = classes;\n return (\n <MultipliableSelect\n {...otherProps}\n classes={otherClasses}\n getValueLabel={pipe(findEntryByValue(entries), prop('label'))}\n >\n {entries.map(({value, label}, index) => (\n <MenuItem key={index} value={value} className={menuItem}>\n {label || value.toString()}\n </MenuItem>\n ))}\n </MultipliableSelect>\n );\n};\n\nDropDownEditor.propTypes = {\n classes: PropTypes.object,\n entries: PropTypes.arrayOf(DropDownEntryType).isRequired\n};\n\nexport default DropDownEditor;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n fileUploaderInput: {\n display: 'none'\n },\n uploaded: {\n display: 'flex',\n alignItems: 'center'\n },\n label: {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n cancelIcon: {\n height: '18px',\n width: '18px',\n color: 'rgba(0,0,0,0.38)',\n marginLeft: '3px',\n cursor: 'pointer'\n }\n});\n","import React, {Fragment, useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport i18n from 'ui-i18n';\nimport {CircularProgress as CircularProgress} from '@material-ui/core';\nimport {Link as Link} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Button as Button} from '@material-ui/core';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport {getLabel, getRequestErrorMessage} from '@reltio/mdm-sdk';\nimport ErrorPopup from '../ErrorPopup/ErrorPopup';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {useStyles} from './styles.js';\n\nconst MODES = {INIT: 1, UPLOADING: 2, UPLOADED: 3};\nconst PROGRESS_ICON_SIZE = 20;\n\nconst showFileUploadError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('File upload error'),\n message: getRequestErrorMessage(error)\n });\n};\n\nconst UploadMode = ({supportedFileTypes = [], onUpload, onBeforeUpload}) => {\n const styles = useStyles();\n const fileUploader = useRef();\n const supportedFileTypesString = supportedFileTypes.join(',');\n const onSelectFileClick = () => {\n fileUploader.current.value = null;\n fileUploader.current.click();\n };\n const onUploadListener = (event) => {\n const uploadedFiles = event.target.files || event.dataTransfer.files || [];\n if (uploadedFiles.length > 0) {\n onBeforeUpload();\n onUpload(uploadedFiles[0]);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n return (\n <Fragment>\n <Button variant=\"contained\" onClick={onSelectFileClick}>\n {i18n.text('Select File')}\n </Button>\n\n <input\n type=\"file\"\n className={styles.fileUploaderInput}\n onChange={onUploadListener}\n ref={fileUploader}\n name=\"uploadfile\"\n accept={supportedFileTypesString}\n />\n </Fragment>\n );\n};\n\nUploadMode.propTypes = {\n onUpload: PropTypes.func,\n onBeforeUpload: PropTypes.func,\n supportedFileTypes: PropTypes.arrayOf(PropTypes.string)\n};\n\nconst UploadFileButton = ({\n link,\n filename,\n onUpload,\n onError = showFileUploadError,\n onCancel,\n supportedFileTypes,\n isValidLink = true\n}) => {\n const [mode, setMode] = useState(MODES.INIT);\n const [name, setName] = useState('');\n\n const styles = useStyles();\n useEffect(() => {\n setName(filename);\n }, [filename]);\n\n useEffect(() => {\n setMode(link ? MODES.UPLOADED : MODES.INIT);\n }, [link]);\n const onErrorHandler = useCallback(\n (error) => {\n setMode(MODES.INIT);\n onError(error);\n },\n [onError]\n );\n\n const onUploadHandler = useCallback(\n (result) => {\n return onUpload(result)\n .then(() => {\n setMode(MODES.UPLOADED);\n setName(result.name);\n })\n .catch(onErrorHandler);\n },\n [onUpload, onErrorHandler]\n );\n\n const onBeforeUpload = useCallback(() => {\n setMode(MODES.UPLOADING);\n }, []);\n const switchToInitMode = useCallback(() => {\n setMode(MODES.INIT);\n onCancel();\n }, [onCancel]);\n switch (mode) {\n case MODES.INIT:\n return (\n <UploadMode\n supportedFileTypes={supportedFileTypes}\n onUpload={onUploadHandler}\n onBeforeUpload={onBeforeUpload}\n />\n );\n case MODES.UPLOADED: {\n const label = getLabel(name);\n return (\n <div className={styles.uploaded}>\n <ExpandedValueTooltip value={label}>\n {isValidLink ? (\n <Link href={link} className={styles.label}>\n {label}\n </Link>\n ) : (\n <Typography variant=\"inherit\" className={styles.label}>\n {label}\n </Typography>\n )}\n </ExpandedValueTooltip>\n <CancelIcon\n onClick={switchToInitMode}\n onMouseDown={switchToInitMode}\n onTouchEnd={switchToInitMode}\n className={styles.cancelIcon}\n />\n </div>\n );\n }\n case MODES.UPLOADING:\n return <CircularProgress size={PROGRESS_ICON_SIZE} />;\n default:\n return null;\n }\n};\n\nUploadFileButton.propTypes = {\n link: PropTypes.string,\n filename: PropTypes.string,\n onUpload: PropTypes.func,\n onError: PropTypes.func,\n onCancel: PropTypes.func,\n supportedFileTypes: PropTypes.arrayOf(PropTypes.string),\n isValidLink: PropTypes.bool\n};\n\nexport default UploadFileButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n editor: {\n alignSelf: 'center'\n }\n});\n","import React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {uploadFileForSearch, FileValue} from '@reltio/mdm-sdk';\nimport UploadFileButton from '../../UploadFileButton/UploadFileButton';\nimport {useStyles} from './styles';\n\ntype Props = {\n value?: FileValue;\n onChange: (file: FileValue) => void;\n onError?: (error: string) => void;\n className?: string;\n};\n\nconst FileTypeEditor = ({value, onChange, onError, className}: Props) => {\n const {downloadLink, filename, expirationDate} = value || {};\n const isValidLink = expirationDate >= Date.now();\n const supportedFileTypes = ['.txt', '.csv'];\n const onUploadHandler = useCallback(\n (file) =>\n uploadFileForSearch(file).then(({path, downloadLink, expirationDate}) => {\n onChange({\n filename: file.name,\n downloadLink,\n link: path,\n expirationDate: new Date(expirationDate).getTime()\n });\n }),\n [onChange]\n );\n const onCancelHandler = useCallback(() => onChange(null), [onChange]);\n\n const styles = useStyles();\n return (\n <div className={classnames(styles.editor, className)}>\n <UploadFileButton\n isValidLink={isValidLink}\n link={downloadLink}\n filename={filename}\n supportedFileTypes={supportedFileTypes}\n onUpload={onUploadHandler}\n onError={onError}\n onCancel={onCancelHandler}\n />\n </div>\n );\n};\n\nexport default FileTypeEditor;\n","import NumberFormat from 'react-number-format';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TextEditor from '../TextEditor/TextEditor';\nimport {NumberFormatType} from '../../../constants/prop-types';\nimport {formatNumber} from '@reltio/mdm-sdk';\n\nconst NumberFormatCustom = ({inputRef, onChange, integer, customInput, format, ...otherProps}) => (\n <NumberFormat\n {...otherProps}\n {...format}\n getInputRef={inputRef}\n isNumericString={true}\n onValueChange={(values) => {\n onChange({\n target: {\n value: values.value\n }\n });\n }}\n decimalScale={integer ? 0 : undefined}\n customInput={customInput}\n />\n);\n\nNumberFormatCustom.propTypes = {\n inputRef: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n integer: PropTypes.bool,\n customInput: PropTypes.elementType,\n format: NumberFormatType\n};\n\nconst NumberEditor = ({integer, format, inputProps, InputProps, ...otherProps}) => (\n <TextEditor\n {...otherProps}\n inputProps={{\n integer,\n format,\n ...inputProps\n }}\n InputProps={{\n ...InputProps,\n inputComponent: NumberFormatCustom\n }}\n getValueLabel={formatNumber(format)}\n />\n);\n\nNumberEditor.propTypes = {\n multiple: PropTypes.bool,\n integer: PropTypes.bool,\n format: NumberFormatType,\n inputProps: PropTypes.object,\n InputProps: PropTypes.object,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.number)\n ]),\n onChange: PropTypes.func\n};\n\nexport default NumberEditor;\n","import React, {useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {isNil, pipe, propEq, when} from 'ramda';\nimport {getValue, noop} from '../../core';\nimport {TextField as TextField} from '@material-ui/core';\n\nconst SimpleInput = ({value, onChange = noop, multiline, ...otherProps}) => {\n const [currentValue, setCurrentValue] = useState('');\n\n useEffect(() => {\n setCurrentValue(isNil(value) ? '' : value);\n }, [value]);\n\n const applyCurrentValueChange = () => {\n if (currentValue !== value) {\n onChange(currentValue);\n }\n };\n\n const onEnterPress = () => {\n if (!multiline) {\n applyCurrentValueChange();\n }\n };\n\n return (\n <TextField\n {...otherProps}\n multiline={multiline}\n value={currentValue}\n onKeyPress={when(propEq('key', 'Enter'), onEnterPress)}\n onBlur={applyCurrentValueChange}\n onChange={pipe(getValue, setCurrentValue)}\n />\n );\n};\n\nSimpleInput.propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onChange: PropTypes.func,\n multiline: PropTypes.bool,\n InputProps: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default SimpleInput;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport MultipleInput from '../../MultipleInput/MultipleInput';\nimport SimpleInput from '../../SimpleInput/SimpleInput';\n\nconst TextEditor = ({multiple, value, getValueLabel, multiline, ...otherProps}) => {\n return multiple ? (\n <MultipleInput {...otherProps} values={value} getValueLabel={getValueLabel} />\n ) : (\n <SimpleInput {...otherProps} value={value} multiline={multiline} />\n );\n};\n\nTextEditor.propTypes = {\n multiple: PropTypes.bool,\n multiline: PropTypes.bool,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.number)\n ]),\n getValueLabel: PropTypes.func\n};\n\nexport default TextEditor;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n 'typeahead__suggestions-placeholder': {\n padding: '8px 16px',\n textAlign: 'center'\n },\n 'typeahead__suggestions-container--open': {\n maxHeight: '230px',\n overflowY: 'auto'\n },\n 'typeahead__suggestions-list': {\n margin: 0,\n padding: 0,\n listStyleType: 'none'\n },\n 'typeahead__suggestions-menuItem': {\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n input__root: {\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n autosizeInput: {\n width: 'auto',\n paddingTop: '10px',\n paddingBottom: '11px',\n marginLeft: '5px',\n overflow: 'hidden',\n '& input': {\n background: '0px center',\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n color: 'inherit'\n }\n },\n rawInput: {\n height: '19px'\n },\n 'multiple-input__root': {\n flexWrap: 'wrap',\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n 'multiple-input__input': {\n flex: '1 0 25px',\n flexWrap: 'wrap'\n },\n 'multiple-input__adornedStart': {\n paddingLeft: '8px'\n },\n input__underline: {\n '&:before': {\n display: 'none'\n }\n },\n 'typeahead__suggestions-container': {\n width: '100%'\n },\n 'menuItem--item': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: 'block'\n }\n});\n","import Autosuggest from 'react-autosuggest';\nimport AutosizeInput from 'react-input-autosize';\nimport classnames from 'classnames';\nimport {TextField as TextField} from '@material-ui/core';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {Paper as Paper} from '@material-ui/core';\nimport Popper from '../../Popper/Popper';\nimport PropTypes from 'prop-types';\nimport React, {useCallback, useRef, useMemo, useState} from 'react';\nimport {NoResults} from '../../../components/EmptySearchResult';\nimport {\n always,\n andThen,\n both,\n concat,\n defaultTo,\n F,\n identity,\n ifElse,\n isEmpty,\n nthArg,\n path,\n pipe,\n prop,\n propEq,\n remove,\n T,\n tap,\n trim,\n uniq\n} from 'ramda';\nimport {debounce, isEmptyValue} from '@reltio/mdm-sdk';\nimport {getValue} from '../../../core/utils';\nimport {useStyles} from './styles';\nimport ExpandedValueTooltip from '../../ExpandedValueTooltip/ExpandedValueTooltip';\nimport ValueChip from '../../ValueChip/ValueChip';\nimport LoadMoreButton from '../../commonReactSelectComponents/LoadMoreButton';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst FETCH_DEBOUNCE_INTERVAL = 300;\nconst PAGE_SIZE = 50;\n\nconst TypeaheadEditor = ({\n value,\n max = PAGE_SIZE,\n getSuggestions,\n onChange,\n multiple,\n fullWidth,\n InputProps = {},\n ...inputProps\n}) => {\n const [suggestions, setSuggestions] = useState([]);\n const [isPlaceholderVisible, setPlaceholderVisibility] = useState(false);\n const [pageNumber, setPageNumber] = useState(1);\n const [nextPageIsLoading, setNextPageIsLoading] = useState(false);\n const pageSizeForRequest = max + 1;\n const [currentValue, setCurrentValue] = useState('');\n value = defaultTo(multiple ? [] : '', value);\n const inputValue = multiple ? currentValue : value;\n\n useDidUpdateEffect(() => {\n setPageNumber(1);\n }, [inputValue]);\n\n const inputRef = useRef();\n const styles = useStyles();\n const isFocused = () => inputRef.current?.querySelector('input') === document.activeElement;\n const fetchSuggestions = pipe(\n prop('value'),\n trim,\n (value) => getSuggestions(value, pageSizeForRequest),\n andThen(pipe(tap(setSuggestions), both(isEmpty, isFocused), setPlaceholderVisibility))\n );\n\n const onLoadMoreSuggestions = () => {\n setNextPageIsLoading(true);\n getSuggestions(inputValue, pageSizeForRequest, pageNumber + 1)\n .then(pipe(concat(suggestions), setSuggestions, always(pageNumber + 1), setPageNumber))\n .finally(() => {\n setNextPageIsLoading(false);\n });\n };\n\n const onMouseDown = (event) => {\n event.preventDefault();\n };\n\n const debouncedFetchSuggestions = useCallback(debounce(fetchSuggestions, FETCH_DEBOUNCE_INTERVAL), [\n getSuggestions\n ]);\n\n const displayedSuggestions = useMemo(() => suggestions.slice(0, pageNumber * max), [suggestions, pageNumber, max]);\n const showMoreButton = suggestions.length > displayedSuggestions.length;\n\n const [hasHighlightedItem, setHasHighlightedItem] = useState(false);\n const onInputChange = ({newValue, method}) => {\n switch (method) {\n case 'type': {\n if (multiple) {\n setCurrentValue(newValue);\n }\n break;\n }\n case 'escape': {\n if (multiple) {\n setCurrentValue(newValue);\n } else {\n onChange(newValue);\n }\n break;\n }\n case 'click':\n case 'enter': {\n if (multiple) {\n setCurrentValue('');\n if (newValue) {\n onChange(uniq([...value, newValue]));\n }\n } else {\n onChange(newValue);\n }\n break;\n }\n }\n };\n\n return (\n <Autosuggest\n suggestions={displayedSuggestions}\n shouldRenderSuggestions={T}\n inputProps={{\n value: inputValue,\n onChange: pipe(nthArg(1), onInputChange),\n onKeyDown: (event) => {\n if (event.keyCode === 13 && multiple && !hasHighlightedItem) {\n onInputChange({method: 'enter', newValue: currentValue});\n }\n },\n fullWidth,\n ...inputProps,\n autoComplete: 'nope'\n }}\n getSuggestionValue={identity}\n onSuggestionsFetchRequested={ifElse(\n propEq('reason', 'input-changed'),\n debouncedFetchSuggestions,\n fetchSuggestions\n )}\n onSuggestionsClearRequested={pipe(\n always([]),\n setSuggestions,\n F,\n setPlaceholderVisibility,\n always(1),\n setPageNumber\n )}\n renderInputComponent={({ref, onChange: onInputChange, ...otherProps}) => {\n const commonClasses = {\n underline: classnames({[styles['input__underline']]: isEmptyValue(value)}),\n input: classnames(styles['rawInput'], path(['classes', 'input'], InputProps))\n };\n return multiple ? (\n <TextField\n {...otherProps}\n ref={inputRef}\n inputRef={ref}\n InputProps={{\n ...InputProps,\n startAdornment: value.map((item, index) => (\n <ValueChip key={item} label={item} onDelete={() => onChange(remove(index, 1, value))} />\n )),\n inputComponent: AutosizeInput,\n classes: {\n root: classnames(\n styles['multiple-input__input'],\n path(['classes', 'root'], InputProps)\n ),\n ...commonClasses,\n input: classnames(styles.autosizeInput, commonClasses.input),\n adornedStart: styles['multiple-input__adornedStart']\n }\n }}\n value={currentValue}\n onChange={onInputChange}\n classes={{root: styles['multiple-input__root']}}\n />\n ) : (\n <TextField\n {...otherProps}\n ref={inputRef}\n inputRef={ref}\n value={value}\n onChange={pipe(tap(onInputChange), getValue, onChange)}\n InputProps={{\n ...InputProps,\n classes: {\n root: classnames(styles['input__root'], path(['classes', 'root'], InputProps)),\n ...commonClasses\n }\n }}\n />\n );\n }}\n renderSuggestionsContainer={({children, containerProps: {ref, ...restContainerProps}}) => (\n <Popper anchorEl={inputRef.current} open={Boolean(children) || isPlaceholderVisible}>\n <Paper\n ref={ref}\n square={true}\n {...restContainerProps}\n style={{width: prop('clientWidth', inputRef.current)}}\n >\n {children || <NoResults className={styles['typeahead__suggestions-placeholder']} />}\n {showMoreButton && !isPlaceholderVisible && (\n <LoadMoreButton\n onClick={onLoadMoreSuggestions}\n onMouseDown={onMouseDown}\n loading={nextPageIsLoading}\n />\n )}\n </Paper>\n </Popper>\n )}\n renderSuggestion={(suggestion, {isHighlighted}) => (\n <MenuItem\n className={styles['typeahead__suggestions-menuItem']}\n selected={isHighlighted}\n component=\"div\"\n >\n <ExpandedValueTooltip value={suggestion}>\n <div className={styles['menuItem--item']}>{suggestion}</div>\n </ExpandedValueTooltip>\n </MenuItem>\n )}\n theme={{\n container: fullWidth ? styles['typeahead__suggestions-container'] : '',\n suggestionsList: styles['typeahead__suggestions-list'],\n suggestionsContainerOpen: styles['typeahead__suggestions-container--open']\n }}\n onSuggestionHighlighted={pipe(prop('suggestion'), Boolean, setHasHighlightedItem)}\n />\n );\n};\n\nTypeaheadEditor.propTypes = {\n multiple: PropTypes.bool,\n fullWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n onChange: PropTypes.func.isRequired,\n getSuggestions: PropTypes.func.isRequired,\n InputProps: PropTypes.object,\n max: PropTypes.number\n};\n\nexport default TypeaheadEditor;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {prop} from 'ramda';\nimport ValueChip from '../../../ValueChip/ValueChip';\nimport CancelIcon from '@material-ui/icons/Cancel';\n\nconst MultiValueChip = (props) => {\n const {children, data, removeProps} = props;\n\n return (\n <ValueChip\n tabIndex={-1}\n label={children}\n count={prop('formattedNumber', data)}\n onDelete={removeProps.onClick}\n deleteIcon={<CancelIcon {...props.removeProps} />}\n />\n );\n};\n\nMultiValueChip.propTypes = {\n children: PropTypes.node,\n data: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n number: PropTypes.number\n }).isRequired,\n removeProps: PropTypes.shape({\n onClick: PropTypes.func.isRequired,\n onMouseDown: PropTypes.func.isRequired,\n onTouchEnd: PropTypes.func.isRequired\n }).isRequired\n};\n\nexport default MultiValueChip;\n","import PropTypes from 'prop-types';\nimport {AttributeTypeType, FilterValueType, SortOrderType} from '@reltio/mdm-sdk';\n\nconst NumberFormatType = PropTypes.shape({\n prefix: PropTypes.string,\n suffix: PropTypes.string,\n thousandSeparator: PropTypes.string,\n decimalSeparator: PropTypes.string\n});\n\nconst SelectValueType = PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]);\n\nconst DropDownEntryType = PropTypes.shape({\n value: SelectValueType.isRequired,\n label: PropTypes.string\n});\n\nconst DropDownGroupEntryType = PropTypes.shape({\n label: PropTypes.string.isRequired,\n values: PropTypes.arrayOf(PropTypes.object).isRequired\n});\n\nconst ColumnDataType = PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n dataTypeDefinition: PropTypes.object,\n resizable: PropTypes.bool,\n sortable: PropTypes.bool,\n filterable: PropTypes.bool,\n headCellRenderer: PropTypes.func,\n rowCellValueRenderer: PropTypes.func,\n nestedPath: PropTypes.arrayOf(PropTypes.string)\n});\n\nconst SortingType = PropTypes.shape({\n field: PropTypes.string,\n order: SortOrderType\n});\n\nconst ColumnFilterType = PropTypes.shape({\n value: PropTypes.oneOfType([FilterValueType, PropTypes.arrayOf(FilterValueType)]),\n filter: PropTypes.string\n});\n\nconst PlainColumnsDataType = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n dataTypeDefinition: PropTypes.object\n })\n);\n\nconst GroupedColumnsDataType = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n columns: PlainColumnsDataType\n })\n);\n\nconst ColumnsDataType = PropTypes.oneOfType([PlainColumnsDataType, GroupedColumnsDataType]);\n\nconst QueryBuilderAttributeDataType = PropTypes.shape({\n title: PropTypes.string,\n pathToTitle: PropTypes.arrayOf(PropTypes.string),\n fieldName: PropTypes.string,\n entityTypeUri: PropTypes.string,\n attrType: AttributeTypeType,\n uri: PropTypes.string,\n groupName: PropTypes.string\n});\n\nconst QueryBuilderAttributeType = PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n values: PropTypes.array,\n data: QueryBuilderAttributeDataType,\n filter: PropTypes.string,\n operator: PropTypes.string\n});\n\nexport {\n NumberFormatType,\n SelectValueType,\n DropDownEntryType,\n DropDownGroupEntryType,\n ColumnDataType,\n SortingType,\n ColumnFilterType,\n ColumnsDataType,\n GroupedColumnsDataType,\n QueryBuilderAttributeDataType,\n QueryBuilderAttributeType\n};\n","import React from 'react';\n\nexport const SearchValueContext = React.createContext<string>('');\n\nSearchValueContext.displayName = 'SearchValueContext';\n","import {useEffect, useRef} from 'react';\n\nexport const usePrevious = (value) => {\n const valueHolderRef = useRef();\n useEffect(() => {\n valueHolderRef.current = value;\n }, [value]);\n return valueHolderRef.current;\n};\n"],"names":["withContext","Context","contextSelector","Component","PureComponent","memo","displayName","name","props","Consumer","contextState","DataTypeValue","value","dataTypeDefinition","rich","attributePresentations","useSelector","mdm","localeDateFormat","moment","longDateFormat","localeTimeFormat","dateMask","dateTimeMask","formattedValue","formatDataTypeValue","isAttributeValueLink","Link","target","href","addProtocolToLink","underline","text","propTypes","PropTypes","NoResults","message","i18n","useStyles","makeStyles","highlight","fontWeight","className","multiTerm","styles","REG_SPACES","RegExp","getMultiTerms","pipe","trim","split","map","toLower","sort","ascend","reverse","highlightedValues","regValues","item","replace","parts","join","part","i","includes","toLocaleLowerCase","key","inputRoot","flexWrap","autosizeInput","width","marginLeft","overflow","background","border","fontSize","outline","padding","color","AutosizeInputWrapper","CustomInputComponent","customInput","AutosizeInput","EMPTY_VALUES_EDIT_HINT","isEmptyValue","isEmpty","MultipleInput","values","InputProps","inputProps","classes","onChange","noop","getValueLabel","identity","otherProps","root","InputClasses","inputValue","setInputValue","useState","removeValueAt","index","remove","hasValues","length","appendInputValueIfNotEmpty","uniq","isFocused","setIsFocused","hintText","Tooltip","title","TextField","getValue","startAdornment","ValueChip","label","onDelete","inputComponent","classnames","input","onKeyPress","when","propEq","onKeyDown","onFocus","onBlur","multiSelect","minHeight","chips","display","MultipliableSelect","multiple","children","getValuePlaceholder","fullWidth","TextFieldProps","MenuProps","select","defaultTo","SelectProps","getContentAnchorEl","anchorOrigin","vertical","horizontal","prop","renderValue","selected","onMouseDown","event","stopPropagation","SelectValueType","highlightedText","keywordValue","useContext","SearchValueContext","Highlighter","useChipStyles","height","backgroundColor","maxWidth","margin","deleteIcon","marginRight","theme","container","alignItems","textOverflow","whiteSpace","count","palette","secondary","letterSpacing","lineHeight","classesProp","otherProp","Chip","mergeClasses","ExpandedValueTooltip","loadMoreContainer","moreButton","buttonLabel","loadingSpinner","alignSelf","loading","onClick","CircularProgress","size","Button","selectProps","menuListFooter","checkIcon","transform","position","OptionWithCheckIcon","isSelected","Option","Check","BooleanEditor","Checkbox","checked","getChecked","checkbox_primary","divider","BooleanRadioEditor","FormControlLabel","control","isNil","not","isGroupEntry","has","flattenEntry","curry","depth","entry","isGroup","chain","flattenGroupedEntries","findEntryByValue","entries","_value","find","emptyLabel","GroupedDropDownEditor","flattenedEntries","selectedValues","wrapInArrayIfNeeded","selectStyles","useSelectStyles","disableAutoFocusItem","icon","MenuItem","disabled","style","paddingLeft","toString","DropDownEntryType","DropDownGroupEntryType","isRequired","splitOnce","separator","string","first","other","getLookupByUri","useWith","path","byLabel","LookupEditor","lookupCode","lookupTypeCode","lookups","getLookups","codeToLookup","useEffect","getLookupPath","uri","parent","concat","buildEntry","lookup","code","getLookupLabel","buildEntries","Object","hierarchy","reduce","acc","assocPath","buildLookupEntries","commonProps","pluck","always","LookupValueType","SimpleLookupType","getOptionLabel","obj","buildLookupOptions","lookupA","lookupB","labelALower","toLowerCase","labelBLower","utils","option","dropdownIndicator","cursor","clearIndicator","placeholder","isUnresolvedLookup","lookupValue","isResolvedLookupCode","resolvedValues","hasPath","touchedEditorsMap","SelectComponents","IndicatorSeparator","EmptyStub","LoadingIndicator","DropdownIndicator","Menu","MenuWithPopper","MenuList","MultiValue","MultiValueChip","Input","isHidden","MAX_DEPENDENT_LOOKUP_VALUES","DependentLookupEditor","parents","resolveLookups","autopopulationId","max","inputRef","useRef","selectRef","options","setOptions","pageNumber","setPageNumber","optionsAreLoading","setOptionsAreLoading","onLookupsResolve","requestedCodes","setRequestedCodes","resolvedCodes","codesToResolve","filter","partition","resolvedLookups","unrequestedCodes","useLookupsResolver","codeValues","needFocusRef","current","document","activeElement","getElementsByTagName","handler","focus","addEventListener","removeEventListener","useSavingFocus","defaultOptions","handleChange","markAsTouched","resetOptions","debouncedLoadOptions","restoreSelectedOption","loadOptions","useCallback","Promise","resolve","type","displayNamePrefix","offset","then","buildOptions","catch","finally","loadMoreOptions","filterValue","slice","page","debounce","callback","initialDefaultOptions","isLoading","isLoadingDefaultOptions","setDefaultOptions","setInitialDefaultOptions","setIsLoading","safePromise","useSafePromise","prevValue","useDefaultOptions","useDidUpdateEffect","displayedOptions","useMemo","showMoreButton","id","isTouchedEditor","addTouchedEditor","useAutopopulation","Select","isMulti","menuPortalTarget","body","menuPlacement","ref","innerRef","menuPortal","base","zIndex","noOptionsMessage","components","isClearable","isSearchable","controlShouldRenderValue","filterOption","undefined","T","onInputChange","newValue","action","loadingMessage","hideSelectedOptions","isDisabled","getOptionValue","either","LoadMoreButton","variant","hiddenLabel","SelectEditor","DropDownEditor","DataTypeValueEditor","fieldName","inputStyles","useInputStyles","editorContext","tenant","globalSearchRequestOptions","dispatch","useDispatch","typeaheadGetSuggestion","searchValue","pageNo","getFacetedAttributeData","keys","dependentLookupCode","DataTypes","profile","getDependentLookups","propOr","lookupsList","codeValue","resolveLookupsList","response","Array","isArray","lookupData","getSuggestions","format","useEditorContext","mergeDeepLeft","commonTextFieldProps","marginDense","disableUnderline","is","TextEditor","rowsMax","multiline","NumberEditor","integer","booleanRadioEditorClassName","DateEditor","TimestampEditor","TypeaheadEditor","FileTypeEditor","build","menuItem","otherClasses","fileUploaderInput","uploaded","cancelIcon","showFileUploadError","error","console","ErrorPopup","getRequestErrorMessage","UploadMode","supportedFileTypes","onUpload","onBeforeUpload","fileUploader","supportedFileTypesString","Fragment","click","uploadedFiles","files","dataTransfer","preventDefault","accept","UploadFileButton","link","filename","onError","onCancel","isValidLink","mode","setMode","setName","onErrorHandler","onUploadHandler","result","switchToInitMode","getLabel","Typography","Cancel","onTouchEnd","editor","downloadLink","expirationDate","Date","now","file","uploadFileForSearch","getTime","onCancelHandler","NumberFormatCustom","getInputRef","isNumericString","onValueChange","decimalScale","NumberFormatType","formatNumber","SimpleInput","currentValue","setCurrentValue","applyCurrentValueChange","textAlign","maxHeight","overflowY","listStyleType","input__root","paddingTop","paddingBottom","rawInput","flex","input__underline","PAGE_SIZE","suggestions","setSuggestions","isPlaceholderVisible","setPlaceholderVisibility","nextPageIsLoading","setNextPageIsLoading","pageSizeForRequest","fetchSuggestions","andThen","tap","both","querySelector","onLoadMoreSuggestions","debouncedFetchSuggestions","displayedSuggestions","hasHighlightedItem","setHasHighlightedItem","method","shouldRenderSuggestions","nthArg","keyCode","autoComplete","getSuggestionValue","onSuggestionsFetchRequested","ifElse","onSuggestionsClearRequested","F","renderInputComponent","commonClasses","adornedStart","renderSuggestionsContainer","containerProps","restContainerProps","Popper","anchorEl","open","Boolean","Paper","square","renderSuggestion","suggestion","isHighlighted","component","suggestionsList","suggestionsContainerOpen","onSuggestionHighlighted","data","removeProps","tabIndex","number","prefix","suffix","thousandSeparator","decimalSeparator","ColumnDataType","resizable","sortable","filterable","headCellRenderer","rowCellValueRenderer","nestedPath","SortingType","field","order","SortOrderType","ColumnFilterType","FilterValueType","PlainColumnsDataType","GroupedColumnsDataType","columns","ColumnsDataType","QueryBuilderAttributeDataType","pathToTitle","entityTypeUri","attrType","AttributeTypeType","groupName","QueryBuilderAttributeType","operator","React","usePrevious","valueHolderRef"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"2114.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/HOCs/withContext/withContext.tsx","webpack://@reltio/remotes/../components/src/components/DataTypeValue/DataTypeValue.js","webpack://@reltio/remotes/../components/src/components/EmptySearchResult/NoResults.tsx","webpack://@reltio/remotes/../components/src/components/Highlighter/styles.ts","webpack://@reltio/remotes/../components/src/components/Highlighter/Highlighter.tsx","webpack://@reltio/remotes/../components/src/components/MultipleInput/styles.js","webpack://@reltio/remotes/../components/src/components/MultipleInput/MultipleInput.js","webpack://@reltio/remotes/../components/src/components/MultipliableSelect/styles.js","webpack://@reltio/remotes/../components/src/components/MultipliableSelect/MultipliableSelect.js","webpack://@reltio/remotes/../components/src/components/SearchHighlighter/styles.ts","webpack://@reltio/remotes/../components/src/components/SearchHighlighter/SearchHighlighter.tsx","webpack://@reltio/remotes/../components/src/components/ValueChip/styles.js","webpack://@reltio/remotes/../components/src/components/ValueChip/ValueChip.js","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/styles.js","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/LoadMoreButton.tsx","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/MenuList.tsx","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/OptionWithCheckIcon/styles.ts","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/OptionWithCheckIcon/OptionWithCheckIcon.tsx","webpack://@reltio/remotes/../components/src/components/editors/BooleanEditor/BooleanEditor.js","webpack://@reltio/remotes/../components/src/components/editors/BooleanRadioEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/BooleanRadioEditor/BooleanRadioEditor.js","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/entriesHelpers.js","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/GroupedDropDownEditor.js","webpack://@reltio/remotes/../components/src/components/editors/LookupEditor/entriesHelpers.js","webpack://@reltio/remotes/../components/src/components/editors/LookupEditor/LookupEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/helpers.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useLookupsResolver.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/DependentLookupEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useSavingFocus.ts","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useDefaultOptions.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useAutopopulation.ts","webpack://@reltio/remotes/../components/src/components/editors/SelectEditor/SelectEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DataTypeValueEditor/DataTypeValueEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DataTypeValueEditor/useEditorContext.js","webpack://@reltio/remotes/../components/src/components/editors/EditorsFactory.js","webpack://@reltio/remotes/../components/src/components/editors/DropDownEditor/DropDownEditor.js","webpack://@reltio/remotes/../components/src/components/UploadFileButton/styles.js","webpack://@reltio/remotes/../components/src/components/UploadFileButton/UploadFileButton.js","webpack://@reltio/remotes/../components/src/components/editors/FileTypeEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/FileTypeEditor/FileTypeEditor.tsx","webpack://@reltio/remotes/../components/src/components/editors/NumberEditor/NumberEditor.js","webpack://@reltio/remotes/../components/src/components/SimpleInput/SimpleInput.js","webpack://@reltio/remotes/../components/src/components/editors/TextEditor/TextEditor.js","webpack://@reltio/remotes/../components/src/components/editors/TypeaheadEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/TypeaheadEditor/TypeaheadEditor.js","webpack://@reltio/remotes/../components/src/components/editors/commonComponents/MultiValueChip/MultiValueChip.js","webpack://@reltio/remotes/../components/src/constants/prop-types.js","webpack://@reltio/remotes/../components/src/contexts/DependentLookupAutopopulationContext/index.ts","webpack://@reltio/remotes/../components/src/contexts/SearchValueContext/index.ts","webpack://@reltio/remotes/../components/src/hooks/usePrevious.js"],"sourcesContent":["import React, {memo, Context as ContextType, ComponentType} from 'react';\n\ntype AnyObject = Record<string, unknown>;\n\nexport const withContext = <C extends any, P extends AnyObject, SP extends AnyObject>(\n Context: ContextType<C>,\n contextSelector: (state: C, props?: P) => SP,\n Component: ComponentType<P>\n) => {\n if (Context && contextSelector) {\n const PureComponent = memo(Component);\n PureComponent.displayName = Component.name;\n const PureComponentWithContext = (props) => {\n return (\n <Context.Consumer>\n {(contextState) => <PureComponent {...props} {...contextSelector(contextState, props)} />}\n </Context.Consumer>\n );\n };\n return PureComponentWithContext;\n } else {\n return Component;\n }\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport mdm from '@reltio/mdm-module';\nimport {formatDataTypeValue, isAttributeValueLink, addProtocolToLink} from '@reltio/mdm-sdk';\nimport {useSelector} from 'react-redux';\nimport {Link as Link} from '@material-ui/core';\nimport SearchHighlighter from '../SearchHighlighter/SearchHighlighter';\n\nconst DataTypeValue = ({value = null, dataTypeDefinition, rich = true}) => {\n const attributePresentations = useSelector(mdm.selectors.getAttributePresentations);\n const localeDateFormat = moment.localeData().longDateFormat('L');\n const localeTimeFormat = moment.localeData().longDateFormat('LTS');\n const dateMask = useSelector(mdm.selectors.getDateMask) || localeDateFormat;\n const dateTimeMask = useSelector(mdm.selectors.getDateTimeMask) || localeDateFormat + ' ' + localeTimeFormat;\n const formattedValue = formatDataTypeValue(\n {attributePresentations, dataTypeDefinition, dateMask, dateTimeMask},\n value\n );\n\n return rich && isAttributeValueLink(dataTypeDefinition, value) ? (\n <Link target=\"_blank\" href={addProtocolToLink(formattedValue)} underline=\"none\">\n <SearchHighlighter text={formattedValue} />\n </Link>\n ) : (\n <SearchHighlighter text={formattedValue} />\n );\n};\n\nDataTypeValue.propTypes = {\n value: PropTypes.any,\n dataTypeDefinition: PropTypes.object,\n rich: PropTypes.bool\n};\n\nexport default DataTypeValue;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport NoMessageComponent from './NoMessageComponent';\n\ntype Props = Omit<React.ComponentPropsWithoutRef<typeof NoMessageComponent>, 'message'>;\n\nexport const NoResults = (props: Props) => {\n return <NoMessageComponent message={i18n.text('No results found')} {...props} />;\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n highlight: {\n fontWeight: 600\n }\n});\n","import React from 'react';\nimport {ascend, map, pipe, reverse, sort, split, toLower, trim} from 'ramda';\nimport {useStyles} from './styles';\n\ntype Props = {\n text?: string;\n highlight?: string;\n className?: string;\n multiTerm?: boolean;\n};\n\nconst Highlighter = ({text, highlight, className, multiTerm = false}: Props) => {\n const styles = useStyles();\n const hasHighlights = text && highlight;\n\n if (!hasHighlights) {\n return <>{text}</>;\n }\n\n const REG_SPACES = new RegExp(/\\s+/);\n const getMultiTerms = pipe(trim, split(REG_SPACES), map(toLower), sort(ascend), reverse);\n const highlightedValues = multiTerm ? getMultiTerms(highlight) : [toLower(highlight)];\n\n const regValues = highlightedValues.map((item) => item.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&'));\n\n const parts = text.split(new RegExp(`(${regValues.join('|')})`, 'gi'));\n\n return (\n <span>\n {parts.map((part, i) => {\n const isHighlightedText = highlightedValues.includes(part.toLocaleLowerCase());\n return isHighlightedText ? (\n <span key={i} className={className || styles.highlight}>\n {part}\n </span>\n ) : (\n part\n );\n })}\n </span>\n );\n};\n\nexport default Highlighter;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n inputRoot: {\n flexWrap: 'wrap'\n },\n autosizeInput: {\n width: 'auto',\n marginLeft: '5px',\n overflow: 'hidden',\n '& input': {\n background: '0px center',\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n color: 'inherit'\n }\n }\n});\n","import AutosizeInput from 'react-input-autosize';\nimport classnames from 'classnames';\nimport {TextField as TextField} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {identity, pipe, propEq, remove, uniq, when, trim, isEmpty} from 'ramda';\nimport {getValue, noop} from '../../core/utils';\nimport {useStyles} from './styles';\nimport ValueChip from '../ValueChip/ValueChip';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nconst AutosizeInputWrapper = ({CustomInputComponent, ...props}) =>\n CustomInputComponent ? (\n <CustomInputComponent {...props} customInput={AutosizeInput} />\n ) : (\n <AutosizeInput {...props} />\n );\n\nAutosizeInputWrapper.propTypes = {\n CustomInputComponent: PropTypes.elementType\n};\n\nconst BACKSPACE_KEY_CODE = 8;\nconst EMPTY_VALUES_EDIT_HINT = i18n.text('Press Enter to add. You may enter multiple values');\n\nconst isEmptyValue = pipe(trim, isEmpty);\n\nconst MultipleInput = ({\n values = [],\n InputProps = {},\n inputProps = {},\n classes = {},\n onChange = noop,\n getValueLabel = identity,\n ...otherProps\n}) => {\n const styles = useStyles();\n const {root, ...InputClasses} = InputProps.classes || {};\n\n const [inputValue, setInputValue] = useState('');\n const clearInputValue = () => setInputValue('');\n\n const removeValueAt = (index) => onChange(remove(index, 1, values));\n const appendValue = (value) => onChange(uniq([...values, value]));\n\n const hasValues = values.length > 0;\n\n const appendInputValueIfNotEmpty = () => {\n if (!isEmptyValue(inputValue)) {\n appendValue(inputValue);\n clearInputValue();\n }\n };\n const popLastValueIfInputIsEmpty = () => {\n if (inputValue === '' && hasValues) {\n removeValueAt(-1);\n }\n };\n\n const [isFocused, setIsFocused] = useState(false);\n const setFocused = () => setIsFocused(true);\n const setUnfocused = () => setIsFocused(false);\n\n const hintText = !hasValues && isFocused ? EMPTY_VALUES_EDIT_HINT : '';\n\n return (\n <Tooltip title={hintText}>\n <TextField\n {...otherProps}\n classes={{\n root: classes.root\n }}\n value={inputValue}\n onChange={pipe(getValue, setInputValue)}\n InputProps={{\n ...InputProps,\n startAdornment: values.map((value, index) => (\n <ValueChip key={value} label={getValueLabel(value)} onDelete={() => removeValueAt(index)} />\n )),\n inputComponent: AutosizeInputWrapper,\n classes: {\n root: classnames(styles.inputRoot, root),\n input: classnames(styles.autosizeInput, InputClasses.input),\n ...InputClasses\n }\n }}\n inputProps={{\n ...inputProps,\n CustomInputComponent: InputProps.inputComponent\n }}\n onKeyPress={when(propEq('key', 'Enter'), appendInputValueIfNotEmpty)}\n onKeyDown={when(propEq('keyCode', BACKSPACE_KEY_CODE), popLastValueIfInputIsEmpty)}\n onFocus={setFocused}\n onBlur={pipe(appendInputValueIfNotEmpty, setUnfocused)}\n />\n </Tooltip>\n );\n};\n\nMultipleInput.propTypes = {\n values: PropTypes.arrayOf(PropTypes.string),\n InputProps: PropTypes.shape({\n classes: PropTypes.shape({root: PropTypes.string}),\n inputComponent: PropTypes.elementType\n }),\n inputProps: PropTypes.object,\n onChange: PropTypes.func,\n classes: PropTypes.object,\n getValueLabel: PropTypes.func\n};\n\nexport default MultipleInput;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n multiSelect: {\n padding: '3px 48px 3px 8px !important',\n minHeight: '34px !important'\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap'\n }\n});\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classnames from 'classnames';\nimport {defaultTo, identity, pipe, prop, remove} from 'ramda';\nimport {TextField as TextField} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\nimport {SelectValueType} from '../../constants/prop-types';\nimport {getValue, noop} from '../../core/utils';\nimport ValueChip from '../ValueChip/ValueChip';\n\nconst MultipliableSelect = ({\n multiple,\n value,\n children,\n getValueLabel = noop,\n getValuePlaceholder = identity,\n onChange = noop,\n fullWidth,\n TextFieldProps,\n MenuProps,\n classes,\n ...otherProps\n}) => {\n const styles = useStyles();\n return (\n <TextField\n select\n fullWidth={fullWidth}\n {...TextFieldProps}\n value={defaultTo(multiple ? [] : '', value)}\n onChange={pipe(getValue, onChange)}\n SelectProps={{\n ...otherProps,\n MenuProps: {\n getContentAnchorEl: null,\n anchorOrigin: {vertical: 'bottom', horizontal: 'left'},\n ...MenuProps\n },\n classes: {\n ...classes,\n root: classnames({[styles.multiSelect]: multiple}, prop('root', classes))\n },\n multiple,\n // eslint-disable-next-line react/display-name\n renderValue: (selected) =>\n multiple ? (\n <div className={styles.chips}>\n {selected.map((value, index) => (\n <ValueChip\n key={value}\n label={getValueLabel(value) || getValuePlaceholder(value)}\n onMouseDown={(event) => event.stopPropagation()}\n onDelete={() => onChange(remove(index, 1, selected))}\n />\n ))}\n </div>\n ) : (\n getValueLabel(selected) || getValuePlaceholder(selected)\n )\n }}\n >\n {children}\n </TextField>\n );\n};\n\nMultipliableSelect.propTypes = {\n multiple: PropTypes.bool,\n fullWidth: PropTypes.bool,\n value: PropTypes.oneOfType([SelectValueType, PropTypes.arrayOf(SelectValueType)]),\n TextFieldProps: PropTypes.object,\n MenuProps: PropTypes.object,\n children: PropTypes.node,\n classes: PropTypes.object,\n onChange: PropTypes.func,\n getValueLabel: PropTypes.func,\n getValuePlaceholder: PropTypes.func\n};\n\nexport default MultipliableSelect;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n highlightedText: {\n background: 'rgb(255, 235, 203)'\n }\n});\n","import React, {useContext} from 'react';\nimport {SearchValueContext} from '../../contexts';\nimport Highlighter from '../Highlighter/Highlighter';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n text?: string;\n};\n\nconst SearchHighlighter = ({text}: Props) => {\n const styles = useStyles();\n const keywordValue = useContext(SearchValueContext);\n\n return <Highlighter text={text} highlight={keywordValue} className={styles.highlightedText} multiTerm />;\n};\n\nexport default SearchHighlighter;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst margin = 2;\nexport const useChipStyles = makeStyles({\n root: {\n height: '28px',\n backgroundColor: 'rgba(43, 152, 240, 0.12)',\n maxWidth: `calc(100% - ${margin * 2}px)`,\n margin: `${margin}px`\n },\n deleteIcon: {\n height: 18,\n width: 18,\n color: 'rgba(0,0,0,0.38)',\n marginRight: '8px'\n },\n label: {\n overflow: 'hidden'\n }\n});\n\nexport const useStyles = makeStyles((theme) => ({\n container: {\n display: 'flex',\n alignItems: 'center',\n width: '100%'\n },\n label: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n count: {\n color: theme.palette.text.secondary,\n fontSize: '13px',\n letterSpacing: 0,\n lineHeight: '15px',\n marginLeft: 8\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Chip as Chip} from '@material-ui/core';\n\nimport {useStyles, useChipStyles} from './styles';\nimport {mergeClasses} from '../../core/utils';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\n\nconst ValueChip = ({classes: classesProp = {}, label, count, ...otherProp}) => {\n const classes = useChipStyles();\n const styles = useStyles();\n return (\n <Chip\n classes={mergeClasses(classesProp, classes)}\n label={\n <div className={styles.container}>\n <ExpandedValueTooltip value={label}>\n <div className={styles.label}>{label}</div>\n </ExpandedValueTooltip>\n {count && <div className={styles.count}>{count}</div>}\n </div>\n }\n {...otherProp}\n />\n );\n};\n\nValueChip.propTypes = {\n classes: PropTypes.object,\n label: PropTypes.string,\n count: PropTypes.string\n};\n\nexport default ValueChip;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n loadMoreContainer: {\n display: 'flex',\n height: '32px'\n },\n moreButton: {\n padding: '9px 38px 9px 38px'\n },\n buttonLabel: {\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n loadingSpinner: {\n alignSelf: 'center',\n marginLeft: '40px'\n }\n});\n","import React from 'react';\nimport {Button as Button} from '@material-ui/core';\nimport {CircularProgress} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {useStyles} from './styles';\n\ntype Props = {\n loading: boolean;\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onMouseDown?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n};\n\nconst LoadMoreButton = ({loading, onClick, onMouseDown}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.loadMoreContainer}>\n {loading ? (\n <CircularProgress className={styles.loadingSpinner} size={24} />\n ) : (\n <Button color=\"primary\" onClick={onClick} onMouseDown={onMouseDown} className={styles.moreButton}>\n <div className={styles.buttonLabel}>{i18n.text('Load more')}</div>\n </Button>\n )}\n </div>\n );\n};\n\nexport default LoadMoreButton;\n","import React from 'react';\nimport {components} from 'react-select';\n\nconst MenuList = (props) => {\n const {\n selectProps: {menuListFooter},\n children\n } = props;\n\n return (\n <components.MenuList {...props}>\n {children}\n {menuListFooter}\n </components.MenuList>\n );\n};\nexport default MenuList;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n checkIcon: {\n transform: 'scale(.7)',\n marginLeft: '-30px',\n position: 'absolute'\n }\n});\n","import React from 'react';\nimport CheckIcon from '@material-ui/icons/Check';\nimport Option from '../../ReactSelect/commonComponents/Option';\nimport {useStyles} from './styles';\n\ntype Props = {\n children: React.ReactNode;\n isSelected: boolean;\n};\n\nconst OptionWithCheckIcon = (props: Props) => {\n const styles = useStyles();\n const {isSelected, children} = props;\n\n return (\n <Option {...props}>\n {isSelected && <CheckIcon className={styles.checkIcon} />}\n {children}\n </Option>\n );\n};\n\nOptionWithCheckIcon.displayName = 'OptionWithCheckIcon';\n\nexport default OptionWithCheckIcon;\n","import {Checkbox as Checkbox} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {getChecked} from '../../../core/utils';\nimport {pipe} from 'ramda';\n\nconst BooleanEditor = ({value, onChange, ...otherProps}) => (\n <Checkbox {...otherProps} checked={value} onChange={onChange && pipe(getChecked, onChange)} />\n);\n\nBooleanEditor.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.bool\n};\n\nexport default BooleanEditor;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n checkbox_primary: {\n color: theme.palette.divider\n },\n label: {\n color: theme.palette.text.secondary\n }\n}));\n","import BooleanEditor from '../BooleanEditor/BooleanEditor';\nimport {FormControlLabel as FormControlLabel} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport i18n from 'ui-i18n';\nimport {isNil, not, pipe} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BooleanRadioEditor = ({value, onChange, className}) => {\n const styles = useStyles();\n\n return (\n <div className={className}>\n <FormControlLabel\n classes={{label: styles.label}}\n control={\n <BooleanEditor\n classes={{root: styles['checkbox_primary']}}\n color=\"primary\"\n value={!isNil(value) && !!value}\n onChange={onChange}\n />\n }\n label={i18n.text('Yes')}\n />\n <FormControlLabel\n classes={{label: styles.label}}\n control={\n <BooleanEditor\n classes={{root: styles['checkbox_primary']}}\n color=\"primary\"\n value={!isNil(value) && !value}\n onChange={onChange && pipe(not, onChange)}\n />\n }\n label={i18n.text('No')}\n />\n </div>\n );\n};\n\nBooleanRadioEditor.propTypes = {\n value: PropTypes.bool,\n onChange: PropTypes.func,\n className: PropTypes.string\n};\n\nexport default BooleanRadioEditor;\n","import {chain, curry, has} from 'ramda';\n\nconst isGroupEntry = has('values');\n\nconst flattenEntry = curry((depth, entry) =>\n isGroupEntry(entry)\n ? [{label: entry.label, depth, isGroup: true}, ...chain(flattenEntry(depth + 1), entry.values)]\n : {...entry, depth}\n);\n\nconst flattenGroupedEntries = chain(flattenEntry(0));\n\nconst findEntryByValue = curry((entries, _value) => entries.find(({isGroup, value}) => !isGroup && value === _value));\n\nexport {flattenGroupedEntries, findEntryByValue};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n checkIcon: {\n transform: 'scale(.7)',\n marginLeft: '-25px',\n position: 'absolute'\n },\n emptyLabel: {\n padding: '4px 16px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {isNil, pipe, prop} from 'ramda';\nimport CheckIcon from '@material-ui/icons/Check';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport MultipliableSelect from '../../MultipliableSelect/MultipliableSelect';\nimport {DropDownEntryType, DropDownGroupEntryType, SelectValueType} from '../../../constants/prop-types';\nimport {findEntryByValue, flattenGroupedEntries} from './entriesHelpers';\nimport {useStyles} from './styles';\nimport {useSelectStyles} from '../constants';\nimport {wrapInArrayIfNeeded} from '@reltio/mdm-sdk';\n\nconst MENU_ITEM_OFFSET = 25;\n\nconst GroupedDropDownEditor = ({value, entries, classes, ...otherProps}) => {\n const flattenedEntries = flattenGroupedEntries(entries);\n const selectedValues = isNil(value) ? [] : wrapInArrayIfNeeded(value);\n const styles = useStyles();\n const selectStyles = useSelectStyles();\n\n return (\n <MultipliableSelect\n MenuProps={{\n disableAutoFocusItem: true\n }}\n classes={{\n ...classes,\n root: classnames(selectStyles.root, prop('root', classes)),\n icon: classnames(selectStyles.icon, prop('icon', classes))\n }}\n {...otherProps}\n value={value}\n getValueLabel={pipe(findEntryByValue(flattenedEntries), prop('label'))}\n >\n {flattenedEntries.length > 0 ? (\n flattenedEntries.map(({value, label, depth, isGroup}, index) => (\n <MenuItem\n key={index}\n disabled={isGroup}\n value={value}\n style={{paddingLeft: `${(depth + 1) * MENU_ITEM_OFFSET}px`}}\n >\n {selectedValues.includes(value) && <CheckIcon className={styles.checkIcon} />}\n {label || value.toString()}\n </MenuItem>\n ))\n ) : (\n <MenuItem className={styles.emptyLabel} disabled={true}>\n {i18n.text('No results found')}\n </MenuItem>\n )}\n </MultipliableSelect>\n );\n};\n\nGroupedDropDownEditor.propTypes = {\n value: PropTypes.oneOfType([SelectValueType, PropTypes.arrayOf(SelectValueType)]),\n entries: PropTypes.arrayOf(PropTypes.oneOfType([DropDownEntryType, DropDownGroupEntryType])).isRequired,\n classes: PropTypes.object\n};\n\nexport {GroupedDropDownEditor as default, MENU_ITEM_OFFSET};\n","import {ascend, assocPath, path, prop, curry, useWith} from 'ramda';\nimport {getLookupLabel} from '@reltio/mdm-sdk';\n\nconst LOOKUP_URI_SEPARATOR = '.';\n\nconst splitOnce = curry((separator, string) => {\n const [first, ...other] = string.split(separator);\n return [first, other.join(separator)];\n});\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nconst getLookupByUri = useWith(path, [splitOnce(LOOKUP_URI_SEPARATOR)]);\n\nconst byLabel = ascend(prop('label'));\n\nconst buildLookupEntries = (lookupTypeCode, lookups) => {\n const getLookupPath = (uri) => {\n const {parent} = getLookupByUri(uri, lookups);\n return parent ? getLookupPath(parent).concat(uri) : [uri];\n };\n\n const buildEntry = ([uri, value]) => {\n const lookup = getLookupByUri(uri, lookups);\n const [, code] = splitOnce(LOOKUP_URI_SEPARATOR, uri);\n const label = getLookupLabel(code, lookup.displayName);\n return lookup === value ? {label, value: code} : {label, values: buildEntries(value)};\n };\n\n const buildEntries = (value) => Object.entries(value).map(buildEntry).sort(byLabel);\n\n const hierarchy = Object.entries(lookups[lookupTypeCode] || []).reduce(\n (acc, [code, value]) => assocPath(getLookupPath(`${lookupTypeCode}${LOOKUP_URI_SEPARATOR}${code}`), value, acc),\n {}\n );\n\n return buildEntries(hierarchy);\n};\n\nexport {buildLookupEntries};\n","import GroupedDropDownEditor from '../GroupedDropDownEditor/GroupedDropDownEditor';\nimport PropTypes from 'prop-types';\nimport React, {useEffect} from 'react';\nimport {SimpleLookupType, LookupValueType} from '@reltio/mdm-sdk';\nimport {always, defaultTo, isEmpty, map, path, pipe, pluck, prop, propEq} from 'ramda';\nimport {buildLookupEntries} from './entriesHelpers';\n\nconst LookupEditor = ({multiple, value, lookupCode: lookupTypeCode, lookups, onChange, getLookups, ...otherProps}) => {\n const codeToLookup = (lookupCode) => ({\n lookupCode,\n value: path([lookupTypeCode, lookupCode, 'displayName'], lookups)\n });\n useEffect(() => {\n if (isEmpty(lookups) && getLookups) {\n getLookups();\n }\n }, [lookups, getLookups]);\n const entries = buildLookupEntries(lookupTypeCode, lookups); // TODO: this code could be not valid if lookups are not loaded\n const commonProps = {\n ...otherProps,\n multiple,\n entries\n };\n value = defaultTo(multiple ? [] : {}, value);\n\n return multiple ? (\n <GroupedDropDownEditor\n {...commonProps}\n value={pluck('lookupCode', value)}\n getValuePlaceholder={(lookupCode) => value.find(propEq('lookupCode', lookupCode)).value}\n onChange={pipe(map(codeToLookup), onChange)}\n />\n ) : (\n <GroupedDropDownEditor\n {...commonProps}\n value={prop('lookupCode', value)}\n getValuePlaceholder={always(prop('value', value))}\n onChange={pipe(codeToLookup, onChange)}\n />\n );\n};\n\nLookupEditor.propTypes = {\n multiple: PropTypes.bool,\n value: PropTypes.oneOfType([LookupValueType, PropTypes.arrayOf(LookupValueType)]),\n lookupCode: PropTypes.string.isRequired,\n lookups: PropTypes.objectOf(PropTypes.objectOf(SimpleLookupType)).isRequired,\n onChange: PropTypes.func,\n getLookups: PropTypes.func\n};\n\nexport default LookupEditor;\n","import {getLookupLabel, utils} from '@reltio/mdm-sdk';\n\nconst getOptionLabel = (obj) => {\n if (!obj) return '';\n const {lookupCode, value} = obj;\n return getLookupLabel(lookupCode, value);\n};\n\nconst buildLookupOptions = (lookups) =>\n Object.entries(lookups)\n .map(([lookupCode, {displayName}]) => ({\n lookupCode,\n value: displayName\n }))\n .sort((lookupA, lookupB) => {\n const labelALower = getOptionLabel(lookupA).toLowerCase();\n const labelBLower = getOptionLabel(lookupB).toLowerCase();\n return utils.strings.sort('asc', labelALower, labelBLower);\n });\n\nexport {getOptionLabel, buildLookupOptions};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n option: {\n paddingLeft: '35px'\n },\n dropdownIndicator: {\n padding: '8px 12px',\n cursor: 'pointer',\n color: theme.palette.text.secondary\n },\n clearIndicator: {\n display: 'none'\n },\n placeholder: {\n position: 'static'\n }\n}));\n","import {useEffect, useState} from 'react';\nimport {curry, filter, hasPath, map, partition, pipe, prop, concat, uniq} from 'ramda';\nimport {wrapInArrayIfNeeded} from '@reltio/mdm-sdk';\n\nconst isUnresolvedLookup = (lookupValue) => lookupValue && lookupValue.lookupCode && !lookupValue.value;\nconst isResolvedLookupCode = curry((resolvedValues, lookupCode) =>\n hasPath([lookupCode, 'displayName'], resolvedValues)\n);\n\nconst useLookupsResolver = ({lookups, resolvedValues, resolveLookups, onLookupsResolve}) => {\n const [requestedCodes, setRequestedCodes] = useState([]);\n useEffect(() => {\n const [resolvedCodes, codesToResolve] = pipe(\n wrapInArrayIfNeeded,\n filter(isUnresolvedLookup),\n map(prop('lookupCode')),\n partition(isResolvedLookupCode(resolvedValues))\n )(lookups);\n if (resolvedCodes.length > 0) {\n const resolvedLookups = resolvedCodes.map((lookupCode) => ({\n lookupCode,\n value: resolvedValues[lookupCode].displayName\n }));\n onLookupsResolve(resolvedLookups);\n }\n const unrequestedCodes = codesToResolve.filter((code) => !requestedCodes.includes(code));\n if (unrequestedCodes.length > 0) {\n setRequestedCodes(pipe(concat(unrequestedCodes), uniq));\n resolveLookups(unrequestedCodes);\n }\n }, [lookups, resolvedValues]); // eslint-disable-line\n};\n\nexport default useLookupsResolver;\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport {components} from 'react-select';\nimport PropTypes from 'prop-types';\nimport {debounce, LookupValueType} from '@reltio/mdm-sdk';\nimport Select from '../../ReactSelect/Select';\nimport {concat, defaultTo, either, isEmpty, prop, T} from 'ramda';\nimport {buildLookupOptions, getOptionLabel} from './helpers';\nimport i18n from 'ui-i18n';\nimport {EmptyStub} from '../../../core/utils';\nimport DropdownIndicator from '../../commonReactSelectComponents/DropdownIndicator';\nimport MenuWithPopper from '../../commonReactSelectComponents/MenuWithPopper';\nimport MenuList from '../../commonReactSelectComponents/MenuList';\nimport {useStyles} from './styles';\nimport useLookupsResolver from './useLookupsResolver';\nimport MultiValueChip from '../commonComponents/MultiValueChip/MultiValueChip';\nimport OptionWithCheckIcon from '../../commonReactSelectComponents/OptionWithCheckIcon/OptionWithCheckIcon';\nimport useDefaultOptions from './useDefaultOptions';\nimport useAutopopulation from './useAutopopulation';\nimport useSavingFocus from './useSavingFocus';\nimport LoadMoreButton from '../../commonReactSelectComponents/LoadMoreButton';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst Input = (props) => <components.Input {...props} isHidden={false} />;\n\nconst SelectComponents = {\n IndicatorSeparator: EmptyStub,\n LoadingIndicator: EmptyStub,\n Option: OptionWithCheckIcon,\n DropdownIndicator,\n Menu: MenuWithPopper,\n MenuList: MenuList,\n MultiValue: MultiValueChip,\n Input\n};\n\nexport const DEBOUNCE_INTERVAL = 400;\nconst MAX_DEPENDENT_LOOKUP_VALUES = 50;\n\nconst DependentLookupEditor = ({\n multiple,\n value,\n lookupCode: lookupTypeCode,\n TextFieldProps,\n parents,\n onChange,\n getLookups,\n lookups = {},\n resolveLookups,\n fullWidth,\n disabled,\n placeholder,\n max = MAX_DEPENDENT_LOOKUP_VALUES,\n ...otherProps\n}) => {\n const inputRef = useRef(null);\n const selectRef = useRef(null);\n const styles = useStyles();\n\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState([]);\n const [pageNumber, setPageNumber] = useState(1);\n const [optionsAreLoading, setOptionsAreLoading] = useState(false);\n\n useLookupsResolver({\n lookups: value,\n resolvedValues: lookups[lookupTypeCode],\n resolveLookups: (codeValues) => resolveLookups(lookupTypeCode, codeValues),\n onLookupsResolve: (lookups) => onChange(multiple ? lookups : lookups[0])\n });\n\n useSavingFocus(selectRef, inputRef, disabled);\n\n useEffect(() => {\n if (!multiple) {\n setInputValue(getOptionLabel(value));\n setOptions(defaultOptions);\n setPageNumber(1);\n }\n }, [value]);\n\n const handleChange = (value) => {\n markAsTouched();\n onChange(value);\n };\n\n const handleFocus = () => {\n value && selectRef.current?.select?.inputRef?.select();\n };\n\n const resetOptions = () => {\n setPageNumber(1);\n debouncedLoadOptions('', setOptions);\n };\n\n const restoreSelectedOption = () => {\n if (!multiple && inputValue && inputValue !== getOptionLabel(value)) {\n setInputValue(getOptionLabel(value));\n resetOptions();\n }\n };\n\n const handleInputChange = (newValue, {action}) => {\n switch (action) {\n case 'menu-close': {\n restoreSelectedOption();\n break;\n }\n case 'input-blur': {\n if (multiple && inputValue) {\n setInputValue('');\n resetOptions();\n break;\n }\n restoreSelectedOption();\n break;\n }\n case 'input-change': {\n setInputValue(newValue);\n setPageNumber(1);\n debouncedLoadOptions(newValue, setOptions);\n if (!multiple && newValue === '') {\n handleChange('');\n }\n break;\n }\n }\n };\n\n const loadOptions = useCallback(\n (value, pageNumber = 1) => {\n setOptionsAreLoading(true);\n return (\n parents === null\n ? Promise.resolve([])\n : getLookups({\n type: lookupTypeCode,\n parents,\n displayNamePrefix: value,\n max: max + 1,\n offset: (pageNumber - 1) * max\n })\n )\n .then((buildOptions) => buildLookupOptions(buildOptions))\n .catch(() => [])\n .finally(() => setOptionsAreLoading(false));\n },\n [max, lookupTypeCode, parents]\n );\n\n const loadMoreOptions = useCallback(() => {\n const filterValue = inputValue !== getOptionLabel(value) ? inputValue : '';\n\n loadOptions(multiple ? inputValue : filterValue, pageNumber + 1).then((buildOptions) => {\n setOptions((options) => concat(options.slice(0, pageNumber * max), buildOptions));\n setPageNumber((page) => page + 1);\n });\n }, [max, loadOptions, inputValue, pageNumber]);\n\n const debouncedLoadOptions = useCallback(\n debounce((value, callback) => {\n loadOptions(value).then((options) => callback(options));\n }, DEBOUNCE_INTERVAL),\n [loadOptions]\n );\n\n const {defaultOptions, initialDefaultOptions, isLoading: isLoadingDefaultOptions} = useDefaultOptions(loadOptions);\n\n useEffect(() => {\n setOptions(defaultOptions);\n }, [defaultOptions]);\n\n useDidUpdateEffect(() => {\n setPageNumber(1);\n }, [lookupTypeCode]);\n\n const displayedOptions = useMemo(() => options.slice(0, pageNumber * max), [max, options, pageNumber]);\n const showMoreButton = options.length > displayedOptions.length;\n\n const isEmptyValue = multiple ? isEmpty(value) : !value?.lookupCode && !value?.value;\n\n const {markAsTouched} = useAutopopulation({\n initialDefaultOptions,\n isEmptyValue,\n multiple,\n onChange\n });\n\n return (\n <Select\n {...otherProps}\n isMulti={multiple}\n classes={styles}\n menuPortalTarget={document.body}\n menuPlacement=\"auto\"\n TextFieldProps={{\n ...TextFieldProps,\n ref: inputRef,\n disabled: TextFieldProps?.disabled || disabled\n }}\n inputRef={inputRef}\n innerRef={selectRef}\n styles={{\n menuPortal: (base) => ({...base, zIndex: 1300}),\n container: (base) => ({...base, ...(fullWidth ? {width: '100%'} : {})})\n }}\n noOptionsMessage={() =>\n optionsAreLoading && !showMoreButton ? i18n.text('Loading...') : i18n.text('No results found')\n }\n components={SelectComponents}\n isClearable={true}\n isSearchable={true}\n controlShouldRenderValue={multiple}\n inputValue={inputValue}\n filterOption={multiple ? undefined : T}\n onInputChange={handleInputChange}\n loadingMessage={() => i18n.text('Loading...')}\n isLoading={!inputValue && isLoadingDefaultOptions}\n hideSelectedOptions={false}\n placeholder={placeholder || ''}\n isDisabled={disabled}\n options={displayedOptions}\n getOptionValue={either(prop('value'), prop('lookupCode'))}\n getOptionLabel={getOptionLabel}\n onChange={handleChange}\n onFocus={multiple ? undefined : handleFocus}\n value={defaultTo(multiple ? [] : null, value)}\n menuListFooter={showMoreButton && <LoadMoreButton loading={optionsAreLoading} onClick={loadMoreOptions} />}\n />\n );\n};\n\nDependentLookupEditor.propTypes = {\n multiple: PropTypes.bool,\n value: PropTypes.oneOfType([LookupValueType, PropTypes.arrayOf(LookupValueType)]),\n TextFieldProps: PropTypes.shape({\n variant: PropTypes.string,\n margin: PropTypes.string,\n hiddenLabel: PropTypes.bool\n }),\n lookupCode: PropTypes.string.isRequired,\n parents: PropTypes.array,\n getLookups: PropTypes.func,\n onChange: PropTypes.func,\n lookups: PropTypes.object,\n resolveLookups: PropTypes.func,\n fullWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n max: PropTypes.number\n};\n\nexport default DependentLookupEditor;\n","import {useEffect, useRef} from 'react';\n\nconst useSavingFocus = (selectRef, inputRef, disabled: boolean) => {\n const needFocusRef = useRef(false);\n\n if (\n !needFocusRef.current &&\n disabled &&\n document.activeElement === inputRef.current?.getElementsByTagName('input')[0]\n ) {\n needFocusRef.current = true;\n }\n useEffect(() => {\n const handler = () => {\n if (needFocusRef.current) {\n needFocusRef.current = false;\n }\n };\n if (!disabled && needFocusRef.current) {\n selectRef.current?.focus();\n needFocusRef.current = false;\n }\n if (disabled && needFocusRef.current) {\n document?.addEventListener('click', handler);\n return () => {\n document?.removeEventListener('click', handler);\n };\n }\n }, [disabled]);\n};\n\nexport default useSavingFocus;\n","import {useState, useEffect} from 'react';\nimport {useSafePromise} from '../../../hooks';\n\nconst useDefaultOptions = (loadOptions) => {\n const [defaultOptions, setDefaultOptions] = useState([]);\n const [initialDefaultOptions, setInitialDefaultOptions] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const safePromise = useSafePromise();\n\n useEffect(() => {\n setDefaultOptions([]);\n setIsLoading(true);\n safePromise(loadOptions(''))\n .then((options) => {\n setDefaultOptions(options);\n setInitialDefaultOptions((prevValue) => prevValue || options);\n setIsLoading(false);\n })\n .catch(() => {\n setIsLoading(false);\n });\n }, [loadOptions]); // eslint-disable-line\n return {defaultOptions, initialDefaultOptions, isLoading};\n};\n\nexport default useDefaultOptions;\n","import {useCallback, useContext, useEffect} from 'react';\nimport {DependentLookupAutopopulationContext} from '../../../contexts';\n\ntype Option = {lookupCode: string; value: string};\n\ntype Props = {\n initialDefaultOptions: Option[];\n isEmptyValue: boolean;\n multiple: boolean;\n onChange: (value: Option | Option[]) => void;\n};\n\n// Autopopulation for just added editor. Other autopopulation cases should be covered by cascadeUpdate flow.\nconst useAutopopulation = ({initialDefaultOptions, isEmptyValue, multiple, onChange}: Props) => {\n const {id, isTouched, onTouch} = useContext(DependentLookupAutopopulationContext) || {};\n useEffect(() => {\n if (id && initialDefaultOptions && initialDefaultOptions.length === 1 && isEmptyValue && !isTouched) {\n onChange(multiple ? initialDefaultOptions : initialDefaultOptions[0]);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialDefaultOptions]);\n const markAsTouched = useCallback(() => {\n if (id) {\n onTouch?.(id);\n }\n }, [onTouch, id]);\n return {markAsTouched};\n};\n\nexport default useAutopopulation;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {prop} from 'ramda';\nimport DropDownEditor from '../DropDownEditor/DropDownEditor';\nimport {useSelectStyles} from '../constants';\n\nconst SelectEditor = ({classes, ...otherProps}) => {\n const styles = useSelectStyles();\n return (\n <DropDownEditor\n MenuProps={{\n disableAutoFocusItem: true\n }}\n classes={{\n ...classes,\n root: classnames(styles.root, prop('root', classes)),\n icon: classnames(styles.icon, prop('icon', classes))\n }}\n {...otherProps}\n />\n );\n};\n\nSelectEditor.propTypes = {\n classes: PropTypes.object\n};\n\nexport default SelectEditor;\n","import {memo} from 'react';\nimport {has, is, mergeDeepLeft} from 'ramda';\nimport EditorsFactory from '../EditorsFactory';\nimport PropTypes from 'prop-types';\nimport useEditorContext from './useEditorContext';\nimport {commonTextFieldProps, useInputStyles} from '../constants';\nimport {isEmptyValue} from '@reltio/mdm-sdk';\n\nconst DataTypeValueEditor = ({fieldName, value, onChange, dataTypeDefinition, TextFieldProps = {}, ...otherProps}) => {\n const inputStyles = useInputStyles();\n const editorContext = useEditorContext(fieldName, dataTypeDefinition);\n const isEmpty = (value) => {\n return is(Object, value) && has('value', value) ? isEmptyValue(value.value) : isEmptyValue(value);\n };\n\n TextFieldProps = mergeDeepLeft(TextFieldProps, {\n ...commonTextFieldProps,\n className: inputStyles.marginDense,\n InputProps: {\n disableUnderline: isEmpty(value)\n }\n });\n\n return EditorsFactory.build(dataTypeDefinition.type, {\n onChange,\n value,\n TextFieldProps,\n ...editorContext,\n ...otherProps\n });\n};\n\nDataTypeValueEditor.propTypes = {\n fieldName: PropTypes.string,\n value: PropTypes.any,\n onChange: PropTypes.func,\n dataTypeDefinition: PropTypes.object\n};\n\nDataTypeValueEditor.displayName = 'DataTypeValueEditor';\n\nexport default memo(DataTypeValueEditor);\n","import mdm, {profile} from '@reltio/mdm-module';\nimport {DataTypes, getDependentLookups, getFacetedAttributeData, getLookups, resolveLookupsList} from '@reltio/mdm-sdk';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {useCallback} from 'react';\nimport {propOr, prop, pipe, keys} from 'ramda';\n\nconst useEditorContext = (fieldName, dataTypeDefinition) => {\n const tenant = useSelector(mdm.selectors.getTenant);\n const lookups = useSelector(mdm.selectors.getLookups);\n const attributePresentations = useSelector(mdm.selectors.getAttributePresentations);\n const globalSearchRequestOptions = useSelector(mdm.selectors.getGlobalSearchRequestOptions);\n const dispatch = useDispatch();\n const typeaheadGetSuggestion = useCallback(\n (searchValue, max, pageNo) =>\n getFacetedAttributeData({\n fieldName,\n searchValue,\n options: {...globalSearchRequestOptions, max, pageNo}\n }).then(pipe(prop(fieldName), keys)),\n [fieldName, globalSearchRequestOptions]\n );\n\n const {type, values, lookupCode, uri, dependentLookupCode, options} = dataTypeDefinition;\n\n switch (type) {\n case DataTypes.TYPE_ENUM:\n return {entries: values.map((value) => ({value}))};\n case DataTypes.TYPE_LOOKUP:\n return {\n lookups,\n lookupCode,\n getLookups: () =>\n getLookups().then((lookups) => {\n dispatch(profile.lookups.actions.lookupsLoaded(lookups));\n })\n };\n case DataTypes.TYPE_DEPENDENT_LOOKUP:\n return {\n lookups,\n lookupCode: dependentLookupCode,\n getLookups: ({type, parents, displayNamePrefix, max, offset}) => {\n return getDependentLookups({type, parents, displayNamePrefix, max, offset}).then(({codeValues}) =>\n propOr({}, type, codeValues)\n );\n },\n resolveLookups: (type, codeValues) => {\n const lookupsList = codeValues.map((codeValue) => ({type, codeValue}));\n return resolveLookupsList(lookupsList).then((response) => {\n if (Array.isArray(response)) {\n const lookups = response.reduce((acc, lookupData) => ({...acc, ...lookupData[type]}), {});\n dispatch(\n profile.lookups.actions.lookupsForTypeResolved({\n type,\n values: lookups\n })\n );\n }\n });\n }\n };\n case DataTypes.TYPE_TYPEAHEAD:\n return {\n getSuggestions: typeaheadGetSuggestion\n };\n case DataTypes.TYPE_NUMBER:\n case DataTypes.TYPE_FLOAT:\n case DataTypes.TYPE_DOUBLE:\n case DataTypes.TYPE_LONG:\n case DataTypes.TYPE_INT:\n return {\n format: attributePresentations[uri]\n };\n case DataTypes.TYPE_FILE:\n return {tenant};\n case DataTypes.TYPE_SELECT:\n return {entries: options};\n default:\n return {};\n }\n};\n\nexport default useEditorContext;\n","import BooleanRadioEditor from './BooleanRadioEditor/BooleanRadioEditor';\nimport DateEditor from './DateEditor/DateEditor';\nimport LookupEditor from './LookupEditor/LookupEditor';\nimport NumberEditor from './NumberEditor/NumberEditor';\nimport React from 'react';\nimport TextEditor from './TextEditor/TextEditor';\nimport TimestampEditor from './TimestampEditor/TimestampEditor';\nimport TypeaheadEditor from './TypeaheadEditor/TypeaheadEditor';\nimport {DataTypes} from '@reltio/mdm-sdk';\nimport DependentLookupEditor from './DependentLookupEditor/DependentLookupEditor';\nimport FileTypeEditor from './FileTypeEditor/FileTypeEditor';\nimport SelectEditor from './SelectEditor/SelectEditor';\n\nexport default class EditorsFactory {\n static build(type, {fullWidth, TextFieldProps, color, ...otherProps} = {}) {\n switch (type) {\n case DataTypes.TYPE_STRING:\n case DataTypes.TYPE_CIK_ID:\n case DataTypes.TYPE_ENTITY_ID:\n case DataTypes.TYPE_URL:\n case DataTypes.TYPE_BLOG_URL:\n case DataTypes.TYPE_IMAGE_URL:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_EMAIL:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} type={'email'} />;\n case DataTypes.TYPE_TEXT:\n case DataTypes.TYPE_BLOB:\n return (\n <TextEditor\n fullWidth={fullWidth}\n rowsMax={7}\n {...TextFieldProps}\n {...otherProps}\n multiline={true}\n />\n );\n case DataTypes.TYPE_PASSWORD:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} type=\"password\" />;\n case DataTypes.TYPE_LONG:\n case DataTypes.TYPE_INT:\n case DataTypes.TYPE_COUNT:\n return <NumberEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} integer={true} />;\n case DataTypes.TYPE_FLOAT:\n case DataTypes.TYPE_DOUBLE:\n case DataTypes.TYPE_NUMBER:\n case DataTypes.TYPE_DOLLAR:\n return <NumberEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_BOOLEAN:\n case DataTypes.TYPE_BOOLEAN_RADIO:\n case DataTypes.TYPE_RDM_LOOKUPS_NOT_RESOLVED:\n return (\n <BooleanRadioEditor\n color={color}\n {...otherProps}\n className={TextFieldProps?.booleanRadioEditorClassName}\n />\n );\n case DataTypes.TYPE_DATE:\n case DataTypes.TYPE_ACTIVENESS_DATE:\n case DataTypes.TYPE_LOCAL_DATE:\n return <DateEditor {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_TIMESTAMP:\n return <TimestampEditor {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_ENUM:\n case DataTypes.TYPE_SELECT:\n return <SelectEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_LOOKUP:\n return <LookupEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_TYPEAHEAD:\n return <TypeaheadEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_DEPENDENT_LOOKUP:\n return <DependentLookupEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_FILE:\n return <FileTypeEditor {...otherProps} />;\n default:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n }\n }\n}\n","import {MenuItem as MenuItem} from '@material-ui/core';\nimport MultipliableSelect from '../../MultipliableSelect/MultipliableSelect';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {DropDownEntryType} from '../../../constants/prop-types';\nimport {pipe, prop, propEq} from 'ramda';\n\nconst findEntryByValue = (entries) => (value) => entries.find(propEq('value', value));\n\nconst DropDownEditor = ({entries, classes = {}, ...otherProps}) => {\n const {menuItem, ...otherClasses} = classes;\n return (\n <MultipliableSelect\n {...otherProps}\n classes={otherClasses}\n getValueLabel={pipe(findEntryByValue(entries), prop('label'))}\n >\n {entries.map(({value, label}, index) => (\n <MenuItem key={index} value={value} className={menuItem}>\n {label || value.toString()}\n </MenuItem>\n ))}\n </MultipliableSelect>\n );\n};\n\nDropDownEditor.propTypes = {\n classes: PropTypes.object,\n entries: PropTypes.arrayOf(DropDownEntryType).isRequired\n};\n\nexport default DropDownEditor;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n fileUploaderInput: {\n display: 'none'\n },\n uploaded: {\n display: 'flex',\n alignItems: 'center'\n },\n label: {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n cancelIcon: {\n height: '18px',\n width: '18px',\n color: 'rgba(0,0,0,0.38)',\n marginLeft: '3px',\n cursor: 'pointer'\n }\n});\n","import React, {Fragment, useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport i18n from 'ui-i18n';\nimport {CircularProgress as CircularProgress} from '@material-ui/core';\nimport {Link as Link} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Button as Button} from '@material-ui/core';\nimport CancelIcon from '@material-ui/icons/Cancel';\nimport {getLabel, getRequestErrorMessage} from '@reltio/mdm-sdk';\nimport ErrorPopup from '../ErrorPopup/ErrorPopup';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {useStyles} from './styles.js';\n\nconst MODES = {INIT: 1, UPLOADING: 2, UPLOADED: 3};\nconst PROGRESS_ICON_SIZE = 20;\n\nconst showFileUploadError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('File upload error'),\n message: getRequestErrorMessage(error)\n });\n};\n\nconst UploadMode = ({supportedFileTypes = [], onUpload, onBeforeUpload}) => {\n const styles = useStyles();\n const fileUploader = useRef();\n const supportedFileTypesString = supportedFileTypes.join(',');\n const onSelectFileClick = () => {\n fileUploader.current.value = null;\n fileUploader.current.click();\n };\n const onUploadListener = (event) => {\n const uploadedFiles = event.target.files || event.dataTransfer.files || [];\n if (uploadedFiles.length > 0) {\n onBeforeUpload();\n onUpload(uploadedFiles[0]);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n return (\n <Fragment>\n <Button variant=\"contained\" onClick={onSelectFileClick}>\n {i18n.text('Select File')}\n </Button>\n\n <input\n type=\"file\"\n className={styles.fileUploaderInput}\n onChange={onUploadListener}\n ref={fileUploader}\n name=\"uploadfile\"\n accept={supportedFileTypesString}\n />\n </Fragment>\n );\n};\n\nUploadMode.propTypes = {\n onUpload: PropTypes.func,\n onBeforeUpload: PropTypes.func,\n supportedFileTypes: PropTypes.arrayOf(PropTypes.string)\n};\n\nconst UploadFileButton = ({\n link,\n filename,\n onUpload,\n onError = showFileUploadError,\n onCancel,\n supportedFileTypes,\n isValidLink = true\n}) => {\n const [mode, setMode] = useState(MODES.INIT);\n const [name, setName] = useState('');\n\n const styles = useStyles();\n useEffect(() => {\n setName(filename);\n }, [filename]);\n\n useEffect(() => {\n setMode(link ? MODES.UPLOADED : MODES.INIT);\n }, [link]);\n const onErrorHandler = useCallback(\n (error) => {\n setMode(MODES.INIT);\n onError(error);\n },\n [onError]\n );\n\n const onUploadHandler = useCallback(\n (result) => {\n return onUpload(result)\n .then(() => {\n setMode(MODES.UPLOADED);\n setName(result.name);\n })\n .catch(onErrorHandler);\n },\n [onUpload, onErrorHandler]\n );\n\n const onBeforeUpload = useCallback(() => {\n setMode(MODES.UPLOADING);\n }, []);\n const switchToInitMode = useCallback(() => {\n setMode(MODES.INIT);\n onCancel();\n }, [onCancel]);\n switch (mode) {\n case MODES.INIT:\n return (\n <UploadMode\n supportedFileTypes={supportedFileTypes}\n onUpload={onUploadHandler}\n onBeforeUpload={onBeforeUpload}\n />\n );\n case MODES.UPLOADED: {\n const label = getLabel(name);\n return (\n <div className={styles.uploaded}>\n <ExpandedValueTooltip value={label}>\n {isValidLink ? (\n <Link href={link} className={styles.label}>\n {label}\n </Link>\n ) : (\n <Typography variant=\"inherit\" className={styles.label}>\n {label}\n </Typography>\n )}\n </ExpandedValueTooltip>\n <CancelIcon\n onClick={switchToInitMode}\n onMouseDown={switchToInitMode}\n onTouchEnd={switchToInitMode}\n className={styles.cancelIcon}\n />\n </div>\n );\n }\n case MODES.UPLOADING:\n return <CircularProgress size={PROGRESS_ICON_SIZE} />;\n default:\n return null;\n }\n};\n\nUploadFileButton.propTypes = {\n link: PropTypes.string,\n filename: PropTypes.string,\n onUpload: PropTypes.func,\n onError: PropTypes.func,\n onCancel: PropTypes.func,\n supportedFileTypes: PropTypes.arrayOf(PropTypes.string),\n isValidLink: PropTypes.bool\n};\n\nexport default UploadFileButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n editor: {\n alignSelf: 'center'\n }\n});\n","import React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {uploadFileForSearch, FileValue} from '@reltio/mdm-sdk';\nimport UploadFileButton from '../../UploadFileButton/UploadFileButton';\nimport {useStyles} from './styles';\n\ntype Props = {\n value?: FileValue;\n onChange: (file: FileValue) => void;\n onError?: (error: string) => void;\n className?: string;\n};\n\nconst FileTypeEditor = ({value, onChange, onError, className}: Props) => {\n const {downloadLink, filename, expirationDate} = value || {};\n const isValidLink = expirationDate >= Date.now();\n const supportedFileTypes = ['.txt', '.csv'];\n const onUploadHandler = useCallback(\n (file) =>\n uploadFileForSearch(file).then(({path, downloadLink, expirationDate}) => {\n onChange({\n filename: file.name,\n downloadLink,\n link: path,\n expirationDate: new Date(expirationDate).getTime()\n });\n }),\n [onChange]\n );\n const onCancelHandler = useCallback(() => onChange(null), [onChange]);\n\n const styles = useStyles();\n return (\n <div className={classnames(styles.editor, className)}>\n <UploadFileButton\n isValidLink={isValidLink}\n link={downloadLink}\n filename={filename}\n supportedFileTypes={supportedFileTypes}\n onUpload={onUploadHandler}\n onError={onError}\n onCancel={onCancelHandler}\n />\n </div>\n );\n};\n\nexport default FileTypeEditor;\n","import NumberFormat from 'react-number-format';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TextEditor from '../TextEditor/TextEditor';\nimport {NumberFormatType} from '../../../constants/prop-types';\nimport {formatNumber} from '@reltio/mdm-sdk';\n\nconst NumberFormatCustom = ({inputRef, onChange, integer, customInput, format, ...otherProps}) => (\n <NumberFormat\n {...otherProps}\n {...format}\n getInputRef={inputRef}\n isNumericString={true}\n onValueChange={(values) => {\n onChange({\n target: {\n value: values.value\n }\n });\n }}\n decimalScale={integer ? 0 : undefined}\n customInput={customInput}\n />\n);\n\nNumberFormatCustom.propTypes = {\n inputRef: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n integer: PropTypes.bool,\n customInput: PropTypes.elementType,\n format: NumberFormatType\n};\n\nconst NumberEditor = ({integer, format, inputProps, InputProps, ...otherProps}) => (\n <TextEditor\n {...otherProps}\n inputProps={{\n integer,\n format,\n ...inputProps\n }}\n InputProps={{\n ...InputProps,\n inputComponent: NumberFormatCustom\n }}\n getValueLabel={formatNumber(format)}\n />\n);\n\nNumberEditor.propTypes = {\n multiple: PropTypes.bool,\n integer: PropTypes.bool,\n format: NumberFormatType,\n inputProps: PropTypes.object,\n InputProps: PropTypes.object,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.number)\n ]),\n onChange: PropTypes.func\n};\n\nexport default NumberEditor;\n","import React, {useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {isNil, pipe, propEq, when} from 'ramda';\nimport {getValue, noop} from '../../core';\nimport {TextField as TextField} from '@material-ui/core';\n\nconst SimpleInput = ({value, onChange = noop, multiline, ...otherProps}) => {\n const [currentValue, setCurrentValue] = useState('');\n\n useEffect(() => {\n setCurrentValue(isNil(value) ? '' : value);\n }, [value]);\n\n const applyCurrentValueChange = () => {\n if (currentValue !== value) {\n onChange(currentValue);\n }\n };\n\n const onEnterPress = () => {\n if (!multiline) {\n applyCurrentValueChange();\n }\n };\n\n return (\n <TextField\n {...otherProps}\n multiline={multiline}\n value={currentValue}\n onKeyPress={when(propEq('key', 'Enter'), onEnterPress)}\n onBlur={applyCurrentValueChange}\n onChange={pipe(getValue, setCurrentValue)}\n />\n );\n};\n\nSimpleInput.propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onChange: PropTypes.func,\n multiline: PropTypes.bool,\n InputProps: PropTypes.object,\n className: PropTypes.string\n};\n\nexport default SimpleInput;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport MultipleInput from '../../MultipleInput/MultipleInput';\nimport SimpleInput from '../../SimpleInput/SimpleInput';\n\nconst TextEditor = ({multiple, value, getValueLabel, multiline, ...otherProps}) => {\n return multiple ? (\n <MultipleInput {...otherProps} values={value} getValueLabel={getValueLabel} />\n ) : (\n <SimpleInput {...otherProps} value={value} multiline={multiline} />\n );\n};\n\nTextEditor.propTypes = {\n multiple: PropTypes.bool,\n multiline: PropTypes.bool,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.number)\n ]),\n getValueLabel: PropTypes.func\n};\n\nexport default TextEditor;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n 'typeahead__suggestions-placeholder': {\n padding: '8px 16px',\n textAlign: 'center'\n },\n 'typeahead__suggestions-container--open': {\n maxHeight: '230px',\n overflowY: 'auto'\n },\n 'typeahead__suggestions-list': {\n margin: 0,\n padding: 0,\n listStyleType: 'none'\n },\n 'typeahead__suggestions-menuItem': {\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n input__root: {\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n autosizeInput: {\n width: 'auto',\n paddingTop: '10px',\n paddingBottom: '11px',\n marginLeft: '5px',\n overflow: 'hidden',\n '& input': {\n background: '0px center',\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n color: 'inherit'\n }\n },\n rawInput: {\n height: '19px'\n },\n 'multiple-input__root': {\n flexWrap: 'wrap',\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n 'multiple-input__input': {\n flex: '1 0 25px',\n flexWrap: 'wrap'\n },\n 'multiple-input__adornedStart': {\n paddingLeft: '8px'\n },\n input__underline: {\n '&:before': {\n display: 'none'\n }\n },\n 'typeahead__suggestions-container': {\n width: '100%'\n },\n 'menuItem--item': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: 'block'\n }\n});\n","import Autosuggest from 'react-autosuggest';\nimport AutosizeInput from 'react-input-autosize';\nimport classnames from 'classnames';\nimport {TextField as TextField} from '@material-ui/core';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {Paper as Paper} from '@material-ui/core';\nimport Popper from '../../Popper/Popper';\nimport PropTypes from 'prop-types';\nimport React, {useCallback, useRef, useMemo, useState} from 'react';\nimport {NoResults} from '../../../components/EmptySearchResult';\nimport {\n always,\n andThen,\n both,\n concat,\n defaultTo,\n F,\n identity,\n ifElse,\n isEmpty,\n nthArg,\n path,\n pipe,\n prop,\n propEq,\n remove,\n T,\n tap,\n trim,\n uniq\n} from 'ramda';\nimport {debounce, isEmptyValue} from '@reltio/mdm-sdk';\nimport {getValue} from '../../../core/utils';\nimport {useStyles} from './styles';\nimport ExpandedValueTooltip from '../../ExpandedValueTooltip/ExpandedValueTooltip';\nimport ValueChip from '../../ValueChip/ValueChip';\nimport LoadMoreButton from '../../commonReactSelectComponents/LoadMoreButton';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst FETCH_DEBOUNCE_INTERVAL = 300;\nconst PAGE_SIZE = 50;\n\nconst TypeaheadEditor = ({\n value,\n max = PAGE_SIZE,\n getSuggestions,\n onChange,\n multiple,\n fullWidth,\n InputProps = {},\n ...inputProps\n}) => {\n const [suggestions, setSuggestions] = useState([]);\n const [isPlaceholderVisible, setPlaceholderVisibility] = useState(false);\n const [pageNumber, setPageNumber] = useState(1);\n const [nextPageIsLoading, setNextPageIsLoading] = useState(false);\n const pageSizeForRequest = max + 1;\n const [currentValue, setCurrentValue] = useState('');\n value = defaultTo(multiple ? [] : '', value);\n const inputValue = multiple ? currentValue : value;\n\n useDidUpdateEffect(() => {\n setPageNumber(1);\n }, [inputValue]);\n\n const inputRef = useRef();\n const styles = useStyles();\n const isFocused = () => inputRef.current?.querySelector('input') === document.activeElement;\n const fetchSuggestions = pipe(\n prop('value'),\n trim,\n (value) => getSuggestions(value, pageSizeForRequest),\n andThen(pipe(tap(setSuggestions), both(isEmpty, isFocused), setPlaceholderVisibility))\n );\n\n const onLoadMoreSuggestions = () => {\n setNextPageIsLoading(true);\n getSuggestions(inputValue, pageSizeForRequest, pageNumber + 1)\n .then(pipe(concat(suggestions), setSuggestions, always(pageNumber + 1), setPageNumber))\n .finally(() => {\n setNextPageIsLoading(false);\n });\n };\n\n const onMouseDown = (event) => {\n event.preventDefault();\n };\n\n const debouncedFetchSuggestions = useCallback(debounce(fetchSuggestions, FETCH_DEBOUNCE_INTERVAL), [\n getSuggestions\n ]);\n\n const displayedSuggestions = useMemo(() => suggestions.slice(0, pageNumber * max), [suggestions, pageNumber, max]);\n const showMoreButton = suggestions.length > displayedSuggestions.length;\n\n const [hasHighlightedItem, setHasHighlightedItem] = useState(false);\n const onInputChange = ({newValue, method}) => {\n switch (method) {\n case 'type': {\n if (multiple) {\n setCurrentValue(newValue);\n }\n break;\n }\n case 'escape': {\n if (multiple) {\n setCurrentValue(newValue);\n } else {\n onChange(newValue);\n }\n break;\n }\n case 'click':\n case 'enter': {\n if (multiple) {\n setCurrentValue('');\n if (newValue) {\n onChange(uniq([...value, newValue]));\n }\n } else {\n onChange(newValue);\n }\n break;\n }\n }\n };\n\n return (\n <Autosuggest\n suggestions={displayedSuggestions}\n shouldRenderSuggestions={T}\n inputProps={{\n value: inputValue,\n onChange: pipe(nthArg(1), onInputChange),\n onKeyDown: (event) => {\n if (event.keyCode === 13 && multiple && !hasHighlightedItem) {\n onInputChange({method: 'enter', newValue: currentValue});\n }\n },\n fullWidth,\n ...inputProps,\n autoComplete: 'nope'\n }}\n getSuggestionValue={identity}\n onSuggestionsFetchRequested={ifElse(\n propEq('reason', 'input-changed'),\n debouncedFetchSuggestions,\n fetchSuggestions\n )}\n onSuggestionsClearRequested={pipe(\n always([]),\n setSuggestions,\n F,\n setPlaceholderVisibility,\n always(1),\n setPageNumber\n )}\n renderInputComponent={({ref, onChange: onInputChange, ...otherProps}) => {\n const commonClasses = {\n underline: classnames({[styles['input__underline']]: isEmptyValue(value)}),\n input: classnames(styles['rawInput'], path(['classes', 'input'], InputProps))\n };\n return multiple ? (\n <TextField\n {...otherProps}\n ref={inputRef}\n inputRef={ref}\n InputProps={{\n ...InputProps,\n startAdornment: value.map((item, index) => (\n <ValueChip key={item} label={item} onDelete={() => onChange(remove(index, 1, value))} />\n )),\n inputComponent: AutosizeInput,\n classes: {\n root: classnames(\n styles['multiple-input__input'],\n path(['classes', 'root'], InputProps)\n ),\n ...commonClasses,\n input: classnames(styles.autosizeInput, commonClasses.input),\n adornedStart: styles['multiple-input__adornedStart']\n }\n }}\n value={currentValue}\n onChange={onInputChange}\n classes={{root: styles['multiple-input__root']}}\n />\n ) : (\n <TextField\n {...otherProps}\n ref={inputRef}\n inputRef={ref}\n value={value}\n onChange={pipe(tap(onInputChange), getValue, onChange)}\n InputProps={{\n ...InputProps,\n classes: {\n root: classnames(styles['input__root'], path(['classes', 'root'], InputProps)),\n ...commonClasses\n }\n }}\n />\n );\n }}\n renderSuggestionsContainer={({children, containerProps: {ref, ...restContainerProps}}) => (\n <Popper anchorEl={inputRef.current} open={Boolean(children) || isPlaceholderVisible}>\n <Paper\n ref={ref}\n square={true}\n {...restContainerProps}\n style={{width: prop('clientWidth', inputRef.current)}}\n >\n {children || <NoResults className={styles['typeahead__suggestions-placeholder']} />}\n {showMoreButton && !isPlaceholderVisible && (\n <LoadMoreButton\n onClick={onLoadMoreSuggestions}\n onMouseDown={onMouseDown}\n loading={nextPageIsLoading}\n />\n )}\n </Paper>\n </Popper>\n )}\n renderSuggestion={(suggestion, {isHighlighted}) => (\n <MenuItem\n className={styles['typeahead__suggestions-menuItem']}\n selected={isHighlighted}\n component=\"div\"\n >\n <ExpandedValueTooltip value={suggestion}>\n <div className={styles['menuItem--item']}>{suggestion}</div>\n </ExpandedValueTooltip>\n </MenuItem>\n )}\n theme={{\n container: fullWidth ? styles['typeahead__suggestions-container'] : '',\n suggestionsList: styles['typeahead__suggestions-list'],\n suggestionsContainerOpen: styles['typeahead__suggestions-container--open']\n }}\n onSuggestionHighlighted={pipe(prop('suggestion'), Boolean, setHasHighlightedItem)}\n />\n );\n};\n\nTypeaheadEditor.propTypes = {\n multiple: PropTypes.bool,\n fullWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n onChange: PropTypes.func.isRequired,\n getSuggestions: PropTypes.func.isRequired,\n InputProps: PropTypes.object,\n max: PropTypes.number\n};\n\nexport default TypeaheadEditor;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {prop} from 'ramda';\nimport ValueChip from '../../../ValueChip/ValueChip';\nimport CancelIcon from '@material-ui/icons/Cancel';\n\nconst MultiValueChip = (props) => {\n const {children, data, removeProps} = props;\n\n return (\n <ValueChip\n tabIndex={-1}\n label={children}\n count={prop('formattedNumber', data)}\n onDelete={removeProps.onClick}\n deleteIcon={<CancelIcon {...props.removeProps} />}\n />\n );\n};\n\nMultiValueChip.propTypes = {\n children: PropTypes.node,\n data: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n number: PropTypes.number\n }).isRequired,\n removeProps: PropTypes.shape({\n onClick: PropTypes.func.isRequired,\n onMouseDown: PropTypes.func.isRequired,\n onTouchEnd: PropTypes.func.isRequired\n }).isRequired\n};\n\nexport default MultiValueChip;\n","import PropTypes from 'prop-types';\nimport {AttributeTypeType, FilterValueType, SortOrderType} from '@reltio/mdm-sdk';\n\nconst NumberFormatType = PropTypes.shape({\n prefix: PropTypes.string,\n suffix: PropTypes.string,\n thousandSeparator: PropTypes.string,\n decimalSeparator: PropTypes.string\n});\n\nconst SelectValueType = PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]);\n\nconst DropDownEntryType = PropTypes.shape({\n value: SelectValueType.isRequired,\n label: PropTypes.string\n});\n\nconst DropDownGroupEntryType = PropTypes.shape({\n label: PropTypes.string.isRequired,\n values: PropTypes.arrayOf(PropTypes.object).isRequired\n});\n\nconst ColumnDataType = PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n dataTypeDefinition: PropTypes.object,\n resizable: PropTypes.bool,\n sortable: PropTypes.bool,\n filterable: PropTypes.bool,\n headCellRenderer: PropTypes.func,\n rowCellValueRenderer: PropTypes.func,\n nestedPath: PropTypes.arrayOf(PropTypes.string)\n});\n\nconst SortingType = PropTypes.shape({\n field: PropTypes.string,\n order: SortOrderType\n});\n\nconst ColumnFilterType = PropTypes.shape({\n value: PropTypes.oneOfType([FilterValueType, PropTypes.arrayOf(FilterValueType)]),\n filter: PropTypes.string\n});\n\nconst PlainColumnsDataType = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n dataTypeDefinition: PropTypes.object\n })\n);\n\nconst GroupedColumnsDataType = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n columns: PlainColumnsDataType\n })\n);\n\nconst ColumnsDataType = PropTypes.oneOfType([PlainColumnsDataType, GroupedColumnsDataType]);\n\nconst QueryBuilderAttributeDataType = PropTypes.shape({\n title: PropTypes.string,\n pathToTitle: PropTypes.arrayOf(PropTypes.string),\n fieldName: PropTypes.string,\n entityTypeUri: PropTypes.string,\n attrType: AttributeTypeType,\n uri: PropTypes.string,\n groupName: PropTypes.string\n});\n\nconst QueryBuilderAttributeType = PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n values: PropTypes.array,\n data: QueryBuilderAttributeDataType,\n filter: PropTypes.string,\n operator: PropTypes.string\n});\n\nexport {\n NumberFormatType,\n SelectValueType,\n DropDownEntryType,\n DropDownGroupEntryType,\n ColumnDataType,\n SortingType,\n ColumnFilterType,\n ColumnsDataType,\n GroupedColumnsDataType,\n QueryBuilderAttributeDataType,\n QueryBuilderAttributeType\n};\n","import React from 'react';\n\ntype DependentLookupAutopopulationContextValue = {\n id: string;\n isTouched: boolean;\n onTouch: (id: string) => void;\n};\n\nexport const DependentLookupAutopopulationContext =\n React.createContext<DependentLookupAutopopulationContextValue>(null);\n\nDependentLookupAutopopulationContext.displayName = 'DependentLookupAutopopulationContext';\n","import React from 'react';\n\nexport const SearchValueContext = React.createContext<string>('');\n\nSearchValueContext.displayName = 'SearchValueContext';\n","import {useEffect, useRef} from 'react';\n\nexport const usePrevious = (value) => {\n const valueHolderRef = useRef();\n useEffect(() => {\n valueHolderRef.current = value;\n }, [value]);\n return valueHolderRef.current;\n};\n"],"names":["withContext","Context","contextSelector","Component","PureComponent","memo","displayName","name","props","Consumer","contextState","DataTypeValue","value","dataTypeDefinition","rich","attributePresentations","useSelector","mdm","localeDateFormat","moment","longDateFormat","localeTimeFormat","dateMask","dateTimeMask","formattedValue","formatDataTypeValue","isAttributeValueLink","Link","target","href","addProtocolToLink","underline","text","propTypes","PropTypes","NoResults","message","i18n","useStyles","makeStyles","highlight","fontWeight","className","multiTerm","styles","REG_SPACES","RegExp","getMultiTerms","pipe","trim","split","map","toLower","sort","ascend","reverse","highlightedValues","regValues","item","replace","parts","join","part","i","includes","toLocaleLowerCase","key","inputRoot","flexWrap","autosizeInput","width","marginLeft","overflow","background","border","fontSize","outline","padding","color","AutosizeInputWrapper","CustomInputComponent","customInput","AutosizeInput","EMPTY_VALUES_EDIT_HINT","isEmptyValue","isEmpty","MultipleInput","values","InputProps","inputProps","classes","onChange","noop","getValueLabel","identity","otherProps","root","InputClasses","inputValue","setInputValue","useState","removeValueAt","index","remove","hasValues","length","appendInputValueIfNotEmpty","uniq","isFocused","setIsFocused","hintText","Tooltip","title","TextField","getValue","startAdornment","ValueChip","label","onDelete","inputComponent","classnames","input","onKeyPress","when","propEq","onKeyDown","onFocus","onBlur","multiSelect","minHeight","chips","display","MultipliableSelect","multiple","children","getValuePlaceholder","fullWidth","TextFieldProps","MenuProps","select","defaultTo","SelectProps","getContentAnchorEl","anchorOrigin","vertical","horizontal","prop","renderValue","selected","onMouseDown","event","stopPropagation","SelectValueType","highlightedText","keywordValue","useContext","SearchValueContext","Highlighter","useChipStyles","height","backgroundColor","maxWidth","margin","deleteIcon","marginRight","theme","container","alignItems","textOverflow","whiteSpace","count","palette","secondary","letterSpacing","lineHeight","classesProp","otherProp","Chip","mergeClasses","ExpandedValueTooltip","loadMoreContainer","moreButton","buttonLabel","loadingSpinner","alignSelf","loading","onClick","CircularProgress","size","Button","selectProps","menuListFooter","checkIcon","transform","position","OptionWithCheckIcon","isSelected","Option","Check","BooleanEditor","Checkbox","checked","getChecked","checkbox_primary","divider","BooleanRadioEditor","FormControlLabel","control","isNil","not","isGroupEntry","has","flattenEntry","curry","depth","entry","isGroup","chain","flattenGroupedEntries","findEntryByValue","entries","_value","find","emptyLabel","GroupedDropDownEditor","flattenedEntries","selectedValues","wrapInArrayIfNeeded","selectStyles","useSelectStyles","disableAutoFocusItem","icon","MenuItem","disabled","style","paddingLeft","toString","DropDownEntryType","DropDownGroupEntryType","isRequired","splitOnce","separator","string","first","other","getLookupByUri","useWith","path","byLabel","LookupEditor","lookupCode","lookupTypeCode","lookups","getLookups","codeToLookup","useEffect","getLookupPath","uri","parent","concat","buildEntry","lookup","code","getLookupLabel","buildEntries","Object","hierarchy","reduce","acc","assocPath","buildLookupEntries","commonProps","pluck","always","LookupValueType","SimpleLookupType","getOptionLabel","obj","buildLookupOptions","lookupA","lookupB","labelALower","toLowerCase","labelBLower","utils","option","dropdownIndicator","cursor","clearIndicator","placeholder","isUnresolvedLookup","lookupValue","isResolvedLookupCode","resolvedValues","hasPath","SelectComponents","IndicatorSeparator","EmptyStub","LoadingIndicator","DropdownIndicator","Menu","MenuWithPopper","MenuList","MultiValue","MultiValueChip","Input","isHidden","MAX_DEPENDENT_LOOKUP_VALUES","DependentLookupEditor","parents","resolveLookups","max","inputRef","useRef","selectRef","options","setOptions","pageNumber","setPageNumber","optionsAreLoading","setOptionsAreLoading","onLookupsResolve","requestedCodes","setRequestedCodes","resolvedCodes","codesToResolve","filter","partition","resolvedLookups","unrequestedCodes","useLookupsResolver","codeValues","needFocusRef","current","document","activeElement","getElementsByTagName","handler","focus","addEventListener","removeEventListener","useSavingFocus","defaultOptions","handleChange","markAsTouched","resetOptions","debouncedLoadOptions","restoreSelectedOption","loadOptions","useCallback","Promise","resolve","type","displayNamePrefix","offset","then","buildOptions","catch","finally","loadMoreOptions","filterValue","slice","page","debounce","callback","initialDefaultOptions","isLoading","isLoadingDefaultOptions","setDefaultOptions","setInitialDefaultOptions","setIsLoading","safePromise","useSafePromise","prevValue","useDefaultOptions","useDidUpdateEffect","displayedOptions","useMemo","showMoreButton","id","isTouched","onTouch","DependentLookupAutopopulationContext","useAutopopulation","Select","isMulti","menuPortalTarget","body","menuPlacement","ref","innerRef","menuPortal","base","zIndex","noOptionsMessage","components","isClearable","isSearchable","controlShouldRenderValue","filterOption","undefined","T","onInputChange","newValue","action","loadingMessage","hideSelectedOptions","isDisabled","getOptionValue","either","LoadMoreButton","variant","hiddenLabel","SelectEditor","DropDownEditor","DataTypeValueEditor","fieldName","inputStyles","useInputStyles","editorContext","tenant","globalSearchRequestOptions","dispatch","useDispatch","typeaheadGetSuggestion","searchValue","pageNo","getFacetedAttributeData","keys","dependentLookupCode","DataTypes","profile","getDependentLookups","propOr","lookupsList","codeValue","resolveLookupsList","response","Array","isArray","lookupData","getSuggestions","format","useEditorContext","mergeDeepLeft","commonTextFieldProps","marginDense","disableUnderline","is","TextEditor","rowsMax","multiline","NumberEditor","integer","booleanRadioEditorClassName","DateEditor","TimestampEditor","TypeaheadEditor","FileTypeEditor","build","menuItem","otherClasses","fileUploaderInput","uploaded","cancelIcon","showFileUploadError","error","console","ErrorPopup","getRequestErrorMessage","UploadMode","supportedFileTypes","onUpload","onBeforeUpload","fileUploader","supportedFileTypesString","Fragment","click","uploadedFiles","files","dataTransfer","preventDefault","accept","UploadFileButton","link","filename","onError","onCancel","isValidLink","mode","setMode","setName","onErrorHandler","onUploadHandler","result","switchToInitMode","getLabel","Typography","Cancel","onTouchEnd","editor","downloadLink","expirationDate","Date","now","file","uploadFileForSearch","getTime","onCancelHandler","NumberFormatCustom","getInputRef","isNumericString","onValueChange","decimalScale","NumberFormatType","formatNumber","SimpleInput","currentValue","setCurrentValue","applyCurrentValueChange","textAlign","maxHeight","overflowY","listStyleType","input__root","paddingTop","paddingBottom","rawInput","flex","input__underline","PAGE_SIZE","suggestions","setSuggestions","isPlaceholderVisible","setPlaceholderVisibility","nextPageIsLoading","setNextPageIsLoading","pageSizeForRequest","fetchSuggestions","andThen","tap","both","querySelector","onLoadMoreSuggestions","debouncedFetchSuggestions","displayedSuggestions","hasHighlightedItem","setHasHighlightedItem","method","shouldRenderSuggestions","nthArg","keyCode","autoComplete","getSuggestionValue","onSuggestionsFetchRequested","ifElse","onSuggestionsClearRequested","F","renderInputComponent","commonClasses","adornedStart","renderSuggestionsContainer","containerProps","restContainerProps","Popper","anchorEl","open","Boolean","Paper","square","renderSuggestion","suggestion","isHighlighted","component","suggestionsList","suggestionsContainerOpen","onSuggestionHighlighted","data","removeProps","tabIndex","number","prefix","suffix","thousandSeparator","decimalSeparator","ColumnDataType","resizable","sortable","filterable","headCellRenderer","rowCellValueRenderer","nestedPath","SortingType","field","order","SortOrderType","ColumnFilterType","FilterValueType","PlainColumnsDataType","GroupedColumnsDataType","columns","ColumnsDataType","QueryBuilderAttributeDataType","pathToTitle","entityTypeUri","attrType","AttributeTypeType","groupName","QueryBuilderAttributeType","operator","React","usePrevious","valueHolderRef"],"sourceRoot":""}
|