@reltio/remotes 1.4.1249 → 1.4.1252
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/1920.js +1 -1
- package/1920.js.map +1 -1
- package/2114.js +1 -1
- package/2114.js.map +1 -1
- package/2701.js +1 -1
- package/2701.js.map +1 -1
- package/4737.js +1 -1
- package/{1136.js → 4771.js} +2 -2
- package/4771.js.map +1 -0
- package/6217.js +1 -1
- package/6217.js.map +1 -1
- package/6710.js +1 -1
- package/6710.js.map +1 -1
- package/6971.js +1 -1
- package/6971.js.map +1 -1
- package/8174.js +1 -1
- package/8337.js +1 -1
- package/8439.js +1 -1
- package/8439.js.map +1 -1
- package/9431.js +1 -1
- package/9431.js.map +1 -1
- package/9838.js +1 -1
- package/9838.js.map +1 -1
- package/package.json +1 -1
- package/remoteEntry.js +1 -1
- package/remoteEntry.js.map +1 -1
- package/1136.js.map +0 -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/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/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/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';\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 return rich && isAttributeValueLink(dataTypeDefinition, value) ? (\n <Link target=\"_blank\" href={addProtocolToLink(formattedValue)} underline=\"none\">\n {formattedValue}\n </Link>\n ) : (\n 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 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\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 = ({lookupCode, value}) => getLookupLabel(lookupCode, value);\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, useRef, useState, useEffect, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {debounce, LookupValueType} from '@reltio/mdm-sdk';\nimport Select from '../../ReactSelect/Select';\nimport {concat, defaultTo, either, isEmpty, prop} 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 SelectComponents = {\n IndicatorSeparator: EmptyStub,\n LoadingIndicator: EmptyStub,\n Option: OptionWithCheckIcon,\n DropdownIndicator,\n Menu: MenuWithPopper,\n MenuList: MenuList,\n MultiValue: MultiValueChip\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 useLookupsResolver({\n lookups: value,\n resolvedValues: lookups[lookupTypeCode],\n resolveLookups: (codeValues) => resolveLookups(lookupTypeCode, codeValues),\n onLookupsResolve: (lookups) => onChange(multiple ? lookups : lookups[0])\n });\n useSavingFocus(selectRef, inputRef, disabled);\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 const handleInputChange = (value) => {\n if (value !== inputValue) {\n setInputValue(value);\n setPageNumber(1);\n debouncedLoadOptions(value, setOptions);\n }\n };\n\n const loadOptions = useCallback(\n (value, pageNumber = 1) => {\n setOptionsAreLoading(true);\n return getLookups({\n type: lookupTypeCode,\n parents,\n displayNamePrefix: value,\n max: max + 1,\n offset: (pageNumber - 1) * max\n })\n .then((buildOptions) => buildLookupOptions(buildOptions))\n .catch(() => [])\n .finally(() => setOptionsAreLoading(false));\n },\n [max, lookupTypeCode, parents]\n );\n\n const loadMoreOptions = useCallback(() => {\n loadOptions(inputValue, 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 inputValue={inputValue}\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={(value) => {\n markAsTouched();\n onChange(value);\n }}\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 {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\nexport default 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} 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((response) => Object.keys(response[fieldName])),\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} 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: 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 {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","propTypes","PropTypes","NoResults","message","i18n","useStyles","makeStyles","inputRoot","flexWrap","autosizeInput","width","marginLeft","overflow","background","border","fontSize","outline","padding","color","AutosizeInputWrapper","CustomInputComponent","customInput","AutosizeInput","EMPTY_VALUES_EDIT_HINT","isEmptyValue","pipe","trim","isEmpty","MultipleInput","values","InputProps","inputProps","classes","onChange","noop","getValueLabel","identity","otherProps","styles","root","InputClasses","inputValue","setInputValue","useState","removeValueAt","index","remove","hasValues","length","appendInputValueIfNotEmpty","uniq","isFocused","setIsFocused","hintText","Tooltip","title","TextField","getValue","startAdornment","map","ValueChip","key","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","className","onMouseDown","event","stopPropagation","SelectValueType","useChipStyles","height","backgroundColor","maxWidth","margin","deleteIcon","marginRight","theme","container","alignItems","textOverflow","whiteSpace","count","palette","text","secondary","letterSpacing","lineHeight","classesProp","otherProp","Chip","mergeClasses","ExpandedValueTooltip","loadMoreContainer","moreButton","buttonLabel","fontWeight","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","includes","toString","DropDownEntryType","DropDownGroupEntryType","isRequired","splitOnce","separator","string","first","other","split","join","getLookupByUri","useWith","path","byLabel","ascend","LookupEditor","lookupCode","lookupTypeCode","lookups","getLookups","codeToLookup","useEffect","getLookupPath","uri","parent","concat","buildEntry","lookup","code","getLookupLabel","buildEntries","Object","sort","hierarchy","reduce","acc","assocPath","buildLookupEntries","commonProps","pluck","always","LookupValueType","SimpleLookupType","getOptionLabel","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","MAX_DEPENDENT_LOOKUP_VALUES","DependentLookupEditor","parents","resolveLookups","autopopulationId","max","inputRef","useRef","selectRef","onLookupsResolve","requestedCodes","setRequestedCodes","resolvedCodes","codesToResolve","filter","partition","resolvedLookups","unrequestedCodes","useLookupsResolver","codeValues","needFocusRef","current","document","activeElement","getElementsByTagName","handler","focus","addEventListener","removeEventListener","useSavingFocus","options","setOptions","pageNumber","setPageNumber","optionsAreLoading","setOptionsAreLoading","loadOptions","useCallback","type","displayNamePrefix","offset","then","buildOptions","catch","finally","loadMoreOptions","slice","page","debouncedLoadOptions","debounce","callback","defaultOptions","initialDefaultOptions","isLoading","isLoadingDefaultOptions","setDefaultOptions","setInitialDefaultOptions","setIsLoading","safePromise","useSafePromise","prevValue","useDefaultOptions","useDidUpdateEffect","displayedOptions","useMemo","showMoreButton","markAsTouched","id","isTouchedEditor","addTouchedEditor","useAutopopulation","Select","isMulti","menuPortalTarget","body","menuPlacement","ref","innerRef","menuPortal","base","zIndex","noOptionsMessage","components","isClearable","isSearchable","onInputChange","loadingMessage","hideSelectedOptions","isDisabled","getOptionValue","either","LoadMoreButton","variant","hiddenLabel","SelectEditor","DropDownEditor","DataTypeValueEditor","fieldName","inputStyles","useInputStyles","editorContext","tenant","globalSearchRequestOptions","dispatch","useDispatch","typeaheadGetSuggestion","searchValue","pageNo","getFacetedAttributeData","response","keys","dependentLookupCode","DataTypes","profile","getDependentLookups","propOr","lookupsList","codeValue","resolveLookupsList","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","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","undefined","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","newValue","method","shouldRenderSuggestions","T","nthArg","keyCode","autoComplete","getSuggestionValue","onSuggestionsFetchRequested","ifElse","onSuggestionsClearRequested","F","renderInputComponent","commonClasses","item","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","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/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/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/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';\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 return rich && isAttributeValueLink(dataTypeDefinition, value) ? (\n <Link target=\"_blank\" href={addProtocolToLink(formattedValue)} underline=\"none\">\n {formattedValue}\n </Link>\n ) : (\n 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 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\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 = ({lookupCode, value}) => getLookupLabel(lookupCode, value);\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, useRef, useState, useEffect, useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {debounce, LookupValueType} from '@reltio/mdm-sdk';\nimport Select from '../../ReactSelect/Select';\nimport {concat, defaultTo, either, isEmpty, prop} 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 SelectComponents = {\n IndicatorSeparator: EmptyStub,\n LoadingIndicator: EmptyStub,\n Option: OptionWithCheckIcon,\n DropdownIndicator,\n Menu: MenuWithPopper,\n MenuList: MenuList,\n MultiValue: MultiValueChip\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 useLookupsResolver({\n lookups: value,\n resolvedValues: lookups[lookupTypeCode],\n resolveLookups: (codeValues) => resolveLookups(lookupTypeCode, codeValues),\n onLookupsResolve: (lookups) => onChange(multiple ? lookups : lookups[0])\n });\n useSavingFocus(selectRef, inputRef, disabled);\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 const handleInputChange = (value) => {\n if (value !== inputValue) {\n setInputValue(value);\n setPageNumber(1);\n debouncedLoadOptions(value, setOptions);\n }\n };\n\n const loadOptions = useCallback(\n (value, pageNumber = 1) => {\n setOptionsAreLoading(true);\n return (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 loadOptions(inputValue, 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 inputValue={inputValue}\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={(value) => {\n markAsTouched();\n onChange(value);\n }}\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 {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\nexport default 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} 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((response) => Object.keys(response[fieldName])),\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} 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: 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 {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","propTypes","PropTypes","NoResults","message","i18n","useStyles","makeStyles","inputRoot","flexWrap","autosizeInput","width","marginLeft","overflow","background","border","fontSize","outline","padding","color","AutosizeInputWrapper","CustomInputComponent","customInput","AutosizeInput","EMPTY_VALUES_EDIT_HINT","isEmptyValue","pipe","trim","isEmpty","MultipleInput","values","InputProps","inputProps","classes","onChange","noop","getValueLabel","identity","otherProps","styles","root","InputClasses","inputValue","setInputValue","useState","removeValueAt","index","remove","hasValues","length","appendInputValueIfNotEmpty","uniq","isFocused","setIsFocused","hintText","Tooltip","title","TextField","getValue","startAdornment","map","ValueChip","key","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","className","onMouseDown","event","stopPropagation","SelectValueType","useChipStyles","height","backgroundColor","maxWidth","margin","deleteIcon","marginRight","theme","container","alignItems","textOverflow","whiteSpace","count","palette","text","secondary","letterSpacing","lineHeight","classesProp","otherProp","Chip","mergeClasses","ExpandedValueTooltip","loadMoreContainer","moreButton","buttonLabel","fontWeight","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","includes","toString","DropDownEntryType","DropDownGroupEntryType","isRequired","splitOnce","separator","string","first","other","split","join","getLookupByUri","useWith","path","byLabel","ascend","LookupEditor","lookupCode","lookupTypeCode","lookups","getLookups","codeToLookup","useEffect","getLookupPath","uri","parent","concat","buildEntry","lookup","code","getLookupLabel","buildEntries","Object","sort","hierarchy","reduce","acc","assocPath","buildLookupEntries","commonProps","pluck","always","LookupValueType","SimpleLookupType","getOptionLabel","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","MAX_DEPENDENT_LOOKUP_VALUES","DependentLookupEditor","parents","resolveLookups","autopopulationId","max","inputRef","useRef","selectRef","onLookupsResolve","requestedCodes","setRequestedCodes","resolvedCodes","codesToResolve","filter","partition","resolvedLookups","unrequestedCodes","useLookupsResolver","codeValues","needFocusRef","current","document","activeElement","getElementsByTagName","handler","focus","addEventListener","removeEventListener","useSavingFocus","options","setOptions","pageNumber","setPageNumber","optionsAreLoading","setOptionsAreLoading","loadOptions","useCallback","Promise","resolve","type","displayNamePrefix","offset","then","buildOptions","catch","finally","loadMoreOptions","slice","page","debouncedLoadOptions","debounce","callback","defaultOptions","initialDefaultOptions","isLoading","isLoadingDefaultOptions","setDefaultOptions","setInitialDefaultOptions","setIsLoading","safePromise","useSafePromise","prevValue","useDefaultOptions","useDidUpdateEffect","displayedOptions","useMemo","showMoreButton","markAsTouched","id","isTouchedEditor","addTouchedEditor","useAutopopulation","Select","isMulti","menuPortalTarget","body","menuPlacement","ref","innerRef","menuPortal","base","zIndex","noOptionsMessage","components","isClearable","isSearchable","onInputChange","loadingMessage","hideSelectedOptions","isDisabled","getOptionValue","either","LoadMoreButton","variant","hiddenLabel","SelectEditor","DropDownEditor","DataTypeValueEditor","fieldName","inputStyles","useInputStyles","editorContext","tenant","globalSearchRequestOptions","dispatch","useDispatch","typeaheadGetSuggestion","searchValue","pageNo","getFacetedAttributeData","response","keys","dependentLookupCode","DataTypes","profile","getDependentLookups","propOr","lookupsList","codeValue","resolveLookupsList","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","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","undefined","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","newValue","method","shouldRenderSuggestions","T","nthArg","keyCode","autoComplete","getSuggestionValue","onSuggestionsFetchRequested","ifElse","onSuggestionsClearRequested","F","renderInputComponent","commonClasses","item","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","usePrevious","valueHolderRef"],"sourceRoot":""}
|