@reltio/remotes 1.4.1186 → 1.4.1189
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/1274.js +1 -1
- package/1274.js.map +1 -1
- package/1577.js +3 -0
- package/{2393.js.LICENSE.txt → 1577.js.LICENSE.txt} +0 -0
- package/1577.js.map +1 -0
- package/1635.js +1 -1
- package/1635.js.map +1 -1
- package/1920.js +1 -1
- package/1957.css +112 -112
- package/1957.js +1 -1
- package/1957.js.map +1 -1
- package/2244.js +1 -1
- package/2378.js +1 -1
- package/2378.js.map +1 -1
- package/2605.js +1 -1
- package/3029.js +1 -1
- package/3029.js.map +1 -1
- package/3213.js +1 -1
- package/3348.js +1 -1
- package/3348.js.map +1 -1
- package/3537.js +3 -0
- package/{4374.js.LICENSE.txt → 3537.js.LICENSE.txt} +0 -0
- package/3537.js.map +1 -0
- package/3698.js +1 -1
- package/3981.js +1 -1
- package/4013.js +1 -1
- package/4132.js +1 -1
- package/4132.js.map +1 -1
- package/4277.js +1 -1
- package/4582.js +1 -1
- package/4803.js +1 -1
- package/4803.js.map +1 -1
- package/4863.js +1 -1
- package/4863.js.map +1 -1
- package/5008.js +2 -0
- package/5008.js.map +1 -0
- package/5111.js +3 -0
- package/{9854.js.LICENSE.txt → 5111.js.LICENSE.txt} +0 -0
- package/5111.js.map +1 -0
- package/5312.js +1 -1
- package/5541.js +2 -0
- package/5541.js.map +1 -0
- package/5701.js +1 -1
- package/5701.js.map +1 -1
- package/5714.js +1 -1
- package/5805.js +1 -1
- package/5912.js +1 -1
- package/5953.js +1 -1
- package/5953.js.map +1 -1
- package/604.css +71 -71
- package/604.js +1 -1
- package/604.js.map +1 -1
- package/6502.js +2 -0
- package/6502.js.map +1 -0
- package/6596.css +1 -1
- package/6596.js +1 -1
- package/6719.js +1 -1
- package/7265.js +1 -1
- package/737.js +1 -1
- package/781.js +1 -1
- package/781.js.map +1 -1
- package/7923.js +3 -0
- package/{7737.js.LICENSE.txt → 7923.js.LICENSE.txt} +0 -0
- package/7923.js.map +1 -0
- package/8017.js +2 -0
- package/8017.js.map +1 -0
- package/8047.js +1 -1
- package/8122.js +1 -1
- package/8148.js +1 -1
- package/8148.js.map +1 -1
- package/8896.js +1 -1
- package/8969.js +1 -1
- package/9511.js +2 -0
- package/9511.js.map +1 -0
- package/9630.js +1 -1
- package/main.js +1 -1
- package/main.js.map +1 -1
- package/package.json +1 -1
- package/remoteEntry.js +1 -1
- package/remoteEntry.js.map +1 -1
- package/2393.js +0 -3
- package/2393.js.map +0 -1
- package/3126.js +0 -2
- package/3126.js.map +0 -1
- package/4374.js +0 -3
- package/4374.js.map +0 -1
- package/6303.js +0 -2
- package/6303.js.map +0 -1
- package/7737.js +0 -3
- package/7737.js.map +0 -1
- package/79.js +0 -2
- package/79.js.map +0 -1
- package/8794.js +0 -2
- package/8794.js.map +0 -1
- package/9446.js +0 -2
- package/9446.js.map +0 -1
- package/9854.js +0 -3
- package/9854.js.map +0 -1
package/3029.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3029.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/BasicTablePagination.js","webpack://@reltio/remotes/../components/src/components/CollapseButton/styles.ts","webpack://@reltio/remotes/../components/src/components/CollapseButton/CollapseButton.tsx","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/EntityTypeBadge.tsx","webpack://@reltio/remotes/../components/src/components/ImportButton/styles.ts","webpack://@reltio/remotes/../components/src/components/ImportButton/ImportButton.tsx","webpack://@reltio/remotes/../components/src/components/ProfilesList/helpers.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/index.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/ProfilesList.tsx","webpack://@reltio/remotes/../search/src/components/ConfigureColumnsButton/show_hide_columns.svg","webpack://@reltio/remotes/../search/src/components/ConfigureColumnsButton/ConfigureColumnsButton.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/HeadCellRenderer/styles.less?a0e2","webpack://@reltio/remotes/../search/src/components/EntitiesTable/HeadCellRenderer/HeadCellRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/styles.less?da5d","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/EntityProfileRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/DefaultRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/ReferenceRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/BlobRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/ImageRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/getAttributeValueRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/entitiesTableUtils.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/EntityRowOverlay/EntityRowOverlay.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCellDecoration/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCellDecoration/withCellDecoration.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCheckbox/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCheckbox/withCheckbox.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCollapseButton/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCollapseButton/withCollapseButton.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/RowCellRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/heightCalculator.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/EntitiesTable.js","webpack://@reltio/remotes/../search/src/components/EntitiesTableWithConfigurableColumns/ConfigColumnPopup/ConfigColumnPopup.js","webpack://@reltio/remotes/../search/src/components/EntitiesTableWithConfigurableColumns/EntitiesTableWithConfigurableColumns.js","webpack://@reltio/remotes/../search/src/components/ImportEntityButton/ImportEntityButton.js","webpack://@reltio/remotes/../search/src/components/EntityRowButtons/styles.ts","webpack://@reltio/remotes/../search/src/components/EntityRowButtons/EntityRowButtons.tsx","webpack://@reltio/remotes/../search/src/components/ReadableSearchQuery/styles.js","webpack://@reltio/remotes/../search/src/components/ReadableSearchQuery/ReadableSearchQuery.js","webpack://@reltio/remotes/../search/src/constants/actionTypes/facets.js","webpack://@reltio/remotes/../search/src/constants/actionTypes/search.js","webpack://@reltio/remotes/../search/src/constants/constants.js","webpack://@reltio/remotes/../search/src/reducers/helpers/queryBuilderHelpers.js","webpack://@reltio/remotes/../search/src/sagas/queryBuilderSaga.js","webpack://@reltio/remotes/../search/src/services/entity/image.ts","webpack://@reltio/remotes/../search/src/services/search/advancedSearch/collectSpecialAttributes.js","webpack://@reltio/remotes/../search/src/services/search/icons/ml-recommended.svg","webpack://@reltio/remotes/../search/src/services/search/collectAttributes.js","webpack://@reltio/remotes/../search/src/services/search/collectFacets.js","webpack://@reltio/remotes/../search/src/services/search/converting/createAdvancedSearchFromFacets.js","webpack://@reltio/remotes/../search/src/services/search/entityTypes.js","webpack://@reltio/remotes/../search/src/services/search/facet.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parsingUtils.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseFacets.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldFacets.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseAttributeData.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldAdvancedSearch.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldView.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldSearchOptions.js","webpack://@reltio/remotes/../search/src/services/search/parsing/index.js","webpack://@reltio/remotes/../search/src/services/search/rangeFacet.js","webpack://@reltio/remotes/../search/src/utils/url.js","webpack://@reltio/remotes/../search/src/services/search/searchEngine.js","webpack://@reltio/remotes/../search/src/services/search/searchResults.js","webpack://@reltio/remotes/../search/src/utils/config.js","webpack://@reltio/remotes/../search/src/utils/error.js","webpack://@reltio/remotes/../search/src/utils/bigNumbersMath.js","webpack://@reltio/remotes/../search/src/utils/numbersMath.js","webpack://@reltio/remotes/../search/src/utils/general.js","webpack://@reltio/remotes/../search/src/utils/lenses.js","webpack://@reltio/remotes/../search/src/utils/maybe.js","webpack://@reltio/remotes/../search/src/components/SearchResultsArea/Headers/styles.less?0cb4"],"sourcesContent":["import {Avatar as Avatar} from '@material-ui/core';\nimport classnames from 'classnames';\nimport React, {useEffect, useState} from 'react';\n\nenum AvatarStates {\n ICON_MODE,\n TEXT_MODE,\n ERROR_MODE\n}\ntype Props = {\n className?: string;\n icon?: string;\n avatarText?: string;\n variant?: 'circle' | 'circular' | 'rounded' | 'square';\n rootClasses?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst AvatarWithFallback = ({className, icon, avatarText, rootClasses, ...otherProps}: Props) => {\n const [state, setState] = useState<AvatarStates>(null);\n useEffect(() => {\n if (icon) {\n setState(AvatarStates.ICON_MODE);\n } else {\n setState(AvatarStates.TEXT_MODE);\n }\n }, [icon, avatarText]);\n const onImageLoadFail = () => {\n setState(AvatarStates.ERROR_MODE);\n };\n\n switch (state) {\n case AvatarStates.ICON_MODE:\n return (\n <Avatar\n className={classnames(className, rootClasses?.iconRoot)}\n src={icon}\n onError={onImageLoadFail}\n {...otherProps}\n />\n );\n case AvatarStates.TEXT_MODE:\n case AvatarStates.ERROR_MODE:\n return (\n <Avatar className={classnames(className, rootClasses?.textRoot)} {...otherProps}>\n {avatarText}\n </Avatar>\n );\n default:\n return null;\n }\n};\n\nexport default AvatarWithFallback;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n pagination: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: '56px',\n borderTop: '1px solid rgba(0,0,0,0.12)',\n boxShadow: 'none'\n },\n caption: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px'\n },\n selectRoot: {\n marginLeft: '5px',\n marginRight: '36px'\n },\n select: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px',\n textAlign: 'right'\n },\n actions: {\n marginLeft: '32px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {TablePagination as TablePagination} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getValue} from '../../../core/utils';\nimport {nthArg, pipe, pathOr, identity} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BasicTablePagination = ({\n classes = {},\n count,\n rowsPerPageOptions,\n page,\n onChangePage,\n rowsPerPage,\n onChangeRowsPerPage,\n basicTableRef,\n labelRowsPerPage\n}) => {\n const labelDisplayedRows = ({from, to, count}) =>\n i18n.text('${fromRow}-${toRow} of ${countRows}', {\n fromRow: i18n.number(from, '0,0'),\n toRow: i18n.number(to, '0,0'),\n countRows: i18n.number(count, '0,0')\n });\n const styles = useStyles();\n const resetScrollbarPosition = useCallback(() => {\n pathOr(identity, ['current', 'resetScrollbarPosition'], basicTableRef)();\n }, [basicTableRef]);\n const handleChangePage = useCallback(\n (value) => {\n onChangePage(value);\n resetScrollbarPosition();\n },\n [onChangePage, resetScrollbarPosition]\n );\n const handleChangeRowsPerPage = useCallback(\n (value) => {\n onChangePage(0);\n onChangeRowsPerPage(value);\n resetScrollbarPosition();\n },\n [onChangePage, onChangeRowsPerPage, resetScrollbarPosition]\n );\n return (\n <TablePagination\n classes={{\n ...classes,\n root: classnames(styles.pagination, classes.root),\n select: classnames(styles.select, classes.select),\n caption: styles.caption,\n selectRoot: styles.selectRoot,\n actions: styles.actions\n }}\n component=\"div\"\n labelRowsPerPage={labelRowsPerPage || i18n.text('Rows per page:')}\n labelDisplayedRows={labelDisplayedRows}\n count={count}\n rowsPerPageOptions={rowsPerPageOptions}\n page={page}\n onChangePage={pipe(nthArg(1), handleChangePage)}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={pipe(getValue, handleChangeRowsPerPage)}\n />\n );\n};\n\nBasicTablePagination.propTypes = {\n classes: PropTypes.object,\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n page: PropTypes.number,\n onChangePage: PropTypes.func,\n rowsPerPage: PropTypes.number,\n onChangeRowsPerPage: PropTypes.func,\n basicTableRef: PropTypes.shape({current: PropTypes.object}),\n labelRowsPerPage: PropTypes.string\n};\n\nexport default React.memo(BasicTablePagination);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n collapseButton: {\n cursor: 'pointer'\n },\n expandLess: {\n transform: 'rotate( -180deg )'\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport {useStyles} from './styles';\n\ntype SmallIconButtonWithTooltipProps = React.ComponentPropsWithoutRef<typeof SmallIconButtonWithTooltip>;\n\ntype Props = Omit<SmallIconButtonWithTooltipProps, 'tooltipTitle'> & {\n isOpen?: boolean;\n tooltipTitle?: string;\n};\n\nconst CollapseButton = ({isOpen = false, tooltipTitle, ...otherProps}: Props) => {\n const styles = useStyles();\n const buttonProps = {\n icon: ExpandMore,\n className: styles.collapseButton,\n iconClassName: classnames({[styles.expandLess]: isOpen})\n };\n const tooltipProps = {\n tooltipTitle: tooltipTitle\n };\n return <SmallIconButtonWithTooltip {...buttonProps} {...tooltipProps} {...otherProps} />;\n};\n\nexport default CollapseButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n 'entityType-overflow': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n\n 'entityType-small': {\n padding: '1px 4px',\n fontSize: '10px',\n lineHeight: 'normal',\n marginRight: '12px',\n borderRadius: '2px'\n },\n 'entityType-medium': {\n padding: '2px 8px 3px',\n borderRadius: '2px',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '15px',\n marginRight: '16px'\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport {Typography as Typography} from '@material-ui/core';\n\nimport {getEntityType, getEntityTypeLabel, getPropWithInheritance, theme, utils, Entity} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport useStyles from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n size?: 'small' | 'medium';\n};\n\nconst EntityTypeBadge = ({entity, className, size = 'small'}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entityTypeUri = entity.type;\n const entityType = getEntityType(metadata, entityTypeUri) || {};\n const entityTypeColor = getPropWithInheritance(metadata, entityType, 'typeColor') || theme.palette.primary.main;\n const entityTypeLabel = getEntityTypeLabel(metadata, entity);\n\n return (\n <ExpandedValueTooltip value={entityTypeLabel} placement=\"top\">\n <Typography\n style={{\n backgroundColor: entityTypeColor,\n color: utils.Colors.getColor(entityTypeColor) ? '#FFFFFF' : '#212121'\n }}\n className={classnames(styles[`entityType-${size}`], styles['entityType-overflow'], className)}\n component=\"div\"\n >\n {entityTypeLabel}\n </Typography>\n </ExpandedValueTooltip>\n );\n};\n\nexport default EntityTypeBadge;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '24px',\n height: '24px'\n },\n check: {\n color: '#8CC152'\n }\n});\n","import React from 'react';\n\nimport {CircularProgress as CircularProgress} from '@material-ui/core';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport DoneIcon from '@material-ui/icons/Done';\nimport {noop} from '../../core';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nexport enum ImportModes {\n INIT = 1,\n PROGRESS = 2,\n SUCCESS = 3,\n DONE = 4\n}\n\ntype Props = {\n tooltip?: string;\n onClick?: () => void;\n classes?: Partial<Record<'root' | 'spinner' | 'button' | 'check', string>>;\n mode?: ImportModes;\n};\n\nconst ImportButton = ({classes = {}, tooltip = '', onClick = noop, mode = ImportModes.INIT}: Props) => {\n const styles = useStyles();\n\n const renderCurrentMode = () => {\n switch (mode) {\n case ImportModes.INIT: {\n return (\n <SmallIconButtonWithTooltip\n className={classes.button}\n size={'M'}\n tooltipTitle={tooltip}\n icon={CloudDownloadIcon}\n onClick={onClick}\n />\n );\n }\n case ImportModes.PROGRESS:\n return <CircularProgress className={classes.spinner} size={24} />;\n case ImportModes.SUCCESS:\n return <DoneIcon className={classnames(styles.check, classes.check)} />;\n default:\n return null;\n }\n };\n return <div className={classnames(styles.root, classes.root)}>{renderCurrentMode()}</div>;\n};\n\nexport default ImportButton;\n","export const scroll = (element) => element && element.scrollIntoView({block: 'end', behavior: 'smooth'});\n\nexport const clearScrollTimer = (scrollTimer) => {\n if (scrollTimer) {\n clearTimeout(scrollTimer);\n }\n};\n\nexport const isScrolledIntoView = (element, scrollableParent) => {\n if (element && scrollableParent) {\n const elemTop = element.offsetTop;\n const elemBottom = element.offsetTop + element.clientHeight;\n const {clientHeight, scrollTop} = scrollableParent;\n return elemTop >= 0 && elemBottom > scrollTop && elemBottom < scrollTop + clientHeight;\n }\n};\n","import {fade, makeStyles} from '@material-ui/core/styles';\nimport {Theme} from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n (\n theme: Theme & {\n inactiveBackground: string;\n inactiveHoverBackground: string;\n inactiveSelectedBackground: string;\n inactiveSelectedHoverBackground: string;\n }\n ) => {\n return {\n '@keyframes animate': {\n from: {background: 'transparent'},\n '66%': {background: '#f2e68e'},\n '100%': {background: 'transparent'}\n },\n\n highlighted: {\n animationName: '$animate',\n animationDuration: '3s',\n animationIterationCount: 1\n },\n\n item: {\n display: 'flex',\n minHeight: '40px',\n borderBottom: '1px solid rgba(0, 0, 0, 0.1)',\n flexDirection: 'row',\n\n '&:after': {\n // IE flex & min-height workaround\n content: '',\n minHeight: 'inherit',\n fontSize: 0\n },\n\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n },\n\n clickable: {\n cursor: 'pointer'\n },\n\n selected: {\n background: fade(theme.palette.primary.main, 0.12),\n '&:hover': {\n background: fade(theme.palette.primary.main, 0.24)\n }\n },\n\n inactive: {\n background: theme.inactiveBackground,\n\n '&:hover': {\n background: theme.inactiveHoverBackground\n },\n\n '&$selected': {\n background: theme.inactiveSelectedBackground,\n\n '&:hover': {\n background: theme.inactiveSelectedHoverBackground\n }\n }\n },\n\n justImported: {\n backgroundColor: '#FFFBEB !important'\n },\n\n avatar: {\n marginLeft: '20px'\n },\n\n image: {\n height: '32px',\n width: '32px',\n marginTop: '8px',\n marginBottom: '7px'\n },\n\n info: {\n marginLeft: '20px',\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n fontSize: '13px',\n width: '100%',\n overflow: 'hidden',\n overflowWrap: 'break-word',\n wordWrap: 'break-word' // for IE\n },\n\n label: {\n fontSize: '13px',\n lineHeight: '15px',\n fontWeight: 500,\n color: theme.palette.primary.main,\n marginRight: '17px',\n textDecoration: 'none'\n },\n\n secondaryLabel: {\n marginRight: '12px'\n },\n\n businessCard: {\n color: 'rgba(0, 0, 0, 0.54)'\n },\n\n secondRow: {\n display: 'flex',\n marginTop: '2px',\n alignItems: 'center',\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: '12px'\n }\n };\n }\n);\n","import {connect} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport ProfilesList from './ProfilesList';\n\nconst mapStateToProps = (state) => {\n return {\n metadata: mdmModule.selectors.getMetadata(state)\n };\n};\n\nexport {ProfilesList};\n\nexport default connect(mapStateToProps)(ProfilesList);\n","import React, {useRef} from 'react';\nimport classnames from 'classnames';\nimport {prop} from 'ramda';\nimport {\n Entity,\n getBusinessCardAttributesText,\n getEntityId,\n getEntityUriForLink,\n getLabel,\n isActiveObject,\n Metadata\n} from '@reltio/mdm-sdk';\nimport EntityTypeBadge from '../EntityTypeBadge/EntityTypeBadge';\nimport EntityUriLink from '../EntityUriLink/EntityUriLink';\nimport EntityAvatar from '../EntityAvatar/EntityAvatar';\nimport {ImportModes} from '../ImportButton/ImportButton';\nimport {clearScrollTimer, isScrolledIntoView, scroll} from './helpers';\nimport {useDidUpdateEffect} from '../../hooks';\n\nimport {useStyles} from './styles';\n\nconst SECOND_SCROLL_PAUSE = 1000;\n\ntype Props = {\n metadata: Metadata;\n entities: Entity[];\n entityToHighlight?: string;\n selectedEntityUri?: string;\n onEntityClick?: (entityUri: string) => void;\n onEntityHover?: (entityUri: string) => void;\n entitiesImportStatus?: {entityUri: string};\n entityButtonsRenderer?: (entity: Entity) => void;\n};\n\nconst ProfilesList = ({\n entities,\n metadata,\n entityToHighlight,\n selectedEntityUri,\n onEntityClick,\n onEntityHover,\n entitiesImportStatus,\n entityButtonsRenderer\n}: Props) => {\n const styles = useStyles();\n\n const list = useRef(null);\n const scrollTimer = useRef(null);\n\n useDidUpdateEffect(() => {\n if (entityToHighlight) {\n const element = list.current?.querySelectorAll(`[data-entity-uri='${entityToHighlight}']`);\n clearScrollTimer(scrollTimer.current);\n if (element?.length > 0) {\n const scrollableParent = list.current?.parentElement;\n if (!isScrolledIntoView(element[0], scrollableParent)) {\n scroll(element[0]);\n scrollTimer.current = setTimeout(() => {\n if (!isScrolledIntoView(element[0], scrollableParent)) {\n scroll(element[0]);\n }\n }, SECOND_SCROLL_PAUSE);\n }\n }\n }\n\n return () => {\n clearScrollTimer(scrollTimer.current);\n };\n }, [entityToHighlight]);\n\n return (\n <div ref={list}>\n {(entities || []).map((entity) => {\n const label = getLabel(entity.label);\n const secondaryLabel = entity.secondaryLabel;\n const businessCardText = getBusinessCardAttributesText(metadata, entity);\n const isActive = isActiveObject(entity);\n const entityUri = entity.uri;\n const entityUriForLink = getEntityUriForLink(entity);\n\n const importStatus = prop(entityUri, entitiesImportStatus);\n\n return (\n <div\n key={entityUri}\n className={classnames(styles.item, {\n [styles.clickable]: !!onEntityClick,\n [styles.selected]: entityUri === selectedEntityUri,\n [styles.highlighted]: entityUri === entityToHighlight,\n [styles.inactive]: !isActive,\n [styles.justImported]: importStatus === ImportModes.SUCCESS\n })}\n onClick={onEntityClick ? () => onEntityClick(entityUri) : undefined}\n onMouseEnter={onEntityHover ? () => onEntityHover(entityUri) : undefined}\n onMouseLeave={onEntityHover ? () => onEntityHover(null) : undefined}\n data-entity-uri={entityUri}\n >\n <EntityAvatar entity={entity} avatarClassName={styles.avatar} imageClassName={styles.image} />\n <div className={styles.info}>\n <div>\n <EntityUriLink value={entityUriForLink} className={styles.label}>\n {label}\n </EntityUriLink>\n {secondaryLabel && <span className={styles.secondaryLabel}>{secondaryLabel} </span>}\n {businessCardText && <span className={styles.businessCard}>{businessCardText}</span>}\n </div>\n <div className={styles.secondRow}>\n <EntityTypeBadge entity={entity} />\n <div>{getEntityId(entity)}</div>\n </div>\n </div>\n {entityButtonsRenderer && entityButtonsRenderer(entity)}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default ProfilesList;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\",\n opacity: \".54\"\n}, React.createElement(\"path\", {\n d: \"M19 11.24V10h-4v1.24a8.417 8.417 0 00-2 .768V10H9v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H5c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM7 16v-6H5v6h2zm0-8V6H5v2h2zm6 0V6H9v2h4zm6 0V6h-4v2h4zm-2 5a6.451 6.451 0 00-6 4.09 6.451 6.451 0 006 4.092 6.451 6.451 0 006-4.091A6.451 6.451 0 0017 13zm0 6.818a2.728 2.728 0 010-5.454 2.728 2.728 0 010 5.454zm0-4.363c-.905 0-1.636.73-1.636 1.636 0 .905.73 1.636 1.636 1.636.905 0 1.636-.73 1.636-1.636 0-.906-.73-1.636-1.636-1.636z\",\n fill: \"#000\",\n fillRule: \"nonzero\"\n}))));","import React, {useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useSelector} from 'react-redux';\nimport {ConfigureColumnsPopup, SmallIconButtonWithTooltip, noop} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {\n getChildrenLeafsByParentId,\n memoizedCollectColumnsForestWithoutLabel\n} from '../../services/search/searchResults';\nimport ConfigureColumnsIcon from './show_hide_columns.svg';\nimport styles from '../SearchResultsArea/Headers/styles.less';\n\nimport mdmModule from '@reltio/mdm-module';\n\nconst ConfigureColumnsButton = ({entityTypeUri, headColumns = [], onSelectColumns = noop, ...otherProps}) => {\n const [popupAnchor, setPopupAnchor] = useState(null);\n const [filterText, setFilterText] = useState('');\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const openConfigureColumnsPopup = (e) => setPopupAnchor(e.currentTarget);\n const closeConfigureColumnsPopup = () => setPopupAnchor(null);\n\n const handlePopupClose = () => {\n closeConfigureColumnsPopup();\n setFilterText('');\n };\n\n const handleColumnClick = useCallback(\n (data, checked) => {\n const columnsForest = memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri);\n const children = getChildrenLeafsByParentId(columnsForest, data.id);\n let selectedColumns;\n if (children.length) {\n selectedColumns = checked\n ? headColumns.concat(children)\n : headColumns.filter((column) => !children.find((child) => child.id === column.id));\n } else {\n selectedColumns = checked\n ? headColumns.concat(data)\n : headColumns.filter((column) => column.id !== data.id);\n }\n\n onSelectColumns(selectedColumns);\n },\n [metadata, entityTypeUri, headColumns, onSelectColumns]\n );\n\n const renderConfigureColumnsPopup = () => {\n const columnsForest = memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri);\n return (\n <ConfigureColumnsPopup\n open={!!popupAnchor}\n anchorEl={popupAnchor}\n data={columnsForest}\n onListItemClick={handleColumnClick}\n selected={headColumns}\n filterText={filterText}\n onClose={handlePopupClose}\n onSearch={setFilterText}\n />\n );\n };\n\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={i18n.text('Show/hide columns')}\n size=\"M\"\n icon={ConfigureColumnsIcon}\n onClick={openConfigureColumnsPopup}\n className={styles.headerIcon}\n {...otherProps}\n />\n {renderConfigureColumnsPopup()}\n </>\n );\n};\n\nConfigureColumnsButton.propTypes = {\n entityTypeUri: PropTypes.string,\n headColumns: PropTypes.array,\n onSelectColumns: PropTypes.func\n};\n\nexport default ConfigureColumnsButton;\n","// extracted by mini-css-extract-plugin\nexport default {\"headCellContentWrapper\":\"HeadCellRenderer-styles-headCellContentWrapper--204Aj\",\"checkbox\":\"HeadCellRenderer-styles-checkbox--3kWo3\",\"sortLabel\":\"HeadCellRenderer-styles-sortLabel--3pCJO\",\"labelWrapper\":\"HeadCellRenderer-styles-labelWrapper--3v65T\",\"menuButtonWrapper\":\"HeadCellRenderer-styles-menuButtonWrapper--2WKUw\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {TableSortLabel as TableSortLabel} from '@material-ui/core';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {path, pick} from 'ramda';\nimport {SmallIconButton, withTableContext} from '@reltio/components';\n\nimport styles from './styles.less';\n\nconst HeadCellRenderer = ({\n headCellData,\n headIndex,\n sortOrder,\n sortField,\n sortHandler,\n canCheck,\n onCheck,\n headerCheckboxState,\n openConfigColumnPopup\n}) => {\n return (\n <div className={classNames(styles.headCellContentWrapper, path(['wrapperClassName'], headCellData))}>\n {headCellData && canCheck && (\n <Checkbox\n className={styles.checkbox}\n checked={headerCheckboxState || false}\n indeterminate={headerCheckboxState === null}\n onChange={() => onCheck()}\n />\n )}\n <div className={styles.labelWrapper}>\n {headCellData &&\n (headCellData.sortable ? (\n <TableSortLabel\n active={Boolean(sortOrder && sortField === headCellData.id)}\n direction={sortOrder}\n onClick={sortHandler}\n classes={{root: styles.sortLabel}}\n component=\"div\"\n >\n {headCellData.label}\n </TableSortLabel>\n ) : (\n headCellData.label\n ))}\n </div>\n {openConfigColumnPopup && (\n <div className={styles.menuButtonWrapper}>\n <SmallIconButton\n icon={MoreVertIcon}\n onClick={openConfigColumnPopup}\n size={'S'}\n data-column-index={headIndex}\n />\n </div>\n )}\n </div>\n );\n};\n\nHeadCellRenderer.propTypes = {\n headCellData: PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n sortable: PropTypes.bool\n }),\n headIndex: PropTypes.number,\n sortOrder: PropTypes.string,\n sortField: PropTypes.string,\n sortHandler: PropTypes.func,\n canCheck: PropTypes.bool,\n onCheck: PropTypes.func,\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n openConfigColumnPopup: PropTypes.func\n};\n\nexport default withTableContext(pick(['openConfigColumnPopup']))(HeadCellRenderer);\n\nexport const HeadCellRendererWithCheckbox = withTableContext(\n pick(['openConfigColumnPopup', 'canCheck', 'onCheck', 'headerCheckboxState'])\n)(HeadCellRenderer);\n","// extracted by mini-css-extract-plugin\nexport default {\"popupBackdrop\":\"EntitiesTable-styles-popupBackdrop--1kv_-\",\"popupContent\":\"EntitiesTable-styles-popupContent--2_Yic\",\"complexPopupContent\":\"EntitiesTable-styles-complexPopupContent--3eaMg\",\"highlighted\":\"EntitiesTable-styles-highlighted--2KGk8\",\"highlightAnimate\":\"EntitiesTable-styles-highlightAnimate--31hFj\",\"inactiveBackground\":\"EntitiesTable-styles-inactiveBackground--3GLxS\",\"inactiveHoverBackground\":\"EntitiesTable-styles-inactiveHoverBackground--2IA7I\",\"inactiveSelectedBackground\":\"EntitiesTable-styles-inactiveSelectedBackground--fXrDv\",\"inactiveSelectedHoverBackground\":\"EntitiesTable-styles-inactiveSelectedHoverBackground--2xMPL\",\"textOverflow\":\"EntitiesTable-styles-textOverflow--2r-Op\",\"textOverflowInactive\":\"EntitiesTable-styles-textOverflowInactive--c704F\",\"link\":\"EntitiesTable-styles-link--3M_i8\",\"defaultWrapper\":\"EntitiesTable-styles-defaultWrapper--17m-1\",\"table\":\"EntitiesTable-styles-table--2cYK8\",\"imageWrapper\":\"EntitiesTable-styles-imageWrapper--1Mh4_\",\"blobWrapper\":\"EntitiesTable-styles-blobWrapper--1lpTF\",\"highlightAnimateForEllipsis\":\"EntitiesTable-styles-highlightAnimateForEllipsis--3K07i\",\"referenceWrapper\":\"EntitiesTable-styles-referenceWrapper--2em-P\",\"referenceContent\":\"EntitiesTable-styles-referenceContent--Y_vP-\",\"referenceIcon\":\"EntitiesTable-styles-referenceIcon--3TGdy\",\"nestedCellWrapper\":\"EntitiesTable-styles-nestedCellWrapper--24W5V\",\"nestedAttributeWrapper\":\"EntitiesTable-styles-nestedAttributeWrapper--2fLKb\",\"profileWrapper\":\"EntitiesTable-styles-profileWrapper--31FtH\",\"entityAvatar\":\"EntitiesTable-styles-entityAvatar--1LVQ0\",\"entityAvatarImage\":\"EntitiesTable-styles-entityAvatarImage--1ePjP\",\"entityLabel\":\"EntitiesTable-styles-entityLabel--2Wawq\",\"scores\":\"EntitiesTable-styles-scores--RoYyd\",\"dragColumnHead\":\"EntitiesTable-styles-dragColumnHead--tOZC8\",\"dragColumnBody\":\"EntitiesTable-styles-dragColumnBody--1F9zz\",\"draggableHeadCell\":\"EntitiesTable-styles-draggableHeadCell--3LNDx\",\"cellWrapper\":\"EntitiesTable-styles-cellWrapper--1-flA\",\"entityButtons\":\"EntitiesTable-styles-entityButtons--uhQM9\",\"selectedEntityButtons\":\"EntitiesTable-styles-selectedEntityButtons--1s9-b\",\"justImportedEntityButtons\":\"EntitiesTable-styles-justImportedEntityButtons--3bEFw\",\"highlightedEntityButtons\":\"EntitiesTable-styles-highlightedEntityButtons--3KFhD\"};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {EntityAvatar, EntityUriLink} from '@reltio/components';\nimport {getEntityUriForLink, getLabel} from '@reltio/mdm-sdk';\n\nimport classNames from 'classnames';\nimport styles from '../styles.less';\n\nconst EntityProfileRenderer = ({value: entity = {}}) => {\n const label = getLabel(entity.label);\n return (\n <div className={classNames(styles.defaultWrapper, styles.profileWrapper)}>\n <EntityAvatar\n avatarClassName={styles.entityAvatar}\n imageClassName={styles.entityAvatarImage}\n entity={entity}\n />\n <EntityUriLink value={getEntityUriForLink(entity)} className={styles.entityLabel}>\n {label}\n </EntityUriLink>\n </div>\n );\n};\n\nEntityProfileRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default EntityProfileRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {DataTypeValue} from '@reltio/components';\nimport styles from '../styles.less';\n\nconst DefaultRenderer = ({value, columnData: {dataTypeDefinition}}) => {\n return (\n <div className={styles.defaultWrapper}>\n {dataTypeDefinition ? <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} /> : value}\n </div>\n );\n};\n\nDefaultRenderer.propTypes = {\n value: PropTypes.any,\n columnData: PropTypes.object\n};\n\nexport default DefaultRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useSelector} from 'react-redux';\n\nimport classnames from 'classnames';\nimport {getTypeGraphIcon} from '../../../services/entity/image';\nimport styles from '../styles.less';\nimport {AvatarWithFallback, EntityUriLink} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {getLabel} from '@reltio/mdm-sdk';\n\nconst ReferenceRenderer = ({value}) => {\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n return (\n value && (\n <div className={classnames(styles.defaultWrapper, styles.referenceWrapper)}>\n <AvatarWithFallback\n className={styles.referenceIcon}\n icon={getTypeGraphIcon(metadata, value.refEntity.type)}\n />\n <EntityUriLink value={value.refEntity.objectURI} className={styles.referenceContent}>\n {getLabel(value.label)}\n </EntityUriLink>\n </div>\n )\n );\n};\n\nReferenceRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default ReferenceRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from '../styles.less';\n\nconst stopPropagation = (event) => {\n event.stopPropagation();\n};\n\nconst BlobRenderer = (props) => {\n const {value} = props;\n return (\n <div className={styles.blobWrapper} onScroll={stopPropagation}>\n {value}\n </div>\n );\n};\n\nBlobRenderer.propTypes = {\n value: PropTypes.any\n};\n\nexport default BlobRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getImageAttributeOvThumbnailUrl} from '@reltio/mdm-sdk';\nimport styles from '../styles.less';\n\nconst ImageRenderer = ({value}) => {\n const src = getImageAttributeOvThumbnailUrl({value});\n return (\n src && (\n <div className={styles.imageWrapper}>\n <img src={src} />\n </div>\n )\n );\n};\n\nImageRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default ImageRenderer;\n","import {path} from 'ramda';\n\nimport EntityProfileRenderer from './EntityProfileRenderer';\nimport DefaultRenderer from './DefaultRenderer';\nimport ReferenceRenderer from './ReferenceRenderer';\nimport BlobRenderer from './BlobRenderer';\nimport ImageRenderer from './ImageRenderer';\n\nconst getAttributeValueRenderer = (columnInfo) => {\n if (columnInfo.id === 'label') {\n return EntityProfileRenderer;\n }\n\n switch (path(['attrType', 'type'], columnInfo)) {\n case 'Reference':\n return ReferenceRenderer;\n case 'Blob':\n return BlobRenderer;\n case 'Image':\n return ImageRenderer;\n }\n\n return DefaultRenderer;\n};\n\nexport default getAttributeValueRenderer;\n","import HeadCellRenderer, {HeadCellRendererWithCheckbox} from './HeadCellRenderer/HeadCellRenderer';\nimport {assoc, pipe, prop, reduce, split} from 'ramda';\nimport {getAttrDataTypeDefinition, getEntityId, getOvAttributeValuesByPath} from '@reltio/mdm-sdk';\nimport getAttributeValueRenderer from './AttributeRenderers/getAttributeValueRenderer';\nimport {isAttributeSearchUri} from '@reltio/mdm-sdk';\n\nconst getAttrPathFromColumnId = split('.');\n\nconst getRowValueForColumn = (metadata, columnData, entity) => {\n switch (columnData.id) {\n case 'label':\n return entity;\n case 'entityId':\n return getEntityId(entity);\n default: {\n const [attrSource, ...attrPath] = getAttrPathFromColumnId(columnData.id);\n return pipe(prop(attrSource), getOvAttributeValuesByPath(attrPath))(entity);\n }\n }\n};\n\nexport const getBasicTableRowsData = (metadata, headColumns, entities) => {\n return entities.map((entity) => {\n return pipe(\n reduce(\n (acc, columnData) => assoc(columnData.id, getRowValueForColumn(metadata, columnData, entity), acc),\n {}\n ),\n assoc('rawValue', entity)\n )(headColumns);\n });\n};\n\nconst NOT_SORTABLE_COLUMN_IDS = ['entityId'];\nconst isSortableColumn = (column) => !NOT_SORTABLE_COLUMN_IDS.includes(column.id);\n\nconst getNestedPathByColumnId = (columnId) => {\n if (isAttributeSearchUri(columnId)) {\n const [, ...attrPath] = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nexport const getBasicTableColumnsData = (headColumns, sortingEnabled = true) => {\n return headColumns.map(({attrType, ...column}, i) => {\n const isFirstColumn = i === 0;\n return {\n ...column,\n dataTypeDefinition: attrType && getAttrDataTypeDefinition(attrType),\n resizable: true,\n autoResize: !isFirstColumn,\n draggable: !isFirstColumn,\n sortable: sortingEnabled && isSortableColumn(column),\n nestedPath: getNestedPathByColumnId(column.id),\n headCellRenderer: isFirstColumn ? HeadCellRendererWithCheckbox : HeadCellRenderer,\n rowCellValueRenderer: getAttributeValueRenderer({...column, attrType})\n };\n });\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {ImportModes, withTableContext} from '@reltio/components';\nimport EntityRowButtons from '../../EntityRowButtons/EntityRowButtons';\n\nimport classnames from 'classnames';\nimport styles from '../styles.less';\n\nconst EntityRowOverlay = ({\n entity,\n isSelectedEntity,\n isHighlightedEntity,\n entityImportStatus,\n onEntityImportStatusChange\n}) => {\n return (\n <div\n className={classnames(styles.entityButtons, {\n [styles.selectedEntityButtons]: isSelectedEntity,\n [styles.justImportedEntityButtons]: entityImportStatus === ImportModes.SUCCESS,\n [styles.highlightedEntityButtons]: isHighlightedEntity\n })}\n >\n <EntityRowButtons\n entity={entity}\n entityImportStatus={entityImportStatus}\n onEntityImportStatusChange={onEntityImportStatusChange}\n />\n </div>\n );\n};\n\nEntityRowOverlay.propTypes = {\n entity: PropTypes.object,\n isSelectedEntity: PropTypes.bool,\n isHighlightedEntity: PropTypes.bool,\n entityImportStatus: PropTypes.oneOf(Object.values(ImportModes)),\n onEntityImportStatusChange: PropTypes.func\n};\n\nexport default withTableContext(\n (\n {entitiesImportStatus, onEntityImportStatusChange, selectedEntityUri, highlightedEntityIndex},\n {entity, rowIndex}\n ) => {\n const entityImportStatus = entity && entitiesImportStatus[entity.uri];\n return {\n entityImportStatus,\n onEntityImportStatusChange,\n isSelectedEntity: selectedEntityUri === entity.uri,\n isHighlightedEntity: highlightedEntityIndex === rowIndex\n };\n }\n)(EntityRowOverlay);\n","import {lighten, makeStyles} from '@material-ui/core/styles';\n\nconst commonCellWrapperStyles = {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n};\n\nexport const useStyles = makeStyles((theme) => ({\n inactiveCell: {\n background: theme.inactiveBackground,\n ...commonCellWrapperStyles,\n '&$selectedRowCell': {\n background: theme.inactiveSelectedBackground\n }\n },\n selectedRowCell: {\n background: lighten(theme.palette.primary.main, 0.88),\n ...commonCellWrapperStyles\n },\n clickable: {\n cursor: 'pointer',\n ...commonCellWrapperStyles\n },\n justImported: {\n backgroundColor: '#FFFBEB !important',\n ...commonCellWrapperStyles\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isActiveObject} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst withCellDecorationPropTypes = {\n entity: PropTypes.object,\n isSelected: PropTypes.bool,\n onEntityClick: PropTypes.func,\n isJustImported: PropTypes.bool\n};\n\nconst withCellDecoration = (Component) => {\n const WithCellDecoration = (componentProps) => {\n const styles = useStyles();\n const {\n rowValue: {rawValue: entity},\n isSelected,\n onEntityClick,\n isJustImported\n } = componentProps;\n const onCellClick = onEntityClick ? () => onEntityClick(entity.uri) : undefined;\n const isInactive = entity && !isActiveObject(entity);\n\n return onCellClick || isInactive || isSelected || isJustImported ? (\n <div\n className={classnames(\n {[styles.inactiveCell]: isInactive},\n {inactiveCell: isInactive},\n {[styles.selectedRowCell]: isSelected},\n {selectedRowCell: isSelected},\n {[styles.clickable]: !!onCellClick},\n {[styles.justImported]: isJustImported},\n {justImported: isJustImported}\n )}\n onClick={onCellClick}\n >\n <Component {...componentProps} />\n </div>\n ) : (\n <Component {...componentProps} />\n );\n };\n\n WithCellDecoration.propTypes = withCellDecorationPropTypes;\n\n return WithCellDecoration;\n};\n\nexport default withCellDecoration;\nexport {withCellDecorationPropTypes};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n checkboxWrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n checkbox: {\n marginRight: '-8px',\n marginLeft: '11px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {Checkbox as Checkbox} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\nconst withCheckboxPropTypes = {\n onCheck: PropTypes.func,\n isChecked: PropTypes.bool,\n hasCheckbox: PropTypes.bool\n};\n\nconst withCheckbox = (Component) => {\n const WithCheckbox = (componentProps) => {\n const styles = useStyles();\n const {onCheck, isChecked, hasCheckbox, ...restProps} = componentProps;\n const {\n rowValue: {rawValue: entity}\n } = restProps;\n\n return hasCheckbox ? (\n <div className={classnames(styles.checkboxWrapper, 'cellWithCheckbox')}>\n <Checkbox\n className={styles.checkbox}\n checked={isChecked}\n onClick={(e) => e.stopPropagation()}\n onChange={(e) => onCheck(entity.uri, e.target.checked)}\n />\n <Component {...restProps} />\n </div>\n ) : (\n <Component {...restProps} />\n );\n };\n\n WithCheckbox.propTypes = withCheckboxPropTypes;\n\n return WithCheckbox;\n};\n\nexport default withCheckbox;\nexport {withCheckboxPropTypes};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n collapser: {\n marginLeft: '-2px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useStyles} from './styles';\n\nimport {CollapseRowButton} from '@reltio/components';\n\nconst withCollapseButtonPropTypes = {\n hasCollapseButton: PropTypes.bool\n};\nconst withCollapseButton = (Component) => {\n const WithCollapseButton = (componentProps) => {\n const styles = useStyles();\n const {hasCollapseButton, ...restProps} = componentProps;\n const {rowValue, rowIndex} = restProps;\n\n return hasCollapseButton ? (\n <div className={'cellWithCollapser'}>\n <CollapseRowButton className={styles.collapser} rowIndex={rowIndex} rowValue={rowValue} />\n <Component {...restProps} />\n </div>\n ) : (\n <Component {...restProps} />\n );\n };\n\n WithCollapseButton.propTypes = withCollapseButtonPropTypes;\n\n return WithCollapseButton;\n};\n\nexport default withCollapseButton;\nexport {withCollapseButtonPropTypes};\n","import {defaultRenderRowCell, ImportModes, withTableContext} from '@reltio/components';\nimport withCellDecoration from './HOCs/withCellDecoration/withCellDecoration';\nimport withCheckbox from './HOCs/withCheckbox/withCheckbox';\nimport withCollapseButton from './HOCs/withCollapseButton/withCollapseButton';\nimport {pipe} from 'ramda';\n\nexport default pipe(\n withCollapseButton,\n withCheckbox,\n withCellDecoration,\n withTableContext(\n (\n {onEntityClick, selectedEntityUri, entitiesImportStatus, canCheck, onCheck, checkedEntitiesUris},\n {rowValue, columnIndex}\n ) => {\n const {rawValue: entity} = rowValue;\n const isFirstColumn = columnIndex === 0;\n return {\n onCheck,\n isChecked: checkedEntitiesUris && checkedEntitiesUris.includes(entity.uri),\n hasCheckbox: canCheck && isFirstColumn,\n hasCollapseButton: isFirstColumn,\n isSelected: selectedEntityUri === entity.uri,\n isJustImported: entitiesImportStatus[entity.uri] === ImportModes.SUCCESS,\n onEntityClick\n };\n }\n )\n)(defaultRenderRowCell);\n","import {path} from 'ramda';\n\nexport const REFERENCE_HEIGHT = 28;\nexport const BLOB_HEIGHT = 100;\nexport const IMAGE_HEIGHT = 76;\nconst PADDING = 17;\n\nexport const getAttributeHeight = ({columnData, cell}) => {\n const countAttributes = cell.values.length;\n const defaultHeight = 28 * Math.max(countAttributes, 1) + 20;\n\n if (!countAttributes) {\n return defaultHeight;\n }\n\n switch (path(['dataTypeDefinition', 'type'], columnData)) {\n case 'Reference':\n return REFERENCE_HEIGHT * countAttributes + PADDING;\n case 'Blob':\n return BLOB_HEIGHT * countAttributes;\n case 'Image':\n return IMAGE_HEIGHT * countAttributes + PADDING;\n default:\n return defaultHeight;\n }\n};\n","import React, {forwardRef, memo, useCallback, useImperativeHandle, useMemo, useRef, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport {path, prop, propEq} from 'ramda';\nimport {SORT_DIRECTION_ASC, SORT_DIRECTION_DESC} from 'react-components/dist/Table/Table';\nimport {BasicTable} from '@reltio/components';\nimport {getBasicTableColumnsData, getBasicTableRowsData} from './entitiesTableUtils';\nimport EntityRowOverlay from './EntityRowOverlay/EntityRowOverlay';\nimport RowCellRenderer from './RowCellRenderer/RowCellRenderer';\nimport {getAttributeHeight} from './AttributeRenderers/heightCalculator';\n\nimport styles from './styles.less';\nimport mdmModule from '@reltio/mdm-module';\n\nexport const MAX_LENGTH_VALUE = 2;\nexport const DEFAULT_ROW_HEIGHT = 48;\nexport const HEAD_ROW_HEIGHT = 50;\nexport const DEFAULT_COLUMN_WIDTH = 250;\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const RESIZE_DEBOUNCE_DELAY = 150;\n\nconst EntitiesTable = forwardRef(\n (\n {\n headColumns,\n entities,\n entityToHighlight,\n selectedEntityUri,\n onReorderingColumn,\n dndColumnReorderingEnabled,\n columnsSize,\n onChangeColumnsSize,\n onScroll,\n onSort,\n sortField,\n sortOrder,\n onEntityHover,\n onEntityClick,\n entitiesImportStatus,\n onEntityImportStatusChange,\n logger,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck,\n openConfigColumnPopup\n },\n ref\n ) => {\n const tableClasses = useMemo(\n () => ({\n highlightRow: 'highlightedSelector',\n dragColumnHead: styles.dragColumnHead,\n dragColumnBody: styles.dragColumnBody,\n draggableHeadCell: styles.draggableHeadCell,\n cellWrapper: styles.cellWrapper\n }),\n []\n );\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const [hoverRowIndex, setHoverRowIndex] = useState(null);\n const handleRowHover = useCallback(\n (hoverRowIndex) => {\n setHoverRowIndex(hoverRowIndex);\n if (onEntityHover) {\n onEntityHover(path([hoverRowIndex, 'uri'], entities));\n }\n },\n [onEntityHover, entities]\n );\n\n const tableRef = useRef();\n useImperativeHandle(ref, () => ({\n resetScrollbarPosition: () => {\n tableRef.current && tableRef.current.resetScrollbarPosition({resetLeft: false});\n }\n }));\n\n const handleSort = useCallback(\n (field) => {\n if (!sortOrder || field !== sortField) {\n onSort({field, order: SORT_DIRECTION_ASC});\n } else if (sortOrder === SORT_DIRECTION_ASC) {\n onSort({field, order: SORT_DIRECTION_DESC});\n } else {\n onSort({field});\n }\n },\n [onSort, sortField, sortOrder]\n );\n\n const renderRowOverlay = useCallback(\n (rowIndex) => {\n const entity = prop(rowIndex, entities);\n return entity ? <EntityRowOverlay entity={entity} rowIndex={rowIndex} /> : null;\n },\n [entities]\n );\n\n const renderRowCell = useCallback((props) => {\n return <RowCellRenderer {...props} />;\n }, []);\n\n const hoverStateEnabled = !!onEntityHover;\n const sortingEnabled = !!onSort;\n\n const columnsData = useMemo(() => getBasicTableColumnsData(headColumns, sortingEnabled), [\n headColumns,\n sortingEnabled\n ]);\n const rowsData = useMemo(() => getBasicTableRowsData(metadata, headColumns, entities), [\n metadata,\n headColumns,\n entities\n ]);\n\n const highlightedEntityIndex = entityToHighlight ? entities.findIndex(propEq('uri', entityToHighlight)) : -1;\n\n const tableContext = useMemo(\n () => ({\n onEntityClick,\n selectedEntityUri,\n highlightedEntityIndex,\n entitiesImportStatus,\n onEntityImportStatusChange,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck,\n openConfigColumnPopup\n }),\n [\n checkedEntitiesUris,\n entitiesImportStatus,\n headerCheckboxState,\n highlightedEntityIndex,\n canCheck,\n onCheck,\n onEntityClick,\n onEntityImportStatusChange,\n selectedEntityUri,\n openConfigColumnPopup\n ]\n );\n\n return (\n <BasicTable\n fixFirstColumn={true}\n onScroll={onScroll}\n rowsData={rowsData}\n columnsData={columnsData}\n onSort={handleSort}\n highlightRow={highlightedEntityIndex !== -1 ? highlightedEntityIndex : null}\n ref={tableRef}\n sortFieldClassName={styles.sortableCell}\n containerClassName={styles.table}\n classes={tableClasses}\n defaultColumnWidth={DEFAULT_COLUMN_WIDTH}\n headRowHeight={HEAD_ROW_HEIGHT}\n defaultColumnMinWidth={DEFAULT_COLUMN_MIN_WIDTH}\n defaultRowHeight={DEFAULT_ROW_HEIGHT}\n sorting={{\n field: sortField,\n order: sortOrder\n }}\n dndColumnReorderingHandler={onReorderingColumn}\n dndColumnReorderingEnabled={dndColumnReorderingEnabled}\n onChangeColumnsSize={onChangeColumnsSize}\n columnsSize={columnsSize}\n resizeDebounceDelay={RESIZE_DEBOUNCE_DELAY}\n onRowHover={hoverStateEnabled ? handleRowHover : undefined}\n hoverStateEnabled={hoverStateEnabled}\n hoverRowIndex={hoverRowIndex}\n renderRowOverlay={renderRowOverlay}\n logger={logger}\n context={tableContext}\n maxRowValuesCount={MAX_LENGTH_VALUE}\n renderRowCell={renderRowCell}\n getRowCellHeight={getAttributeHeight}\n />\n );\n }\n);\n\nEntitiesTable.propTypes = {\n entities: PropTypes.array,\n entityToHighlight: PropTypes.string,\n selectedEntityUri: PropTypes.string,\n headColumns: PropTypes.array,\n columnsSize: PropTypes.array,\n onScroll: PropTypes.func,\n onSort: PropTypes.func,\n onReorderingColumn: PropTypes.func,\n onChangeColumnsSize: PropTypes.func,\n dndColumnReorderingEnabled: PropTypes.bool,\n onEntityClick: PropTypes.func,\n onEntityHover: PropTypes.func,\n sortField: PropTypes.string,\n sortOrder: PropTypes.oneOf([SORT_DIRECTION_ASC, SORT_DIRECTION_DESC]),\n entitiesImportStatus: PropTypes.object,\n onEntityImportStatusChange: PropTypes.func,\n logger: PropTypes.func,\n canCheck: PropTypes.bool,\n checkedEntitiesUris: PropTypes.arrayOf(PropTypes.string),\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n onCheck: PropTypes.func,\n openConfigColumnPopup: PropTypes.func\n};\n\nEntitiesTable.defaultProps = {\n entities: [],\n headColumns: []\n};\n\nEntitiesTable.displayName = 'EntitiesTable';\n\nexport default memo(EntitiesTable);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Popover as Popover} from '@material-ui/core';\nimport {List as List} from '@material-ui/core';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nexport const INSERT_LEFT = 'left';\nexport const INSERT_RIGHT = 'right';\nexport const HIDE = 'hide';\n\nconst TEXT = {\n [INSERT_LEFT]: i18n.text('Insert 1 left'),\n [INSERT_RIGHT]: i18n.text('Insert 1 right'),\n [HIDE]: i18n.text('Hide column')\n};\n\nconst renderListItem = (action, handler, index) => (\n <ListItem button component={'div'} key={index} onClick={handler}>\n <ListItemText primary={TEXT[action]} primaryTypographyProps={{variant: 'body2'}} />\n </ListItem>\n);\n\nconst ConfigColumnPopup = ({open, anchorEl, onClick, onClose, actions}) => {\n const getClickHandler = (action) => () => {\n onClick(action);\n };\n\n return (\n <Popover open={open} anchorEl={anchorEl} onClose={onClose}>\n <List component=\"div\">\n {actions.map((action, index) => renderListItem(action, getClickHandler(action), index))}\n </List>\n </Popover>\n );\n};\n\nConfigColumnPopup.propTypes = {\n open: PropTypes.bool,\n anchorEl: PropTypes.any,\n onClick: PropTypes.func,\n onClose: PropTypes.func,\n actions: PropTypes.array\n};\n\nexport default ConfigColumnPopup;\n","import EntitiesTable from '../EntitiesTable/EntitiesTable';\nimport React from 'react';\nimport {ConfigureColumnsPopup} from '@reltio/components';\nimport * as i18n from 'ui-i18n';\nimport ConfigColumnPopup, {HIDE, INSERT_LEFT, INSERT_RIGHT} from './ConfigColumnPopup/ConfigColumnPopup';\nimport PropTypes from 'prop-types';\nimport {SORT_DIRECTION_ASC, SORT_DIRECTION_DESC} from 'react-components/dist/Table/Table';\nimport {memoizeWith, pick, toString} from 'ramda';\nimport {envSpecificKey} from '../../utils/general';\n\nclass EntitiesTableWithConfigurableColumns extends React.PureComponent {\n state = {\n addColumnPopupOpen: false,\n configColumnPopupOpen: false,\n configurableColumnIndex: false,\n popupAnchor: null,\n filterText: ''\n };\n\n addColumnHandler = (data) => {\n const {newColumnPlaceIndex} = this.state;\n const {onChangeColumnsList, headColumns} = this.props;\n const columns = headColumns.slice();\n columns.splice(newColumnPlaceIndex, 0, data);\n onChangeColumnsList({columns});\n this.closeAddColumnPopup();\n };\n\n openAddColumnPopup = ({newColumnPlaceIndex}) => {\n this.setState({newColumnPlaceIndex, configColumnPopupOpen: false, addColumnPopupOpen: true});\n };\n\n closeAddColumnPopup = () => {\n this.setState({popupAnchor: null, addColumnPopupOpen: false, filterText: ''});\n };\n\n setFilterText = (filterText) => {\n this.setState({filterText});\n };\n\n openConfigColumnPopup = (event) => {\n this.setState({\n popupAnchor: event.currentTarget,\n configColumnPopupOpen: true,\n configurableColumnIndex: parseInt(event.currentTarget.getAttribute('data-column-index'))\n });\n };\n\n closeConfigColumnPopup = () => {\n this.setState({configColumnPopupOpen: false});\n };\n\n configColumnHandler = (action) => {\n const {configurableColumnIndex} = this.state;\n switch (action) {\n case INSERT_LEFT:\n this.openAddColumnPopup({newColumnPlaceIndex: configurableColumnIndex});\n break;\n case INSERT_RIGHT:\n this.openAddColumnPopup({newColumnPlaceIndex: configurableColumnIndex + 1});\n break;\n case HIDE:\n this.hideCurrentConfigColumn();\n break;\n }\n };\n\n hideCurrentConfigColumn = () => {\n const {configurableColumnIndex} = this.state;\n const {onChangeColumnsList, headColumns} = this.props;\n const columns = headColumns.slice();\n columns.splice(configurableColumnIndex, 1);\n onChangeColumnsList({columns});\n this.closeConfigColumnPopup();\n };\n\n static getColumnSizeFromHeadColumns(headColumns) {\n return headColumns.map((column) => ({\n id: column.id,\n size: column.size\n }));\n }\n\n static getMemoIdForColumnSize(headColumns, entityTypeUri, envSpecificKey) {\n return `${envSpecificKey}${entityTypeUri}${toString(\n headColumns.map((columns) => pick(['id', 'size'], columns))\n )}`;\n }\n\n memoizedGetColumnSize = memoizeWith(\n EntitiesTableWithConfigurableColumns.getMemoIdForColumnSize,\n EntitiesTableWithConfigurableColumns.getColumnSizeFromHeadColumns\n );\n\n render() {\n const {\n entities,\n entityToHighlight,\n selectedEntityUri,\n onScroll,\n headColumns,\n sortField,\n sortOrder,\n dndColumnReorderingEnabled,\n onEntityClick,\n onEntityHover,\n entitiesTableRef,\n additionalColumns,\n onChangeColumnsList,\n onReorderingColumn,\n onSort,\n onChangeColumnsSize,\n entityTypeUri,\n entitiesImportStatus = {},\n onEntityImportStatusChange,\n logger,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck\n } = this.props;\n\n const {\n addColumnPopupOpen,\n configColumnPopupOpen,\n popupAnchor,\n filterText,\n configurableColumnIndex\n } = this.state;\n\n const columnsSize = this.memoizedGetColumnSize(headColumns, entityTypeUri, envSpecificKey());\n return (\n <>\n <EntitiesTable\n entities={entities}\n entityToHighlight={entityToHighlight}\n selectedEntityUri={selectedEntityUri}\n onScroll={onScroll}\n onSort={onSort}\n onEntityClick={onEntityClick}\n onEntityHover={onEntityHover}\n headColumns={headColumns}\n sortField={sortField}\n sortOrder={sortOrder}\n onReorderingColumn={onReorderingColumn}\n ref={entitiesTableRef}\n onChangeColumnsList={onChangeColumnsList}\n dndColumnReorderingEnabled={dndColumnReorderingEnabled}\n onChangeColumnsSize={onChangeColumnsSize}\n columnsSize={columnsSize}\n entitiesImportStatus={entitiesImportStatus}\n onEntityImportStatusChange={onEntityImportStatusChange}\n logger={logger}\n canCheck={canCheck}\n checkedEntitiesUris={checkedEntitiesUris}\n headerCheckboxState={headerCheckboxState}\n onCheck={onCheck}\n openConfigColumnPopup={this.openConfigColumnPopup}\n />\n <ConfigureColumnsPopup\n open={addColumnPopupOpen}\n anchorEl={popupAnchor}\n data={additionalColumns}\n onListItemClick={this.addColumnHandler}\n filterText={filterText}\n onClose={this.closeAddColumnPopup}\n onSearch={this.setFilterText}\n hideCheckBox={true}\n titleText={i18n.text('Add column')}\n />\n <ConfigColumnPopup\n onClick={this.configColumnHandler}\n onClose={this.closeConfigColumnPopup}\n anchorEl={popupAnchor}\n open={configColumnPopupOpen}\n actions={configurableColumnIndex > 0 ? [INSERT_LEFT, INSERT_RIGHT, HIDE] : [INSERT_RIGHT]}\n />\n </>\n );\n }\n\n static propTypes = {\n entities: PropTypes.array,\n entityToHighlight: PropTypes.string,\n selectedEntityUri: PropTypes.string,\n entityTypeUri: PropTypes.string,\n headColumns: PropTypes.array,\n dndColumnReorderingEnabled: PropTypes.bool,\n onScroll: PropTypes.func,\n onSort: PropTypes.func,\n onReorderingColumn: PropTypes.func,\n onChangeColumnsSize: PropTypes.func,\n onChangeColumnsList: PropTypes.func,\n onEntityClick: PropTypes.func,\n onEntityHover: PropTypes.func,\n sortField: PropTypes.string,\n sortOrder: PropTypes.oneOf([SORT_DIRECTION_ASC, SORT_DIRECTION_DESC]),\n entitiesTableRef: PropTypes.shape({\n current: PropTypes.shape({\n resetScrollbarPosition: PropTypes.func\n })\n }),\n additionalColumns: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string\n })\n ),\n entitiesImportStatus: PropTypes.object,\n onEntityImportStatusChange: PropTypes.func,\n logger: PropTypes.func,\n canCheck: PropTypes.bool,\n checkedEntitiesUris: PropTypes.arrayOf(PropTypes.string),\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n onCheck: PropTypes.func\n };\n}\n\nexport default EntitiesTableWithConfigurableColumns;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport mdmModule from '@reltio/mdm-module';\nimport {EntityType, importEntityFromDataTenant} from '@reltio/mdm-sdk';\nimport {showImportFromDataTenantError} from '../../utils/error';\nimport {ImportButton, ImportModes} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {values} from 'ramda';\n\nconst ImportEntityButton = ({entity, importStatus, onImportStatusChange, hideDelay = 3000, ...otherProps}) => {\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const tenant = useSelector(mdmModule.selectors.getTenant);\n\n return (\n <ImportButton\n {...otherProps}\n mode={importStatus}\n tooltip={i18n.text('Import this record')}\n onClick={(e) => {\n e.stopPropagation();\n onImportStatusChange(ImportModes.PROGRESS);\n importEntityFromDataTenant({\n dtssPath,\n customerTenant: tenant,\n entity\n })\n .then(({success, uris}) => {\n if (success) {\n entity.ctSubscribedUris = uris;\n onImportStatusChange(ImportModes.SUCCESS);\n setTimeout(() => onImportStatusChange(ImportModes.DONE), hideDelay);\n } else {\n throw new Error('Failed to import entity');\n }\n })\n .catch(() => {\n onImportStatusChange(ImportModes.INIT);\n showImportFromDataTenantError();\n });\n }}\n />\n );\n};\n\nImportEntityButton.propTypes = {\n entity: EntityType,\n importStatus: PropTypes.oneOf(values(ImportModes)),\n onImportStatusChange: PropTypes.func,\n hideDelay: PropTypes.number\n};\n\nexport default ImportEntityButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n importButtonPlaceholder: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 10px',\n width: '24px',\n flexShrink: 0,\n position: 'relative'\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\n\nimport ImportEntityButton from '../ImportEntityButton/ImportEntityButton';\nimport {\n checkCanImportEntityOfType,\n getEntityType,\n isDataTenantEntity,\n isEntityImportedToCT,\n Metadata,\n Entity\n} from '@reltio/mdm-sdk';\nimport {ImportModes} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n entityImportStatus: ImportModes;\n onEntityImportStatusChange: (uri: string, status: ImportModes) => void;\n};\n\nexport const EntityRowButtons = ({entity, entityImportStatus, onEntityImportStatusChange}: Props) => {\n const styles = useStyles();\n\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const canImportFromDataTenant: boolean = useSelector(mdmModule.selectors.getCanUserImportEntitiesFromDT);\n const canImport = isDataTenantEntity(entity) && canImportFromDataTenant;\n const entityType = getEntityType(metadata, entity.type);\n const canImportEntity = checkCanImportEntityOfType(entityType) && !isEntityImportedToCT(entity);\n const isImportInProgress = entityImportStatus && entityImportStatus !== ImportModes.DONE;\n const showImportButton = isImportInProgress || canImportEntity;\n\n return (\n <>\n {canImport && (\n <div className={styles.importButtonPlaceholder}>\n {showImportButton && (\n <ImportEntityButton\n entity={entity}\n importStatus={entityImportStatus}\n onImportStatusChange={(status) => onEntityImportStatusChange(entity.uri, status)}\n />\n )}\n </div>\n )}\n </>\n );\n};\n\nexport default EntityRowButtons;\n","import {makeStyles} from '@material-ui/core/styles';\nimport {READABLE_QUERY_PRIMITIVE_TYPES} from '@reltio/mdm-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n query: {\n color: theme.palette.text.secondary,\n fontSize: '12px',\n letterSpacing: 0,\n lineHeight: '16px'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.entityTypeLabel]: {\n color: '#03904A'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeLabel]: {\n color: '#059BEA'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.specialAttributeLabel]: {\n color: '#EA05CF'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeFilter]: {\n color: '#7F00FF'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeValue]: {\n color: '#000000'\n }\n}));\n\nexport {useStyles};\n","import React, {forwardRef} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ReadableSearchQuery = forwardRef(({readableQuery = [], className, ...otherProps}, ref) => {\n const styles = useStyles();\n return (\n <span ref={ref} className={classnames(styles.query, className)} {...otherProps}>\n {readableQuery.map(({type, text}, i) => (\n <span key={i} className={styles[type]}>\n {text}\n </span>\n ))}\n </span>\n );\n});\n\nReadableSearchQuery.displayName = 'ReadableSearchQuery';\n\nReadableSearchQuery.propTypes = {\n readableQuery: PropTypes.array,\n className: PropTypes.string\n};\n\nexport default ReadableSearchQuery;\n","export default {\n CREATE_FACETS: 'FACETS_CREATE_FACETS',\n DESTROY_FACETS: 'FACETS_DESTROY_FACETS',\n CHANGE_VALUES: 'FACETS_CHANGE_VALUES',\n CLEAR_ALL_VALUES: 'FACETS_CLEAR_ALL_VALUES',\n UPDATE_DATA: 'FACETS_UPDATE_DATA',\n UPDATE_FILTERED_DATA: 'FACETS_UPDATE_FILTERED_DATA',\n DESTROY_FILTERED_DATA: 'FACETS_DESTROY_FILTERED_DATA',\n FILTER_FACET_DATA: 'FACETS_FILTER_FACET_DATA',\n HANDLE_CONFIGS_CHANGES: 'FACETS_HANDLE_CONFIGS_CHANGES',\n REQUEST_GIVEN_FACETS_DATA: 'FACETS_REQUEST_GIVEN_FACETS_DATA',\n SET_RECOMMENDED_FACETS_LIST: 'FACETS_SET_RECOMMENDED_FACETS_LIST',\n CONVERT_FROM_ADVANCED_SEARCH: 'FACETS_CONVERT_FROM_ADVANCED_SEARCH',\n SHOW_MORE_ENTITY_TYPES: 'FACETS_SHOW_MORE_ENTITY_TYPES',\n HIGHLIGHT_ADDED_FACETS: 'FACETS_HIGHLIGHT_ADDED_FACETS',\n CLEAR_HIGHLIGHT_ADDED_FACETS: 'FACETS_CLEAR_HIGHLIGHT_ADDED_FACETS'\n};\n","export default {\n UPDATE_ENTITIES: 'SEARCH_UPDATE_ENTITIES',\n UPDATE_URL: 'SEARCH_UPDATE_URL',\n CLEAR_RESULTS: 'SEARCH_CLEAR_RESULTS',\n REFRESH_DISPLAYED_ENTITIES: 'SEARCH_REFRESH_DISPLAYED_ENTITIES',\n REFRESH: 'SEARCH_REFRESH',\n CLEAR_ALL: 'SEARCH_CLEAR_ALL',\n SHOW_MORE_RESULTS_FOR_ENTITY_TYPE: 'SEARCH_SHOW_MORE_RESULTS_FOR_ENTITY_TYPE',\n UPDATE_TOTAL: 'SEARCH_UPDATE_TOTAL',\n CHANGE_PAGE: 'SEARCH_CHANGE_PAGE',\n RESET_PAGE: 'SEARCH_RESET_PAGE',\n CHANGE_ROWS_PER_PAGE: 'SEARCH_CHANGE_ROWS_PER_PAGE',\n CHANGE_SORT: 'SEARCH_CHANGE_SORT',\n CHANGE_LOADING: 'SEARCH_CHANGE_LOADING',\n MAP_CHANGE_VALUE: 'SEARCH_MAP_CHANGE_VALUE',\n STATE_UPDATED: 'SEARCH_STATE_UPDATED',\n EXPORT_RESULTS: 'SEARCH_EXPORT_RESULTS',\n OPEN_DATA_LOADER: 'SEARCH_OPEN_DATA_LOADER',\n CHANGE_CURRENT_TENANT: 'SEARCH_CHANGE_CURRENT_TENANT'\n};\n","import i18n from 'ui-i18n';\nimport {pipe, values, without} from 'ramda';\n\nexport const appId = 'explorer';\n\nexport const ROWS_PER_PAGE_OPTIONS = [25, 50, 100];\n\nexport const NUMERIC_RANGE_MIN_VALUE = 0;\nexport const NUMERIC_RANGE_MAX_VALUE = 10000;\n\nconst currentDate = () => new Date().setHours(0, 0, 0, 0);\nconst yearAgoDate = () => {\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0);\n return currentDate.setFullYear(currentDate.getFullYear() - 1);\n};\n\nexport const DATE_RANGE_MIN_VALUE = yearAgoDate();\nexport const DATE_RANGE_MAX_VALUE = currentDate();\n\nexport const SEARCH_RESULTS_MODES = {\n TABLE: 'table',\n LIST: 'list',\n MAP: 'map'\n};\n\nexport const DEFAULT_VIEW = SEARCH_RESULTS_MODES.TABLE;\n\nexport const PREVIEW_PANEL_MODES = {\n PROFILE: 'profile',\n MAP: 'map'\n};\n\nexport const DEFAULT_FACET_PAGE_SIZE = 20;\n\nexport const operators = [\n {\n label: 'And',\n value: 'and'\n },\n {\n label: 'Or',\n value: 'or'\n },\n {\n label: 'And not',\n value: 'and not'\n },\n {\n label: 'Or not',\n value: 'or not'\n }\n];\nexport const defaultOperator = operators[0];\nexport const defaultGroupOperator = operators[1];\n\nexport const STORED_SEARCHES_TYPES = {\n saved: 'saved',\n recent: 'recent'\n};\n\nexport const SAVED_SEARCHES_SHARING_OPTIONS_VALUES = {\n public: 'public',\n private: 'private'\n};\n\nexport const SAVED_SEARCHES_SORTED_FIELDS = {\n name: 'name',\n updateDate: 'updateDate'\n};\n\nexport const SAVED_SEARCHES_SORT_BY_VALUES = {\n [SAVED_SEARCHES_SORTED_FIELDS.name]: 'NAME',\n [SAVED_SEARCHES_SORTED_FIELDS.updateDate]: 'UPDATE_DATE'\n};\n\nexport const SAVED_SEARCHES_SORT_ORDER_VALUES = {\n ASC: 'asc',\n DESC: 'desc'\n};\n\nexport const SAVED_SEARCHES_SHARING_OPTIONS = [\n {\n label: i18n.text('Only me'),\n value: SAVED_SEARCHES_SHARING_OPTIONS_VALUES.private\n },\n {\n label: i18n.text('All users'),\n value: SAVED_SEARCHES_SHARING_OPTIONS_VALUES.public\n }\n];\n\nexport const NOTIFICATION_TYPES = {\n info: 'info',\n error: 'error'\n};\n\nexport const ML_RULES_ONLY = {pmRulesScope: 'ML_RULES_ONLY'};\n\nexport const ENTITY_TYPE_FACET_ROW_COUNT = 7;\n\nexport const SEARCH_DEBOUNCE_TIME = 300;\n\nexport const BULK_UPDATE_SELECTION_MODES = {\n include: 'include',\n exclude: 'exclude'\n};\n\nexport const BULK_UPDATE_COMMON_OPERATIONS = {\n UpdateProfiles: 'UpdateProfiles',\n DeleteProfiles: 'DeleteProfiles'\n};\n\nexport const BULK_UPDATE_OPERATIONS = {\n AddNew: 'AddNew',\n Clear: 'Clear',\n ReplaceAllWith: 'ReplaceAllWith',\n FindAndReplace: 'FindAndReplace',\n FindAndRemove: 'FindAndRemove',\n RepointReference: 'RepointReference'\n};\n\nexport const BULK_UPDATE_OPERATION_LABELS = {\n [BULK_UPDATE_OPERATIONS.AddNew]: i18n.text('Add new'),\n [BULK_UPDATE_OPERATIONS.Clear]: i18n.text('Clear attribute'),\n [BULK_UPDATE_OPERATIONS.ReplaceAllWith]: i18n.text('Replace all with'),\n [BULK_UPDATE_OPERATIONS.FindAndReplace]: i18n.text('Find and replace'),\n [BULK_UPDATE_OPERATIONS.FindAndRemove]: i18n.text('Find and remove'),\n [BULK_UPDATE_OPERATIONS.RepointReference]: i18n.text('Repoint reference')\n};\n\nexport const BULK_UPDATE_ALLOWED_OPERATION_VALUE_FIELDS = {\n [BULK_UPDATE_OPERATIONS.AddNew]: ['attributeValue'],\n [BULK_UPDATE_OPERATIONS.Clear]: [],\n [BULK_UPDATE_OPERATIONS.ReplaceAllWith]: ['attributeValue'],\n [BULK_UPDATE_OPERATIONS.FindAndReplace]: ['attributeValue', 'attributeValueToFind'],\n [BULK_UPDATE_OPERATIONS.FindAndRemove]: ['attributeValueToFind'],\n [BULK_UPDATE_OPERATIONS.RepointReference]: ['attributeValue']\n};\n\nexport const BULK_UPDATE_SIMPLE_ATTRIBUTE_OPERATIONS = pipe(\n values,\n without(BULK_UPDATE_OPERATIONS.RepointReference)\n)(BULK_UPDATE_OPERATIONS);\n\nexport const BULK_UPDATE_NESTED_ATTRIBUTE_OPERATIONS = [\n BULK_UPDATE_OPERATIONS.AddNew,\n BULK_UPDATE_OPERATIONS.Clear,\n BULK_UPDATE_OPERATIONS.ReplaceAllWith\n];\nexport const BULK_UPDATE_REFERENCE_ATTRIBUTE_OPERATIONS = [\n BULK_UPDATE_OPERATIONS.AddNew,\n BULK_UPDATE_OPERATIONS.Clear,\n BULK_UPDATE_OPERATIONS.RepointReference\n];\n\nexport const BULK_UPDATE_API_OPERATIONS = {\n AddAttribute: 'AddAttribute',\n UpdateAttribute: 'UpdateAttribute',\n DeleteAttribute: 'DeleteAttribute',\n RepointReferencedEntity: 'RepointReferencedEntity',\n AddTags: 'AddTags',\n ReplaceTag: 'ReplaceTag',\n DeleteTags: 'DeleteTags',\n ClearTags: 'ClearTags'\n};\n\nexport const BULK_UPDATE_REFERENCED_ENTITY_ID_FIELD_NAME = 'referenced_entity_id';\n\nexport const DEFAULT_SEARCH_SELECT = [\n 'uri',\n 'label',\n 'type',\n 'secondaryLabel',\n 'defaultProfilePic',\n 'defaultProfilePicValue',\n 'attributes.Address',\n 'attributes.GeoLocation',\n 'attributes.ImageGallery'\n];\n","import {curry, pathOr, remove} from 'ramda';\nimport nanoid from 'nanoid';\n\nimport {isCompatibleFilters, getFilterOptionsForQueryBuilder} from '@reltio/mdm-sdk';\nimport {defaultOperator} from '../../constants/constants';\nimport {createLens, path as createLPath} from '../../utils/lenses';\n\nexport const PROP_NAME_OPERATOR = 'operator';\nexport const PROP_NAME_VALUES = 'values';\nexport const PROP_NAME_FILTER = 'filter';\n\nexport const getEmptyAttributeObject = (id = nanoid()) => ({\n [PROP_NAME_OPERATOR]: defaultOperator.value,\n id\n});\n\nexport const getAttributeObject = (attribute, id = nanoid()) => {\n const data = getAttributeData(attribute);\n return {\n data,\n [PROP_NAME_OPERATOR]: defaultOperator.value,\n [PROP_NAME_FILTER]: pathOr('', ['filterOptions', 0], data),\n id\n };\n};\n\nexport const getAttributeData = (attribute) => ({\n ...attribute,\n filterOptions:\n attribute.enforcedFilterOptions || getFilterOptionsForQueryBuilder(attribute.attrType, attribute.fieldName)\n});\n\nexport const defaultFindGroupPath = curry((id, groups) => {\n const groupIndex = groups.findIndex((group) => group.id === id);\n return groupIndex > -1 ? [groupIndex] : null;\n});\n\nexport const createGetGroupLens = (groupsLensPath, findGroupPath = defaultFindGroupPath) => (state, id) => {\n const searchGroupsL = createLPath(...groupsLensPath);\n const groups = searchGroupsL.get(state);\n const groupPath = findGroupPath(id, groups);\n return groupPath ? createLPath(...groupsLensPath, ...groupPath) : false;\n};\n\nexport const createGetAttributesLens = (getGroupLens, propNameAttributes) => (state, groupId) => {\n const groupLens = getGroupLens(state, groupId);\n return groupLens && groupLens.compose(createLens(propNameAttributes));\n};\n\nexport const createGetAttributeIndex = (getAttributesLens) => (state, groupId, attributeId) => {\n const attributesLens = getAttributesLens(state, groupId);\n if (attributesLens) {\n const attributes = attributesLens.get(state);\n return attributes.findIndex((attribute) => attribute.id === attributeId);\n }\n return -1;\n};\n\nexport const createGetAttributeLens = (getAttributesLens) => (state, groupId, attributeId) => {\n const attributesLens = getAttributesLens(state, groupId);\n const getAttributeIndex = createGetAttributeIndex(getAttributesLens);\n const attributeIndex = getAttributeIndex(state, groupId, attributeId);\n return attributeIndex !== -1 ? attributesLens.compose(createLPath(attributeIndex)) : null;\n};\n\nexport const createSetAttributeProp = (getAttributeLens) => (state, groupId, attributeId, propName, value) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n if (groupAttributeL) {\n const newAttribute = {...groupAttributeL.get(state)};\n newAttribute[propName] = value;\n return groupAttributeL.set(state, newAttribute);\n }\n\n return state;\n};\n\nexport const createGetAttributeProp = (getAttributeLens) => (state, groupId, attributeId, propName) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n if (groupAttributeL) {\n return groupAttributeL.get(state)[propName];\n }\n};\n\nconst isAttributeIncludesFilter = (state, groupId, attributeId, attribute, getAttributeLens) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n let currentFilter;\n if (groupAttributeL) currentFilter = groupAttributeL.get(state).filter;\n\n return attribute.filterOptions.length && (!currentFilter || !attribute.filterOptions.includes(currentFilter));\n};\n\nexport const addAttributeAfter = ({state, groupId, attributeId, attribute, getAttributesLens, getAttributeIndex}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n let newAttributes = [...groupAttributesL.get(state)];\n const attrIndex = getAttributeIndex(state, groupId, attributeId);\n const isLastAttribute = !newAttributes[attrIndex + 1];\n if (attrIndex !== -1 && isLastAttribute) {\n newAttributes.splice(attrIndex + 1, 0, attribute);\n } else if (attrIndex !== -1) {\n newAttributes.splice(attrIndex + 1, 0, {\n ...attribute,\n operator: newAttributes[attrIndex].operator\n });\n\n newAttributes[attrIndex] = {\n ...newAttributes[attrIndex],\n operator: defaultOperator.value\n };\n } else {\n newAttributes.push(attribute);\n }\n return groupAttributesL.set(state, newAttributes);\n }\n return state;\n};\n\nexport const changeAttributeData = ({\n state,\n groupId,\n attributeId,\n attributeData,\n setAttributeProp,\n getAttributeLens\n}) => {\n let newState = state;\n if (attributeData) {\n if (isAttributeIncludesFilter(state, groupId, attributeId, attributeData, getAttributeLens))\n newState = setAttributeProp(state, groupId, attributeId, PROP_NAME_FILTER, attributeData.filterOptions[0]);\n newState = setAttributeProp(newState, groupId, attributeId, PROP_NAME_VALUES, []);\n return setAttributeProp(newState, groupId, attributeId, 'data', attributeData);\n } else {\n const attrLens = getAttributeLens(state, groupId, attributeId);\n if (attrLens) {\n newState = attrLens.set(newState, getEmptyAttributeObject(attributeId));\n }\n return newState;\n }\n};\n\nexport const setAttributeOperator = ({state, groupId, attributeId, operator, setAttributeProp}) => {\n return setAttributeProp(state, groupId, attributeId, PROP_NAME_OPERATOR, operator);\n};\n\nexport const deleteAttribute = ({state, groupId, attributeId, getAttributesLens}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n const attributes = [...groupAttributesL.get(state)];\n const attributeIndex = attributes.findIndex((attribute) => attribute.id === attributeId);\n\n if (attributeIndex > -1) {\n const editedAttributes = remove(attributeIndex, 1, attributes);\n const prevAttribute = editedAttributes[attributeIndex - 1];\n const removedAttribute = attributes[attributeIndex];\n\n if (prevAttribute) {\n editedAttributes[attributeIndex - 1] = {\n ...prevAttribute,\n operator: removedAttribute.operator\n };\n }\n\n return groupAttributesL.set(state, editedAttributes);\n }\n }\n return state;\n};\n\nexport const duplicateAttribute = ({state, groupId, attributeId, id, getAttributesLens}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n const attributes = [...groupAttributesL.get(state)];\n const attributeIndex = attributes.findIndex((attribute) => attribute.id === attributeId);\n if (attributeIndex > -1) {\n attributes.push({...attributes[attributeIndex], id});\n return groupAttributesL.set(state, attributes);\n }\n }\n return state;\n};\n\nexport const setFilter = ({state, groupId, attributeId, filter, getAttributeProp, setAttributeProp}) => {\n const currentFilter = getAttributeProp(state, groupId, attributeId, PROP_NAME_FILTER);\n\n const newState = isCompatibleFilters(currentFilter, filter)\n ? state\n : setAttributeProp(state, groupId, attributeId, PROP_NAME_VALUES, []);\n return setAttributeProp(newState, groupId, attributeId, PROP_NAME_FILTER, filter);\n};\n\nexport const setValues = ({state, groupId, attributeId, values, setAttributeProp}) => {\n return setAttributeProp(state, groupId, attributeId, PROP_NAME_VALUES, values);\n};\n","import {put} from 'redux-saga/effects';\nimport {__, path, pipe, propEq, propOr} from 'ramda';\nimport {defaultFindGroupPath} from '../reducers/helpers/queryBuilderHelpers';\n\nexport function* toggleQueryBuilderAttributeSelect({\n groups,\n findGroupPath = defaultFindGroupPath,\n attributesPropName,\n groupId,\n attributeId,\n selectInfo,\n actions\n}) {\n const {checked, attribute: selectedAttribute, index: selectIndex, selectedAttributes} = selectInfo;\n const {addAttributeAfter, changeAttribute, clearAttribute, deleteAttribute} = actions;\n\n const groupAttributes = pipe(findGroupPath(groupId), path(__, groups), propOr([], attributesPropName))(groups);\n const getGroupAttributeIdAt = (index) => path([index, 'id'], groupAttributes);\n\n const attributeIndex = groupAttributes.findIndex(propEq('id', attributeId));\n const shouldChangeAttribute = attributeId && selectIndex === 0;\n\n if (shouldChangeAttribute) {\n if (checked) {\n yield put(changeAttribute(groupId, attributeId, selectedAttribute));\n } else {\n let nextSelectedAttribute = selectedAttributes[selectIndex + 1];\n if (nextSelectedAttribute) {\n yield put(changeAttribute(groupId, attributeId, nextSelectedAttribute));\n yield put(deleteAttribute(groupId, getGroupAttributeIdAt(attributeIndex + 1)));\n } else {\n yield put(clearAttribute(groupId, attributeId));\n }\n }\n } else {\n const selectIndexFromEnd = selectedAttributes.length - selectIndex;\n const targetIndex = attributeId ? attributeIndex + selectIndex : groupAttributes.length - selectIndexFromEnd;\n\n checked\n ? yield put(addAttributeAfter(groupId, getGroupAttributeIdAt(targetIndex - 1), selectedAttribute))\n : yield put(deleteAttribute(groupId, getGroupAttributeIdAt(targetIndex)));\n }\n}\n","import {getAbsoluteImageUrl, getEntityTypeGraphIcon} from '@reltio/mdm-sdk';\nimport {getApiPath, getImagePath} from '../../utils/config';\nimport {Metadata} from '@reltio/mdm-sdk';\n\nconst getAbsoluteImagePath = (path: string): string => getAbsoluteImageUrl(getImagePath() || getApiPath(), path);\n\nexport const getTypeGraphIcon = (metadata: Metadata, entityTypeUri: string): string => {\n const entityTypeGraphIcon = getEntityTypeGraphIcon(metadata, {type: entityTypeUri});\n return getAbsoluteImagePath(entityTypeGraphIcon);\n};\n","import i18n from 'ui-i18n';\n\nimport {\n AuditAttrTypes,\n CollaborationAttrTypes,\n CrosswalksAttrTypes,\n EntityAttrTypes,\n PotentialMatchesAttrTypes,\n RdmAttrTypes,\n WorkflowAttrTypes\n} from '@reltio/mdm-sdk';\nimport {createDataTenantConfigPart, getOrderTypeByAttrType, getPageSizeByAttrType} from '../collectAttributes';\nimport {__, concat, evolve, identity, map, omit, pipe, propEq, T, values} from 'ramda';\n\nconst collectAttrTypesData = pipe(\n values,\n map((attrType) => ({\n title: attrType.label,\n fieldName: attrType.name,\n type: attrType.type,\n faceted: attrType.faceted,\n hideForDataTenant: attrType.hideForDataTenant\n }))\n);\n\nexport const entityAttributes = {\n id: 'entity',\n title: i18n.text('Entity'),\n attributes: collectAttrTypesData(EntityAttrTypes)\n};\n\nexport const workflowAttributes = {\n id: 'workflow',\n title: i18n.text('Workflow'),\n attributes: collectAttrTypesData(WorkflowAttrTypes)\n};\n\nexport const collaborationItemsAttributes = {\n id: 'collaborationItems',\n title: i18n.text('Collaboration Items'),\n attributes: collectAttrTypesData(CollaborationAttrTypes)\n};\n\nexport const RDMItemsAttributes = {\n id: 'RDMItems',\n title: i18n.text('Reference Data Management'),\n attributes: collectAttrTypesData(RdmAttrTypes)\n};\n\nexport const auditItemsAttributes = {\n id: 'auditItems',\n title: i18n.text('Audit Items'),\n attributes: collectAttrTypesData(AuditAttrTypes)\n};\n\nexport const potentialMatchesAttributes = {\n id: 'potentialMatches',\n title: i18n.text('Potential Matches'),\n attributes: collectAttrTypesData(PotentialMatchesAttrTypes)\n};\n\nexport const crosswalksItemsAttributes = {\n id: 'crosswalksItems',\n title: i18n.text('Crosswalks Items'),\n attributes: collectAttrTypesData(omit(['sourceTable'], CrosswalksAttrTypes))\n};\n\nconst getEntityAttributes = () => entityAttributes;\nconst getWorkflowAttributes = () => workflowAttributes;\nconst getCollaborationItemsAttributes = () => collaborationItemsAttributes;\nconst getRDMItemsAttributes = () => RDMItemsAttributes;\nconst getAuditItemsAttributes = () => auditItemsAttributes;\nconst getPotentialMatchesAttributes = (dataTenants) =>\n dataTenants\n ? evolve(\n {\n attributes: concat(\n __,\n dataTenants.map((dataTenant) => ({\n ...potentialMatchesAttributes.attributes.find(\n propEq('fieldName', PotentialMatchesAttrTypes.matches.name)\n ),\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matches',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant'\n }))\n )\n },\n potentialMatchesAttributes\n )\n : potentialMatchesAttributes;\nconst getCrosswalksItemsAttributes = () => crosswalksItemsAttributes;\n\nexport const createSpecialAttributeItem = ({\n title,\n fieldName,\n dataTenant,\n fieldNameForRequest,\n dataTenantFieldName,\n ...attrType\n}) => {\n const facetedSpecificPart = attrType.faceted\n ? {\n pageSize: getPageSizeByAttrType(attrType),\n orderType: getOrderTypeByAttrType(attrType)\n }\n : {};\n const dataTenantPart = dataTenant\n ? createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest,\n dataTenantFieldName,\n originalTitle: title\n })\n : {};\n return {\n title,\n fieldName,\n attrType,\n ...facetedSpecificPart,\n ...dataTenantPart\n };\n};\n\nexport const createAttributesGroup = (id, title, attributes) =>\n attributes && attributes.length\n ? {\n id,\n title,\n attributes\n }\n : null;\n\nexport const collectSpecialAttributesGroups = ({\n attributesFilter = T,\n dataTenants,\n canUserReadWorkflowDataTask = true\n} = {}) => {\n const _createAttributesGroup = ({id, title, attributes}) =>\n createAttributesGroup(id, title, attributes.map(createSpecialAttributeItem).filter(attributesFilter));\n const attributesInitial = [\n getEntityAttributes(),\n ...(canUserReadWorkflowDataTask ? [getWorkflowAttributes()] : []),\n getCollaborationItemsAttributes(),\n getRDMItemsAttributes(),\n getAuditItemsAttributes(),\n getPotentialMatchesAttributes(dataTenants),\n getCrosswalksItemsAttributes()\n ];\n\n return attributesInitial.map(_createAttributesGroup).filter(identity);\n};\n\nexport const getSpecialAttribute = (fieldName, dataTenants, canUserReadWorkflowDataTask) => {\n const specialAttributeGroup = collectSpecialAttributesGroups({\n dataTenants,\n canUserReadWorkflowDataTask\n }).find((group) => group.attributes.find((attr) => attr.fieldName === fieldName));\n return specialAttributeGroup && specialAttributeGroup.attributes.find((attr) => attr.fieldName === fieldName);\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\"\n}, props), React.createElement(\"defs\", null, React.createElement(\"linearGradient\", {\n x1: \"94.582%\",\n y1: \"6.451%\",\n x2: \"23.195%\",\n y2: \"83.323%\",\n id: \"svg1842926308b\"\n}, React.createElement(\"stop\", {\n stopColor: \"#CDE1FF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#AFFBF4\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"94.582%\",\n y1: \"6.594%\",\n x2: \"23.195%\",\n y2: \"83.214%\",\n id: \"svg1842926308d\"\n}, React.createElement(\"stop\", {\n stopColor: \"#FFF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#FDFFFF\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"93.837%\",\n y1: \"55.274%\",\n x2: \"29.292%\",\n y2: \"-20.431%\",\n id: \"svg1842926308g\"\n}, React.createElement(\"stop\", {\n stopColor: \"#FFFCC7\",\n stopOpacity: \"0\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#FFF470\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"50%\",\n y1: \"0%\",\n x2: \"50%\",\n y2: \"98.152%\",\n id: \"svg1842926308i\"\n}, React.createElement(\"stop\", {\n stopColor: \"#83D6FF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#72B9EF\",\n offset: \"100%\"\n})), React.createElement(\"path\", {\n d: \"M.228 8.25l4.055-7.007C4.579.727 5.709.074 6.425.009L14.48.001c.633-.03 1.853.635 2.236 1.3l3.934 6.812c.398.69.345 2.074-.017 2.765l-3.868 6.685c-.472.64-1.77 1.39-2.446 1.416l-7.767.008c-.689-.033-1.992-.72-2.345-1.332L.232 10.769c-.338-.585-.278-1.938-.004-2.519z\",\n id: \"svg1842926308a\"\n}), React.createElement(\"path\", {\n d: \"M1.389 8.38l3.589-6.202c.262-.457 1.263-1.033 1.898-1.09h7.143c.56-.026 1.643.565 1.984 1.153l3.494 6.037c.353.611.308 1.837-.012 2.449l-3.424 5.916c-.418.567-1.569 1.23-2.168 1.252H7.006c-.61-.03-1.766-.64-2.08-1.182L1.395 10.61c-.3-.518-.249-1.717-.006-2.23z\",\n id: \"svg1842926308c\"\n}), React.createElement(\"path\", {\n d: \"M.124 0l-.161-.002c3.374 0 6.11 2.727 6.11 6.092 0 3.279-2.974 4.316-2.974 7.123a.84.84 0 01-.84.838H.123V8.623a1.75 1.75 0 000-3.437V0z\",\n id: \"svg1842926308e\"\n}), React.createElement(\"path\", {\n d: \"M5.92 0l-.012 5.154-.132.006A1.75 1.75 0 005.9 8.654l-.012 5.409H3.486c-.237-.07-.4-.155-.489-.254-.089-.098-.17-.284-.242-.557l-.291-1.341a2.084 2.084 0 00-.12-.344 1.507 1.507 0 00-.187-.267L.25 8.796a1.032 1.032 0 01-.201-.293 1.277 1.277 0 01-.048-.38V3.917a.522.522 0 01.027-.22.562.562 0 01.147-.172L3.546.111a.456.456 0 01.11-.088A.345.345 0 013.784 0h2.136z\",\n id: \"svg1842926308h\"\n})), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\"\n}, React.createElement(\"g\", null, React.createElement(\"g\", {\n transform: \"translate(1.5 .75)\"\n}, React.createElement(\"use\", {\n fill: \"url(#svg1842926308b)\",\n xlinkHref: \"#svg1842926308a\"\n}), React.createElement(\"use\", {\n fill: \"url(#svg1842926308d)\",\n opacity: \".5\",\n xlinkHref: \"#svg1842926308c\"\n})), React.createElement(\"g\", {\n transform: \"translate(8.707 3.846)\"\n}, React.createElement(\"rect\", {\n fill: \"#363636\",\n x: \"1.932\",\n y: \"16.593\",\n width: \"2.644\",\n height: \"2.895\",\n rx: \"1.322\"\n}), React.createElement(\"path\", {\n d: \"M6.018 14.845v2.367c0 .9-.743 1.629-1.66 1.629H2.27c-.917 0-1.66-.73-1.66-1.63v-2.366l.004-.095h5.401c.002.031.003.063.003.095z\",\n fill: \"#717171\"\n}), React.createElement(\"path\", {\n d: \"M5.168 17.15c0 .9-.618 1.63-1.38 1.63H2.049c-.762 0-1.38-.73-1.38-1.63v-2.37h4.5v2.37z\",\n fill: \"#828282\"\n}), React.createElement(\"path\", {\n d: \"M5.939 17.28a.5.5 0 010 1H.569a.5.5 0 110-1h5.37zm0-1.376a.5.5 0 010 1H.569a.5.5 0 110-1h5.37zm0-1.375a.5.5 0 010 1H.569a.5.5 0 110-1h5.37z\",\n fill: \"#B1B1B1\"\n}), React.createElement(\"path\", {\n d: \"M3.125 17.28v1h-2v-1h2zm0-1.376v1h-2v-1h2zm0-1.375v1h-2v-1h2z\",\n fill: \"#C5C5C5\"\n}), React.createElement(\"g\", {\n transform: \"translate(3.375)\"\n}, React.createElement(\"mask\", {\n id: \"svg1842926308f\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg1842926308e\"\n})), React.createElement(\"use\", {\n fill: \"#FFD44B\",\n xlinkHref: \"#svg1842926308e\"\n}), React.createElement(\"path\", {\n d: \"M-6.125 6.091A6.076 6.076 0 01-.025 0c3.367 0 6.098 2.727 6.098 6.091 0 3.279-2.969 4.316-2.969 7.123a.838.838 0 01-.839.837H-2.51a.838.838 0 01-.839-.837c0-2.562-2.775-3.73-2.775-7.123z\",\n fill: \"#FFD347\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"path\", {\n d: \"M-6.125 6.091A6.076 6.076 0 01-.025 0c3.367 0 6.098 2.727 6.098 6.091 0 3.279-2.969 4.316-2.969 7.123a.838.838 0 01-.839.837H-2.51a.838.838 0 01-.839-.837c0-2.562-2.775-3.73-2.775-7.123z\",\n fill: \"#FFDE72\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"path\", {\n d: \"M1.496 6.08c.02-.896.936-1.336 1.732-.85.906.553.507 2.04-.592 2.069H2.199l-.576 7.012-.75-.032.552-6.406.023-.574H.124v-.75h1.354l.017-.448v-.02zm1.342-.21c-.318-.193-.58-.072-.592.221l-.001.036-.016.422h.373c.357 0 .5-.493.252-.668l-.016-.01z\",\n fill: \"#F3BE13\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"ellipse\", {\n fill: \"url(#svg1842926308g)\",\n mask: \"url(#svg1842926308f)\",\n cx: \"-.236\",\n cy: \"6.031\",\n rx: \"4.567\",\n ry: \"4.583\"\n})))), React.createElement(\"g\", null, React.createElement(\"g\", {\n transform: \"translate(5.706 3.846)\"\n}, React.createElement(\"mask\", {\n id: \"svg1842926308j\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg1842926308h\"\n})), React.createElement(\"use\", {\n fill: \"url(#svg1842926308i)\",\n xlinkHref: \"#svg1842926308h\"\n}), React.createElement(\"path\", {\n fill: \"#D6FCFA\",\n fillRule: \"nonzero\",\n opacity: \".5\",\n mask: \"url(#svg1842926308j)\",\n d: \"M4.78 1.404v.75h-.444L1.56 4.93H-.706v-.75H1.25l2.775-2.776zM3.21 5.097l1.725 1.725H6.25v.75H4.625L2.68 5.628zM6.664 3.53v.75H4.958l-.492.53-.55-.51.714-.77zM1.781 6.53l2.565 2.564h.462v.75h-.773L1.47 7.28H-.08v-.75zM2.67 10.53h1.118L5.05 11.79h2.094v.75H4.74L3.477 11.28z\"\n}))), React.createElement(\"circle\", {\n fill: \"#008FD8\",\n cx: \"11.75\",\n cy: \"10.75\",\n r: \"1.125\"\n}))));","import {\n allPass,\n always,\n anyPass,\n chain,\n complement,\n curry,\n either,\n flatten,\n identity,\n isEmpty,\n pipe,\n prop,\n propEq,\n T\n} from 'ramda';\nimport memoizeOne from 'memoize-one';\n\nimport i18n from 'ui-i18n';\nimport MLRecommendedIcon from './icons/ml-recommended.svg';\nimport {prepareAttrUriForSearch} from './searchEngine';\nimport {DEFAULT_FACET_PAGE_SIZE} from '../../constants/constants';\nimport {\n findClosestCommonAncestor,\n getAllAttributeTypesTree,\n getAttributeTypeSubAttributes,\n getDataTenantSpecialAttributeFieldName,\n getEntityType,\n getEntityTypeLabel,\n getFacetTypeForAttrType,\n hasMatchRulesWithoutML,\n hasMlMatchRule,\n isAvailableEntityType,\n isComplexAttribute,\n SpecialAttrTypes\n} from '@reltio/mdm-sdk';\nimport {createAttributesGroup} from './advancedSearch/collectSpecialAttributes';\n\nexport const createFacetForSpecialAttrType = (attrType, facetProps) => ({\n title: attrType.label,\n fieldName: attrType.name,\n type: getFacetTypeForAttrType(attrType),\n attrType: {\n type: attrType.type,\n singleValue: attrType.singleValue,\n hideForDataTenant: attrType.hideForDataTenant,\n faceted: true\n },\n ...facetProps\n});\n\nexport const createDataTenantConfigPart = ({dataTenant, fieldNameForRequest, dataTenantFieldName, originalTitle}) => ({\n fieldName: getDataTenantSpecialAttributeFieldName(fieldNameForRequest, dataTenant.id),\n fieldNameForRequest,\n dataTenant: dataTenant.id,\n dataTenantFieldName,\n title: `${dataTenant.label} ${originalTitle}`\n});\n\nconst additionalAttributesRules = [\n {\n attribute: createFacetForSpecialAttrType(SpecialAttrTypes.matchRules, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n check: hasMatchRulesWithoutML\n },\n {\n attribute: createFacetForSpecialAttrType(SpecialAttrTypes.MLRecommendedMatch, {\n fieldNameForRequest: 'matchRules',\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount',\n LogoIcon: MLRecommendedIcon\n }),\n check: hasMlMatchRule\n }\n];\n\nexport const getAdditionalAttributes = curry((dataTenants, entityType) => {\n const additionalAttributes = additionalAttributesRules.reduce((attributes, {attribute, check}) => {\n check(entityType) && attributes.push({...attribute, entityTypeUri: entityType.uri});\n return attributes;\n }, []);\n const dataTenantAdditionalAttributes = (dataTenants || []).flatMap((dataTenant) =>\n additionalAttributes\n .filter(propEq('fieldName', SpecialAttrTypes.matchRules.name))\n .map((additionalAttribute) => ({\n ...additionalAttribute,\n ...createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matchRules',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant',\n originalTitle: additionalAttribute.title\n })\n }))\n );\n return additionalAttributes.concat(dataTenantAdditionalAttributes);\n});\n\nexport const getPageSizeByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return 1;\n default:\n return DEFAULT_FACET_PAGE_SIZE;\n }\n};\n\nexport const getOrderTypeByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return 'reversedTerm';\n default:\n return 'reversedCount';\n }\n};\n\nexport const getDisableIncludeFilterByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return true;\n default:\n return false;\n }\n};\n\nconst isFaceted = curry((metadata, attrType) => {\n if (isComplexAttribute(attrType)) {\n const attributes = getAttributeTypeSubAttributes(metadata, attrType);\n return attributes.some(isFaceted(metadata));\n } else {\n return !!attrType.faceted;\n }\n});\n\nexport const getChildrenAttributes = (entity = []) => {\n return (entity.children\n ? entity.children.concat(entity.children.map(getChildrenAttributes)).flat(Infinity)\n : []\n ).filter(complement(isEmpty));\n};\n\nexport const createComplexAttributesConfig = (\n metadata,\n attrNode,\n entityTypeUri,\n fieldName,\n createAttributeConfig,\n parents = []\n) => {\n const resConfig = {\n ...createAttributeConfig(metadata, attrNode, entityTypeUri, fieldName, parents),\n uri: attrNode.uri\n };\n const children = attrNode.children\n ? attrNode.children.map((childNode) =>\n createComplexAttributesConfig(\n metadata,\n childNode,\n entityTypeUri,\n '',\n createAttributeConfig,\n parents.concat({name: attrNode.name, label: attrNode.label})\n )\n )\n : [];\n\n if (children.length) resConfig.children = children;\n\n return resConfig;\n};\n\nexport const createAttributeItem = (metadata, attrType, entityTypeUri, fieldName, parents) => {\n const entityTypeLabel = getEntityTypeLabel(metadata, {type: entityTypeUri});\n const title = attrType.label || attrType.name;\n return {\n title: title,\n pathToTitle: Array.isArray(parents)\n ? [entityTypeLabel, ...chain(prop('label'), parents), title]\n : [entityTypeLabel, title],\n fieldName: fieldName || prepareAttrUriForSearch(attrType.uri, parents),\n entityTypeUri: entityTypeUri,\n attrType: attrType,\n pageSize: getPageSizeByAttrType(attrType),\n orderType: getOrderTypeByAttrType(attrType),\n isComplex: isComplexAttribute(attrType),\n disableIncludeFilter: getDisableIncludeFilterByAttrType(attrType)\n };\n};\n\nexport const getAttributesTree = (metadata, entityOrAttrType, filterFaceted = true) => {\n return getAllAttributeTypesTree(metadata, entityOrAttrType, either(always(!filterFaceted), isFaceted(metadata)));\n};\n\nexport const collectAttributeGroups = memoizeOne(\n (\n metadata,\n selectedEntityTypes = [],\n createGroup,\n createAttributeConfig,\n filterFaceted = true,\n onlyOneSelectedEntityType = true,\n dataTenants\n ) => {\n const inSelectedTypes = (value) => selectedEntityTypes.includes(value);\n const isOnlyOneSelected = () => onlyOneSelectedEntityType;\n const isOnlyOneSelectedReceived = () => propEq('length', 1, selectedEntityTypes);\n const {entityTypes} = metadata;\n\n return entityTypes\n .filter(isAvailableEntityType)\n .filter(\n anyPass([\n always(!selectedEntityTypes.length),\n allPass([isOnlyOneSelected, isOnlyOneSelectedReceived, propEq('uri', selectedEntityTypes[0])]),\n allPass([complement(isOnlyOneSelected), pipe(prop('uri'), inSelectedTypes)])\n ])\n )\n .map((entityType) => {\n const title = getEntityTypeLabel(metadata, {type: entityType.uri});\n\n const complexAttributes = getAdditionalAttributes(dataTenants, entityType).concat(\n getAttributesTree(metadata, entityType, filterFaceted).map((attrNode) =>\n createComplexAttributesConfig(metadata, attrNode, entityType.uri, '', createAttributeConfig)\n )\n );\n\n return complexAttributes.length ? createGroup(entityType.uri, title, complexAttributes) : null;\n })\n .filter(identity);\n }\n);\n\nexport const collectAdvancedAttributeGroups = memoizeOne(\n (metadata, selectedEntityTypes = [], attributesFilter = T, dataTenants) => {\n if (selectedEntityTypes.length === 0) {\n return collectAttributeGroups(\n metadata,\n undefined,\n createAttributesGroup,\n createAttributeItem,\n false,\n true,\n dataTenants\n );\n }\n\n const groups = [];\n const entityTypeUri =\n selectedEntityTypes.length > 1\n ? findClosestCommonAncestor(metadata, selectedEntityTypes)\n : selectedEntityTypes[0];\n\n if (entityTypeUri) {\n const entityType = getEntityType(metadata, entityTypeUri);\n const title =\n selectedEntityTypes.length > 1\n ? i18n.text('Attributes')\n : getEntityTypeLabel(metadata, {type: entityType.uri});\n\n const additionalAttributes = getAdditionalAttributes(dataTenants, entityType).filter(attributesFilter);\n const complexAttributes = additionalAttributes.concat(\n getAttributesTree(metadata, entityType, false).map((attrNode) =>\n createComplexAttributesConfig(metadata, attrNode, entityType.uri, '', createAttributeItem)\n )\n );\n if (complexAttributes.length) {\n groups.push(createAttributesGroup(entityType.uri, title, complexAttributes));\n }\n }\n\n return groups;\n }\n);\n\n//TODO: move to uisdk? Duplicates packages/components/src/components/VirtualGroupedList/helpers.js\nexport const flattenGroupedItemsData = (groupedItems) => {\n const getFlattenedItems = (items) =>\n flatten(items.map((item) => [item].concat(item.items ? getFlattenedItems(item.items) : [])));\n\n let titleItemIndex = null;\n const items = getFlattenedItems(groupedItems).map((item, index) => {\n if (item && item.items) {\n titleItemIndex = index;\n }\n return {item, index, titleItemIndex};\n });\n return items;\n};\n","import {\n chain,\n curry,\n identity,\n intersection,\n is,\n isNil,\n map,\n memoizeWith,\n pipe,\n prop,\n propEq,\n propOr,\n reject,\n toString,\n when\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {DEFAULT_FACET_PAGE_SIZE} from '../../constants/constants';\nimport {\n FACET_TYPES,\n getDataTenantSpecialAttributeFieldName,\n getFacetTypeForAttrType,\n isLookupAttrType,\n SpecialAttrTypes\n} from '@reltio/mdm-sdk';\nimport {\n collectAttributeGroups,\n createAttributeItem,\n createDataTenantConfigPart,\n createFacetForSpecialAttrType\n} from './collectAttributes.js';\nimport {getChildrenAttributes} from './collectAttributes';\nimport {envSpecificKey} from '../../utils/general';\n\nexport const getEntityTypeFacetConfig = (_metadata) =>\n createFacetForSpecialAttrType(SpecialAttrTypes.type, {\n hiddenTitle: i18n.text('Entity types'),\n disableIncludeFilter: true,\n pageSize: 101,\n showIcon: true,\n barColor: '#61D55D',\n transparentBackground: true,\n showDeleteButton: false\n });\n\nconst potentialMatchesFacetConfig = createFacetForSpecialAttrType(SpecialAttrTypes.matches, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n});\n\nexport const specialFacets = [\n createFacetForSpecialAttrType(SpecialAttrTypes.createdBy, {\n pageSize: DEFAULT_FACET_PAGE_SIZE\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.updatedBy, {\n pageSize: DEFAULT_FACET_PAGE_SIZE\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.createdTime, {\n disableIncludeFilter: true,\n pageSize: 1,\n orderType: 'reversedTerm'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.updatedTime, {\n disableIncludeFilter: true,\n pageSize: 1,\n orderType: 'reversedTerm'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.sourceSystems, {\n title: i18n.text('Sources'),\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.tags, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.roles, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n potentialMatchesFacetConfig,\n createFacetForSpecialAttrType(SpecialAttrTypes.matchScore, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.startDate, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.endDate, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n })\n];\n\nexport const getSpecialFacets = (dataTenants) => {\n const dataTenantFacets = (dataTenants || []).map((dataTenant) => ({\n ...potentialMatchesFacetConfig,\n ...createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matches',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant',\n originalTitle: potentialMatchesFacetConfig.title\n })\n }));\n return specialFacets.concat(dataTenantFacets);\n};\n\nexport const createAttributeFacetConfig = (metadata, attrType, entityTypeUri, fieldName, parents) => {\n return {\n ...createAttributeItem(metadata, attrType, entityTypeUri, fieldName, parents),\n uri: attrType.uri,\n type: getFacetTypeForAttrType(attrType)\n };\n};\n\nconst collectAttributeFacetsGroups = (metadata, selectedEntityTypes = [], dataTenants) => {\n return collectAttributeGroups(\n metadata,\n selectedEntityTypes,\n createFacetsGroup,\n createAttributeFacetConfig,\n true,\n true,\n dataTenants\n );\n};\n\nconst memoizedCollectAttributeFacetsGroups = memoizeWith(\n (metadata, selectedEntityTypes = [], dataTenants) =>\n envSpecificKey(selectedEntityTypes.toString() + (dataTenants || []).map(prop('id')).toString()),\n collectAttributeFacetsGroups\n);\n\nconst createFacetsGroup = (id, title, facets, needGroupIcon = true) => {\n return facets && facets.length\n ? {\n id,\n title,\n needGroupIcon,\n facets\n }\n : null;\n};\n\nexport const collectFacetsList = (metadata, selectedEntityTypes, recommendedFacets = [], dataTenants) => {\n const onlyOneEntityTypeSelected = selectedEntityTypes.length === 1;\n const specialFacets = getSpecialFacets(dataTenants);\n const specialGroup = createFacetsGroup('special', i18n.text('Basic'), specialFacets, false);\n const entityTypesGroup = memoizedCollectAttributeFacetsGroups(metadata, selectedEntityTypes, dataTenants);\n const entityTypesFacets = chain(prop('facets'), entityTypesGroup);\n const recommendedFacetsConfigs = pipe(\n map(findFacetConfigByFieldName([...specialFacets, ...entityTypesFacets])),\n reject(isNil)\n )(recommendedFacets);\n\n return [createFacetsGroup('recommended', i18n.text('Recommended'), recommendedFacetsConfigs, false)]\n .concat(onlyOneEntityTypeSelected ? entityTypesGroup : specialGroup)\n .concat(onlyOneEntityTypeSelected ? specialGroup : entityTypesGroup)\n .filter(identity);\n};\n\nexport const findFacetConfigByFieldName = curry((facetConfigs, fieldName) => {\n const facetConfig = facetConfigs.find(propEq('fieldName', fieldName));\n if (!facetConfig) {\n const children = chain(propOr([], 'children'), facetConfigs);\n return children.length ? findFacetConfigByFieldName(children, fieldName) : undefined;\n } else {\n return facetConfig;\n }\n});\n\nconst flattenChildrenForEntityTypeConfigs = (entityTypeConfig) => ({\n ...entityTypeConfig,\n facets: entityTypeConfig.facets.reduce((facetConfigs, facetConfig) => {\n facetConfigs.push(facetConfig);\n facetConfig.children && facetConfigs.push(...getChildrenAttributes(facetConfig));\n return facetConfigs;\n }, [])\n});\n\nexport const getAvailableFacetsGroupsList = (metadata, selectedEntityTypes, dataTenants) =>\n collectFacetsList(metadata, selectedEntityTypes, [], dataTenants).map(flattenChildrenForEntityTypeConfigs);\n\nconst getFlatFacets = (facet) => (facet.children ? [facet].concat(facet.children.flatMap(getFlatFacets)) : [facet]);\n\nexport const collectFacetsFlatList = (metadata, selectedEntityTypes, recommendedFacets, dataTenants) => {\n return collectFacetsList(metadata, selectedEntityTypes, recommendedFacets, dataTenants)\n .flatMap((facetGroup) => facetGroup.facets)\n .flatMap(getFlatFacets);\n};\n\nexport const prepareFacetDataForStore = (fieldName, {values = [], showAllItems} = {}) =>\n reject(isNil, {\n fieldName: fieldName,\n data: [],\n values: values && values.map(when(is(Boolean), toString)),\n showAllItems\n });\n\nexport const isComplexFacet = (config) => config.type === FACET_TYPES.COMPLEX_FACET;\n\nexport const isLookupFacet = (facet) => facet.attrType && isLookupAttrType(facet.attrType);\n\nexport const isPotentialMatchesFacet = (facet) =>\n facet.fieldName === 'matches' ||\n facet.fieldName === 'potentialMatches.matchScore' ||\n facet.fieldName.startsWith(getDataTenantSpecialAttributeFieldName('dtPotentialMatches.matches', ''));\n\nexport const isMatchRuleFacet = (facet) =>\n intersection(['matchRules', 'dtPotentialMatches.matchRules'], [facet.fieldNameForRequest, facet.fieldName]).length >\n 0;\n\nexport const isMLMatchRuleFacet = (facet) => facet.fieldName === 'MLRecommendedMatch';\n\nexport const isDataTenantFacet = (facet) => !!facet.dataTenant;\n","import {filter, isEmpty, not, partition, path, pick, pipe, prop} from 'ramda';\nimport nanoid from 'nanoid';\nimport memoizeOne from 'memoize-one';\nimport {collectSpecialAttributesGroups} from '../advancedSearch/collectSpecialAttributes';\nimport {\n getEntityTypeLabel,\n getFilterOptionForFacet,\n getFilterValueForFacet,\n isTypeFacet,\n getFilterOptionsForQueryBuilder\n} from '@reltio/mdm-sdk';\nimport {defaultGroupOperator} from '../../../constants/constants';\n\nconst getValuableFacets = filter(pipe(prop('values'), isEmpty, not));\n\nconst memoizedCollectSpecialAttributesGroups = memoizeOne((dataTenants) =>\n collectSpecialAttributesGroups({dataTenants})\n);\n\nexport const getGroupTitle = (metadata, dataTenants, data) => {\n return (\n getEntityTypeLabel(metadata, {type: data.entityTypeUri}) ||\n (\n memoizedCollectSpecialAttributesGroups(dataTenants).find((group) =>\n group.attributes.find((attr) => attr.fieldName === data.fieldName)\n ) || {}\n ).title\n );\n};\n\nexport const createAdvancedSearchGroupFromFacets = (metadata, dataTenants, facetsWithConfigs) => {\n const facetsToConvert = getValuableFacets(facetsWithConfigs);\n\n const [[typeFacet = {}], restFacets] = partition(isTypeFacet, facetsToConvert);\n\n const attributes = restFacets.reduce(\n (attributesList, facet) => {\n const filterOptions = getFilterOptionsForQueryBuilder(facet.attrType, facet.fieldName);\n const filter = getFilterOptionForFacet(facet);\n const dataFromFacet = pick([\n 'title',\n 'pathToTitle',\n 'fieldName',\n 'fieldNameForRequest',\n 'dataTenant',\n 'dataTenantFieldName',\n 'attrType',\n 'groupName',\n 'entityTypeUri',\n 'pageSize',\n 'orderType',\n 'isComplex',\n 'disableIncludeFilter',\n 'uri'\n ])(facet);\n\n const data = {\n ...dataFromFacet,\n groupName: getGroupTitle(metadata, dataTenants, dataFromFacet),\n filterOptions\n };\n\n const values = getFilterValueForFacet(facet);\n\n attributesList[0].push({\n data,\n operator: 'and',\n filter,\n id: nanoid(),\n values\n });\n\n return attributesList;\n },\n [[]]\n );\n\n return attributes\n .filter((attributeList) => attributeList.length || path(['values', 'length'], typeFacet))\n .map((attributeList) => ({\n attributes: attributeList,\n operator: defaultGroupOperator.value,\n id: nanoid(),\n entityTypes: typeFacet.values || []\n }));\n};\n","import {any, complement, filter, map, pipe, prop, propOr} from 'ramda';\n\nimport {isAvailableEntityType} from '@reltio/mdm-sdk';\n\nexport const hasNotAvailableEntityTypes = pipe(propOr([], 'entityTypes'), any(complement(isAvailableEntityType)));\n\nexport const getAvailableEntityTypesUris = pipe(\n propOr([], 'entityTypes'),\n filter(isAvailableEntityType),\n map(prop('uri'))\n);\n\nexport const addAvailableEntityTypesIfNeeded = (metadata, entityTypes = []) =>\n entityTypes.length === 0 && hasNotAvailableEntityTypes(metadata)\n ? getAvailableEntityTypesUris(metadata)\n : entityTypes;\n\nexport const removeNumberForDtssUnavailableEntityTypeItems = (items, tenantObject) => {\n if (tenantObject && Array.isArray(tenantObject.availableEntityTypes)) {\n return items.map((item) => {\n if (!tenantObject.availableEntityTypes.includes(item.value)) {\n return {...item, number: undefined};\n }\n return item;\n });\n }\n return items;\n};\n","import {\n __,\n curry,\n either,\n filter,\n find,\n flatten,\n gt,\n identity,\n ifElse,\n length,\n map,\n path,\n pipe,\n prop,\n propEq,\n propOr,\n uniqBy,\n when\n} from 'ramda';\nimport {Decimal} from 'decimal.js';\nimport {\n getAttrTypeLookupCode,\n getEntityType,\n getEntityTypeLabel,\n getLastUriPart,\n getLookupLabel,\n getUnresolvedLookupsList,\n isAvailableEntityType,\n isEnumAttrType,\n Maybe,\n mergeLookupsLists,\n orderByArrayComparator,\n isTypeFacet,\n FACET_TYPES,\n formatDataTypeValue,\n getAttrDataTypeDefinition,\n isBooleanType\n} from '@reltio/mdm-sdk';\n\nimport {getTypeGraphIcon} from '../entity/image';\nimport {formatMomentDate, formatNumberAsMetric} from '../../utils/general';\nimport {isLookupFacet, isMatchRuleFacet} from './collectFacets';\nimport moment from 'moment';\nimport {\n DATE_RANGE_MAX_VALUE,\n DATE_RANGE_MIN_VALUE,\n ENTITY_TYPE_FACET_ROW_COUNT,\n NUMERIC_RANGE_MAX_VALUE,\n NUMERIC_RANGE_MIN_VALUE\n} from '../../constants/constants';\nimport {createRangeServiceFor} from './rangeFacet';\nimport {addAvailableEntityTypesIfNeeded} from './entityTypes';\nimport {Facets, Search} from '../../constants/actionTypes';\n\nexport const findConfigByFieldName = (fieldName, configs) => {\n const config = configs.find((config) => [config.fieldName, `${config.fieldName}.ov`].includes(fieldName));\n if (config) {\n return config;\n } else {\n console.warn(`Can't find facet config for ${fieldName} fieldName`);\n return null;\n }\n};\n\nexport const prepareFacets = (metadata, facets, attributes, lookupsCodes, viewConfig) => {\n return Object.keys(facets).reduce((result, fieldName) => {\n const attribute = findConfigByFieldName(fieldName, attributes);\n if (attribute) {\n const realFieldName = attribute.fieldName;\n result[realFieldName] = prepareFacet(\n metadata,\n realFieldName,\n facets[fieldName],\n attribute,\n lookupsCodes,\n viewConfig\n );\n }\n return result;\n }, {});\n};\n\nexport const prepareStatsFacet = (facets, attributes) => {\n return Object.keys(facets).reduce((result, fieldName) => {\n const attribute = findConfigByFieldName(fieldName, attributes);\n if (attribute) {\n result[attribute.fieldName] = statsProcessing(\n facets[fieldName],\n attribute.attrType && attribute.attrType.type\n );\n }\n return result;\n }, {});\n};\n\nconst sortByNumber = (a, b) => b.number - a.number;\nconst numberMoreThanZero = ({number}) => number > 0;\nconst configHasValue = ({values = []}) => ({value}) => values.includes(value);\nconst specialFacetsFilter = (config) => either(numberMoreThanZero, configHasValue(config));\n\nconst defaultProcessing = (rawData) =>\n Object.keys(rawData)\n .map((key) => ({\n value: key,\n number: rawData[key],\n label: key\n }))\n .sort(sortByNumber);\n\nconst numericRangeTypeProcessing = (rawData, type) =>\n Object.keys(rawData).map((key) => ({\n value: type === 'Long' ? new Decimal(key) : +key,\n number: rawData[key],\n label: key\n }));\n\nconst lookupProcessing = (rawData, lookupCode) => {\n return defaultProcessing(rawData).map((data) => ({\n ...data,\n label: getLookupLabel(data.value, path([data.value, 'displayName'], lookupCode))\n }));\n};\n\nconst enumProcessing = (rawData, enumerationList) => {\n return enumerationList\n .map((value) => ({\n value,\n label: value,\n number: rawData[value] || 0\n }))\n .sort(sortByNumber);\n};\n\nconst booleanProcessing = (rawData, dataTypeDefinition) => {\n return Object.keys(rawData)\n .map((key) => ({\n value: key,\n number: rawData[key],\n label: formatDataTypeValue({dataTypeDefinition}, key)\n }))\n .sort(sortByNumber);\n};\n\nexport const entityTypeProcessing = (metadata, rawData, allowedEntityTypes) => {\n const {entityTypes} = metadata;\n return entityTypes\n .filter(allowedEntityTypes ? ({uri}) => allowedEntityTypes.includes(uri) : identity)\n .sort(allowedEntityTypes ? orderByArrayComparator(allowedEntityTypes, 'uri') : (_) => 0)\n .map((entityType) => {\n const lastUriPart = getLastUriPart(entityType.uri);\n return isAvailableEntityType(entityType)\n ? {\n value: entityType.uri,\n number: rawData[lastUriPart] || 0,\n label: getEntityTypeLabel(metadata, {type: entityType.uri}) || lastUriPart,\n icon: getTypeGraphIcon(metadata, entityType.uri)\n }\n : null;\n })\n .filter(identity);\n};\n\nconst roleProcessing = (metadata, rawData, attribute) => {\n const {roles} = metadata;\n return roles\n .map((role) => {\n const lastUriPart = getLastUriPart(role.uri);\n return {\n value: role.uri,\n label: role.label,\n number: rawData[lastUriPart] || 0\n };\n })\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nconst sourceSystemsProcessing = (metadata, rawData, attribute) => {\n const {sources} = metadata;\n\n return sources\n .map((source) => {\n const lastUriPart = getLastUriPart(source.uri);\n return {\n value: lastUriPart,\n number: rawData[lastUriPart] || 0,\n label: source.label || lastUriPart\n };\n })\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nconst matchRulesProcessing = (metadata, rawData, attribute) => {\n const entityType = getEntityType(metadata, attribute.entityTypeUri);\n const matchGroups = (entityType && entityType.matchGroups) || [];\n\n return uniqBy(prop('value'), [\n ...matchGroups.map(({uri, label}) => ({\n isRaw: false,\n value: uri,\n number: rawData[uri] || 0,\n label: label || uri\n })),\n ...Object.entries(rawData).map(([uriOrLabel, count]) => {\n const matchGroup = find(propEq('uri', uriOrLabel))(matchGroups);\n const isRaw = !matchGroup;\n\n return {\n value: uriOrLabel,\n number: count,\n label: isRaw ? uriOrLabel : matchGroup.label,\n isRaw\n };\n })\n ])\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nexport const statsProcessing = (rawData, type) => {\n const {min, max, count} = rawData;\n return {\n min: type === 'Long' ? new Decimal(min) : +min,\n max: type === 'Long' ? new Decimal(max) : +max,\n count\n };\n};\n\nconst prepareFacet = (metadata, fieldName, rawData, attribute, lookupsCodes = {}, viewConfig = {}) => {\n switch (fieldName) {\n case 'type': {\n const {allowedEntityTypes} = viewConfig;\n return entityTypeProcessing(metadata, rawData, allowedEntityTypes);\n }\n case 'roles':\n return roleProcessing(metadata, rawData, attribute);\n case 'sourceSystems':\n return sourceSystemsProcessing(metadata, rawData, attribute);\n }\n if (isMatchRuleFacet(attribute)) {\n return matchRulesProcessing(metadata, rawData, attribute);\n }\n if (isLookupFacet(attribute)) {\n return lookupProcessing(rawData, lookupsCodes[getAttrTypeLookupCode(attribute.attrType)]);\n }\n if (isEnumAttrType(attribute.attrType)) {\n return enumProcessing(rawData, path(['attrType', 'values'], attribute));\n }\n if (isBooleanType(attribute.attrType?.type)) {\n return booleanProcessing(rawData, getAttrDataTypeDefinition(attribute.attrType));\n }\n switch (attribute.type) {\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n case FACET_TYPES.DATE_RANGE_FACET:\n return numericRangeTypeProcessing(rawData, attribute.attrType && attribute.attrType.type);\n default:\n return defaultProcessing(rawData);\n }\n};\n\nexport const getDefaultRangeByType = (facetType) => {\n switch (facetType) {\n case FACET_TYPES.DATE_RANGE_FACET:\n return [DATE_RANGE_MIN_VALUE, DATE_RANGE_MAX_VALUE];\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n default:\n return [NUMERIC_RANGE_MIN_VALUE, NUMERIC_RANGE_MAX_VALUE];\n }\n};\n\nexport const fixNaNValues = curry((defaultValue, facets) => {\n Object.values(facets).map((facet) =>\n facet.filter((item) => isNaN(item.value)).forEach((item) => (item.value = defaultValue))\n );\n return facets;\n});\n\nexport const fixNaNValue = (defaultValue, facetValue) => {\n return isNaN(facetValue) ? defaultValue : facetValue;\n};\n\nexport const getFacetByFieldName = (fieldName, facets) =>\n facets.find((facet) => facet.fieldName === fieldName || facet.fieldNameForRequest === fieldName);\n\nexport const getAcceptedFacetValues = (facetData, acceptedValues) =>\n Object.keys(facetData)\n .filter((value) => acceptedValues.includes(value))\n .reduce((acc, value) => {\n acc[value] = facetData[value];\n return acc;\n }, {});\n\nexport const mergeConfigs = (facets, configsArray) => {\n const configs = configsArray.reduce((result, config) => {\n result[config.fieldName] = config;\n return result;\n }, {});\n return Object.keys(facets).reduce((result, fieldName) => {\n const config = configs[fieldName];\n result[fieldName] = {...facets[fieldName], ...config};\n return result;\n }, {});\n};\n\nexport const setFiltersToFacets = (facets) =>\n Object.keys(facets).reduce((result, fieldName) => {\n result[fieldName] = {...facets[fieldName], filter: facetTypeToFilter(facets[fieldName].type)};\n return result;\n }, {});\n\nexport const addAvailableEntityTypeValues = (metadata) =>\n map(\n ifElse(\n isTypeFacet,\n (facet) => ({\n ...facet,\n values: addAvailableEntityTypesIfNeeded(metadata, facet.values)\n }),\n identity\n )\n );\n\nexport const filterAllowedEntityTypes = (allowedEntityTypes) =>\n map(\n when(isTypeFacet, (facet) => ({\n ...facet,\n values:\n allowedEntityTypes && allowedEntityTypes.length > 0\n ? facet.values\n .filter((value) => allowedEntityTypes.includes(value))\n .sort(orderByArrayComparator(allowedEntityTypes))\n : facet.values\n }))\n );\n\nexport const getEntityTypeFacetFromState = path(['facets', 'facetsData', 'type']);\n\nconst facetTypeToFilter = (type) =>\n ({\n entityTypeFacet: 'equals',\n facetWithDropdownCheckboxes: 'equals',\n numericRangeFacet: 'range',\n dateRangeFacet: 'range'\n }[type]);\n\nexport const needFacetsCleanUp = (action = {}) => {\n const isTypeFacetAction = path(['payload', 'facetFieldName'], action) === 'type';\n return (\n (action.type === Facets.CHANGE_VALUES && isTypeFacetAction) ||\n action.type === Facets.CLEAR_ALL_VALUES ||\n action.type === Search.CLEAR_ALL\n );\n};\n\nexport const buildValuesLabels = (data = [], values = [], type = '') => {\n return values.map((value) => {\n let range;\n switch (type) {\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n return `${formatNumberAsMetric(+value[0], 10000)} — ${formatNumberAsMetric(+value[1], 10000)}`;\n case FACET_TYPES.DATE_RANGE_FACET:\n range = createRangeServiceFor().getRange(values, data);\n return `${formatMomentDate(moment(range[0]))} \\u2014 ${formatMomentDate(moment(range[1]))}`;\n case FACET_TYPES.ENTITY_TYPE_FACET:\n case FACET_TYPES.WITH_DROPDOWN_CHECKBOXES_FACET:\n default:\n return Maybe.fromNull(data.find((item) => item.value === value)).orSome({label: value || ''}).label;\n }\n });\n};\n\nexport const needShowAllEntityTypeFacetItems = pipe(propOr([], 'values'), length, gt(__, ENTITY_TYPE_FACET_ROW_COUNT));\nexport const getLookupsListFromFacets = pipe(\n pipe(\n filter(isLookupFacet),\n map((facet) => ({\n type: getAttrTypeLookupCode(path(['attrType'], facet)),\n codeValues: flatten(propOr([], 'values', facet))\n })),\n filter(({codeValues}) => codeValues.length > 0)\n ),\n mergeLookupsLists\n);\n\nexport const getUnresolvedLookupsListFromFacet = (facets, resolvedLookups) =>\n pipe(getLookupsListFromFacets, getUnresolvedLookupsList(resolvedLookups))(facets);\n","import {propEq, propOr} from 'ramda';\n\nexport const getConfigForFacet = (facetsGroups) => (facet) => {\n const entityType = facet.entityType || facet.entityTypeUri || 'special';\n const group = facetsGroups.find(propEq('id', entityType));\n const facets = propOr([], 'facets', group);\n return facets.find(propEq('fieldName', facet.fieldName));\n};\n\nexport const reduceFacetsConfig = (facetsGroups) => {\n const getFacetConfig = getConfigForFacet(facetsGroups);\n return (acc, facet) => {\n const config = getFacetConfig(facet);\n return config && !acc.find(propEq('fieldName', facet.fieldName)) ? [...acc, config] : acc;\n };\n};\n","import {getAvailableFacetsGroupsList, getEntityTypeFacetConfig} from '../collectFacets';\nimport {assoc, dissoc, evolve, filter, map, omit, pipe, reduce, values} from 'ramda';\nimport {reduceFacetsConfig} from './parsingUtils';\nimport {isAvailableEntityTypeUri} from '@reltio/mdm-sdk';\n\nexport const parseFacets = (metadata, facets, dataTenants) => {\n const entityTypeFacet = getEntityTypeFacetConfig(metadata);\n if (!facets || facets.length === 0) {\n return {facetsData: {}, facetsConfigs: [entityTypeFacet]};\n }\n\n const selectedEntityTypes = facets.type ? facets.type.values.filter(isAvailableEntityTypeUri(metadata)) : [];\n const availableFacetsGroupsList = getAvailableFacetsGroupsList(metadata, selectedEntityTypes, dataTenants);\n\n const facetsConfigs = pipe(\n dissoc('type'),\n values,\n reduce(reduceFacetsConfig(availableFacetsGroupsList), [entityTypeFacet])\n )(facets);\n\n const facetsData = pipe(\n evolve({\n type: assoc('values', selectedEntityTypes)\n }),\n filter(isInFacetsConfigs(facetsConfigs)),\n map(omit(['entityTypeUri']))\n )(facets);\n\n return {facetsConfigs, facetsData};\n};\n\nconst isInFacetsConfigs = (configs) => (facet) => configs.find((config) => config.fieldName === facet.fieldName);\n","import {\n chain,\n compose,\n either,\n isEmpty,\n isNil,\n partition,\n path,\n pathOr,\n pipe,\n prop,\n propEq,\n propOr,\n reject,\n values\n} from 'ramda';\nimport {getAvailableFacetsGroupsList, getEntityTypeFacetConfig} from '../collectFacets';\nimport {getConfigForFacet} from './parsingUtils';\nimport {\n convertOldFacets,\n findAttributeTypeByUri,\n getOldRangeFacetValues,\n isRangeFacet,\n isTypeFacet,\n searchUriToAttrUri\n} from '@reltio/mdm-sdk';\n\nexport const mergeFacetValuesByFieldName = pipe(\n (facets) =>\n facets.reduce((acc, facet) => {\n acc[facet.fieldName] = {\n ...facet,\n values: [...propOr([], 'values', facet), ...pathOr([], [facet.fieldName, 'values'], acc)]\n };\n return acc;\n }, {}),\n values\n);\n\nexport const parseOldFacets = (metadata, dataTenants, facets) => {\n const entityTypeFacet = getEntityTypeFacetConfig(metadata);\n if (!facets || isEmpty(facets)) {\n return {facetsData: {}, facetsConfigs: [entityTypeFacet]};\n }\n\n const [tenantFacets, nonTenantFacets] = partition((facet) => facet.fieldName === 'tenants', facets);\n const currentTenant = path([0, 'currentTenant'], tenantFacets);\n\n const [typeFacets, nonTypeFacets] = partition((facet) => facet.fieldName === 'type', nonTenantFacets);\n\n const selectedEntityTypes = chain(propOr([], 'values'), typeFacets);\n const getFacetConfig = compose(getConfigForFacet, getAvailableFacetsGroupsList)(\n metadata,\n selectedEntityTypes,\n dataTenants\n );\n\n const convertedFacets = convertOldFacets(nonTypeFacets);\n\n const isBasicFacetFilter = either(pipe(prop('filter'), isNil), propEq('filter', 'equals'));\n const isAdvancedFacet = (facet) => !getFacetConfig(facet) || !isBasicFacetFilter(facet);\n const hasAdvancedFacets = convertedFacets.some(isAdvancedFacet);\n\n if (hasAdvancedFacets) {\n const advanced = convertedFacets.reduce(reduceAdvancedFromFacets(metadata), {\n entityTypes: selectedEntityTypes,\n searchParams: []\n });\n return {currentTenant, advanced, facetsConfigs: [], facetsData: {}};\n } else {\n const basicFacets = mergeFacetValuesByFieldName(convertedFacets);\n const facetsConfigs = [entityTypeFacet, ...basicFacets.map(getFacetConfig)];\n const facetsData = [...typeFacets, ...basicFacets].reduce(reduceNewFacetsData(facetsConfigs), {});\n return {currentTenant, facetsConfigs, facetsData};\n }\n};\n\nexport const reduceAdvancedFromFacets = (metadata) => (advanced, facet) => {\n if (facet.entityType) {\n const attrUri = searchUriToAttrUri(facet.fieldName, facet.entityType);\n const attrType = findAttributeTypeByUri(metadata, attrUri);\n if (attrType) {\n if (advanced.entityTypes.length === 0) {\n advanced.entityTypes.push(facet.entityType);\n }\n if (advanced.entityTypes.includes(facet.entityType)) {\n advanced.searchParams.push({\n fieldName: facet.fieldName,\n filter: facet.filter || 'equals',\n uri: attrType.uri,\n values: facet.values || []\n });\n }\n }\n }\n return advanced;\n};\n\nexport const reduceNewFacetsData = (facetsConfigs) => (data, facet) => {\n const config = facetsConfigs.find((config) => config.fieldName === facet.fieldName);\n if (config) {\n const values = isRangeFacet(config) ? getOldRangeFacetValues(facet.values) : facet.values;\n const showAllItems = isTypeFacet(config) && facet.showAllEntityTypes ? facet.showAllEntityTypes : null;\n return {\n ...data,\n [facet.fieldName]: reject(isNil, {\n fieldName: facet.fieldName,\n values,\n showAllItems\n })\n };\n } else {\n return data;\n }\n};\n","import {curry, find, pick, pipe, propEq} from 'ramda';\nimport {\n findAttributeTypeByUri,\n getAttributeTypesHierarchyByUri,\n getEntityType,\n getEntityTypeLabel,\n searchUriToAttrUri,\n getFilterOptionsForQueryBuilder\n} from '@reltio/mdm-sdk';\nimport {createAttributeItem, getAdditionalAttributes} from '../collectAttributes';\nimport {collectSpecialAttributesGroups} from '../advancedSearch/collectSpecialAttributes';\n\nconst parseSpecialAttributeData = (metadata, dataTenants, canUserReadWorkflowDataTask, {fieldName}) => {\n const specialAttributeGroup = collectSpecialAttributesGroups({\n dataTenants,\n canUserReadWorkflowDataTask\n }).find((group) => group.attributes.find((attr) => attr.fieldName === fieldName));\n const specialAttr =\n specialAttributeGroup && specialAttributeGroup.attributes.find((attr) => attr.fieldName === fieldName);\n\n return specialAttr\n ? {\n groupName: specialAttributeGroup.title,\n filterOptions: getFilterOptionsForQueryBuilder(specialAttr.attrType, fieldName),\n ...pick(\n [\n 'title',\n 'fieldName',\n 'attrType',\n 'pageSize',\n 'orderType',\n 'dataTenant',\n 'fieldNameForRequest',\n 'dataTenantFieldName'\n ],\n specialAttr\n )\n }\n : null;\n};\n\nconst parseRegularAttributeData = (metadata, {uri, entityTypeUri, fieldName}) => {\n const attrType = findAttributeTypeByUri(metadata, uri);\n if (attrType) {\n const parents = (\n getAttributeTypesHierarchyByUri(metadata, searchUriToAttrUri(fieldName, entityTypeUri), entityTypeUri) || []\n )\n .map(pick(['label', 'name']))\n .slice(0, -1);\n\n return {\n uri,\n groupName: getEntityTypeLabel(metadata, {type: entityTypeUri}),\n filterOptions: getFilterOptionsForQueryBuilder(attrType, fieldName),\n ...createAttributeItem(metadata, attrType, entityTypeUri, fieldName, parents)\n };\n } else {\n return null;\n }\n};\n\nconst parseAdditionalAttributeData = (metadata, dataTenants, {fieldName, entityTypeUri}) => {\n const additionalAttribute = pipe(\n getEntityType(metadata),\n getAdditionalAttributes(dataTenants),\n find(propEq('fieldName', fieldName))\n )(entityTypeUri);\n\n return additionalAttribute\n ? {\n groupName: getEntityTypeLabel(metadata, {type: entityTypeUri}),\n filterOptions: getFilterOptionsForQueryBuilder(additionalAttribute.attrType, fieldName),\n ...additionalAttribute\n }\n : null;\n};\n\nconst parseAttributeData = curry((metadata, dataTenants, canUserReadWorkflowDataTask, attrData) => {\n const {uri} = attrData;\n if (uri && !uri.startsWith('special/')) {\n return parseRegularAttributeData(metadata, attrData);\n } else {\n return (\n parseSpecialAttributeData(metadata, dataTenants, canUserReadWorkflowDataTask, attrData) ||\n parseAdditionalAttributeData(metadata, dataTenants, attrData)\n );\n }\n});\n\nexport {parseAttributeData};\n","import {curry, evolve, pipe, prop, reject} from 'ramda';\nimport nanoid from 'nanoid';\nimport {parseAttributeData} from './parseAttributeData';\nimport {\n convertOldAdvancedAttribute,\n convertTransitionAttributes,\n findClosestCommonAncestor,\n isEmptySearchGroup,\n sanitizeTypesInSearchGroups,\n wrapInArray\n} from '@reltio/mdm-sdk';\nimport {defaultGroupOperator, defaultOperator} from '../../../constants/constants';\n\nexport const parseAttribute = curry((metadata, dataTenants, canUserReadWorkflowDataTask, entityTypeUri, attribute) => {\n return pipe(\n convertOldAdvancedAttribute(metadata, entityTypeUri),\n evolve({\n data: parseAttributeData(metadata, dataTenants, canUserReadWorkflowDataTask)\n })\n )(attribute);\n});\n\nconst parseOldAdvancedSearch = (\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n oldAdvancedSearch = {},\n useSeparateGroups = false\n) => {\n const {searchParams = [], fastSearchParams = [], entityTypes = []} = oldAdvancedSearch;\n const attributes = [...searchParams, ...fastSearchParams]\n .map(\n parseAttribute(\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n findClosestCommonAncestor(metadata, entityTypes)\n )\n )\n .filter((attribute) => attribute && attribute.data);\n\n const makeGroup = curry((operator, attributes) => ({\n id: nanoid(),\n operator,\n attributes,\n entityTypes\n }));\n const groups = useSeparateGroups\n ? attributes.map(pipe(wrapInArray, makeGroup(defaultOperator.value)))\n : wrapInArray(makeGroup(defaultGroupOperator.value, attributes));\n\n return pipe(sanitizeTypesInSearchGroups(metadata), convertTransitionAttributes, reject(isEmptySearchGroup))(groups);\n};\n\nexport const mergeAdvancedAndFacets = (advancedGroups, facetsGroups) => {\n const attributesFromFacets = prop(\n 'attributes',\n facetsGroups.find((group) => group.attributes)\n );\n attributesFromFacets.map((facetAttribute) => advancedGroups[0].attributes.push(facetAttribute));\n return advancedGroups;\n};\n\nexport {parseOldAdvancedSearch as default};\n","import {attributeUriToSearchUri, findAttributeTypeByUri, isComplexAttribute} from '@reltio/mdm-sdk';\nimport {DEFAULT_VIEW, PREVIEW_PANEL_MODES, SEARCH_RESULTS_MODES} from '../../../constants/constants';\nimport {concat, mergeDeepWith, propOr} from 'ramda';\nimport {getInitialColumnsByEntityTypes} from '../searchResults';\n\nexport const OLD_SEARCH_RESULTS_MODES = {\n NO_PREVIEW: 'NoPreview',\n PREVIEW: 'Preview',\n MAP_PREVIEW: 'MapPreview',\n TABLE_VIEW: 'TableView'\n};\n\nexport const NEW_SEARCH_RESULTS_MODES = {\n [OLD_SEARCH_RESULTS_MODES.NO_PREVIEW]: SEARCH_RESULTS_MODES.LIST,\n [OLD_SEARCH_RESULTS_MODES.PREVIEW]: DEFAULT_VIEW,\n [OLD_SEARCH_RESULTS_MODES.MAP_PREVIEW]: DEFAULT_VIEW,\n [OLD_SEARCH_RESULTS_MODES.TABLE_VIEW]: SEARCH_RESULTS_MODES.TABLE\n};\n\nexport const PREVIEW_PANEL_MODES_MAPPING = {\n [OLD_SEARCH_RESULTS_MODES.PREVIEW]: PREVIEW_PANEL_MODES.PROFILE\n};\n\nexport const parseOldView = (metadata, view = {}, viewConfig = {}) => {\n const {mode, tabs = []} = view;\n const {allowedEntityTypes} = viewConfig;\n return {\n searchResultsMode: NEW_SEARCH_RESULTS_MODES[mode] || DEFAULT_VIEW,\n previewPanelMode: PREVIEW_PANEL_MODES_MAPPING[mode] || null,\n entityTypeTab: propOr(null, 'entityTypeUri', findActiveTab(tabs)),\n sortField: 'label',\n sortOrder: 'asc',\n searchResultsColumns: processOldTabs(metadata, allowedEntityTypes, tabs)\n };\n};\n\nconst findActiveTab = (tabs) => tabs.find((tab) => tab.selected) || {};\n\nconst processOldTabs = (metadata, allowedEntityTypes, tabs) => {\n const columnsByEntityTypes = getInitialColumnsByEntityTypes(metadata, allowedEntityTypes);\n const columnsFromTabs = tabs.reduce((result, tab) => {\n result[tab.entityTypeUri] = tab.selectedAttributes\n .map((attribute) => {\n const attrType = findAttributeTypeByUri(metadata, attribute);\n return {\n id: attributeUriToSearchUri(attrType.uri),\n label: attrType.label,\n attrType: attrType\n };\n })\n .filter((attribute) => !isComplexAttribute(attribute.attrType));\n return result;\n }, {});\n return mergeDeepWith(concat, columnsByEntityTypes, columnsFromTabs);\n};\n","import {path, propEq} from 'ramda';\n\nexport const parseOldSearchOptions = (advanced = {}) => {\n const advancedOptions = advanced.options || [];\n const searchByOvOption = advancedOptions.find(propEq('fieldName', 'searchByOv'));\n if (searchByOvOption) {\n const searchByOv = path(['values', 0], searchByOvOption);\n if (typeof searchByOv === 'boolean') {\n return {\n searchByOv: searchByOv,\n ovOnly: searchByOv\n };\n }\n }\n return null;\n};\n","import {parseFacets} from './parseFacets';\nimport {parseOldFacets} from './parseOldFacets';\nimport parseOldAdvancedSearch, {mergeAdvancedAndFacets} from './parseOldAdvancedSearch';\nimport {parseAttributeData} from './parseAttributeData';\nimport {parseOldView} from './parseOldView';\nimport {DEFAULT_VIEW} from '../../../constants/constants';\nimport {prepareFacetDataForStore} from '../collectFacets';\nimport {createAdvancedSearchGroupFromFacets} from '../converting/createAdvancedSearchFromFacets';\nimport {mergeConfigs} from '../facet';\nimport {parseOldSearchOptions} from './parseOldSearchOptions';\nimport {getKeywordFromOldSearchState, parseAdvancedSearch, findAttributeTypeByUri} from '@reltio/mdm-sdk';\n\nconst parseSearchState = (metadata, state, config, dataTenants, canUserReadWorkflowDataTask) => {\n try {\n const {version} = state;\n return version === '2.0'\n ? parseNewSearchState(metadata, state, dataTenants, canUserReadWorkflowDataTask)\n : parseOldSearchState(metadata, state, config, dataTenants, canUserReadWorkflowDataTask);\n } catch (e) {\n console.warn(\"Can't parse search state\", e);\n return {\n errors: Array.isArray(e) ? e : [e]\n };\n }\n};\n\nconst parseNewSearchState = (\n metadata,\n {keyword = null, facets = {}, advanced = [], map, view, searchOptions, currentSavedSearchUri, currentTenant},\n dataTenants,\n canUserReadWorkflowDataTask\n) => {\n const newState = {map, keyword, searchOptions};\n const hasActiveAdvancedSearch = advanced.some(\n ({attributes, entityTypes = []}) => attributes.length || entityTypes.length\n );\n if (hasActiveAdvancedSearch) {\n newState.advanced = parseAdvancedSearch(\n parseAttributeData,\n metadata,\n advanced,\n dataTenants,\n canUserReadWorkflowDataTask\n );\n } else {\n newState.facets = parseFacets(metadata, facets, dataTenants);\n }\n\n if (view) {\n const tabs = view.tabs || {};\n Object.keys(tabs).forEach((key) => {\n tabs[key] = (tabs[key] || []).map((item) => ({\n ...item,\n attrType: item.attrType\n ? findAttributeTypeByUri(metadata, item.attrType.uri) || item.attrType\n : undefined\n }));\n });\n\n newState.view = {\n searchResultsMode: view.searchResultsMode || DEFAULT_VIEW,\n entityTypeTab: view.entityTypeTab,\n sortField: view.sortField,\n sortOrder: view.sortOrder,\n searchResultsColumns: tabs,\n previewPanelMode: view.previewPanelMode || null\n };\n }\n\n if (currentSavedSearchUri) {\n newState.currentSavedSearchUri = currentSavedSearchUri;\n }\n if (currentTenant) {\n newState.currentTenant = currentTenant;\n }\n return newState;\n};\n\nconst parseOldSearchState = (metadata, oldState, viewConfig, dataTenants, canUserReadWorkflowDataTask) => {\n const {facets = {}, advanced, view, curSavedSearchUri, useSeparateGroups} = oldState;\n const newState = {\n keyword: getKeywordFromOldSearchState(oldState),\n searchOptions: parseOldSearchOptions(advanced)\n };\n const {currentTenant, advanced: advancedFromFacets, ...parsedFacets} = parseOldFacets(\n metadata,\n dataTenants,\n facets\n );\n const parsedAdvanced = parseOldAdvancedSearch(\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n advanced || advancedFromFacets,\n useSeparateGroups\n );\n const hasActiveAdvancedSearch = parsedAdvanced.some(({attributes}) => attributes.length);\n if (hasActiveAdvancedSearch) {\n const {facetsData, facetsConfigs} = parsedFacets;\n const newData = facetsConfigs.reduce((data, config) => {\n return {\n ...data,\n [config.fieldName]: prepareFacetDataForStore(config.fieldName, facetsData[config.fieldName])\n };\n }, {});\n const groupFromFacets = createAdvancedSearchGroupFromFacets(\n metadata,\n dataTenants,\n Object.values(mergeConfigs(newData, facetsConfigs))\n );\n newState.advanced =\n groupFromFacets.length > 0 ? mergeAdvancedAndFacets(parsedAdvanced, groupFromFacets) : parsedAdvanced;\n } else {\n newState.facets = parsedFacets;\n }\n\n if (view) {\n newState.view = parseOldView(metadata, view, viewConfig);\n }\n\n if (curSavedSearchUri) {\n newState.currentSavedSearchUri = curSavedSearchUri;\n }\n\n if (currentTenant) {\n newState.currentTenant = currentTenant;\n }\n\n return newState;\n};\n\nexport default parseSearchState;\n","import {head, isNil, last, pathOr, unfold} from 'ramda';\nimport {Decimal} from 'decimal.js';\nimport {isFloatingType} from '@reltio/mdm-sdk';\nimport {formatNumberAsMetric, getNumbersMath} from '../../utils/general';\n\nexport const createRangeServiceFor = (attrType) => {\n const NumMath = getNumbersMath(attrType);\n const getRange = (values, data) => {\n const begin = pathOr(pathOr(null, ['value', 0], head(data)), [0, 0], values);\n const end = pathOr(pathOr(null, ['value', 1], last(data)), [0, 1], values);\n if (begin === null || end === null) {\n return [];\n }\n\n if (NumMath.lessThanOrEqualTo(begin, end)) {\n return [begin, end];\n } else {\n return [end, begin];\n }\n };\n\n const adjustRange = (range, min, max) => {\n const start = range[0];\n const end = range[1];\n return [isNil(min) ? start : NumMath.max(start, min), isNil(max) ? end : NumMath.min(end, max)];\n };\n\n const equals = (...args) => NumMath.equals(...args);\n\n const formatNumberForRangeFacet = (value) =>\n NumMath.greaterThan(value, 10000) ? formatNumberAsMetric(value, 10000) : value.toString();\n\n const getBarDomain = (data) => (data.length > 0 ? [head(data).value[0], last(data).value[1]] : []);\n\n const calcScale = (min, max) => {\n if (attrType === 'Long') {\n const delta = max.minus(min);\n\n // calculate ratio\n const ratio = delta.div(2).gt(Number.MAX_SAFE_INTEGER)\n ? new Decimal(Number.MAX_SAFE_INTEGER).mul(2).div(delta)\n : 1;\n\n const ratioFirstValue = min.mul(ratio);\n const ratioLastValue = max.mul(ratio);\n\n // calculate offset\n const offset = ratioFirstValue.lt(Number.MIN_SAFE_INTEGER)\n ? new Decimal(Number.MIN_SAFE_INTEGER).minus(ratioFirstValue)\n : ratioLastValue.gt(Number.MAX_SAFE_INTEGER)\n ? new Decimal(Number.MAX_SAFE_INTEGER).minus(ratioLastValue)\n : 0;\n\n return {ratio: ratio, offset: offset};\n }\n\n return {ratio: 1, offset: 0};\n };\n const revertScale = (value, scale) =>\n NumMath.toFixed(NumMath.div(NumMath.minus(value, scale.offset), scale.ratio), 0);\n\n const applyScale = (value, scale) => Number(NumMath.plus(NumMath.mul(value, scale.ratio), scale.offset));\n\n const bigNumbersTickFormatterX = (formatter, scale) => (value) => formatter(revertScale(value, scale));\n\n const addRanges = (values = [], start, end, interval) => {\n if (values.length === 0) {\n return [];\n }\n\n const firstValue = values[0].value;\n const lastValue = values[values.length - 1].value;\n const headValues = NumMath.greaterThan(firstValue, start)\n ? unfold(\n (n) => (NumMath.lessThan(n, firstValue) ? [{value: n, number: 0}, NumMath.plus(n, interval)] : false),\n start\n )\n : [];\n const tailValues = NumMath.lessThan(lastValue, NumMath.minus(end, interval))\n ? unfold(\n (n) =>\n NumMath.lessThanOrEqualTo(n, end) ? [{value: n, number: 0}, NumMath.plus(n, interval)] : false,\n NumMath.plus(lastValue, interval)\n )\n : [];\n return [...headValues, ...values, ...tailValues];\n };\n\n const getInterval = (from, to, bars = 50) => {\n if (from === to) {\n return 1;\n } else {\n return isFloatingType(attrType)\n ? (to - from) / bars\n : NumMath.ceil(NumMath.div(NumMath.minus(to, from), bars));\n }\n };\n\n return {\n NumMath,\n getRange,\n formatNumberForRangeFacet,\n getBarDomain,\n calcScale,\n revertScale,\n applyScale,\n bigNumbersTickFormatterX,\n adjustRange,\n equals,\n addRanges,\n getInterval\n };\n};\n","import queryString from 'query-string';\nimport {pipe} from 'ramda';\n\nconst addPrefixIfNecessary = (query) => (query ? `?${query}` : '');\nconst stringifyObject = (urlSearchObj) => queryString.stringify(urlSearchObj, {strict: false});\nexport const stringifySearch = pipe(stringifyObject, addPrefixIfNecessary);\n","import {\n __,\n allPass,\n always,\n append,\n assoc,\n both,\n complement,\n compose,\n concat,\n cond,\n defaultTo,\n evolve,\n filter,\n flatten,\n has,\n identity,\n ifElse,\n inc,\n join,\n length,\n lt,\n map,\n path,\n pathOr,\n pipe,\n pluck,\n prop,\n propEq,\n propOr,\n propSatisfies,\n reduce,\n slice,\n split,\n T,\n uniq,\n values,\n when\n} from 'ramda';\nimport {\n ActivityFilters,\n addGlobalFilterToQuery,\n attributeUriToSearchUri,\n basicFilterBuildRules,\n buildBasicFilterString,\n buildComplexFilterString,\n buildFilterHierarchyList,\n buildFilterQueryString,\n buildOperationsToString,\n canWrapInSameAttribute,\n FilterOptions,\n getEntityType,\n getRootFieldName,\n isAndOperator,\n isAvailableEntityType,\n isDateType,\n isOrOperator,\n isValidSearchGroup,\n isValidSearchGroupAttribute,\n joinFilterStrings,\n Maybe,\n parseCompositeFilters,\n requestForDataTenant,\n shiftDownOperators,\n shiftUpOperators,\n wrapQueryWithBrackets\n} from '@reltio/mdm-sdk';\nimport {getEnvironment, getTenant} from '../../utils/general';\nimport {stringifySearch} from '../../utils/url';\nimport {DEFAULT_SEARCH_SELECT, ROWS_PER_PAGE_OPTIONS} from '../../constants/constants';\n\nexport const isNotEmptyParam = (param) => (param.values && param.values.length) || param.rawFilter;\n\nconst prepareDataTenantFilters = (facet) =>\n facet.dataTenant\n ? [\n {\n filter: 'equals',\n fieldName: facet.dataTenantFieldName,\n values: [facet.dataTenant]\n }\n ]\n : [];\n\nconst getFieldNameForRequestRule = (extraBuildRules = []) => [\n prop('fieldNameForRequest'),\n ({fieldNameForRequest, ...otherData}) => {\n const query = cond([...extraBuildRules, ...basicFilterBuildRules])({\n ...otherData,\n fieldName: fieldNameForRequest\n });\n return pipe(\n buildFilterQueryString(),\n wrapQueryWithBrackets\n )([\n {\n rawFilter: query\n },\n ...prepareDataTenantFilters(otherData)\n ]);\n }\n];\n\nexport const buildQuery = buildFilterQueryString([getFieldNameForRequestRule()]);\n\nexport const buildQueryTree = pipe(filter(isNotEmptyParam), buildFilterHierarchyList);\n\nexport const buildEntitiesUrl = (searchParams, options = {}) => {\n const {sortOrder, sortField, select, forceOvOnly, searchOptions, activityFilter, globalFilter} = options;\n const filterParam = pipe(buildQuery, addGlobalFilterToQuery(globalFilter))(searchParams);\n const page = options.page || 0;\n const rowsPerPage = options.rowsPerPage || ROWS_PER_PAGE_OPTIONS[0];\n\n const urlSearch = {\n filter: filterParam || undefined,\n select: buildSelectParam(searchParams, activityFilter, select),\n max: rowsPerPage,\n offset: page * rowsPerPage,\n sort: sortField || undefined,\n order: sortOrder || undefined,\n scoreEnabled: false,\n options: (forceOvOnly ? addToSearchOptions(searchOptions, 'ovOnly') : searchOptions) || undefined,\n activeness: activityFilter || undefined\n };\n\n return `entities${stringifySearch(urlSearch)}`;\n};\n\nconst addToSearchOptions = (options, value) => {\n options = options || '';\n const splitted = options.split(',').filter(identity);\n return splitted.includes(value) ? options : splitted.concat(value).join(',');\n};\n\nexport const buildEntitiesByUrisRequest = (entitiesUris, searchParams, options = {}) => {\n const {select, searchOptions, activityFilter} = options;\n\n const body = {\n select: buildSelectParam(searchParams, activityFilter, select),\n uris: entitiesUris,\n options: addToSearchOptions(searchOptions, 'ovOnly')\n };\n\n return {\n url: 'entities/_byUris',\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nconst buildSelectParam = (searchParams, activityFilter, select = []) => {\n const selectParams = DEFAULT_SEARCH_SELECT.concat(select);\n if (activityFilter && activityFilter !== ActivityFilters.ACTIVE_ONLY) {\n selectParams.push('startDate', 'endDate');\n }\n return uniq(selectParams).join(',');\n};\n\nexport const businessCardAttributeURIsSelectRule = propOr([], 'businessCardAttributeURIs');\n\nexport const geoLocationAttributesSelectRule = compose(\n flatten,\n map((item) => [item.latitude, item.longitude]),\n propOr([], 'geoLocationAttributes')\n);\n\nexport const collectAdditionalSelect = (metadata, searchParams, selectRules = []) => {\n const entityTypesForSearch = Maybe.fromNull(\n searchParams.find((param) => param.fieldName === 'type' && param.values.length)\n )\n .map(prop('values'))\n .orSome(pluck('uri', metadata.entityTypes));\n const additionalAttrs = entityTypesForSearch.map((entityTypeUri) => {\n const entityType = getEntityType(metadata, entityTypeUri);\n\n return selectRules\n .reduce((attrUris, rule) => attrUris.concat(rule(entityType)), [])\n .map(prepareAttrUriForSearch);\n });\n return uniq(flatten(additionalAttrs).map(getFirstLevelSearchUri));\n};\n\nexport const prepareAttrUriForSearch = attributeUriToSearchUri;\n\nexport const getFirstLevelSearchUri = pipe(split('.'), slice(0, 2), join('.'));\n\nexport const buildFacetsRequest = (facets, searchParams, excludeFields = [], options = {}, extraUrlParams = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const dataTenantSearchParams = facets.length === 1 ? prepareDataTenantFilters(facets[0]) : [];\n const filterParam = pipe(\n filter((param) => param.forceInclude || !excludeFields.includes(param.fieldName)),\n concat(__, dataTenantSearchParams),\n buildQuery,\n addGlobalFilterToQuery(globalFilter)\n )(searchParams);\n const body = facets.map((facet) => {\n const facetBody = {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n pageSize: facet.pageSize,\n pageNo: 1,\n orderType: facet.orderType\n };\n if (!facet.disableIncludeFilter) {\n facetBody.includeFilter = facet.includeFilter || facet.values;\n }\n return facetBody;\n });\n\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined,\n ...extraUrlParams\n };\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildPotentialMatchesFacetUrl = (from, to, bars, searchParams, excludeFields = [], options = {}) => {\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = preparePotentialMatchesUrlSearch(from, to, bars, searchParams, excludeFields, options);\n return `api/${env}/${tenant}/entities/potentialMatches${stringifySearch(urlSearch)}`;\n};\n\nexport const buildMatchScoresFacetUrl = (from, to, bars, searchParams, excludeFields = [], options = {}) => {\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = preparePotentialMatchesUrlSearch(from, to, bars, searchParams, excludeFields, options);\n return `api/${env}/${tenant}/entities/matchScores${stringifySearch(urlSearch)}`;\n};\n\nconst preparePotentialMatchesUrlSearch = (from, to, bars, searchParams, excludeFields, options) => {\n const {searchOptions, activityFilter, globalFilter, dataTenant} = options;\n const filterParam = buildPureSearchQuery(searchParams, excludeFields, globalFilter);\n return {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n from,\n to,\n bars,\n activeness: activityFilter || undefined,\n dataTenant\n };\n};\n\nexport const buildTypeaheadRequest = ({entityTypes}, searchValue, maxSuggestions) => {\n const entityForRequest = entityTypes.filter(isAvailableEntityType).map(prop('uri'));\n const entityFilter = {\n filter: 'equals',\n fieldName: 'type',\n values: entityForRequest\n };\n const fuzzyFilter = {\n filter: 'containsWordStartingWith',\n fieldName: 'attributes',\n values: [searchValue]\n };\n const typeAheadFilter = buildQuery([entityFilter, fuzzyFilter]);\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = {\n filter: typeAheadFilter || undefined,\n scoreEnabled: true,\n max: maxSuggestions + 1\n };\n return {\n url: `api/${env}/${tenant}/entities/_typeAheadSearch${stringifySearch(urlSearch)}`\n };\n};\n\nexport const buildHistogramUrl = (facet, searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter, ...restOptions} = options;\n const filterParam = buildPureSearchQuery(\n searchParams.concat(prepareDataTenantFilters(facet)),\n excludeFields,\n globalFilter\n );\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n const body = [\n {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n facetType: 'histogram',\n ...restOptions\n }\n ];\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildStatsUrl = (facet, searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const filterParam = buildPureSearchQuery(\n searchParams.concat(prepareDataTenantFilters(facet)),\n excludeFields,\n globalFilter\n );\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n const body = [\n {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n facetType: 'stats'\n }\n ];\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildPureSearchQuery = (searchParams, excludeFields = [], globalFilter) => {\n return pipe(\n filter((param) => param.forceInclude || !excludeFields.includes(param.fieldName)),\n buildQuery,\n addGlobalFilterToQuery(globalFilter)\n )(searchParams);\n};\n\nexport const buildTotalUrlQuery = (searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const filterParam = buildPureSearchQuery(searchParams, excludeFields, globalFilter);\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n\n return stringifySearch(urlSearch).slice(1);\n};\n\nexport function callSearchRequestForTenant({searchRequest, url, options, dataTenant, customerTenant, dtssPath}) {\n return dataTenant\n ? requestForDataTenant({requestProvider: searchRequest, url, options, dataTenant, customerTenant, dtssPath})\n : searchRequest(`api/${getEnvironment()}/${customerTenant}/${url}`, options);\n}\n\nexport const buildTotalUrl = (searchParams, excludeFields = [], options) => {\n const urlQuery = buildTotalUrlQuery(searchParams, excludeFields, options);\n return `entities/_total${urlQuery ? `?${urlQuery}` : ''}`;\n};\n\nexport const buildTotalUrlForQuery = (query) => {\n const env = getEnvironment(),\n tenant = getTenant();\n\n return `api/${env}/${tenant}/entities/_total?${query}`;\n};\n\nconst getAttributeType = path(['data', 'attrType', 'type']);\n\nconst groupAttributeFilters = (result, attribute) => {\n let {orGroupIndex = 0} = result;\n const {filters} = result;\n const {values, filter, operator} = attribute;\n if (isOrOperator(operator)) {\n orGroupIndex = inc(orGroupIndex);\n }\n const attributeFilters = pathOr({}, ['filters', orGroupIndex], result);\n const attributeFilter = {\n filter,\n fieldName: path(['data', 'fieldName'], attribute),\n fieldNameForRequest: path(['data', 'fieldNameForRequest'], attribute),\n dataTenant: path(['data', 'dataTenant'], attribute),\n dataTenantFieldName: path(['data', 'dataTenantFieldName'], attribute),\n values: getQueryValuesArray(values),\n type: getAttributeType(attribute),\n operator\n };\n\n const rootFieldName = getRootFieldName(attributeFilter);\n attributeFilters[rootFieldName] = concat(propOr([], rootFieldName, attributeFilters), [attributeFilter]);\n\n return {orGroupIndex, filters: assoc(orGroupIndex, attributeFilters, filters)};\n};\n\nconst canWrapAnyChildrenInSameAttribute = (filterHierarchyList = []) =>\n filterHierarchyList.reduce((result, filterHierarchy) => {\n return (\n result ||\n canWrapInSameAttribute(filterHierarchy.children) ||\n canWrapAnyChildrenInSameAttribute(filterHierarchy.children)\n );\n }, false);\n\nconst prepareAttributeFilterOperations = (disableInSameAttributeValue) => (operations, filter) => {\n const attributesFilters = values(filter);\n const attributesOperations = attributesFilters.map((sameRootFieldNameFilters) => {\n const operator = path([0, 'operator'], sameRootFieldNameFilters);\n const filterHierarchyList = pipe(parseCompositeFilters, buildFilterHierarchyList)(sameRootFieldNameFilters);\n if (!disableInSameAttributeValue && canWrapAnyChildrenInSameAttribute(filterHierarchyList)) {\n return {\n filter: sameRootFieldNameFilters,\n operator: cond([\n [isAndOperator, always('and')],\n [isOrOperator, identity],\n [T, always(null)]\n ])(operator)\n };\n }\n return {\n filter: sameRootFieldNameFilters,\n operator: operator\n };\n });\n\n return append(attributesOperations, operations);\n};\n\nconst getOperationObject = (operand, operator) => ({operand, operator});\n\nconst isMultipleComplexValuesFormat = both(propSatisfies(lt(1), 'length'), propSatisfies(Array.isArray, 0));\n\nconst specialFiltersRules = [\n [\n propEq('fieldName', 'rdmLookups.resolved'),\n ({fieldName, values}) =>\n buildBasicFilterString({\n filter: FilterOptions.EQUALS,\n fieldName,\n values: [!values[0]]\n })\n ],\n [\n allPass([\n propEq('filter', FilterOptions.EQUALS),\n propSatisfies(isMultipleComplexValuesFormat, 'values'),\n complement(propEq('fieldName', 'type')),\n propSatisfies(complement(isDateType), 'type')\n ]),\n ({fieldName, values}) =>\n pipe(\n map((values) =>\n values.length > 1\n ? buildComplexFilterString({fieldName, values, filter: 'listEquals'})\n : buildBasicFilterString({fieldName, values, filter: 'equals'})\n ),\n joinFilterStrings(' and ')\n )(values)\n ]\n];\n\nconst buildQueryToOperationObject = (filtersRules = [], disableInSameAttributeValue = false) => (items) => {\n const extraRules = [...specialFiltersRules, ...filtersRules];\n return items.map((item) =>\n getOperationObject(\n buildFilterQueryString(\n [getFieldNameForRequestRule(extraRules), ...extraRules],\n disableInSameAttributeValue\n )(item.filter),\n item.operator\n )\n );\n};\n\nconst getQueryValuesArray = pipe(defaultTo([]), map(when(has('value'), prop('value'))));\n\nconst buildGroupQuery = (query = '', entityTypes = []) => {\n const entityTypeCondition = [\n {\n filter: 'equals',\n fieldName: 'type',\n values: entityTypes\n }\n ];\n const entityTypesPart = buildFilterQueryString()(entityTypeCondition);\n return entityTypesPart + (entityTypesPart && query ? ` and ${wrapQueryWithBrackets(query)}` : query);\n};\nconst toArray = (value) => (Array.isArray(value) ? value : Object.keys(value).map((key) => value[key]));\nexport const buildQueryForAdvancedSearchGroups = (groups, filtersRules = [], disableInSameAttributeValue = false) => {\n const groupsOperations = groups\n .map(evolve({attributes: shiftDownOperators}))\n .filter(isValidSearchGroup)\n .map((group) => {\n const attributesQuery = pipe(\n prop('attributes'),\n filter(isValidSearchGroupAttribute),\n reduce(groupAttributeFilters, {filters: []}),\n prop('filters'),\n toArray,\n reduce(prepareAttributeFilterOperations(disableInSameAttributeValue), []),\n map(buildQueryToOperationObject(filtersRules, disableInSameAttributeValue)),\n flatten,\n filter((operation) => operation.operand),\n map(evolve({operand: (operand) => wrapQueryWithBrackets(operand, false)})),\n shiftUpOperators,\n buildOperationsToString\n )(group);\n return getOperationObject(buildGroupQuery(attributesQuery, group.entityTypes), group.operator);\n })\n .filter((groupOperation) => groupOperation.operand);\n\n return pipe(\n ifElse(\n pipe(length, lt(1)),\n map((operation) => getOperationObject(wrapQueryWithBrackets(operation.operand), operation.operator)),\n identity\n ),\n buildOperationsToString\n )(groupsOperations);\n};\n","import {\n __,\n complement,\n concat,\n curry,\n equals,\n filter,\n flatten,\n intersection,\n isNil,\n map,\n memoizeWith,\n pipe,\n pluck,\n prop,\n reject,\n sort,\n uniq\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {getEntityType, getLastUriPart, isNested, isReadableAttribute, Maybe} from '@reltio/mdm-sdk';\n\nimport {SEARCH_RESULTS_MODES} from '../../constants/constants';\nimport {envSpecificKey} from '../../utils/general';\nimport {getFirstLevelSearchUri, prepareAttrUriForSearch} from './searchEngine';\nimport {entityTypeProcessing} from './facet';\n\nexport const isTableMode = (mode) => mode === SEARCH_RESULTS_MODES.TABLE;\n\n//prettier-ignore\nconst collectColumnsForest = curry((metadata, entityTypeUri, excludeIds = []) => {\n const entityType = Maybe.fromNull(getEntityType(metadata, entityTypeUri)).orSome({});\n return collectSpecialColumns(excludeIds).concat(collectAttributeColumns(\n (entityType.attributes || []).concat(entityType.analyticsAttributes || [])\n ));\n});\n\nexport const memoizedCollectColumnsForestWithoutLabel = memoizeWith(\n (metadata, entityTypeUri) => envSpecificKey(entityTypeUri),\n collectColumnsForest(__, __, ['label'])\n);\n\nexport const getAdditionalColumns = (metadata, entityTypeUri, headColumns) =>\n headColumns &&\n deepFilter(\n memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri),\n (column) => !headColumns.some((elem) => column.id === elem.id)\n );\n\nexport const collectSpecialColumns = (excludeIds = []) =>\n [\n {\n id: 'label',\n label: i18n.text('Profile')\n },\n {\n id: 'entityId',\n label: i18n.text('Entity ID')\n }\n ].filter((column) => !excludeIds.includes(column.id));\n\nconst collectAttributeColumns = (attributes = []) =>\n attributes.filter(isReadableAttribute).map((attrType) => {\n const column = {\n id: prepareAttrUriForSearch(attrType.uri),\n label: attrType.label || getLastUriPart(attrType.uri),\n attrType\n };\n const subAttrs = attrType.attributes || attrType.analyticsAttributes;\n if (attrType.type === 'Nested' && subAttrs) {\n column.children = collectAttributeColumns(subAttrs);\n }\n return column;\n });\n\nexport const getChildrenLeafsByParentId = (columns, parentId) => {\n const parent = findNodeInForest(columns, parentId);\n return getFlatChildrenLeafs(parent);\n};\n\nconst findNodeInForest = (children, id) => {\n let result = null;\n const walk = (children) => {\n children.some((node) => {\n if (node.id === id) {\n result = node;\n return true;\n }\n if (node.children) {\n return walk(node.children, id);\n }\n });\n };\n walk(children);\n return result;\n};\n\n//prettier-ignore\nconst getFlatChildrenLeafs = item => {\n return flatten(\n (item.children || []).map(node => (node.children ? getFlatChildrenLeafs(node) : [node]))\n );\n};\n\nexport const deepFilter = (nodes, filter) =>\n nodes.filter(filter).map((node) =>\n node.children\n ? {\n ...node,\n children: deepFilter(node.children, filter)\n }\n : node\n );\n\nconst collectColumnsByIds = (metadata, entityTypeUri, ids) => {\n const columns = collectColumnsForest(metadata, entityTypeUri);\n return uniq(\n pipe(\n concat(['label']),\n map((id) => findNodeInForest(columns, id)),\n reject(isNil),\n filter(pipe(prop('attrType'), complement(isNested)))\n )(ids)\n );\n};\n\nexport const getInitialColumnsByEntityTypes = (metadata, allowedEntityTypes, defaultTabs = {}) => {\n const entityTypesFacetData = entityTypeProcessing(metadata, {}, allowedEntityTypes);\n const defaultColumnIds = prop('*', defaultTabs);\n\n return entityTypesFacetData.reduce((result, item) => {\n const columnsIds = defaultTabs[item.value] || defaultColumnIds;\n result[item.value] = isNil(columnsIds)\n ? collectSpecialColumns()\n : collectColumnsByIds(metadata, item.value, columnsIds);\n return result;\n }, {});\n};\n\nconst orderComparator = (order) => (item1, item2) => order.indexOf(item1.value) - order.indexOf(item2.value);\n\nexport const getEntityTypesForTabs = ({entityTypes}, tabs = [], selectedEntityTypes = []) => {\n const orderInMetadata = pluck('uri', entityTypes);\n const metadataOrderComparator = orderComparator(orderInMetadata);\n const selectedValuesOrderComparator = orderComparator(selectedEntityTypes);\n const filteredTabs = tabs.filter(({value}) =>\n selectedEntityTypes.length === 0 ? true : selectedEntityTypes.includes(value)\n );\n return sort(\n selectedEntityTypes.length === 0 ? metadataOrderComparator : selectedValuesOrderComparator,\n filteredTabs\n );\n};\n\nexport const isColumnsEqual = (selected, initial) => {\n const getId = (column) => column.id;\n return equals(selected.map(getId), initial.map(getId));\n};\n\nexport const buildSelectFromColumns = (columns) => {\n const specialColumns = collectSpecialColumns();\n return uniq(\n columns\n .filter((column) => !specialColumns.find((specialColumn) => specialColumn.id === column.id))\n .map(pipe(prop('id'), getFirstLevelSearchUri))\n );\n};\n\nexport const needRequestAfterColumnsChanges = (columns, prevColumns) => {\n const select = buildSelectFromColumns(columns);\n const prevSelect = buildSelectFromColumns(prevColumns);\n return !equals(intersection(select, prevSelect), select);\n};\n","let appConfig = {};\nexport const getConfig = () => appConfig;\nexport const setConfig = (config) => (appConfig = config);\n\nconst getAppConfigParam = (name) => appConfig[name];\n\nexport const getApiPath = () => getAppConfigParam('apiPath');\nexport const getImagePath = () => getAppConfigParam('imagePath');\nexport const getMaxRecommended = () => getAppConfigParam('maxRecommended') || 5;\n","import {ErrorPopup} from '@reltio/components';\nimport {getRequestErrorMessage} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\n\nexport const showServerError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Server Error'),\n message: i18n.text('Something went wrong...')\n });\n};\n\nexport const showUpdateSearchStateErrors = (errors = []) => {\n console.error(errors); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: i18n.text(\"Can't apply search state\")\n });\n};\n\nexport const showLoadSavedSearchErrors = (errors = []) => {\n console.error(errors); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: i18n.text(\"Saved Search can't be applied\")\n });\n};\n\nexport const showImportFromDataTenantError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Import Error'),\n message: i18n.text(\"Record can't be imported\")\n });\n};\n\nexport const showLoadEntityError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: getRequestErrorMessage(error, i18n.text(\"Can't load entity\"))\n });\n};\n","import {Decimal} from 'decimal.js';\n\nexport const plus = (a, b) => new Decimal(a).add(b);\n\nexport const minus = (a, b) => new Decimal(a).sub(b);\n\nexport const div = (a, b) => new Decimal(a).div(b);\n\nexport const mul = (a, b) => new Decimal(a).mul(b);\n\nexport const greaterThan = (a, b) => Decimal(a).greaterThan(b);\n\nexport const greaterThanOrEqualTo = (a, b) => new Decimal(a).greaterThanOrEqualTo(b);\n\nexport const lessThan = (a, b) => new Decimal(a).lessThan(b);\n\nexport const lessThanOrEqualTo = (a, b) => new Decimal(a).lessThanOrEqualTo(b);\n\nexport const floor = (a) => new Decimal(a).floor();\n\nexport const ceil = (a) => new Decimal(a).ceil();\n\nexport const min = (a, b) => Decimal.min(a, b);\n\nexport const max = (a, b) => Decimal.max(a, b);\n\nexport const equals = (a, b) => new Decimal(a).equals(b);\n\nexport const clamp = (min, max, value) => {\n if (new Decimal(min).gt(max)) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n const bigValue = new Decimal(value);\n return bigValue.lt(min) ? min : bigValue.gt(max) ? max : value;\n};\n\nexport const toFixed = (value, digits) => new Decimal(value).toFixed(digits);\n","import {clamp as rclamp} from 'ramda';\n\nexport const plus = (a, b) => Number(a) + Number(b);\n\nexport const minus = (a, b) => a - b;\n\nexport const div = (a, b) => a / b;\n\nexport const mul = (a, b) => a * b;\n\nexport const greaterThan = (a, b) => Number(a) > Number(b);\n\nexport const greaterThanOrEqualTo = (a, b) => Number(a) >= Number(b);\n\nexport const lessThan = (a, b) => Number(a) < Number(b);\n\nexport const lessThanOrEqualTo = (a, b) => Number(a) <= Number(b);\n\nexport const floor = (a) => Math.floor(a);\n\nexport const ceil = (a) => Math.ceil(a);\n\nexport const min = (a, b) => Math.min(a, b);\n\nexport const max = (a, b) => Math.max(a, b);\n\nexport const equals = (a, b) => a === b;\n\nexport const clamp = (min, max, value) => rclamp(Number(min), Number(max), Number(value));\n\nexport const toFixed = (value, digits) => Number(value).toFixed(digits);\n","import queryString from 'query-string';\nimport {compose, memoizeWith, identity} from 'ramda';\nimport {isNumber} from './maybe';\nimport i18n from 'ui-i18n';\nimport moment from 'moment';\nimport {Decimal} from 'decimal.js';\nimport * as BNMath from './bigNumbersMath';\nimport * as NMath from './numbersMath';\n\nlet tenant;\nexport const setTenant = (_tenant) => {\n tenant = _tenant;\n};\n\nlet env;\nexport const setEnvironment = (_env) => {\n env = _env;\n};\n\nexport const getTenant = () => {\n return tenant;\n};\n\nexport const getEnvironment = () => {\n return env ? env.toString() : '';\n};\n\nexport const interpolate = (string, params) => {\n let template = string;\n for (let key in params) {\n template = template.replace(new RegExp('\\\\$\\\\{' + key + '\\\\}', 'g'), params[key]);\n }\n return template;\n};\n\nexport const clone = compose(JSON.parse, JSON.stringify);\n\nexport const redirectTo = (tenant, env) => {\n const searchState = queryString.parse(window.location.search);\n window.location.search = queryString.stringify({...searchState, tenant, env});\n};\n\nexport const log = (i) => {\n console.log(i); //eslint-disable-line\n return i;\n};\n\nexport const formatNumberAsMetric = (value, limit) => {\n if (!isNumber(value)) {\n return '';\n }\n\n const NumMath = getNumbersMath(Decimal.isDecimal(value) && 'Long');\n if (\n NumMath.lessThanOrEqualTo(value, Number.MAX_SAFE_INTEGER) &&\n NumMath.greaterThanOrEqualTo(value, Number.MIN_SAFE_INTEGER)\n ) {\n return NumMath.greaterThan(value, limit || 1000)\n ? i18n.number(value, '0,0.0a').toUpperCase()\n : i18n.number(value, '0,0[.]0');\n } else {\n return NumMath.greaterThan(value, limit || 1000)\n ? i18n.number(NumMath.div(value, 1e12), '0,0.0') + 'T'\n : value.toString();\n }\n};\n\nexport const envSpecificKey = (key) => {\n const tenant = getTenant();\n const env = getEnvironment();\n return `${tenant}_${env}_${key}`;\n};\n\nexport const formatMomentDate = (momentDate) => {\n return momentDate.format(moment.localeData().longDateFormat('L'));\n};\n\nexport const getNumbersMath = (attrType) => (attrType === 'Long' ? BNMath : NMath);\n\nexport const noop = () => {};\n\nexport const memoizedWrapInArray = memoizeWith(identity, (uri) => [uri]);\n","// prettier-ignore\nexport const lens = (getter, setter) => {\n return {\n get: getter,\n set: setter,\n compose: l => lens(\n obj => l.get(getter(obj)),\n (obj, value) => setter(obj, l.set(getter(obj), value))\n )\n };\n};\n\n// prettier-ignore\nexport const createLens = fieldName => lens(\n obj => obj[fieldName],\n (obj, value) => Object.assign({}, obj, {[fieldName]: value})\n);\nexport function inArrayByIndex(index) {\n return lens(\n (arr) => arr[index],\n (arr, val) => ((arr = [...arr]), (arr[index] = val), arr)\n );\n}\nexport const inObject = createLens;\nexport const prop = (key) => (typeof key === 'string' ? createLens(key) : inArrayByIndex(key));\n\nexport const path = (key, ...keys) => (keys.length ? prop(key).compose(path(...keys)) : prop(key));\n","export const isObject = (value) => typeof value === 'object' && value !== null;\nexport const isNumber = (value) => !isNaN(parseFloat(value)) && isFinite(value);\nexport const isString = (value) => typeof value === 'string' || value instanceof String;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Headers-styles-container--xVHUC\",\"title\":\"Headers-styles-title--2f-Hk\",\"actionsBar\":\"Headers-styles-actionsBar--3znSF\",\"splitter\":\"Headers-styles-splitter--2cuCI\",\"headerIcon\":\"Headers-styles-headerIcon--24r6n\",\"previewSwitcher\":\"Headers-styles-previewSwitcher--IJ7aJ\",\"tabsContainer\":\"Headers-styles-tabsContainer--33mAP\",\"number\":\"Headers-styles-number--1bDWm\"};"],"names":["AvatarStates","className","icon","avatarText","rootClasses","otherProps","state","setState","useState","useEffect","ICON_MODE","TEXT_MODE","onImageLoadFail","ERROR_MODE","Avatar","classnames","iconRoot","src","onError","textRoot","useStyles","makeStyles","pagination","display","alignItems","justifyContent","height","borderTop","boxShadow","caption","color","fontSize","lineHeight","selectRoot","marginLeft","marginRight","select","textAlign","actions","BasicTablePagination","classes","count","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","styles","resetScrollbarPosition","useCallback","pathOr","identity","handleChangePage","value","handleChangeRowsPerPage","TablePagination","root","component","i18n","labelDisplayedRows","from","to","fromRow","toRow","countRows","pipe","nthArg","getValue","propTypes","PropTypes","current","React","collapseButton","cursor","expandLess","transform","isOpen","tooltipTitle","buttonProps","ExpandMore","iconClassName","tooltipProps","SmallIconButton","textOverflow","overflow","whiteSpace","padding","borderRadius","fontWeight","entity","size","metadata","useSelector","mdmModule","entityTypeUri","type","entityType","getEntityType","entityTypeColor","getPropWithInheritance","theme","entityTypeLabel","getEntityTypeLabel","ExpandedValueTooltip","placement","Typography","style","backgroundColor","utils","width","check","ImportModes","tooltip","onClick","noop","mode","INIT","button","CloudDownloadIcon","PROGRESS","CircularProgress","spinner","SUCCESS","Done","renderCurrentMode","scroll","element","scrollIntoView","block","behavior","clearScrollTimer","scrollTimer","clearTimeout","isScrolledIntoView","scrollableParent","elemTop","offsetTop","elemBottom","clientHeight","scrollTop","background","highlighted","animationName","animationDuration","animationIterationCount","item","minHeight","borderBottom","flexDirection","content","clickable","selected","fade","palette","primary","main","inactive","inactiveBackground","inactiveHoverBackground","inactiveSelectedBackground","inactiveSelectedHoverBackground","justImported","avatar","image","marginTop","marginBottom","info","flexGrow","overflowWrap","wordWrap","label","textDecoration","secondaryLabel","businessCard","secondRow","connect","entities","entityToHighlight","selectedEntityUri","onEntityClick","onEntityHover","entitiesImportStatus","entityButtonsRenderer","list","useRef","useDidUpdateEffect","querySelectorAll","length","parentElement","setTimeout","ref","map","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","entityUriForLink","getEntityUriForLink","importStatus","prop","key","undefined","onMouseEnter","onMouseLeave","EntityAvatar","avatarClassName","imageClassName","EntityUriLink","EntityTypeBadge","getEntityId","_extends","Object","assign","target","i","arguments","source","prototype","hasOwnProperty","call","apply","this","props","viewBox","version","xmlns","stroke","strokeWidth","fill","fillRule","opacity","d","ConfigureColumnsButton","headColumns","onSelectColumns","popupAnchor","setPopupAnchor","filterText","setFilterText","handlePopupClose","handleColumnClick","data","checked","columnsForest","memoizedCollectColumnsForestWithoutLabel","children","getChildrenLeafsByParentId","id","selectedColumns","concat","filter","column","find","child","ConfigureColumnsIcon","e","currentTarget","ConfigureColumnsPopup","open","anchorEl","onListItemClick","onClose","onSearch","renderConfigureColumnsPopup","HeadCellRenderer","headCellData","headIndex","sortOrder","sortField","sortHandler","canCheck","onCheck","headerCheckboxState","openConfigColumnPopup","classNames","path","Checkbox","indeterminate","onChange","sortable","TableSortLabel","active","Boolean","direction","MoreVertIcon","withTableContext","pick","HeadCellRendererWithCheckbox","EntityProfileRenderer","DefaultRenderer","columnData","dataTypeDefinition","DataTypeValue","ReferenceRenderer","AvatarWithFallback","getTypeGraphIcon","refEntity","objectURI","stopPropagation","event","BlobRenderer","onScroll","ImageRenderer","getImageAttributeOvThumbnailUrl","columnInfo","getAttrPathFromColumnId","split","NOT_SORTABLE_COLUMN_IDS","isSortableColumn","includes","getNestedPathByColumnId","columnId","isAttributeSearchUri","attrPath","slice","EntityRowOverlay","isSelectedEntity","isHighlightedEntity","entityImportStatus","onEntityImportStatusChange","EntityRowButtons","values","highlightedEntityIndex","rowIndex","commonCellWrapperStyles","inactiveCell","selectedRowCell","lighten","withCellDecorationPropTypes","isSelected","isJustImported","checkboxWrapper","checkbox","withCheckboxPropTypes","isChecked","hasCheckbox","collapser","withCollapseButtonPropTypes","hasCollapseButton","Component","WithCollapseButton","componentProps","restProps","rowValue","CollapseRowButton","WithCheckbox","rawValue","WithCellDecoration","onCellClick","isInactive","checkedEntitiesUris","columnIndex","isFirstColumn","defaultRenderRowCell","getAttributeHeight","cell","countAttributes","defaultHeight","Math","max","EntitiesTable","forwardRef","onReorderingColumn","dndColumnReorderingEnabled","columnsSize","onChangeColumnsSize","onSort","logger","tableClasses","useMemo","highlightRow","dragColumnHead","dragColumnBody","draggableHeadCell","cellWrapper","hoverRowIndex","setHoverRowIndex","handleRowHover","tableRef","useImperativeHandle","resetLeft","handleSort","field","SORT_DIRECTION_ASC","order","SORT_DIRECTION_DESC","renderRowOverlay","renderRowCell","RowCellRenderer","hoverStateEnabled","sortingEnabled","columnsData","attrType","getAttrDataTypeDefinition","resizable","autoResize","draggable","nestedPath","headCellRenderer","rowCellValueRenderer","getAttributeValueRenderer","getBasicTableColumnsData","rowsData","reduce","acc","assoc","attrSource","getOvAttributeValuesByPath","getRowValueForColumn","getBasicTableRowsData","findIndex","propEq","tableContext","BasicTable","fixFirstColumn","sortFieldClassName","containerClassName","defaultColumnWidth","headRowHeight","defaultColumnMinWidth","defaultRowHeight","sorting","dndColumnReorderingHandler","resizeDebounceDelay","onRowHover","context","maxRowValuesCount","getRowCellHeight","defaultProps","displayName","memo","INSERT_LEFT","INSERT_RIGHT","HIDE","TEXT","ConfigColumnPopup","Popover","List","action","index","handler","ListItem","ListItemText","primaryTypographyProps","variant","renderListItem","getClickHandler","EntitiesTableWithConfigurableColumns","addColumnPopupOpen","configColumnPopupOpen","configurableColumnIndex","addColumnHandler","newColumnPlaceIndex","onChangeColumnsList","columns","splice","closeAddColumnPopup","openAddColumnPopup","parseInt","getAttribute","closeConfigColumnPopup","configColumnHandler","hideCurrentConfigColumn","memoizedGetColumnSize","memoizeWith","getMemoIdForColumnSize","getColumnSizeFromHeadColumns","envSpecificKey","toString","render","entitiesTableRef","additionalColumns","hideCheckBox","titleText","ImportEntityButton","onImportStatusChange","hideDelay","dtssPath","tenant","ImportButton","importEntityFromDataTenant","customerTenant","then","success","uris","Error","ctSubscribedUris","catch","showImportFromDataTenantError","EntityType","importButtonPlaceholder","flexShrink","position","canImportFromDataTenant","canImport","isDataTenantEntity","canImportEntity","checkCanImportEntityOfType","isEntityImportedToCT","showImportButton","status","query","text","secondary","letterSpacing","READABLE_QUERY_PRIMITIVE_TYPES","ReadableSearchQuery","readableQuery","CREATE_FACETS","DESTROY_FACETS","CHANGE_VALUES","CLEAR_ALL_VALUES","UPDATE_DATA","UPDATE_FILTERED_DATA","DESTROY_FILTERED_DATA","FILTER_FACET_DATA","HANDLE_CONFIGS_CHANGES","REQUEST_GIVEN_FACETS_DATA","SET_RECOMMENDED_FACETS_LIST","CONVERT_FROM_ADVANCED_SEARCH","SHOW_MORE_ENTITY_TYPES","HIGHLIGHT_ADDED_FACETS","CLEAR_HIGHLIGHT_ADDED_FACETS","UPDATE_ENTITIES","UPDATE_URL","CLEAR_RESULTS","REFRESH_DISPLAYED_ENTITIES","REFRESH","CLEAR_ALL","SHOW_MORE_RESULTS_FOR_ENTITY_TYPE","UPDATE_TOTAL","CHANGE_PAGE","RESET_PAGE","CHANGE_ROWS_PER_PAGE","CHANGE_SORT","CHANGE_LOADING","MAP_CHANGE_VALUE","STATE_UPDATED","EXPORT_RESULTS","OPEN_DATA_LOADER","CHANGE_CURRENT_TENANT","appId","ROWS_PER_PAGE_OPTIONS","NUMERIC_RANGE_MIN_VALUE","NUMERIC_RANGE_MAX_VALUE","DATE_RANGE_MIN_VALUE","currentDate","Date","setHours","setFullYear","getFullYear","yearAgoDate","DATE_RANGE_MAX_VALUE","SEARCH_RESULTS_MODES","TABLE","LIST","MAP","DEFAULT_VIEW","PREVIEW_PANEL_MODES","PROFILE","DEFAULT_FACET_PAGE_SIZE","operators","defaultOperator","defaultGroupOperator","STORED_SEARCHES_TYPES","saved","recent","SAVED_SEARCHES_SHARING_OPTIONS_VALUES","public","private","SAVED_SEARCHES_SORTED_FIELDS","name","updateDate","SAVED_SEARCHES_SORT_BY_VALUES","SAVED_SEARCHES_SORT_ORDER_VALUES","ASC","DESC","SAVED_SEARCHES_SHARING_OPTIONS","NOTIFICATION_TYPES","error","ML_RULES_ONLY","pmRulesScope","ENTITY_TYPE_FACET_ROW_COUNT","SEARCH_DEBOUNCE_TIME","BULK_UPDATE_SELECTION_MODES","include","exclude","BULK_UPDATE_COMMON_OPERATIONS","UpdateProfiles","DeleteProfiles","BULK_UPDATE_OPERATIONS","AddNew","Clear","ReplaceAllWith","FindAndReplace","FindAndRemove","RepointReference","BULK_UPDATE_OPERATION_LABELS","BULK_UPDATE_ALLOWED_OPERATION_VALUE_FIELDS","BULK_UPDATE_SIMPLE_ATTRIBUTE_OPERATIONS","without","BULK_UPDATE_NESTED_ATTRIBUTE_OPERATIONS","BULK_UPDATE_REFERENCE_ATTRIBUTE_OPERATIONS","BULK_UPDATE_API_OPERATIONS","AddAttribute","UpdateAttribute","DeleteAttribute","RepointReferencedEntity","AddTags","ReplaceTag","DeleteTags","ClearTags","BULK_UPDATE_REFERENCED_ENTITY_ID_FIELD_NAME","DEFAULT_SEARCH_SELECT","PROP_NAME_OPERATOR","PROP_NAME_VALUES","PROP_NAME_FILTER","getEmptyAttributeObject","nanoid","getAttributeObject","attribute","getAttributeData","filterOptions","enforcedFilterOptions","getFilterOptionsForQueryBuilder","fieldName","defaultFindGroupPath","curry","groups","groupIndex","group","createGetGroupLens","groupsLensPath","findGroupPath","createLPath","get","groupPath","createGetAttributesLens","getGroupLens","propNameAttributes","groupId","groupLens","compose","createLens","createGetAttributeIndex","getAttributesLens","attributeId","attributesLens","createGetAttributeLens","attributeIndex","getAttributeIndex","createSetAttributeProp","getAttributeLens","propName","groupAttributeL","newAttribute","set","createGetAttributeProp","addAttributeAfter","groupAttributesL","newAttributes","attrIndex","isLastAttribute","operator","push","changeAttributeData","attributeData","setAttributeProp","newState","currentFilter","isAttributeIncludesFilter","attrLens","setAttributeOperator","deleteAttribute","attributes","editedAttributes","remove","prevAttribute","removedAttribute","duplicateAttribute","setFilter","getAttributeProp","isCompatibleFilters","setValues","toggleQueryBuilderAttributeSelect","attributesPropName","selectInfo","selectedAttribute","selectIndex","selectedAttributes","changeAttribute","clearAttribute","groupAttributes","__","propOr","getGroupAttributeIdAt","put","nextSelectedAttribute","selectIndexFromEnd","targetIndex","getEntityTypeGraphIcon","getAbsoluteImageUrl","getImagePath","getApiPath","collectAttrTypesData","title","faceted","hideForDataTenant","entityAttributes","EntityAttrTypes","workflowAttributes","WorkflowAttrTypes","collaborationItemsAttributes","CollaborationAttrTypes","RDMItemsAttributes","RdmAttrTypes","auditItemsAttributes","AuditAttrTypes","potentialMatchesAttributes","PotentialMatchesAttrTypes","crosswalksItemsAttributes","omit","CrosswalksAttrTypes","getEntityAttributes","getWorkflowAttributes","getCollaborationItemsAttributes","getRDMItemsAttributes","getAuditItemsAttributes","getPotentialMatchesAttributes","dataTenants","evolve","dataTenant","fieldNameForRequest","dataTenantFieldName","getCrosswalksItemsAttributes","createSpecialAttributeItem","pageSize","getPageSizeByAttrType","orderType","getOrderTypeByAttrType","createDataTenantConfigPart","originalTitle","createAttributesGroup","collectSpecialAttributesGroups","attributesFilter","T","canUserReadWorkflowDataTask","_createAttributesGroup","attributesInitial","getSpecialAttribute","specialAttributeGroup","attr","createFacetForSpecialAttrType","facetProps","getFacetTypeForAttrType","singleValue","getDataTenantSpecialAttributeFieldName","additionalAttributesRules","SpecialAttrTypes","hasMatchRulesWithoutML","LogoIcon","xmlnsXlink","x1","y1","x2","y2","stopColor","offset","stopOpacity","xlinkHref","x","y","rx","mask","cx","cy","ry","r","hasMlMatchRule","getAdditionalAttributes","additionalAttributes","dataTenantAdditionalAttributes","flatMap","additionalAttribute","getDisableIncludeFilterByAttrType","isFaceted","isComplexAttribute","getAttributeTypeSubAttributes","some","getChildrenAttributes","flat","Infinity","complement","isEmpty","createComplexAttributesConfig","attrNode","createAttributeConfig","parents","resConfig","childNode","createAttributeItem","pathToTitle","Array","isArray","chain","prepareAttrUriForSearch","isComplex","disableIncludeFilter","getAttributesTree","entityOrAttrType","filterFaceted","getAllAttributeTypesTree","either","always","collectAttributeGroups","memoizeOne","selectedEntityTypes","createGroup","onlyOneSelectedEntityType","inSelectedTypes","isOnlyOneSelected","isOnlyOneSelectedReceived","entityTypes","isAvailableEntityType","anyPass","allPass","complexAttributes","collectAdvancedAttributeGroups","findClosestCommonAncestor","flattenGroupedItemsData","groupedItems","getFlattenedItems","items","flatten","titleItemIndex","getEntityTypeFacetConfig","_metadata","hiddenTitle","showIcon","barColor","transparentBackground","showDeleteButton","potentialMatchesFacetConfig","specialFacets","getSpecialFacets","dataTenantFacets","createAttributeFacetConfig","memoizedCollectAttributeFacetsGroups","createFacetsGroup","facets","needGroupIcon","collectFacetsList","recommendedFacets","onlyOneEntityTypeSelected","specialGroup","entityTypesGroup","entityTypesFacets","recommendedFacetsConfigs","findFacetConfigByFieldName","reject","isNil","facetConfigs","facetConfig","flattenChildrenForEntityTypeConfigs","entityTypeConfig","getAvailableFacetsGroupsList","getFlatFacets","facet","collectFacetsFlatList","facetGroup","prepareFacetDataForStore","showAllItems","when","is","isComplexFacet","config","FACET_TYPES","isLookupFacet","isLookupAttrType","isPotentialMatchesFacet","startsWith","isMatchRuleFacet","intersection","isMLMatchRuleFacet","isDataTenantFacet","getValuableFacets","not","memoizedCollectSpecialAttributesGroups","getGroupTitle","createAdvancedSearchGroupFromFacets","facetsWithConfigs","facetsToConvert","typeFacet","restFacets","partition","isTypeFacet","attributesList","getFilterOptionForFacet","dataFromFacet","groupName","getFilterValueForFacet","attributeList","hasNotAvailableEntityTypes","any","getAvailableEntityTypesUris","addAvailableEntityTypesIfNeeded","removeNumberForDtssUnavailableEntityTypeItems","tenantObject","availableEntityTypes","number","findConfigByFieldName","configs","console","warn","prepareFacets","lookupsCodes","viewConfig","keys","result","realFieldName","prepareFacet","prepareStatsFacet","statsProcessing","sortByNumber","a","b","numberMoreThanZero","specialFacetsFilter","configHasValue","defaultProcessing","rawData","sort","numericRangeTypeProcessing","Decimal","lookupProcessing","lookupCode","getLookupLabel","enumProcessing","enumerationList","booleanProcessing","formatDataTypeValue","entityTypeProcessing","allowedEntityTypes","orderByArrayComparator","_","lastUriPart","getLastUriPart","roleProcessing","roles","role","sourceSystemsProcessing","sources","matchRulesProcessing","matchGroups","uniqBy","isRaw","entries","uriOrLabel","matchGroup","min","getAttrTypeLookupCode","isEnumAttrType","isBooleanType","getDefaultRangeByType","facetType","fixNaNValue","defaultValue","isNaN","forEach","facetValue","getFacetByFieldName","getAcceptedFacetValues","facetData","acceptedValues","mergeConfigs","configsArray","setFiltersToFacets","facetTypeToFilter","addAvailableEntityTypeValues","ifElse","filterAllowedEntityTypes","getEntityTypeFacetFromState","entityTypeFacet","facetWithDropdownCheckboxes","numericRangeFacet","dateRangeFacet","needFacetsCleanUp","isTypeFacetAction","Facets","Search","buildValuesLabels","range","formatNumberAsMetric","createRangeServiceFor","getRange","formatMomentDate","moment","Maybe","orSome","needShowAllEntityTypeFacetItems","gt","getLookupsListFromFacets","codeValues","mergeLookupsLists","getUnresolvedLookupsListFromFacet","resolvedLookups","getUnresolvedLookupsList","getConfigForFacet","facetsGroups","isInFacetsConfigs","mergeFacetValuesByFieldName","reduceAdvancedFromFacets","advanced","attrUri","searchUriToAttrUri","findAttributeTypeByUri","searchParams","reduceNewFacetsData","facetsConfigs","isRangeFacet","getOldRangeFacetValues","showAllEntityTypes","parseAttributeData","attrData","getAttributeTypesHierarchyByUri","parseRegularAttributeData","specialAttr","parseSpecialAttributeData","parseAdditionalAttributeData","parseAttribute","convertOldAdvancedAttribute","OLD_SEARCH_RESULTS_MODES","NEW_SEARCH_RESULTS_MODES","PREVIEW_PANEL_MODES_MAPPING","findActiveTab","tabs","tab","processOldTabs","columnsByEntityTypes","getInitialColumnsByEntityTypes","columnsFromTabs","attributeUriToSearchUri","mergeDeepWith","parseOldSearchOptions","advancedOptions","options","searchByOvOption","searchByOv","ovOnly","parseNewSearchState","keyword","view","searchOptions","currentSavedSearchUri","currentTenant","parseAdvancedSearch","facetsData","isAvailableEntityTypeUri","availableFacetsGroupsList","dissoc","getFacetConfig","reduceFacetsConfig","parseFacets","searchResultsMode","entityTypeTab","searchResultsColumns","previewPanelMode","parseOldSearchState","oldState","curSavedSearchUri","useSeparateGroups","getKeywordFromOldSearchState","tenantFacets","nonTenantFacets","typeFacets","nonTypeFacets","convertedFacets","convertOldFacets","isBasicFacetFilter","hasAdvancedFacets","basicFacets","parseOldFacets","advancedFromFacets","parsedFacets","parsedAdvanced","oldAdvancedSearch","fastSearchParams","makeGroup","wrapInArray","sanitizeTypesInSearchGroups","convertTransitionAttributes","isEmptySearchGroup","parseOldAdvancedSearch","newData","groupFromFacets","advancedGroups","facetAttribute","parseOldView","errors","NumMath","getNumbersMath","revertScale","scale","toFixed","div","minus","ratio","begin","head","end","last","lessThanOrEqualTo","formatNumberForRangeFacet","greaterThan","getBarDomain","calcScale","delta","Number","MAX_SAFE_INTEGER","mul","ratioFirstValue","ratioLastValue","lt","MIN_SAFE_INTEGER","applyScale","plus","bigNumbersTickFormatterX","formatter","adjustRange","start","equals","addRanges","interval","firstValue","lastValue","headValues","unfold","n","lessThan","tailValues","getInterval","bars","isFloatingType","ceil","stringifySearch","urlSearchObj","queryString","strict","isNotEmptyParam","param","rawFilter","prepareDataTenantFilters","getFieldNameForRequestRule","extraBuildRules","otherData","cond","basicFilterBuildRules","buildFilterQueryString","wrapQueryWithBrackets","buildQuery","buildQueryTree","buildFilterHierarchyList","buildEntitiesUrl","forceOvOnly","activityFilter","globalFilter","filterParam","addGlobalFilterToQuery","urlSearch","buildSelectParam","scoreEnabled","addToSearchOptions","activeness","splitted","join","buildEntitiesByUrisRequest","entitiesUris","body","url","method","JSON","stringify","headers","selectParams","ActivityFilters","uniq","businessCardAttributeURIsSelectRule","geoLocationAttributesSelectRule","latitude","longitude","collectAdditionalSelect","selectRules","entityTypesForSearch","pluck","additionalAttrs","attrUris","rule","getFirstLevelSearchUri","buildFacetsRequest","excludeFields","extraUrlParams","dataTenantSearchParams","forceInclude","facetBody","pageNo","includeFilter","buildPotentialMatchesFacetUrl","env","getEnvironment","getTenant","preparePotentialMatchesUrlSearch","buildMatchScoresFacetUrl","buildPureSearchQuery","buildHistogramUrl","restOptions","buildStatsUrl","buildTotalUrlQuery","callSearchRequestForTenant","searchRequest","requestForDataTenant","requestProvider","buildTotalUrl","urlQuery","buildTotalUrlForQuery","getAttributeType","groupAttributeFilters","orGroupIndex","filters","isOrOperator","inc","attributeFilters","attributeFilter","getQueryValuesArray","rootFieldName","getRootFieldName","canWrapAnyChildrenInSameAttribute","filterHierarchyList","filterHierarchy","canWrapInSameAttribute","prepareAttributeFilterOperations","disableInSameAttributeValue","operations","attributesOperations","sameRootFieldNameFilters","parseCompositeFilters","isAndOperator","append","getOperationObject","operand","isMultipleComplexValuesFormat","both","propSatisfies","specialFiltersRules","buildBasicFilterString","FilterOptions","isDateType","buildComplexFilterString","joinFilterStrings","buildQueryToOperationObject","filtersRules","extraRules","defaultTo","has","buildGroupQuery","entityTypeCondition","entityTypesPart","toArray","buildQueryForAdvancedSearchGroups","groupsOperations","shiftDownOperators","isValidSearchGroup","attributesQuery","isValidSearchGroupAttribute","operation","shiftUpOperators","buildOperationsToString","groupOperation","isTableMode","collectColumnsForest","excludeIds","collectSpecialColumns","collectAttributeColumns","analyticsAttributes","getAdditionalColumns","deepFilter","elem","isReadableAttribute","subAttrs","parentId","parent","findNodeInForest","getFlatChildrenLeafs","walk","node","nodes","collectColumnsByIds","ids","isNested","defaultTabs","entityTypesFacetData","defaultColumnIds","columnsIds","orderComparator","item1","item2","indexOf","getEntityTypesForTabs","orderInMetadata","metadataOrderComparator","selectedValuesOrderComparator","filteredTabs","buildSelectFromColumns","specialColumns","specialColumn","needRequestAfterColumnsChanges","prevColumns","prevSelect","appConfig","setConfig","getAppConfigParam","getMaxRecommended","showServerError","ErrorPopup","message","showUpdateSearchStateErrors","showLoadSavedSearchErrors","showLoadEntityError","getRequestErrorMessage","add","sub","greaterThanOrEqualTo","floor","clamp","bigValue","digits","rclamp","setTenant","_tenant","setEnvironment","_env","parse","limit","isNumber","toUpperCase","momentDate","format","longDateFormat","BNMath","NMath","memoizedWrapInArray","lens","getter","setter","l","obj","arr","val","isObject","parseFloat","isFinite"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"3029.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/BasicTablePagination.js","webpack://@reltio/remotes/../components/src/components/CollapseButton/styles.ts","webpack://@reltio/remotes/../components/src/components/CollapseButton/CollapseButton.tsx","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/EntityTypeBadge.tsx","webpack://@reltio/remotes/../components/src/components/ImportButton/styles.ts","webpack://@reltio/remotes/../components/src/components/ImportButton/ImportButton.tsx","webpack://@reltio/remotes/../components/src/components/ProfilesList/helpers.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/index.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/ProfilesList.tsx","webpack://@reltio/remotes/../search/src/components/ConfigureColumnsButton/show_hide_columns.svg","webpack://@reltio/remotes/../search/src/components/ConfigureColumnsButton/ConfigureColumnsButton.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/HeadCellRenderer/styles.less?a0e2","webpack://@reltio/remotes/../search/src/components/EntitiesTable/HeadCellRenderer/HeadCellRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/styles.less?da5d","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/EntityProfileRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/DefaultRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/ReferenceRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/BlobRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/ImageRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/getAttributeValueRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/entitiesTableUtils.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/EntityRowOverlay/EntityRowOverlay.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCellDecoration/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCellDecoration/withCellDecoration.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCheckbox/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCheckbox/withCheckbox.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCollapseButton/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCollapseButton/withCollapseButton.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/RowCellRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/heightCalculator.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/EntitiesTable.js","webpack://@reltio/remotes/../search/src/components/EntitiesTableWithConfigurableColumns/ConfigColumnPopup/ConfigColumnPopup.js","webpack://@reltio/remotes/../search/src/components/EntitiesTableWithConfigurableColumns/EntitiesTableWithConfigurableColumns.js","webpack://@reltio/remotes/../search/src/components/ImportEntityButton/ImportEntityButton.js","webpack://@reltio/remotes/../search/src/components/EntityRowButtons/styles.ts","webpack://@reltio/remotes/../search/src/components/EntityRowButtons/EntityRowButtons.tsx","webpack://@reltio/remotes/../search/src/components/ReadableSearchQuery/styles.js","webpack://@reltio/remotes/../search/src/components/ReadableSearchQuery/ReadableSearchQuery.js","webpack://@reltio/remotes/../search/src/constants/actionTypes/facets.js","webpack://@reltio/remotes/../search/src/constants/actionTypes/search.js","webpack://@reltio/remotes/../search/src/constants/constants.js","webpack://@reltio/remotes/../search/src/reducers/helpers/queryBuilderHelpers.js","webpack://@reltio/remotes/../search/src/sagas/queryBuilderSaga.js","webpack://@reltio/remotes/../search/src/services/entity/image.ts","webpack://@reltio/remotes/../search/src/services/search/advancedSearch/collectSpecialAttributes.js","webpack://@reltio/remotes/../search/src/services/search/icons/ml-recommended.svg","webpack://@reltio/remotes/../search/src/services/search/collectAttributes.js","webpack://@reltio/remotes/../search/src/services/search/collectFacets.js","webpack://@reltio/remotes/../search/src/services/search/converting/createAdvancedSearchFromFacets.js","webpack://@reltio/remotes/../search/src/services/search/entityTypes.js","webpack://@reltio/remotes/../search/src/services/search/facet.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parsingUtils.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseFacets.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldFacets.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseAttributeData.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldAdvancedSearch.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldView.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldSearchOptions.js","webpack://@reltio/remotes/../search/src/services/search/parsing/index.js","webpack://@reltio/remotes/../search/src/services/search/rangeFacet.js","webpack://@reltio/remotes/../search/src/utils/url.js","webpack://@reltio/remotes/../search/src/services/search/searchEngine.js","webpack://@reltio/remotes/../search/src/services/search/searchResults.js","webpack://@reltio/remotes/../search/src/utils/config.js","webpack://@reltio/remotes/../search/src/utils/error.js","webpack://@reltio/remotes/../search/src/utils/bigNumbersMath.js","webpack://@reltio/remotes/../search/src/utils/numbersMath.js","webpack://@reltio/remotes/../search/src/utils/general.js","webpack://@reltio/remotes/../search/src/utils/lenses.js","webpack://@reltio/remotes/../search/src/utils/maybe.js","webpack://@reltio/remotes/../search/src/components/SearchResultsArea/Headers/styles.less?0cb4"],"sourcesContent":["import {Avatar as Avatar} from '@material-ui/core';\nimport classnames from 'classnames';\nimport React, {useEffect, useState} from 'react';\n\nenum AvatarStates {\n ICON_MODE,\n TEXT_MODE,\n ERROR_MODE\n}\ntype Props = {\n className?: string;\n icon?: string;\n avatarText?: string;\n variant?: 'circle' | 'circular' | 'rounded' | 'square';\n rootClasses?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst AvatarWithFallback = ({className, icon, avatarText, rootClasses, ...otherProps}: Props) => {\n const [state, setState] = useState<AvatarStates>(null);\n useEffect(() => {\n if (icon) {\n setState(AvatarStates.ICON_MODE);\n } else {\n setState(AvatarStates.TEXT_MODE);\n }\n }, [icon, avatarText]);\n const onImageLoadFail = () => {\n setState(AvatarStates.ERROR_MODE);\n };\n\n switch (state) {\n case AvatarStates.ICON_MODE:\n return (\n <Avatar\n className={classnames(className, rootClasses?.iconRoot)}\n src={icon}\n onError={onImageLoadFail}\n {...otherProps}\n />\n );\n case AvatarStates.TEXT_MODE:\n case AvatarStates.ERROR_MODE:\n return (\n <Avatar className={classnames(className, rootClasses?.textRoot)} {...otherProps}>\n {avatarText}\n </Avatar>\n );\n default:\n return null;\n }\n};\n\nexport default AvatarWithFallback;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n pagination: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: '56px',\n borderTop: '1px solid rgba(0,0,0,0.12)',\n boxShadow: 'none'\n },\n caption: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px'\n },\n selectRoot: {\n marginLeft: '5px',\n marginRight: '36px'\n },\n select: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px',\n textAlign: 'right'\n },\n actions: {\n marginLeft: '32px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {TablePagination as TablePagination} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getValue} from '../../../core/utils';\nimport {nthArg, pipe, pathOr, identity} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BasicTablePagination = ({\n classes = {},\n count,\n rowsPerPageOptions,\n page,\n onChangePage,\n rowsPerPage,\n onChangeRowsPerPage,\n basicTableRef,\n labelRowsPerPage\n}) => {\n const labelDisplayedRows = ({from, to, count}) =>\n i18n.text('${fromRow}-${toRow} of ${countRows}', {\n fromRow: i18n.number(from, '0,0'),\n toRow: i18n.number(to, '0,0'),\n countRows: i18n.number(count, '0,0')\n });\n const styles = useStyles();\n const resetScrollbarPosition = useCallback(() => {\n pathOr(identity, ['current', 'resetScrollbarPosition'], basicTableRef)();\n }, [basicTableRef]);\n const handleChangePage = useCallback(\n (value) => {\n onChangePage(value);\n resetScrollbarPosition();\n },\n [onChangePage, resetScrollbarPosition]\n );\n const handleChangeRowsPerPage = useCallback(\n (value) => {\n onChangePage(0);\n onChangeRowsPerPage(value);\n resetScrollbarPosition();\n },\n [onChangePage, onChangeRowsPerPage, resetScrollbarPosition]\n );\n return (\n <TablePagination\n classes={{\n ...classes,\n root: classnames(styles.pagination, classes.root),\n select: classnames(styles.select, classes.select),\n caption: styles.caption,\n selectRoot: styles.selectRoot,\n actions: styles.actions\n }}\n component=\"div\"\n labelRowsPerPage={labelRowsPerPage || i18n.text('Rows per page:')}\n labelDisplayedRows={labelDisplayedRows}\n count={count}\n rowsPerPageOptions={rowsPerPageOptions}\n page={page}\n onChangePage={pipe(nthArg(1), handleChangePage)}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={pipe(getValue, handleChangeRowsPerPage)}\n />\n );\n};\n\nBasicTablePagination.propTypes = {\n classes: PropTypes.object,\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n page: PropTypes.number,\n onChangePage: PropTypes.func,\n rowsPerPage: PropTypes.number,\n onChangeRowsPerPage: PropTypes.func,\n basicTableRef: PropTypes.shape({current: PropTypes.object}),\n labelRowsPerPage: PropTypes.string\n};\n\nexport default React.memo(BasicTablePagination);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n collapseButton: {\n cursor: 'pointer'\n },\n expandLess: {\n transform: 'rotate( -180deg )'\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport {useStyles} from './styles';\n\ntype SmallIconButtonWithTooltipProps = React.ComponentPropsWithoutRef<typeof SmallIconButtonWithTooltip>;\n\ntype Props = Omit<SmallIconButtonWithTooltipProps, 'tooltipTitle'> & {\n isOpen?: boolean;\n tooltipTitle?: string;\n};\n\nconst CollapseButton = ({isOpen = false, tooltipTitle, ...otherProps}: Props) => {\n const styles = useStyles();\n const buttonProps = {\n icon: ExpandMore,\n className: styles.collapseButton,\n iconClassName: classnames({[styles.expandLess]: isOpen})\n };\n const tooltipProps = {\n tooltipTitle: tooltipTitle\n };\n return <SmallIconButtonWithTooltip {...buttonProps} {...tooltipProps} {...otherProps} />;\n};\n\nexport default CollapseButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n 'entityType-overflow': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n\n 'entityType-small': {\n padding: '1px 4px',\n fontSize: '10px',\n lineHeight: 'normal',\n marginRight: '12px',\n borderRadius: '2px'\n },\n 'entityType-medium': {\n padding: '2px 8px 3px',\n borderRadius: '2px',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '15px',\n marginRight: '16px'\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport {Typography as Typography} from '@material-ui/core';\n\nimport {getEntityType, getEntityTypeLabel, getPropWithInheritance, theme, utils, Entity} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport useStyles from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n size?: 'small' | 'medium';\n};\n\nconst EntityTypeBadge = ({entity, className, size = 'small'}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entityTypeUri = entity.type;\n const entityType = getEntityType(metadata, entityTypeUri) || {};\n const entityTypeColor = getPropWithInheritance(metadata, entityType, 'typeColor') || theme.palette.primary.main;\n const entityTypeLabel = getEntityTypeLabel(metadata, entity);\n\n return (\n <ExpandedValueTooltip value={entityTypeLabel} placement=\"top\">\n <Typography\n style={{\n backgroundColor: entityTypeColor,\n color: utils.Colors.getColor(entityTypeColor) ? '#FFFFFF' : '#212121'\n }}\n className={classnames(styles[`entityType-${size}`], styles['entityType-overflow'], className)}\n component=\"div\"\n >\n {entityTypeLabel}\n </Typography>\n </ExpandedValueTooltip>\n );\n};\n\nexport default EntityTypeBadge;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '24px',\n height: '24px'\n },\n check: {\n color: '#8CC152'\n }\n});\n","import React from 'react';\n\nimport {CircularProgress as CircularProgress} from '@material-ui/core';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport DoneIcon from '@material-ui/icons/Done';\nimport {noop} from '../../core';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nexport enum ImportModes {\n INIT = 1,\n PROGRESS = 2,\n SUCCESS = 3,\n DONE = 4\n}\n\ntype Props = {\n tooltip?: string;\n onClick?: () => void;\n classes?: Partial<Record<'root' | 'spinner' | 'button' | 'check', string>>;\n mode?: ImportModes;\n};\n\nconst ImportButton = ({classes = {}, tooltip = '', onClick = noop, mode = ImportModes.INIT}: Props) => {\n const styles = useStyles();\n\n const renderCurrentMode = () => {\n switch (mode) {\n case ImportModes.INIT: {\n return (\n <SmallIconButtonWithTooltip\n className={classes.button}\n size={'M'}\n tooltipTitle={tooltip}\n icon={CloudDownloadIcon}\n onClick={onClick}\n />\n );\n }\n case ImportModes.PROGRESS:\n return <CircularProgress className={classes.spinner} size={24} />;\n case ImportModes.SUCCESS:\n return <DoneIcon className={classnames(styles.check, classes.check)} />;\n default:\n return null;\n }\n };\n return <div className={classnames(styles.root, classes.root)}>{renderCurrentMode()}</div>;\n};\n\nexport default ImportButton;\n","export const scroll = (element) => element && element.scrollIntoView({block: 'end', behavior: 'smooth'});\n\nexport const clearScrollTimer = (scrollTimer) => {\n if (scrollTimer) {\n clearTimeout(scrollTimer);\n }\n};\n\nexport const isScrolledIntoView = (element, scrollableParent) => {\n if (element && scrollableParent) {\n const elemTop = element.offsetTop;\n const elemBottom = element.offsetTop + element.clientHeight;\n const {clientHeight, scrollTop} = scrollableParent;\n return elemTop >= 0 && elemBottom > scrollTop && elemBottom < scrollTop + clientHeight;\n }\n};\n","import {fade, makeStyles} from '@material-ui/core/styles';\nimport {Theme} from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n (\n theme: Theme & {\n inactiveBackground: string;\n inactiveHoverBackground: string;\n inactiveSelectedBackground: string;\n inactiveSelectedHoverBackground: string;\n }\n ) => {\n return {\n '@keyframes animate': {\n from: {background: 'transparent'},\n '66%': {background: '#f2e68e'},\n '100%': {background: 'transparent'}\n },\n\n highlighted: {\n animationName: '$animate',\n animationDuration: '3s',\n animationIterationCount: 1\n },\n\n item: {\n display: 'flex',\n minHeight: '40px',\n borderBottom: '1px solid rgba(0, 0, 0, 0.1)',\n flexDirection: 'row',\n\n '&:after': {\n // IE flex & min-height workaround\n content: '',\n minHeight: 'inherit',\n fontSize: 0\n },\n\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n },\n\n clickable: {\n cursor: 'pointer'\n },\n\n selected: {\n background: fade(theme.palette.primary.main, 0.12),\n '&:hover': {\n background: fade(theme.palette.primary.main, 0.24)\n }\n },\n\n inactive: {\n background: theme.inactiveBackground,\n\n '&:hover': {\n background: theme.inactiveHoverBackground\n },\n\n '&$selected': {\n background: theme.inactiveSelectedBackground,\n\n '&:hover': {\n background: theme.inactiveSelectedHoverBackground\n }\n }\n },\n\n justImported: {\n backgroundColor: '#FFFBEB !important'\n },\n\n avatar: {\n marginLeft: '20px'\n },\n\n image: {\n height: '32px',\n width: '32px',\n marginTop: '8px',\n marginBottom: '7px'\n },\n\n info: {\n marginLeft: '20px',\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n fontSize: '13px',\n width: '100%',\n overflow: 'hidden',\n overflowWrap: 'break-word',\n wordWrap: 'break-word' // for IE\n },\n\n label: {\n fontSize: '13px',\n lineHeight: '15px',\n fontWeight: 500,\n color: theme.palette.primary.main,\n marginRight: '17px',\n textDecoration: 'none'\n },\n\n secondaryLabel: {\n marginRight: '12px'\n },\n\n businessCard: {\n color: 'rgba(0, 0, 0, 0.54)'\n },\n\n secondRow: {\n display: 'flex',\n marginTop: '2px',\n alignItems: 'center',\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: '12px'\n }\n };\n }\n);\n","import {connect} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport ProfilesList from './ProfilesList';\n\nconst mapStateToProps = (state) => {\n return {\n metadata: mdmModule.selectors.getMetadata(state)\n };\n};\n\nexport {ProfilesList};\n\nexport default connect(mapStateToProps)(ProfilesList);\n","import React, {useRef} from 'react';\nimport classnames from 'classnames';\nimport {prop} from 'ramda';\nimport {\n Entity,\n getBusinessCardAttributesText,\n getEntityId,\n getEntityUriForLink,\n getLabel,\n isActiveObject,\n Metadata\n} from '@reltio/mdm-sdk';\nimport EntityTypeBadge from '../EntityTypeBadge/EntityTypeBadge';\nimport EntityUriLink from '../EntityUriLink/EntityUriLink';\nimport EntityAvatar from '../EntityAvatar/EntityAvatar';\nimport {ImportModes} from '../ImportButton/ImportButton';\nimport {clearScrollTimer, isScrolledIntoView, scroll} from './helpers';\nimport {useDidUpdateEffect} from '../../hooks';\n\nimport {useStyles} from './styles';\n\nconst SECOND_SCROLL_PAUSE = 1000;\n\ntype Props = {\n metadata: Metadata;\n entities: Entity[];\n entityToHighlight?: string;\n selectedEntityUri?: string;\n onEntityClick?: (entityUri: string) => void;\n onEntityHover?: (entityUri: string) => void;\n entitiesImportStatus?: {entityUri: string};\n entityButtonsRenderer?: (entity: Entity) => void;\n};\n\nconst ProfilesList = ({\n entities,\n metadata,\n entityToHighlight,\n selectedEntityUri,\n onEntityClick,\n onEntityHover,\n entitiesImportStatus,\n entityButtonsRenderer\n}: Props) => {\n const styles = useStyles();\n\n const list = useRef(null);\n const scrollTimer = useRef(null);\n\n useDidUpdateEffect(() => {\n if (entityToHighlight) {\n const element = list.current?.querySelectorAll(`[data-entity-uri='${entityToHighlight}']`);\n clearScrollTimer(scrollTimer.current);\n if (element?.length > 0) {\n const scrollableParent = list.current?.parentElement;\n if (!isScrolledIntoView(element[0], scrollableParent)) {\n scroll(element[0]);\n scrollTimer.current = setTimeout(() => {\n if (!isScrolledIntoView(element[0], scrollableParent)) {\n scroll(element[0]);\n }\n }, SECOND_SCROLL_PAUSE);\n }\n }\n }\n\n return () => {\n clearScrollTimer(scrollTimer.current);\n };\n }, [entityToHighlight]);\n\n return (\n <div ref={list}>\n {(entities || []).map((entity) => {\n const label = getLabel(entity.label);\n const secondaryLabel = entity.secondaryLabel;\n const businessCardText = getBusinessCardAttributesText(metadata, entity);\n const isActive = isActiveObject(entity);\n const entityUri = entity.uri;\n const entityUriForLink = getEntityUriForLink(entity);\n\n const importStatus = prop(entityUri, entitiesImportStatus);\n\n return (\n <div\n key={entityUri}\n className={classnames(styles.item, {\n [styles.clickable]: !!onEntityClick,\n [styles.selected]: entityUri === selectedEntityUri,\n [styles.highlighted]: entityUri === entityToHighlight,\n [styles.inactive]: !isActive,\n [styles.justImported]: importStatus === ImportModes.SUCCESS\n })}\n onClick={onEntityClick ? () => onEntityClick(entityUri) : undefined}\n onMouseEnter={onEntityHover ? () => onEntityHover(entityUri) : undefined}\n onMouseLeave={onEntityHover ? () => onEntityHover(null) : undefined}\n data-entity-uri={entityUri}\n >\n <EntityAvatar entity={entity} avatarClassName={styles.avatar} imageClassName={styles.image} />\n <div className={styles.info}>\n <div>\n <EntityUriLink value={entityUriForLink} className={styles.label}>\n {label}\n </EntityUriLink>\n {secondaryLabel && <span className={styles.secondaryLabel}>{secondaryLabel} </span>}\n {businessCardText && <span className={styles.businessCard}>{businessCardText}</span>}\n </div>\n <div className={styles.secondRow}>\n <EntityTypeBadge entity={entity} />\n <div>{getEntityId(entity)}</div>\n </div>\n </div>\n {entityButtonsRenderer && entityButtonsRenderer(entity)}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default ProfilesList;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\",\n opacity: \".54\"\n}, React.createElement(\"path\", {\n d: \"M19 11.24V10h-4v1.24a8.417 8.417 0 00-2 .768V10H9v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H5c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM7 16v-6H5v6h2zm0-8V6H5v2h2zm6 0V6H9v2h4zm6 0V6h-4v2h4zm-2 5a6.451 6.451 0 00-6 4.09 6.451 6.451 0 006 4.092 6.451 6.451 0 006-4.091A6.451 6.451 0 0017 13zm0 6.818a2.728 2.728 0 010-5.454 2.728 2.728 0 010 5.454zm0-4.363c-.905 0-1.636.73-1.636 1.636 0 .905.73 1.636 1.636 1.636.905 0 1.636-.73 1.636-1.636 0-.906-.73-1.636-1.636-1.636z\",\n fill: \"#000\",\n fillRule: \"nonzero\"\n}))));","import React, {useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useSelector} from 'react-redux';\nimport {ConfigureColumnsPopup, SmallIconButtonWithTooltip, noop} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {\n getChildrenLeafsByParentId,\n memoizedCollectColumnsForestWithoutLabel\n} from '../../services/search/searchResults';\nimport ConfigureColumnsIcon from './show_hide_columns.svg';\nimport styles from '../SearchResultsArea/Headers/styles.less';\n\nimport mdmModule from '@reltio/mdm-module';\n\nconst ConfigureColumnsButton = ({entityTypeUri, headColumns = [], onSelectColumns = noop, ...otherProps}) => {\n const [popupAnchor, setPopupAnchor] = useState(null);\n const [filterText, setFilterText] = useState('');\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const openConfigureColumnsPopup = (e) => setPopupAnchor(e.currentTarget);\n const closeConfigureColumnsPopup = () => setPopupAnchor(null);\n\n const handlePopupClose = () => {\n closeConfigureColumnsPopup();\n setFilterText('');\n };\n\n const handleColumnClick = useCallback(\n (data, checked) => {\n const columnsForest = memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri);\n const children = getChildrenLeafsByParentId(columnsForest, data.id);\n let selectedColumns;\n if (children.length) {\n selectedColumns = checked\n ? headColumns.concat(children)\n : headColumns.filter((column) => !children.find((child) => child.id === column.id));\n } else {\n selectedColumns = checked\n ? headColumns.concat(data)\n : headColumns.filter((column) => column.id !== data.id);\n }\n\n onSelectColumns(selectedColumns);\n },\n [metadata, entityTypeUri, headColumns, onSelectColumns]\n );\n\n const renderConfigureColumnsPopup = () => {\n const columnsForest = memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri);\n return (\n <ConfigureColumnsPopup\n open={!!popupAnchor}\n anchorEl={popupAnchor}\n data={columnsForest}\n onListItemClick={handleColumnClick}\n selected={headColumns}\n filterText={filterText}\n onClose={handlePopupClose}\n onSearch={setFilterText}\n />\n );\n };\n\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={i18n.text('Show/hide columns')}\n size=\"M\"\n icon={ConfigureColumnsIcon}\n onClick={openConfigureColumnsPopup}\n className={styles.headerIcon}\n {...otherProps}\n />\n {renderConfigureColumnsPopup()}\n </>\n );\n};\n\nConfigureColumnsButton.propTypes = {\n entityTypeUri: PropTypes.string,\n headColumns: PropTypes.array,\n onSelectColumns: PropTypes.func\n};\n\nexport default ConfigureColumnsButton;\n","// extracted by mini-css-extract-plugin\nexport default {\"headCellContentWrapper\":\"HeadCellRenderer-styles-headCellContentWrapper--L6RrQ\",\"checkbox\":\"HeadCellRenderer-styles-checkbox--qQEHg\",\"sortLabel\":\"HeadCellRenderer-styles-sortLabel--NZx3o\",\"labelWrapper\":\"HeadCellRenderer-styles-labelWrapper--cmclk\",\"menuButtonWrapper\":\"HeadCellRenderer-styles-menuButtonWrapper--aBNeR\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {TableSortLabel as TableSortLabel} from '@material-ui/core';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {path, pick} from 'ramda';\nimport {SmallIconButton, withTableContext} from '@reltio/components';\n\nimport styles from './styles.less';\n\nconst HeadCellRenderer = ({\n headCellData,\n headIndex,\n sortOrder,\n sortField,\n sortHandler,\n canCheck,\n onCheck,\n headerCheckboxState,\n openConfigColumnPopup\n}) => {\n return (\n <div className={classNames(styles.headCellContentWrapper, path(['wrapperClassName'], headCellData))}>\n {headCellData && canCheck && (\n <Checkbox\n className={styles.checkbox}\n checked={headerCheckboxState || false}\n indeterminate={headerCheckboxState === null}\n onChange={() => onCheck()}\n />\n )}\n <div className={styles.labelWrapper}>\n {headCellData &&\n (headCellData.sortable ? (\n <TableSortLabel\n active={Boolean(sortOrder && sortField === headCellData.id)}\n direction={sortOrder}\n onClick={sortHandler}\n classes={{root: styles.sortLabel}}\n component=\"div\"\n >\n {headCellData.label}\n </TableSortLabel>\n ) : (\n headCellData.label\n ))}\n </div>\n {openConfigColumnPopup && (\n <div className={styles.menuButtonWrapper}>\n <SmallIconButton\n icon={MoreVertIcon}\n onClick={openConfigColumnPopup}\n size={'S'}\n data-column-index={headIndex}\n />\n </div>\n )}\n </div>\n );\n};\n\nHeadCellRenderer.propTypes = {\n headCellData: PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n sortable: PropTypes.bool\n }),\n headIndex: PropTypes.number,\n sortOrder: PropTypes.string,\n sortField: PropTypes.string,\n sortHandler: PropTypes.func,\n canCheck: PropTypes.bool,\n onCheck: PropTypes.func,\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n openConfigColumnPopup: PropTypes.func\n};\n\nexport default withTableContext(pick(['openConfigColumnPopup']))(HeadCellRenderer);\n\nexport const HeadCellRendererWithCheckbox = withTableContext(\n pick(['openConfigColumnPopup', 'canCheck', 'onCheck', 'headerCheckboxState'])\n)(HeadCellRenderer);\n","// extracted by mini-css-extract-plugin\nexport default {\"popupBackdrop\":\"EntitiesTable-styles-popupBackdrop--nEX1F\",\"popupContent\":\"EntitiesTable-styles-popupContent--PLSPL\",\"complexPopupContent\":\"EntitiesTable-styles-complexPopupContent--wqOGI\",\"highlighted\":\"EntitiesTable-styles-highlighted--GHk6T\",\"highlightAnimate\":\"EntitiesTable-styles-highlightAnimate--oR7ki\",\"inactiveBackground\":\"EntitiesTable-styles-inactiveBackground--nAfS3\",\"inactiveHoverBackground\":\"EntitiesTable-styles-inactiveHoverBackground--qe__Y\",\"inactiveSelectedBackground\":\"EntitiesTable-styles-inactiveSelectedBackground--WkWtD\",\"inactiveSelectedHoverBackground\":\"EntitiesTable-styles-inactiveSelectedHoverBackground--oFAbX\",\"textOverflow\":\"EntitiesTable-styles-textOverflow--AAABW\",\"textOverflowInactive\":\"EntitiesTable-styles-textOverflowInactive--eU4xE\",\"link\":\"EntitiesTable-styles-link--JNCz5\",\"defaultWrapper\":\"EntitiesTable-styles-defaultWrapper--EP4tA\",\"table\":\"EntitiesTable-styles-table--jmlbo\",\"imageWrapper\":\"EntitiesTable-styles-imageWrapper--xmq8R\",\"blobWrapper\":\"EntitiesTable-styles-blobWrapper--ruHVs\",\"highlightAnimateForEllipsis\":\"EntitiesTable-styles-highlightAnimateForEllipsis--r1Fmq\",\"referenceWrapper\":\"EntitiesTable-styles-referenceWrapper--Q5RqZ\",\"referenceContent\":\"EntitiesTable-styles-referenceContent--wkahK\",\"referenceIcon\":\"EntitiesTable-styles-referenceIcon--b8M3n\",\"nestedCellWrapper\":\"EntitiesTable-styles-nestedCellWrapper--I4J6A\",\"nestedAttributeWrapper\":\"EntitiesTable-styles-nestedAttributeWrapper--dvfn3\",\"profileWrapper\":\"EntitiesTable-styles-profileWrapper--lGPma\",\"entityAvatar\":\"EntitiesTable-styles-entityAvatar--GiuUS\",\"entityAvatarImage\":\"EntitiesTable-styles-entityAvatarImage--UHIRm\",\"entityLabel\":\"EntitiesTable-styles-entityLabel--OyjLV\",\"scores\":\"EntitiesTable-styles-scores--RqsDU\",\"dragColumnHead\":\"EntitiesTable-styles-dragColumnHead--oDlFz\",\"dragColumnBody\":\"EntitiesTable-styles-dragColumnBody--_HZDV\",\"draggableHeadCell\":\"EntitiesTable-styles-draggableHeadCell--DbfHi\",\"cellWrapper\":\"EntitiesTable-styles-cellWrapper--dUWGQ\",\"entityButtons\":\"EntitiesTable-styles-entityButtons--tYSvC\",\"selectedEntityButtons\":\"EntitiesTable-styles-selectedEntityButtons--mZJfv\",\"justImportedEntityButtons\":\"EntitiesTable-styles-justImportedEntityButtons--q5bPw\",\"highlightedEntityButtons\":\"EntitiesTable-styles-highlightedEntityButtons--PvzNM\"};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {EntityAvatar, EntityUriLink} from '@reltio/components';\nimport {getEntityUriForLink, getLabel} from '@reltio/mdm-sdk';\n\nimport classNames from 'classnames';\nimport styles from '../styles.less';\n\nconst EntityProfileRenderer = ({value: entity = {}}) => {\n const label = getLabel(entity.label);\n return (\n <div className={classNames(styles.defaultWrapper, styles.profileWrapper)}>\n <EntityAvatar\n avatarClassName={styles.entityAvatar}\n imageClassName={styles.entityAvatarImage}\n entity={entity}\n />\n <EntityUriLink value={getEntityUriForLink(entity)} className={styles.entityLabel}>\n {label}\n </EntityUriLink>\n </div>\n );\n};\n\nEntityProfileRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default EntityProfileRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {DataTypeValue} from '@reltio/components';\nimport styles from '../styles.less';\n\nconst DefaultRenderer = ({value, columnData: {dataTypeDefinition}}) => {\n return (\n <div className={styles.defaultWrapper}>\n {dataTypeDefinition ? <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} /> : value}\n </div>\n );\n};\n\nDefaultRenderer.propTypes = {\n value: PropTypes.any,\n columnData: PropTypes.object\n};\n\nexport default DefaultRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useSelector} from 'react-redux';\n\nimport classnames from 'classnames';\nimport {getTypeGraphIcon} from '../../../services/entity/image';\nimport styles from '../styles.less';\nimport {AvatarWithFallback, EntityUriLink} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {getLabel} from '@reltio/mdm-sdk';\n\nconst ReferenceRenderer = ({value}) => {\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n return (\n value && (\n <div className={classnames(styles.defaultWrapper, styles.referenceWrapper)}>\n <AvatarWithFallback\n className={styles.referenceIcon}\n icon={getTypeGraphIcon(metadata, value.refEntity.type)}\n />\n <EntityUriLink value={value.refEntity.objectURI} className={styles.referenceContent}>\n {getLabel(value.label)}\n </EntityUriLink>\n </div>\n )\n );\n};\n\nReferenceRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default ReferenceRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from '../styles.less';\n\nconst stopPropagation = (event) => {\n event.stopPropagation();\n};\n\nconst BlobRenderer = (props) => {\n const {value} = props;\n return (\n <div className={styles.blobWrapper} onScroll={stopPropagation}>\n {value}\n </div>\n );\n};\n\nBlobRenderer.propTypes = {\n value: PropTypes.any\n};\n\nexport default BlobRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getImageAttributeOvThumbnailUrl} from '@reltio/mdm-sdk';\nimport styles from '../styles.less';\n\nconst ImageRenderer = ({value}) => {\n const src = getImageAttributeOvThumbnailUrl({value});\n return (\n src && (\n <div className={styles.imageWrapper}>\n <img src={src} />\n </div>\n )\n );\n};\n\nImageRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default ImageRenderer;\n","import {path} from 'ramda';\n\nimport EntityProfileRenderer from './EntityProfileRenderer';\nimport DefaultRenderer from './DefaultRenderer';\nimport ReferenceRenderer from './ReferenceRenderer';\nimport BlobRenderer from './BlobRenderer';\nimport ImageRenderer from './ImageRenderer';\n\nconst getAttributeValueRenderer = (columnInfo) => {\n if (columnInfo.id === 'label') {\n return EntityProfileRenderer;\n }\n\n switch (path(['attrType', 'type'], columnInfo)) {\n case 'Reference':\n return ReferenceRenderer;\n case 'Blob':\n return BlobRenderer;\n case 'Image':\n return ImageRenderer;\n }\n\n return DefaultRenderer;\n};\n\nexport default getAttributeValueRenderer;\n","import HeadCellRenderer, {HeadCellRendererWithCheckbox} from './HeadCellRenderer/HeadCellRenderer';\nimport {assoc, pipe, prop, reduce, split} from 'ramda';\nimport {getAttrDataTypeDefinition, getEntityId, getOvAttributeValuesByPath} from '@reltio/mdm-sdk';\nimport getAttributeValueRenderer from './AttributeRenderers/getAttributeValueRenderer';\nimport {isAttributeSearchUri} from '@reltio/mdm-sdk';\n\nconst getAttrPathFromColumnId = split('.');\n\nconst getRowValueForColumn = (metadata, columnData, entity) => {\n switch (columnData.id) {\n case 'label':\n return entity;\n case 'entityId':\n return getEntityId(entity);\n default: {\n const [attrSource, ...attrPath] = getAttrPathFromColumnId(columnData.id);\n return pipe(prop(attrSource), getOvAttributeValuesByPath(attrPath))(entity);\n }\n }\n};\n\nexport const getBasicTableRowsData = (metadata, headColumns, entities) => {\n return entities.map((entity) => {\n return pipe(\n reduce(\n (acc, columnData) => assoc(columnData.id, getRowValueForColumn(metadata, columnData, entity), acc),\n {}\n ),\n assoc('rawValue', entity)\n )(headColumns);\n });\n};\n\nconst NOT_SORTABLE_COLUMN_IDS = ['entityId'];\nconst isSortableColumn = (column) => !NOT_SORTABLE_COLUMN_IDS.includes(column.id);\n\nconst getNestedPathByColumnId = (columnId) => {\n if (isAttributeSearchUri(columnId)) {\n const [, ...attrPath] = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nexport const getBasicTableColumnsData = (headColumns, sortingEnabled = true) => {\n return headColumns.map(({attrType, ...column}, i) => {\n const isFirstColumn = i === 0;\n return {\n ...column,\n dataTypeDefinition: attrType && getAttrDataTypeDefinition(attrType),\n resizable: true,\n autoResize: !isFirstColumn,\n draggable: !isFirstColumn,\n sortable: sortingEnabled && isSortableColumn(column),\n nestedPath: getNestedPathByColumnId(column.id),\n headCellRenderer: isFirstColumn ? HeadCellRendererWithCheckbox : HeadCellRenderer,\n rowCellValueRenderer: getAttributeValueRenderer({...column, attrType})\n };\n });\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {ImportModes, withTableContext} from '@reltio/components';\nimport EntityRowButtons from '../../EntityRowButtons/EntityRowButtons';\n\nimport classnames from 'classnames';\nimport styles from '../styles.less';\n\nconst EntityRowOverlay = ({\n entity,\n isSelectedEntity,\n isHighlightedEntity,\n entityImportStatus,\n onEntityImportStatusChange\n}) => {\n return (\n <div\n className={classnames(styles.entityButtons, {\n [styles.selectedEntityButtons]: isSelectedEntity,\n [styles.justImportedEntityButtons]: entityImportStatus === ImportModes.SUCCESS,\n [styles.highlightedEntityButtons]: isHighlightedEntity\n })}\n >\n <EntityRowButtons\n entity={entity}\n entityImportStatus={entityImportStatus}\n onEntityImportStatusChange={onEntityImportStatusChange}\n />\n </div>\n );\n};\n\nEntityRowOverlay.propTypes = {\n entity: PropTypes.object,\n isSelectedEntity: PropTypes.bool,\n isHighlightedEntity: PropTypes.bool,\n entityImportStatus: PropTypes.oneOf(Object.values(ImportModes)),\n onEntityImportStatusChange: PropTypes.func\n};\n\nexport default withTableContext(\n (\n {entitiesImportStatus, onEntityImportStatusChange, selectedEntityUri, highlightedEntityIndex},\n {entity, rowIndex}\n ) => {\n const entityImportStatus = entity && entitiesImportStatus[entity.uri];\n return {\n entityImportStatus,\n onEntityImportStatusChange,\n isSelectedEntity: selectedEntityUri === entity.uri,\n isHighlightedEntity: highlightedEntityIndex === rowIndex\n };\n }\n)(EntityRowOverlay);\n","import {lighten, makeStyles} from '@material-ui/core/styles';\n\nconst commonCellWrapperStyles = {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n};\n\nexport const useStyles = makeStyles((theme) => ({\n inactiveCell: {\n background: theme.inactiveBackground,\n ...commonCellWrapperStyles,\n '&$selectedRowCell': {\n background: theme.inactiveSelectedBackground\n }\n },\n selectedRowCell: {\n background: lighten(theme.palette.primary.main, 0.88),\n ...commonCellWrapperStyles\n },\n clickable: {\n cursor: 'pointer',\n ...commonCellWrapperStyles\n },\n justImported: {\n backgroundColor: '#FFFBEB !important',\n ...commonCellWrapperStyles\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isActiveObject} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst withCellDecorationPropTypes = {\n entity: PropTypes.object,\n isSelected: PropTypes.bool,\n onEntityClick: PropTypes.func,\n isJustImported: PropTypes.bool\n};\n\nconst withCellDecoration = (Component) => {\n const WithCellDecoration = (componentProps) => {\n const styles = useStyles();\n const {\n rowValue: {rawValue: entity},\n isSelected,\n onEntityClick,\n isJustImported\n } = componentProps;\n const onCellClick = onEntityClick ? () => onEntityClick(entity.uri) : undefined;\n const isInactive = entity && !isActiveObject(entity);\n\n return onCellClick || isInactive || isSelected || isJustImported ? (\n <div\n className={classnames(\n {[styles.inactiveCell]: isInactive},\n {inactiveCell: isInactive},\n {[styles.selectedRowCell]: isSelected},\n {selectedRowCell: isSelected},\n {[styles.clickable]: !!onCellClick},\n {[styles.justImported]: isJustImported},\n {justImported: isJustImported}\n )}\n onClick={onCellClick}\n >\n <Component {...componentProps} />\n </div>\n ) : (\n <Component {...componentProps} />\n );\n };\n\n WithCellDecoration.propTypes = withCellDecorationPropTypes;\n\n return WithCellDecoration;\n};\n\nexport default withCellDecoration;\nexport {withCellDecorationPropTypes};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n checkboxWrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n checkbox: {\n marginRight: '-8px',\n marginLeft: '11px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {Checkbox as Checkbox} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\nconst withCheckboxPropTypes = {\n onCheck: PropTypes.func,\n isChecked: PropTypes.bool,\n hasCheckbox: PropTypes.bool\n};\n\nconst withCheckbox = (Component) => {\n const WithCheckbox = (componentProps) => {\n const styles = useStyles();\n const {onCheck, isChecked, hasCheckbox, ...restProps} = componentProps;\n const {\n rowValue: {rawValue: entity}\n } = restProps;\n\n return hasCheckbox ? (\n <div className={classnames(styles.checkboxWrapper, 'cellWithCheckbox')}>\n <Checkbox\n className={styles.checkbox}\n checked={isChecked}\n onClick={(e) => e.stopPropagation()}\n onChange={(e) => onCheck(entity.uri, e.target.checked)}\n />\n <Component {...restProps} />\n </div>\n ) : (\n <Component {...restProps} />\n );\n };\n\n WithCheckbox.propTypes = withCheckboxPropTypes;\n\n return WithCheckbox;\n};\n\nexport default withCheckbox;\nexport {withCheckboxPropTypes};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n collapser: {\n marginLeft: '-2px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useStyles} from './styles';\n\nimport {CollapseRowButton} from '@reltio/components';\n\nconst withCollapseButtonPropTypes = {\n hasCollapseButton: PropTypes.bool\n};\nconst withCollapseButton = (Component) => {\n const WithCollapseButton = (componentProps) => {\n const styles = useStyles();\n const {hasCollapseButton, ...restProps} = componentProps;\n const {rowValue, rowIndex} = restProps;\n\n return hasCollapseButton ? (\n <div className={'cellWithCollapser'}>\n <CollapseRowButton className={styles.collapser} rowIndex={rowIndex} rowValue={rowValue} />\n <Component {...restProps} />\n </div>\n ) : (\n <Component {...restProps} />\n );\n };\n\n WithCollapseButton.propTypes = withCollapseButtonPropTypes;\n\n return WithCollapseButton;\n};\n\nexport default withCollapseButton;\nexport {withCollapseButtonPropTypes};\n","import {defaultRenderRowCell, ImportModes, withTableContext} from '@reltio/components';\nimport withCellDecoration from './HOCs/withCellDecoration/withCellDecoration';\nimport withCheckbox from './HOCs/withCheckbox/withCheckbox';\nimport withCollapseButton from './HOCs/withCollapseButton/withCollapseButton';\nimport {pipe} from 'ramda';\n\nexport default pipe(\n withCollapseButton,\n withCheckbox,\n withCellDecoration,\n withTableContext(\n (\n {onEntityClick, selectedEntityUri, entitiesImportStatus, canCheck, onCheck, checkedEntitiesUris},\n {rowValue, columnIndex}\n ) => {\n const {rawValue: entity} = rowValue;\n const isFirstColumn = columnIndex === 0;\n return {\n onCheck,\n isChecked: checkedEntitiesUris && checkedEntitiesUris.includes(entity.uri),\n hasCheckbox: canCheck && isFirstColumn,\n hasCollapseButton: isFirstColumn,\n isSelected: selectedEntityUri === entity.uri,\n isJustImported: entitiesImportStatus[entity.uri] === ImportModes.SUCCESS,\n onEntityClick\n };\n }\n )\n)(defaultRenderRowCell);\n","import {path} from 'ramda';\n\nexport const REFERENCE_HEIGHT = 28;\nexport const BLOB_HEIGHT = 100;\nexport const IMAGE_HEIGHT = 76;\nconst PADDING = 17;\n\nexport const getAttributeHeight = ({columnData, cell}) => {\n const countAttributes = cell.values.length;\n const defaultHeight = 28 * Math.max(countAttributes, 1) + 20;\n\n if (!countAttributes) {\n return defaultHeight;\n }\n\n switch (path(['dataTypeDefinition', 'type'], columnData)) {\n case 'Reference':\n return REFERENCE_HEIGHT * countAttributes + PADDING;\n case 'Blob':\n return BLOB_HEIGHT * countAttributes;\n case 'Image':\n return IMAGE_HEIGHT * countAttributes + PADDING;\n default:\n return defaultHeight;\n }\n};\n","import React, {forwardRef, memo, useCallback, useImperativeHandle, useMemo, useRef, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport {path, prop, propEq} from 'ramda';\nimport {SORT_DIRECTION_ASC, SORT_DIRECTION_DESC} from 'react-components/dist/Table/Table';\nimport {BasicTable} from '@reltio/components';\nimport {getBasicTableColumnsData, getBasicTableRowsData} from './entitiesTableUtils';\nimport EntityRowOverlay from './EntityRowOverlay/EntityRowOverlay';\nimport RowCellRenderer from './RowCellRenderer/RowCellRenderer';\nimport {getAttributeHeight} from './AttributeRenderers/heightCalculator';\n\nimport styles from './styles.less';\nimport mdmModule from '@reltio/mdm-module';\n\nexport const MAX_LENGTH_VALUE = 2;\nexport const DEFAULT_ROW_HEIGHT = 48;\nexport const HEAD_ROW_HEIGHT = 50;\nexport const DEFAULT_COLUMN_WIDTH = 250;\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const RESIZE_DEBOUNCE_DELAY = 150;\n\nconst EntitiesTable = forwardRef(\n (\n {\n headColumns,\n entities,\n entityToHighlight,\n selectedEntityUri,\n onReorderingColumn,\n dndColumnReorderingEnabled,\n columnsSize,\n onChangeColumnsSize,\n onScroll,\n onSort,\n sortField,\n sortOrder,\n onEntityHover,\n onEntityClick,\n entitiesImportStatus,\n onEntityImportStatusChange,\n logger,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck,\n openConfigColumnPopup\n },\n ref\n ) => {\n const tableClasses = useMemo(\n () => ({\n highlightRow: 'highlightedSelector',\n dragColumnHead: styles.dragColumnHead,\n dragColumnBody: styles.dragColumnBody,\n draggableHeadCell: styles.draggableHeadCell,\n cellWrapper: styles.cellWrapper\n }),\n []\n );\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const [hoverRowIndex, setHoverRowIndex] = useState(null);\n const handleRowHover = useCallback(\n (hoverRowIndex) => {\n setHoverRowIndex(hoverRowIndex);\n if (onEntityHover) {\n onEntityHover(path([hoverRowIndex, 'uri'], entities));\n }\n },\n [onEntityHover, entities]\n );\n\n const tableRef = useRef();\n useImperativeHandle(ref, () => ({\n resetScrollbarPosition: () => {\n tableRef.current && tableRef.current.resetScrollbarPosition({resetLeft: false});\n }\n }));\n\n const handleSort = useCallback(\n (field) => {\n if (!sortOrder || field !== sortField) {\n onSort({field, order: SORT_DIRECTION_ASC});\n } else if (sortOrder === SORT_DIRECTION_ASC) {\n onSort({field, order: SORT_DIRECTION_DESC});\n } else {\n onSort({field});\n }\n },\n [onSort, sortField, sortOrder]\n );\n\n const renderRowOverlay = useCallback(\n (rowIndex) => {\n const entity = prop(rowIndex, entities);\n return entity ? <EntityRowOverlay entity={entity} rowIndex={rowIndex} /> : null;\n },\n [entities]\n );\n\n const renderRowCell = useCallback((props) => {\n return <RowCellRenderer {...props} />;\n }, []);\n\n const hoverStateEnabled = !!onEntityHover;\n const sortingEnabled = !!onSort;\n\n const columnsData = useMemo(() => getBasicTableColumnsData(headColumns, sortingEnabled), [\n headColumns,\n sortingEnabled\n ]);\n const rowsData = useMemo(() => getBasicTableRowsData(metadata, headColumns, entities), [\n metadata,\n headColumns,\n entities\n ]);\n\n const highlightedEntityIndex = entityToHighlight ? entities.findIndex(propEq('uri', entityToHighlight)) : -1;\n\n const tableContext = useMemo(\n () => ({\n onEntityClick,\n selectedEntityUri,\n highlightedEntityIndex,\n entitiesImportStatus,\n onEntityImportStatusChange,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck,\n openConfigColumnPopup\n }),\n [\n checkedEntitiesUris,\n entitiesImportStatus,\n headerCheckboxState,\n highlightedEntityIndex,\n canCheck,\n onCheck,\n onEntityClick,\n onEntityImportStatusChange,\n selectedEntityUri,\n openConfigColumnPopup\n ]\n );\n\n return (\n <BasicTable\n fixFirstColumn={true}\n onScroll={onScroll}\n rowsData={rowsData}\n columnsData={columnsData}\n onSort={handleSort}\n highlightRow={highlightedEntityIndex !== -1 ? highlightedEntityIndex : null}\n ref={tableRef}\n sortFieldClassName={styles.sortableCell}\n containerClassName={styles.table}\n classes={tableClasses}\n defaultColumnWidth={DEFAULT_COLUMN_WIDTH}\n headRowHeight={HEAD_ROW_HEIGHT}\n defaultColumnMinWidth={DEFAULT_COLUMN_MIN_WIDTH}\n defaultRowHeight={DEFAULT_ROW_HEIGHT}\n sorting={{\n field: sortField,\n order: sortOrder\n }}\n dndColumnReorderingHandler={onReorderingColumn}\n dndColumnReorderingEnabled={dndColumnReorderingEnabled}\n onChangeColumnsSize={onChangeColumnsSize}\n columnsSize={columnsSize}\n resizeDebounceDelay={RESIZE_DEBOUNCE_DELAY}\n onRowHover={hoverStateEnabled ? handleRowHover : undefined}\n hoverStateEnabled={hoverStateEnabled}\n hoverRowIndex={hoverRowIndex}\n renderRowOverlay={renderRowOverlay}\n logger={logger}\n context={tableContext}\n maxRowValuesCount={MAX_LENGTH_VALUE}\n renderRowCell={renderRowCell}\n getRowCellHeight={getAttributeHeight}\n />\n );\n }\n);\n\nEntitiesTable.propTypes = {\n entities: PropTypes.array,\n entityToHighlight: PropTypes.string,\n selectedEntityUri: PropTypes.string,\n headColumns: PropTypes.array,\n columnsSize: PropTypes.array,\n onScroll: PropTypes.func,\n onSort: PropTypes.func,\n onReorderingColumn: PropTypes.func,\n onChangeColumnsSize: PropTypes.func,\n dndColumnReorderingEnabled: PropTypes.bool,\n onEntityClick: PropTypes.func,\n onEntityHover: PropTypes.func,\n sortField: PropTypes.string,\n sortOrder: PropTypes.oneOf([SORT_DIRECTION_ASC, SORT_DIRECTION_DESC]),\n entitiesImportStatus: PropTypes.object,\n onEntityImportStatusChange: PropTypes.func,\n logger: PropTypes.func,\n canCheck: PropTypes.bool,\n checkedEntitiesUris: PropTypes.arrayOf(PropTypes.string),\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n onCheck: PropTypes.func,\n openConfigColumnPopup: PropTypes.func\n};\n\nEntitiesTable.defaultProps = {\n entities: [],\n headColumns: []\n};\n\nEntitiesTable.displayName = 'EntitiesTable';\n\nexport default memo(EntitiesTable);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Popover as Popover} from '@material-ui/core';\nimport {List as List} from '@material-ui/core';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nexport const INSERT_LEFT = 'left';\nexport const INSERT_RIGHT = 'right';\nexport const HIDE = 'hide';\n\nconst TEXT = {\n [INSERT_LEFT]: i18n.text('Insert 1 left'),\n [INSERT_RIGHT]: i18n.text('Insert 1 right'),\n [HIDE]: i18n.text('Hide column')\n};\n\nconst renderListItem = (action, handler, index) => (\n <ListItem button component={'div'} key={index} onClick={handler}>\n <ListItemText primary={TEXT[action]} primaryTypographyProps={{variant: 'body2'}} />\n </ListItem>\n);\n\nconst ConfigColumnPopup = ({open, anchorEl, onClick, onClose, actions}) => {\n const getClickHandler = (action) => () => {\n onClick(action);\n };\n\n return (\n <Popover open={open} anchorEl={anchorEl} onClose={onClose}>\n <List component=\"div\">\n {actions.map((action, index) => renderListItem(action, getClickHandler(action), index))}\n </List>\n </Popover>\n );\n};\n\nConfigColumnPopup.propTypes = {\n open: PropTypes.bool,\n anchorEl: PropTypes.any,\n onClick: PropTypes.func,\n onClose: PropTypes.func,\n actions: PropTypes.array\n};\n\nexport default ConfigColumnPopup;\n","import EntitiesTable from '../EntitiesTable/EntitiesTable';\nimport React from 'react';\nimport {ConfigureColumnsPopup} from '@reltio/components';\nimport * as i18n from 'ui-i18n';\nimport ConfigColumnPopup, {HIDE, INSERT_LEFT, INSERT_RIGHT} from './ConfigColumnPopup/ConfigColumnPopup';\nimport PropTypes from 'prop-types';\nimport {SORT_DIRECTION_ASC, SORT_DIRECTION_DESC} from 'react-components/dist/Table/Table';\nimport {memoizeWith, pick, toString} from 'ramda';\nimport {envSpecificKey} from '../../utils/general';\n\nclass EntitiesTableWithConfigurableColumns extends React.PureComponent {\n state = {\n addColumnPopupOpen: false,\n configColumnPopupOpen: false,\n configurableColumnIndex: false,\n popupAnchor: null,\n filterText: ''\n };\n\n addColumnHandler = (data) => {\n const {newColumnPlaceIndex} = this.state;\n const {onChangeColumnsList, headColumns} = this.props;\n const columns = headColumns.slice();\n columns.splice(newColumnPlaceIndex, 0, data);\n onChangeColumnsList({columns});\n this.closeAddColumnPopup();\n };\n\n openAddColumnPopup = ({newColumnPlaceIndex}) => {\n this.setState({newColumnPlaceIndex, configColumnPopupOpen: false, addColumnPopupOpen: true});\n };\n\n closeAddColumnPopup = () => {\n this.setState({popupAnchor: null, addColumnPopupOpen: false, filterText: ''});\n };\n\n setFilterText = (filterText) => {\n this.setState({filterText});\n };\n\n openConfigColumnPopup = (event) => {\n this.setState({\n popupAnchor: event.currentTarget,\n configColumnPopupOpen: true,\n configurableColumnIndex: parseInt(event.currentTarget.getAttribute('data-column-index'))\n });\n };\n\n closeConfigColumnPopup = () => {\n this.setState({configColumnPopupOpen: false});\n };\n\n configColumnHandler = (action) => {\n const {configurableColumnIndex} = this.state;\n switch (action) {\n case INSERT_LEFT:\n this.openAddColumnPopup({newColumnPlaceIndex: configurableColumnIndex});\n break;\n case INSERT_RIGHT:\n this.openAddColumnPopup({newColumnPlaceIndex: configurableColumnIndex + 1});\n break;\n case HIDE:\n this.hideCurrentConfigColumn();\n break;\n }\n };\n\n hideCurrentConfigColumn = () => {\n const {configurableColumnIndex} = this.state;\n const {onChangeColumnsList, headColumns} = this.props;\n const columns = headColumns.slice();\n columns.splice(configurableColumnIndex, 1);\n onChangeColumnsList({columns});\n this.closeConfigColumnPopup();\n };\n\n static getColumnSizeFromHeadColumns(headColumns) {\n return headColumns.map((column) => ({\n id: column.id,\n size: column.size\n }));\n }\n\n static getMemoIdForColumnSize(headColumns, entityTypeUri, envSpecificKey) {\n return `${envSpecificKey}${entityTypeUri}${toString(\n headColumns.map((columns) => pick(['id', 'size'], columns))\n )}`;\n }\n\n memoizedGetColumnSize = memoizeWith(\n EntitiesTableWithConfigurableColumns.getMemoIdForColumnSize,\n EntitiesTableWithConfigurableColumns.getColumnSizeFromHeadColumns\n );\n\n render() {\n const {\n entities,\n entityToHighlight,\n selectedEntityUri,\n onScroll,\n headColumns,\n sortField,\n sortOrder,\n dndColumnReorderingEnabled,\n onEntityClick,\n onEntityHover,\n entitiesTableRef,\n additionalColumns,\n onChangeColumnsList,\n onReorderingColumn,\n onSort,\n onChangeColumnsSize,\n entityTypeUri,\n entitiesImportStatus = {},\n onEntityImportStatusChange,\n logger,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck\n } = this.props;\n\n const {\n addColumnPopupOpen,\n configColumnPopupOpen,\n popupAnchor,\n filterText,\n configurableColumnIndex\n } = this.state;\n\n const columnsSize = this.memoizedGetColumnSize(headColumns, entityTypeUri, envSpecificKey());\n return (\n <>\n <EntitiesTable\n entities={entities}\n entityToHighlight={entityToHighlight}\n selectedEntityUri={selectedEntityUri}\n onScroll={onScroll}\n onSort={onSort}\n onEntityClick={onEntityClick}\n onEntityHover={onEntityHover}\n headColumns={headColumns}\n sortField={sortField}\n sortOrder={sortOrder}\n onReorderingColumn={onReorderingColumn}\n ref={entitiesTableRef}\n onChangeColumnsList={onChangeColumnsList}\n dndColumnReorderingEnabled={dndColumnReorderingEnabled}\n onChangeColumnsSize={onChangeColumnsSize}\n columnsSize={columnsSize}\n entitiesImportStatus={entitiesImportStatus}\n onEntityImportStatusChange={onEntityImportStatusChange}\n logger={logger}\n canCheck={canCheck}\n checkedEntitiesUris={checkedEntitiesUris}\n headerCheckboxState={headerCheckboxState}\n onCheck={onCheck}\n openConfigColumnPopup={this.openConfigColumnPopup}\n />\n <ConfigureColumnsPopup\n open={addColumnPopupOpen}\n anchorEl={popupAnchor}\n data={additionalColumns}\n onListItemClick={this.addColumnHandler}\n filterText={filterText}\n onClose={this.closeAddColumnPopup}\n onSearch={this.setFilterText}\n hideCheckBox={true}\n titleText={i18n.text('Add column')}\n />\n <ConfigColumnPopup\n onClick={this.configColumnHandler}\n onClose={this.closeConfigColumnPopup}\n anchorEl={popupAnchor}\n open={configColumnPopupOpen}\n actions={configurableColumnIndex > 0 ? [INSERT_LEFT, INSERT_RIGHT, HIDE] : [INSERT_RIGHT]}\n />\n </>\n );\n }\n\n static propTypes = {\n entities: PropTypes.array,\n entityToHighlight: PropTypes.string,\n selectedEntityUri: PropTypes.string,\n entityTypeUri: PropTypes.string,\n headColumns: PropTypes.array,\n dndColumnReorderingEnabled: PropTypes.bool,\n onScroll: PropTypes.func,\n onSort: PropTypes.func,\n onReorderingColumn: PropTypes.func,\n onChangeColumnsSize: PropTypes.func,\n onChangeColumnsList: PropTypes.func,\n onEntityClick: PropTypes.func,\n onEntityHover: PropTypes.func,\n sortField: PropTypes.string,\n sortOrder: PropTypes.oneOf([SORT_DIRECTION_ASC, SORT_DIRECTION_DESC]),\n entitiesTableRef: PropTypes.shape({\n current: PropTypes.shape({\n resetScrollbarPosition: PropTypes.func\n })\n }),\n additionalColumns: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string\n })\n ),\n entitiesImportStatus: PropTypes.object,\n onEntityImportStatusChange: PropTypes.func,\n logger: PropTypes.func,\n canCheck: PropTypes.bool,\n checkedEntitiesUris: PropTypes.arrayOf(PropTypes.string),\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n onCheck: PropTypes.func\n };\n}\n\nexport default EntitiesTableWithConfigurableColumns;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport mdmModule from '@reltio/mdm-module';\nimport {EntityType, importEntityFromDataTenant} from '@reltio/mdm-sdk';\nimport {showImportFromDataTenantError} from '../../utils/error';\nimport {ImportButton, ImportModes} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {values} from 'ramda';\n\nconst ImportEntityButton = ({entity, importStatus, onImportStatusChange, hideDelay = 3000, ...otherProps}) => {\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const tenant = useSelector(mdmModule.selectors.getTenant);\n\n return (\n <ImportButton\n {...otherProps}\n mode={importStatus}\n tooltip={i18n.text('Import this record')}\n onClick={(e) => {\n e.stopPropagation();\n onImportStatusChange(ImportModes.PROGRESS);\n importEntityFromDataTenant({\n dtssPath,\n customerTenant: tenant,\n entity\n })\n .then(({success, uris}) => {\n if (success) {\n entity.ctSubscribedUris = uris;\n onImportStatusChange(ImportModes.SUCCESS);\n setTimeout(() => onImportStatusChange(ImportModes.DONE), hideDelay);\n } else {\n throw new Error('Failed to import entity');\n }\n })\n .catch(() => {\n onImportStatusChange(ImportModes.INIT);\n showImportFromDataTenantError();\n });\n }}\n />\n );\n};\n\nImportEntityButton.propTypes = {\n entity: EntityType,\n importStatus: PropTypes.oneOf(values(ImportModes)),\n onImportStatusChange: PropTypes.func,\n hideDelay: PropTypes.number\n};\n\nexport default ImportEntityButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n importButtonPlaceholder: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 10px',\n width: '24px',\n flexShrink: 0,\n position: 'relative'\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\n\nimport ImportEntityButton from '../ImportEntityButton/ImportEntityButton';\nimport {\n checkCanImportEntityOfType,\n getEntityType,\n isDataTenantEntity,\n isEntityImportedToCT,\n Metadata,\n Entity\n} from '@reltio/mdm-sdk';\nimport {ImportModes} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n entityImportStatus: ImportModes;\n onEntityImportStatusChange: (uri: string, status: ImportModes) => void;\n};\n\nexport const EntityRowButtons = ({entity, entityImportStatus, onEntityImportStatusChange}: Props) => {\n const styles = useStyles();\n\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const canImportFromDataTenant: boolean = useSelector(mdmModule.selectors.getCanUserImportEntitiesFromDT);\n const canImport = isDataTenantEntity(entity) && canImportFromDataTenant;\n const entityType = getEntityType(metadata, entity.type);\n const canImportEntity = checkCanImportEntityOfType(entityType) && !isEntityImportedToCT(entity);\n const isImportInProgress = entityImportStatus && entityImportStatus !== ImportModes.DONE;\n const showImportButton = isImportInProgress || canImportEntity;\n\n return (\n <>\n {canImport && (\n <div className={styles.importButtonPlaceholder}>\n {showImportButton && (\n <ImportEntityButton\n entity={entity}\n importStatus={entityImportStatus}\n onImportStatusChange={(status) => onEntityImportStatusChange(entity.uri, status)}\n />\n )}\n </div>\n )}\n </>\n );\n};\n\nexport default EntityRowButtons;\n","import {makeStyles} from '@material-ui/core/styles';\nimport {READABLE_QUERY_PRIMITIVE_TYPES} from '@reltio/mdm-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n query: {\n color: theme.palette.text.secondary,\n fontSize: '12px',\n letterSpacing: 0,\n lineHeight: '16px'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.entityTypeLabel]: {\n color: '#03904A'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeLabel]: {\n color: '#059BEA'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.specialAttributeLabel]: {\n color: '#EA05CF'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeFilter]: {\n color: '#7F00FF'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeValue]: {\n color: '#000000'\n }\n}));\n\nexport {useStyles};\n","import React, {forwardRef} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ReadableSearchQuery = forwardRef(({readableQuery = [], className, ...otherProps}, ref) => {\n const styles = useStyles();\n return (\n <span ref={ref} className={classnames(styles.query, className)} {...otherProps}>\n {readableQuery.map(({type, text}, i) => (\n <span key={i} className={styles[type]}>\n {text}\n </span>\n ))}\n </span>\n );\n});\n\nReadableSearchQuery.displayName = 'ReadableSearchQuery';\n\nReadableSearchQuery.propTypes = {\n readableQuery: PropTypes.array,\n className: PropTypes.string\n};\n\nexport default ReadableSearchQuery;\n","export default {\n CREATE_FACETS: 'FACETS_CREATE_FACETS',\n DESTROY_FACETS: 'FACETS_DESTROY_FACETS',\n CHANGE_VALUES: 'FACETS_CHANGE_VALUES',\n CLEAR_ALL_VALUES: 'FACETS_CLEAR_ALL_VALUES',\n UPDATE_DATA: 'FACETS_UPDATE_DATA',\n UPDATE_FILTERED_DATA: 'FACETS_UPDATE_FILTERED_DATA',\n DESTROY_FILTERED_DATA: 'FACETS_DESTROY_FILTERED_DATA',\n FILTER_FACET_DATA: 'FACETS_FILTER_FACET_DATA',\n HANDLE_CONFIGS_CHANGES: 'FACETS_HANDLE_CONFIGS_CHANGES',\n REQUEST_GIVEN_FACETS_DATA: 'FACETS_REQUEST_GIVEN_FACETS_DATA',\n SET_RECOMMENDED_FACETS_LIST: 'FACETS_SET_RECOMMENDED_FACETS_LIST',\n CONVERT_FROM_ADVANCED_SEARCH: 'FACETS_CONVERT_FROM_ADVANCED_SEARCH',\n SHOW_MORE_ENTITY_TYPES: 'FACETS_SHOW_MORE_ENTITY_TYPES',\n HIGHLIGHT_ADDED_FACETS: 'FACETS_HIGHLIGHT_ADDED_FACETS',\n CLEAR_HIGHLIGHT_ADDED_FACETS: 'FACETS_CLEAR_HIGHLIGHT_ADDED_FACETS'\n};\n","export default {\n UPDATE_ENTITIES: 'SEARCH_UPDATE_ENTITIES',\n UPDATE_URL: 'SEARCH_UPDATE_URL',\n CLEAR_RESULTS: 'SEARCH_CLEAR_RESULTS',\n REFRESH_DISPLAYED_ENTITIES: 'SEARCH_REFRESH_DISPLAYED_ENTITIES',\n REFRESH: 'SEARCH_REFRESH',\n CLEAR_ALL: 'SEARCH_CLEAR_ALL',\n SHOW_MORE_RESULTS_FOR_ENTITY_TYPE: 'SEARCH_SHOW_MORE_RESULTS_FOR_ENTITY_TYPE',\n UPDATE_TOTAL: 'SEARCH_UPDATE_TOTAL',\n CHANGE_PAGE: 'SEARCH_CHANGE_PAGE',\n RESET_PAGE: 'SEARCH_RESET_PAGE',\n CHANGE_ROWS_PER_PAGE: 'SEARCH_CHANGE_ROWS_PER_PAGE',\n CHANGE_SORT: 'SEARCH_CHANGE_SORT',\n CHANGE_LOADING: 'SEARCH_CHANGE_LOADING',\n MAP_CHANGE_VALUE: 'SEARCH_MAP_CHANGE_VALUE',\n STATE_UPDATED: 'SEARCH_STATE_UPDATED',\n EXPORT_RESULTS: 'SEARCH_EXPORT_RESULTS',\n OPEN_DATA_LOADER: 'SEARCH_OPEN_DATA_LOADER',\n CHANGE_CURRENT_TENANT: 'SEARCH_CHANGE_CURRENT_TENANT'\n};\n","import i18n from 'ui-i18n';\nimport {pipe, values, without} from 'ramda';\n\nexport const appId = 'explorer';\n\nexport const ROWS_PER_PAGE_OPTIONS = [25, 50, 100];\n\nexport const NUMERIC_RANGE_MIN_VALUE = 0;\nexport const NUMERIC_RANGE_MAX_VALUE = 10000;\n\nconst currentDate = () => new Date().setHours(0, 0, 0, 0);\nconst yearAgoDate = () => {\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0);\n return currentDate.setFullYear(currentDate.getFullYear() - 1);\n};\n\nexport const DATE_RANGE_MIN_VALUE = yearAgoDate();\nexport const DATE_RANGE_MAX_VALUE = currentDate();\n\nexport const SEARCH_RESULTS_MODES = {\n TABLE: 'table',\n LIST: 'list',\n MAP: 'map'\n};\n\nexport const DEFAULT_VIEW = SEARCH_RESULTS_MODES.TABLE;\n\nexport const PREVIEW_PANEL_MODES = {\n PROFILE: 'profile',\n MAP: 'map'\n};\n\nexport const DEFAULT_FACET_PAGE_SIZE = 20;\n\nexport const operators = [\n {\n label: 'And',\n value: 'and'\n },\n {\n label: 'Or',\n value: 'or'\n },\n {\n label: 'And not',\n value: 'and not'\n },\n {\n label: 'Or not',\n value: 'or not'\n }\n];\nexport const defaultOperator = operators[0];\nexport const defaultGroupOperator = operators[1];\n\nexport const STORED_SEARCHES_TYPES = {\n saved: 'saved',\n recent: 'recent'\n};\n\nexport const SAVED_SEARCHES_SHARING_OPTIONS_VALUES = {\n public: 'public',\n private: 'private'\n};\n\nexport const SAVED_SEARCHES_SORTED_FIELDS = {\n name: 'name',\n updateDate: 'updateDate'\n};\n\nexport const SAVED_SEARCHES_SORT_BY_VALUES = {\n [SAVED_SEARCHES_SORTED_FIELDS.name]: 'NAME',\n [SAVED_SEARCHES_SORTED_FIELDS.updateDate]: 'UPDATE_DATE'\n};\n\nexport const SAVED_SEARCHES_SORT_ORDER_VALUES = {\n ASC: 'asc',\n DESC: 'desc'\n};\n\nexport const SAVED_SEARCHES_SHARING_OPTIONS = [\n {\n label: i18n.text('Only me'),\n value: SAVED_SEARCHES_SHARING_OPTIONS_VALUES.private\n },\n {\n label: i18n.text('All users'),\n value: SAVED_SEARCHES_SHARING_OPTIONS_VALUES.public\n }\n];\n\nexport const NOTIFICATION_TYPES = {\n info: 'info',\n error: 'error'\n};\n\nexport const ML_RULES_ONLY = {pmRulesScope: 'ML_RULES_ONLY'};\n\nexport const ENTITY_TYPE_FACET_ROW_COUNT = 7;\n\nexport const SEARCH_DEBOUNCE_TIME = 300;\n\nexport const BULK_UPDATE_SELECTION_MODES = {\n include: 'include',\n exclude: 'exclude'\n};\n\nexport const BULK_UPDATE_COMMON_OPERATIONS = {\n UpdateProfiles: 'UpdateProfiles',\n DeleteProfiles: 'DeleteProfiles'\n};\n\nexport const BULK_UPDATE_OPERATIONS = {\n AddNew: 'AddNew',\n Clear: 'Clear',\n ReplaceAllWith: 'ReplaceAllWith',\n FindAndReplace: 'FindAndReplace',\n FindAndRemove: 'FindAndRemove',\n RepointReference: 'RepointReference'\n};\n\nexport const BULK_UPDATE_OPERATION_LABELS = {\n [BULK_UPDATE_OPERATIONS.AddNew]: i18n.text('Add new'),\n [BULK_UPDATE_OPERATIONS.Clear]: i18n.text('Clear attribute'),\n [BULK_UPDATE_OPERATIONS.ReplaceAllWith]: i18n.text('Replace all with'),\n [BULK_UPDATE_OPERATIONS.FindAndReplace]: i18n.text('Find and replace'),\n [BULK_UPDATE_OPERATIONS.FindAndRemove]: i18n.text('Find and remove'),\n [BULK_UPDATE_OPERATIONS.RepointReference]: i18n.text('Repoint reference')\n};\n\nexport const BULK_UPDATE_ALLOWED_OPERATION_VALUE_FIELDS = {\n [BULK_UPDATE_OPERATIONS.AddNew]: ['attributeValue'],\n [BULK_UPDATE_OPERATIONS.Clear]: [],\n [BULK_UPDATE_OPERATIONS.ReplaceAllWith]: ['attributeValue'],\n [BULK_UPDATE_OPERATIONS.FindAndReplace]: ['attributeValue', 'attributeValueToFind'],\n [BULK_UPDATE_OPERATIONS.FindAndRemove]: ['attributeValueToFind'],\n [BULK_UPDATE_OPERATIONS.RepointReference]: ['attributeValue']\n};\n\nexport const BULK_UPDATE_SIMPLE_ATTRIBUTE_OPERATIONS = pipe(\n values,\n without(BULK_UPDATE_OPERATIONS.RepointReference)\n)(BULK_UPDATE_OPERATIONS);\n\nexport const BULK_UPDATE_NESTED_ATTRIBUTE_OPERATIONS = [\n BULK_UPDATE_OPERATIONS.AddNew,\n BULK_UPDATE_OPERATIONS.Clear,\n BULK_UPDATE_OPERATIONS.ReplaceAllWith\n];\nexport const BULK_UPDATE_REFERENCE_ATTRIBUTE_OPERATIONS = [\n BULK_UPDATE_OPERATIONS.AddNew,\n BULK_UPDATE_OPERATIONS.Clear,\n BULK_UPDATE_OPERATIONS.RepointReference\n];\n\nexport const BULK_UPDATE_API_OPERATIONS = {\n AddAttribute: 'AddAttribute',\n UpdateAttribute: 'UpdateAttribute',\n DeleteAttribute: 'DeleteAttribute',\n RepointReferencedEntity: 'RepointReferencedEntity',\n AddTags: 'AddTags',\n ReplaceTag: 'ReplaceTag',\n DeleteTags: 'DeleteTags',\n ClearTags: 'ClearTags'\n};\n\nexport const BULK_UPDATE_REFERENCED_ENTITY_ID_FIELD_NAME = 'referenced_entity_id';\n\nexport const DEFAULT_SEARCH_SELECT = [\n 'uri',\n 'label',\n 'type',\n 'secondaryLabel',\n 'defaultProfilePic',\n 'defaultProfilePicValue',\n 'attributes.Address',\n 'attributes.GeoLocation',\n 'attributes.ImageGallery'\n];\n","import {curry, pathOr, remove} from 'ramda';\nimport nanoid from 'nanoid';\n\nimport {isCompatibleFilters, getFilterOptionsForQueryBuilder} from '@reltio/mdm-sdk';\nimport {defaultOperator} from '../../constants/constants';\nimport {createLens, path as createLPath} from '../../utils/lenses';\n\nexport const PROP_NAME_OPERATOR = 'operator';\nexport const PROP_NAME_VALUES = 'values';\nexport const PROP_NAME_FILTER = 'filter';\n\nexport const getEmptyAttributeObject = (id = nanoid()) => ({\n [PROP_NAME_OPERATOR]: defaultOperator.value,\n id\n});\n\nexport const getAttributeObject = (attribute, id = nanoid()) => {\n const data = getAttributeData(attribute);\n return {\n data,\n [PROP_NAME_OPERATOR]: defaultOperator.value,\n [PROP_NAME_FILTER]: pathOr('', ['filterOptions', 0], data),\n id\n };\n};\n\nexport const getAttributeData = (attribute) => ({\n ...attribute,\n filterOptions:\n attribute.enforcedFilterOptions || getFilterOptionsForQueryBuilder(attribute.attrType, attribute.fieldName)\n});\n\nexport const defaultFindGroupPath = curry((id, groups) => {\n const groupIndex = groups.findIndex((group) => group.id === id);\n return groupIndex > -1 ? [groupIndex] : null;\n});\n\nexport const createGetGroupLens = (groupsLensPath, findGroupPath = defaultFindGroupPath) => (state, id) => {\n const searchGroupsL = createLPath(...groupsLensPath);\n const groups = searchGroupsL.get(state);\n const groupPath = findGroupPath(id, groups);\n return groupPath ? createLPath(...groupsLensPath, ...groupPath) : false;\n};\n\nexport const createGetAttributesLens = (getGroupLens, propNameAttributes) => (state, groupId) => {\n const groupLens = getGroupLens(state, groupId);\n return groupLens && groupLens.compose(createLens(propNameAttributes));\n};\n\nexport const createGetAttributeIndex = (getAttributesLens) => (state, groupId, attributeId) => {\n const attributesLens = getAttributesLens(state, groupId);\n if (attributesLens) {\n const attributes = attributesLens.get(state);\n return attributes.findIndex((attribute) => attribute.id === attributeId);\n }\n return -1;\n};\n\nexport const createGetAttributeLens = (getAttributesLens) => (state, groupId, attributeId) => {\n const attributesLens = getAttributesLens(state, groupId);\n const getAttributeIndex = createGetAttributeIndex(getAttributesLens);\n const attributeIndex = getAttributeIndex(state, groupId, attributeId);\n return attributeIndex !== -1 ? attributesLens.compose(createLPath(attributeIndex)) : null;\n};\n\nexport const createSetAttributeProp = (getAttributeLens) => (state, groupId, attributeId, propName, value) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n if (groupAttributeL) {\n const newAttribute = {...groupAttributeL.get(state)};\n newAttribute[propName] = value;\n return groupAttributeL.set(state, newAttribute);\n }\n\n return state;\n};\n\nexport const createGetAttributeProp = (getAttributeLens) => (state, groupId, attributeId, propName) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n if (groupAttributeL) {\n return groupAttributeL.get(state)[propName];\n }\n};\n\nconst isAttributeIncludesFilter = (state, groupId, attributeId, attribute, getAttributeLens) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n let currentFilter;\n if (groupAttributeL) currentFilter = groupAttributeL.get(state).filter;\n\n return attribute.filterOptions.length && (!currentFilter || !attribute.filterOptions.includes(currentFilter));\n};\n\nexport const addAttributeAfter = ({state, groupId, attributeId, attribute, getAttributesLens, getAttributeIndex}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n let newAttributes = [...groupAttributesL.get(state)];\n const attrIndex = getAttributeIndex(state, groupId, attributeId);\n const isLastAttribute = !newAttributes[attrIndex + 1];\n if (attrIndex !== -1 && isLastAttribute) {\n newAttributes.splice(attrIndex + 1, 0, attribute);\n } else if (attrIndex !== -1) {\n newAttributes.splice(attrIndex + 1, 0, {\n ...attribute,\n operator: newAttributes[attrIndex].operator\n });\n\n newAttributes[attrIndex] = {\n ...newAttributes[attrIndex],\n operator: defaultOperator.value\n };\n } else {\n newAttributes.push(attribute);\n }\n return groupAttributesL.set(state, newAttributes);\n }\n return state;\n};\n\nexport const changeAttributeData = ({\n state,\n groupId,\n attributeId,\n attributeData,\n setAttributeProp,\n getAttributeLens\n}) => {\n let newState = state;\n if (attributeData) {\n if (isAttributeIncludesFilter(state, groupId, attributeId, attributeData, getAttributeLens))\n newState = setAttributeProp(state, groupId, attributeId, PROP_NAME_FILTER, attributeData.filterOptions[0]);\n newState = setAttributeProp(newState, groupId, attributeId, PROP_NAME_VALUES, []);\n return setAttributeProp(newState, groupId, attributeId, 'data', attributeData);\n } else {\n const attrLens = getAttributeLens(state, groupId, attributeId);\n if (attrLens) {\n newState = attrLens.set(newState, getEmptyAttributeObject(attributeId));\n }\n return newState;\n }\n};\n\nexport const setAttributeOperator = ({state, groupId, attributeId, operator, setAttributeProp}) => {\n return setAttributeProp(state, groupId, attributeId, PROP_NAME_OPERATOR, operator);\n};\n\nexport const deleteAttribute = ({state, groupId, attributeId, getAttributesLens}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n const attributes = [...groupAttributesL.get(state)];\n const attributeIndex = attributes.findIndex((attribute) => attribute.id === attributeId);\n\n if (attributeIndex > -1) {\n const editedAttributes = remove(attributeIndex, 1, attributes);\n const prevAttribute = editedAttributes[attributeIndex - 1];\n const removedAttribute = attributes[attributeIndex];\n\n if (prevAttribute) {\n editedAttributes[attributeIndex - 1] = {\n ...prevAttribute,\n operator: removedAttribute.operator\n };\n }\n\n return groupAttributesL.set(state, editedAttributes);\n }\n }\n return state;\n};\n\nexport const duplicateAttribute = ({state, groupId, attributeId, id, getAttributesLens}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n const attributes = [...groupAttributesL.get(state)];\n const attributeIndex = attributes.findIndex((attribute) => attribute.id === attributeId);\n if (attributeIndex > -1) {\n attributes.push({...attributes[attributeIndex], id});\n return groupAttributesL.set(state, attributes);\n }\n }\n return state;\n};\n\nexport const setFilter = ({state, groupId, attributeId, filter, getAttributeProp, setAttributeProp}) => {\n const currentFilter = getAttributeProp(state, groupId, attributeId, PROP_NAME_FILTER);\n\n const newState = isCompatibleFilters(currentFilter, filter)\n ? state\n : setAttributeProp(state, groupId, attributeId, PROP_NAME_VALUES, []);\n return setAttributeProp(newState, groupId, attributeId, PROP_NAME_FILTER, filter);\n};\n\nexport const setValues = ({state, groupId, attributeId, values, setAttributeProp}) => {\n return setAttributeProp(state, groupId, attributeId, PROP_NAME_VALUES, values);\n};\n","import {put} from 'redux-saga/effects';\nimport {__, path, pipe, propEq, propOr} from 'ramda';\nimport {defaultFindGroupPath} from '../reducers/helpers/queryBuilderHelpers';\n\nexport function* toggleQueryBuilderAttributeSelect({\n groups,\n findGroupPath = defaultFindGroupPath,\n attributesPropName,\n groupId,\n attributeId,\n selectInfo,\n actions\n}) {\n const {checked, attribute: selectedAttribute, index: selectIndex, selectedAttributes} = selectInfo;\n const {addAttributeAfter, changeAttribute, clearAttribute, deleteAttribute} = actions;\n\n const groupAttributes = pipe(findGroupPath(groupId), path(__, groups), propOr([], attributesPropName))(groups);\n const getGroupAttributeIdAt = (index) => path([index, 'id'], groupAttributes);\n\n const attributeIndex = groupAttributes.findIndex(propEq('id', attributeId));\n const shouldChangeAttribute = attributeId && selectIndex === 0;\n\n if (shouldChangeAttribute) {\n if (checked) {\n yield put(changeAttribute(groupId, attributeId, selectedAttribute));\n } else {\n let nextSelectedAttribute = selectedAttributes[selectIndex + 1];\n if (nextSelectedAttribute) {\n yield put(changeAttribute(groupId, attributeId, nextSelectedAttribute));\n yield put(deleteAttribute(groupId, getGroupAttributeIdAt(attributeIndex + 1)));\n } else {\n yield put(clearAttribute(groupId, attributeId));\n }\n }\n } else {\n const selectIndexFromEnd = selectedAttributes.length - selectIndex;\n const targetIndex = attributeId ? attributeIndex + selectIndex : groupAttributes.length - selectIndexFromEnd;\n\n checked\n ? yield put(addAttributeAfter(groupId, getGroupAttributeIdAt(targetIndex - 1), selectedAttribute))\n : yield put(deleteAttribute(groupId, getGroupAttributeIdAt(targetIndex)));\n }\n}\n","import {getAbsoluteImageUrl, getEntityTypeGraphIcon} from '@reltio/mdm-sdk';\nimport {getApiPath, getImagePath} from '../../utils/config';\nimport {Metadata} from '@reltio/mdm-sdk';\n\nconst getAbsoluteImagePath = (path: string): string => getAbsoluteImageUrl(getImagePath() || getApiPath(), path);\n\nexport const getTypeGraphIcon = (metadata: Metadata, entityTypeUri: string): string => {\n const entityTypeGraphIcon = getEntityTypeGraphIcon(metadata, {type: entityTypeUri});\n return getAbsoluteImagePath(entityTypeGraphIcon);\n};\n","import i18n from 'ui-i18n';\n\nimport {\n AuditAttrTypes,\n CollaborationAttrTypes,\n CrosswalksAttrTypes,\n EntityAttrTypes,\n PotentialMatchesAttrTypes,\n RdmAttrTypes,\n WorkflowAttrTypes\n} from '@reltio/mdm-sdk';\nimport {createDataTenantConfigPart, getOrderTypeByAttrType, getPageSizeByAttrType} from '../collectAttributes';\nimport {__, concat, evolve, identity, map, omit, pipe, propEq, T, values} from 'ramda';\n\nconst collectAttrTypesData = pipe(\n values,\n map((attrType) => ({\n title: attrType.label,\n fieldName: attrType.name,\n type: attrType.type,\n faceted: attrType.faceted,\n hideForDataTenant: attrType.hideForDataTenant\n }))\n);\n\nexport const entityAttributes = {\n id: 'entity',\n title: i18n.text('Entity'),\n attributes: collectAttrTypesData(EntityAttrTypes)\n};\n\nexport const workflowAttributes = {\n id: 'workflow',\n title: i18n.text('Workflow'),\n attributes: collectAttrTypesData(WorkflowAttrTypes)\n};\n\nexport const collaborationItemsAttributes = {\n id: 'collaborationItems',\n title: i18n.text('Collaboration Items'),\n attributes: collectAttrTypesData(CollaborationAttrTypes)\n};\n\nexport const RDMItemsAttributes = {\n id: 'RDMItems',\n title: i18n.text('Reference Data Management'),\n attributes: collectAttrTypesData(RdmAttrTypes)\n};\n\nexport const auditItemsAttributes = {\n id: 'auditItems',\n title: i18n.text('Audit Items'),\n attributes: collectAttrTypesData(AuditAttrTypes)\n};\n\nexport const potentialMatchesAttributes = {\n id: 'potentialMatches',\n title: i18n.text('Potential Matches'),\n attributes: collectAttrTypesData(PotentialMatchesAttrTypes)\n};\n\nexport const crosswalksItemsAttributes = {\n id: 'crosswalksItems',\n title: i18n.text('Crosswalks Items'),\n attributes: collectAttrTypesData(omit(['sourceTable'], CrosswalksAttrTypes))\n};\n\nconst getEntityAttributes = () => entityAttributes;\nconst getWorkflowAttributes = () => workflowAttributes;\nconst getCollaborationItemsAttributes = () => collaborationItemsAttributes;\nconst getRDMItemsAttributes = () => RDMItemsAttributes;\nconst getAuditItemsAttributes = () => auditItemsAttributes;\nconst getPotentialMatchesAttributes = (dataTenants) =>\n dataTenants\n ? evolve(\n {\n attributes: concat(\n __,\n dataTenants.map((dataTenant) => ({\n ...potentialMatchesAttributes.attributes.find(\n propEq('fieldName', PotentialMatchesAttrTypes.matches.name)\n ),\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matches',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant'\n }))\n )\n },\n potentialMatchesAttributes\n )\n : potentialMatchesAttributes;\nconst getCrosswalksItemsAttributes = () => crosswalksItemsAttributes;\n\nexport const createSpecialAttributeItem = ({\n title,\n fieldName,\n dataTenant,\n fieldNameForRequest,\n dataTenantFieldName,\n ...attrType\n}) => {\n const facetedSpecificPart = attrType.faceted\n ? {\n pageSize: getPageSizeByAttrType(attrType),\n orderType: getOrderTypeByAttrType(attrType)\n }\n : {};\n const dataTenantPart = dataTenant\n ? createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest,\n dataTenantFieldName,\n originalTitle: title\n })\n : {};\n return {\n title,\n fieldName,\n attrType,\n ...facetedSpecificPart,\n ...dataTenantPart\n };\n};\n\nexport const createAttributesGroup = (id, title, attributes) =>\n attributes && attributes.length\n ? {\n id,\n title,\n attributes\n }\n : null;\n\nexport const collectSpecialAttributesGroups = ({\n attributesFilter = T,\n dataTenants,\n canUserReadWorkflowDataTask = true\n} = {}) => {\n const _createAttributesGroup = ({id, title, attributes}) =>\n createAttributesGroup(id, title, attributes.map(createSpecialAttributeItem).filter(attributesFilter));\n const attributesInitial = [\n getEntityAttributes(),\n ...(canUserReadWorkflowDataTask ? [getWorkflowAttributes()] : []),\n getCollaborationItemsAttributes(),\n getRDMItemsAttributes(),\n getAuditItemsAttributes(),\n getPotentialMatchesAttributes(dataTenants),\n getCrosswalksItemsAttributes()\n ];\n\n return attributesInitial.map(_createAttributesGroup).filter(identity);\n};\n\nexport const getSpecialAttribute = (fieldName, dataTenants, canUserReadWorkflowDataTask) => {\n const specialAttributeGroup = collectSpecialAttributesGroups({\n dataTenants,\n canUserReadWorkflowDataTask\n }).find((group) => group.attributes.find((attr) => attr.fieldName === fieldName));\n return specialAttributeGroup && specialAttributeGroup.attributes.find((attr) => attr.fieldName === fieldName);\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\"\n}, props), React.createElement(\"defs\", null, React.createElement(\"linearGradient\", {\n x1: \"94.582%\",\n y1: \"6.451%\",\n x2: \"23.195%\",\n y2: \"83.323%\",\n id: \"svg1842926308b\"\n}, React.createElement(\"stop\", {\n stopColor: \"#CDE1FF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#AFFBF4\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"94.582%\",\n y1: \"6.594%\",\n x2: \"23.195%\",\n y2: \"83.214%\",\n id: \"svg1842926308d\"\n}, React.createElement(\"stop\", {\n stopColor: \"#FFF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#FDFFFF\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"93.837%\",\n y1: \"55.274%\",\n x2: \"29.292%\",\n y2: \"-20.431%\",\n id: \"svg1842926308g\"\n}, React.createElement(\"stop\", {\n stopColor: \"#FFFCC7\",\n stopOpacity: \"0\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#FFF470\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"50%\",\n y1: \"0%\",\n x2: \"50%\",\n y2: \"98.152%\",\n id: \"svg1842926308i\"\n}, React.createElement(\"stop\", {\n stopColor: \"#83D6FF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#72B9EF\",\n offset: \"100%\"\n})), React.createElement(\"path\", {\n d: \"M.228 8.25l4.055-7.007C4.579.727 5.709.074 6.425.009L14.48.001c.633-.03 1.853.635 2.236 1.3l3.934 6.812c.398.69.345 2.074-.017 2.765l-3.868 6.685c-.472.64-1.77 1.39-2.446 1.416l-7.767.008c-.689-.033-1.992-.72-2.345-1.332L.232 10.769c-.338-.585-.278-1.938-.004-2.519z\",\n id: \"svg1842926308a\"\n}), React.createElement(\"path\", {\n d: \"M1.389 8.38l3.589-6.202c.262-.457 1.263-1.033 1.898-1.09h7.143c.56-.026 1.643.565 1.984 1.153l3.494 6.037c.353.611.308 1.837-.012 2.449l-3.424 5.916c-.418.567-1.569 1.23-2.168 1.252H7.006c-.61-.03-1.766-.64-2.08-1.182L1.395 10.61c-.3-.518-.249-1.717-.006-2.23z\",\n id: \"svg1842926308c\"\n}), React.createElement(\"path\", {\n d: \"M.124 0l-.161-.002c3.374 0 6.11 2.727 6.11 6.092 0 3.279-2.974 4.316-2.974 7.123a.84.84 0 01-.84.838H.123V8.623a1.75 1.75 0 000-3.437V0z\",\n id: \"svg1842926308e\"\n}), React.createElement(\"path\", {\n d: \"M5.92 0l-.012 5.154-.132.006A1.75 1.75 0 005.9 8.654l-.012 5.409H3.486c-.237-.07-.4-.155-.489-.254-.089-.098-.17-.284-.242-.557l-.291-1.341a2.084 2.084 0 00-.12-.344 1.507 1.507 0 00-.187-.267L.25 8.796a1.032 1.032 0 01-.201-.293 1.277 1.277 0 01-.048-.38V3.917a.522.522 0 01.027-.22.562.562 0 01.147-.172L3.546.111a.456.456 0 01.11-.088A.345.345 0 013.784 0h2.136z\",\n id: \"svg1842926308h\"\n})), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\"\n}, React.createElement(\"g\", null, React.createElement(\"g\", {\n transform: \"translate(1.5 .75)\"\n}, React.createElement(\"use\", {\n fill: \"url(#svg1842926308b)\",\n xlinkHref: \"#svg1842926308a\"\n}), React.createElement(\"use\", {\n fill: \"url(#svg1842926308d)\",\n opacity: \".5\",\n xlinkHref: \"#svg1842926308c\"\n})), React.createElement(\"g\", {\n transform: \"translate(8.707 3.846)\"\n}, React.createElement(\"rect\", {\n fill: \"#363636\",\n x: \"1.932\",\n y: \"16.593\",\n width: \"2.644\",\n height: \"2.895\",\n rx: \"1.322\"\n}), React.createElement(\"path\", {\n d: \"M6.018 14.845v2.367c0 .9-.743 1.629-1.66 1.629H2.27c-.917 0-1.66-.73-1.66-1.63v-2.366l.004-.095h5.401c.002.031.003.063.003.095z\",\n fill: \"#717171\"\n}), React.createElement(\"path\", {\n d: \"M5.168 17.15c0 .9-.618 1.63-1.38 1.63H2.049c-.762 0-1.38-.73-1.38-1.63v-2.37h4.5v2.37z\",\n fill: \"#828282\"\n}), React.createElement(\"path\", {\n d: \"M5.939 17.28a.5.5 0 010 1H.569a.5.5 0 110-1h5.37zm0-1.376a.5.5 0 010 1H.569a.5.5 0 110-1h5.37zm0-1.375a.5.5 0 010 1H.569a.5.5 0 110-1h5.37z\",\n fill: \"#B1B1B1\"\n}), React.createElement(\"path\", {\n d: \"M3.125 17.28v1h-2v-1h2zm0-1.376v1h-2v-1h2zm0-1.375v1h-2v-1h2z\",\n fill: \"#C5C5C5\"\n}), React.createElement(\"g\", {\n transform: \"translate(3.375)\"\n}, React.createElement(\"mask\", {\n id: \"svg1842926308f\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg1842926308e\"\n})), React.createElement(\"use\", {\n fill: \"#FFD44B\",\n xlinkHref: \"#svg1842926308e\"\n}), React.createElement(\"path\", {\n d: \"M-6.125 6.091A6.076 6.076 0 01-.025 0c3.367 0 6.098 2.727 6.098 6.091 0 3.279-2.969 4.316-2.969 7.123a.838.838 0 01-.839.837H-2.51a.838.838 0 01-.839-.837c0-2.562-2.775-3.73-2.775-7.123z\",\n fill: \"#FFD347\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"path\", {\n d: \"M-6.125 6.091A6.076 6.076 0 01-.025 0c3.367 0 6.098 2.727 6.098 6.091 0 3.279-2.969 4.316-2.969 7.123a.838.838 0 01-.839.837H-2.51a.838.838 0 01-.839-.837c0-2.562-2.775-3.73-2.775-7.123z\",\n fill: \"#FFDE72\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"path\", {\n d: \"M1.496 6.08c.02-.896.936-1.336 1.732-.85.906.553.507 2.04-.592 2.069H2.199l-.576 7.012-.75-.032.552-6.406.023-.574H.124v-.75h1.354l.017-.448v-.02zm1.342-.21c-.318-.193-.58-.072-.592.221l-.001.036-.016.422h.373c.357 0 .5-.493.252-.668l-.016-.01z\",\n fill: \"#F3BE13\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"ellipse\", {\n fill: \"url(#svg1842926308g)\",\n mask: \"url(#svg1842926308f)\",\n cx: \"-.236\",\n cy: \"6.031\",\n rx: \"4.567\",\n ry: \"4.583\"\n})))), React.createElement(\"g\", null, React.createElement(\"g\", {\n transform: \"translate(5.706 3.846)\"\n}, React.createElement(\"mask\", {\n id: \"svg1842926308j\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg1842926308h\"\n})), React.createElement(\"use\", {\n fill: \"url(#svg1842926308i)\",\n xlinkHref: \"#svg1842926308h\"\n}), React.createElement(\"path\", {\n fill: \"#D6FCFA\",\n fillRule: \"nonzero\",\n opacity: \".5\",\n mask: \"url(#svg1842926308j)\",\n d: \"M4.78 1.404v.75h-.444L1.56 4.93H-.706v-.75H1.25l2.775-2.776zM3.21 5.097l1.725 1.725H6.25v.75H4.625L2.68 5.628zM6.664 3.53v.75H4.958l-.492.53-.55-.51.714-.77zM1.781 6.53l2.565 2.564h.462v.75h-.773L1.47 7.28H-.08v-.75zM2.67 10.53h1.118L5.05 11.79h2.094v.75H4.74L3.477 11.28z\"\n}))), React.createElement(\"circle\", {\n fill: \"#008FD8\",\n cx: \"11.75\",\n cy: \"10.75\",\n r: \"1.125\"\n}))));","import {\n allPass,\n always,\n anyPass,\n chain,\n complement,\n curry,\n either,\n flatten,\n identity,\n isEmpty,\n pipe,\n prop,\n propEq,\n T\n} from 'ramda';\nimport memoizeOne from 'memoize-one';\n\nimport i18n from 'ui-i18n';\nimport MLRecommendedIcon from './icons/ml-recommended.svg';\nimport {prepareAttrUriForSearch} from './searchEngine';\nimport {DEFAULT_FACET_PAGE_SIZE} from '../../constants/constants';\nimport {\n findClosestCommonAncestor,\n getAllAttributeTypesTree,\n getAttributeTypeSubAttributes,\n getDataTenantSpecialAttributeFieldName,\n getEntityType,\n getEntityTypeLabel,\n getFacetTypeForAttrType,\n hasMatchRulesWithoutML,\n hasMlMatchRule,\n isAvailableEntityType,\n isComplexAttribute,\n SpecialAttrTypes\n} from '@reltio/mdm-sdk';\nimport {createAttributesGroup} from './advancedSearch/collectSpecialAttributes';\n\nexport const createFacetForSpecialAttrType = (attrType, facetProps) => ({\n title: attrType.label,\n fieldName: attrType.name,\n type: getFacetTypeForAttrType(attrType),\n attrType: {\n type: attrType.type,\n singleValue: attrType.singleValue,\n hideForDataTenant: attrType.hideForDataTenant,\n faceted: true\n },\n ...facetProps\n});\n\nexport const createDataTenantConfigPart = ({dataTenant, fieldNameForRequest, dataTenantFieldName, originalTitle}) => ({\n fieldName: getDataTenantSpecialAttributeFieldName(fieldNameForRequest, dataTenant.id),\n fieldNameForRequest,\n dataTenant: dataTenant.id,\n dataTenantFieldName,\n title: `${dataTenant.label} ${originalTitle}`\n});\n\nconst additionalAttributesRules = [\n {\n attribute: createFacetForSpecialAttrType(SpecialAttrTypes.matchRules, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n check: hasMatchRulesWithoutML\n },\n {\n attribute: createFacetForSpecialAttrType(SpecialAttrTypes.MLRecommendedMatch, {\n fieldNameForRequest: 'matchRules',\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount',\n LogoIcon: MLRecommendedIcon\n }),\n check: hasMlMatchRule\n }\n];\n\nexport const getAdditionalAttributes = curry((dataTenants, entityType) => {\n const additionalAttributes = additionalAttributesRules.reduce((attributes, {attribute, check}) => {\n check(entityType) && attributes.push({...attribute, entityTypeUri: entityType.uri});\n return attributes;\n }, []);\n const dataTenantAdditionalAttributes = (dataTenants || []).flatMap((dataTenant) =>\n additionalAttributes\n .filter(propEq('fieldName', SpecialAttrTypes.matchRules.name))\n .map((additionalAttribute) => ({\n ...additionalAttribute,\n ...createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matchRules',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant',\n originalTitle: additionalAttribute.title\n })\n }))\n );\n return additionalAttributes.concat(dataTenantAdditionalAttributes);\n});\n\nexport const getPageSizeByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return 1;\n default:\n return DEFAULT_FACET_PAGE_SIZE;\n }\n};\n\nexport const getOrderTypeByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return 'reversedTerm';\n default:\n return 'reversedCount';\n }\n};\n\nexport const getDisableIncludeFilterByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return true;\n default:\n return false;\n }\n};\n\nconst isFaceted = curry((metadata, attrType) => {\n if (isComplexAttribute(attrType)) {\n const attributes = getAttributeTypeSubAttributes(metadata, attrType);\n return attributes.some(isFaceted(metadata));\n } else {\n return !!attrType.faceted;\n }\n});\n\nexport const getChildrenAttributes = (entity = []) => {\n return (entity.children\n ? entity.children.concat(entity.children.map(getChildrenAttributes)).flat(Infinity)\n : []\n ).filter(complement(isEmpty));\n};\n\nexport const createComplexAttributesConfig = (\n metadata,\n attrNode,\n entityTypeUri,\n fieldName,\n createAttributeConfig,\n parents = []\n) => {\n const resConfig = {\n ...createAttributeConfig(metadata, attrNode, entityTypeUri, fieldName, parents),\n uri: attrNode.uri\n };\n const children = attrNode.children\n ? attrNode.children.map((childNode) =>\n createComplexAttributesConfig(\n metadata,\n childNode,\n entityTypeUri,\n '',\n createAttributeConfig,\n parents.concat({name: attrNode.name, label: attrNode.label})\n )\n )\n : [];\n\n if (children.length) resConfig.children = children;\n\n return resConfig;\n};\n\nexport const createAttributeItem = (metadata, attrType, entityTypeUri, fieldName, parents) => {\n const entityTypeLabel = getEntityTypeLabel(metadata, {type: entityTypeUri});\n const title = attrType.label || attrType.name;\n return {\n title: title,\n pathToTitle: Array.isArray(parents)\n ? [entityTypeLabel, ...chain(prop('label'), parents), title]\n : [entityTypeLabel, title],\n fieldName: fieldName || prepareAttrUriForSearch(attrType.uri, parents),\n entityTypeUri: entityTypeUri,\n attrType: attrType,\n pageSize: getPageSizeByAttrType(attrType),\n orderType: getOrderTypeByAttrType(attrType),\n isComplex: isComplexAttribute(attrType),\n disableIncludeFilter: getDisableIncludeFilterByAttrType(attrType)\n };\n};\n\nexport const getAttributesTree = (metadata, entityOrAttrType, filterFaceted = true) => {\n return getAllAttributeTypesTree(metadata, entityOrAttrType, either(always(!filterFaceted), isFaceted(metadata)));\n};\n\nexport const collectAttributeGroups = memoizeOne(\n (\n metadata,\n selectedEntityTypes = [],\n createGroup,\n createAttributeConfig,\n filterFaceted = true,\n onlyOneSelectedEntityType = true,\n dataTenants\n ) => {\n const inSelectedTypes = (value) => selectedEntityTypes.includes(value);\n const isOnlyOneSelected = () => onlyOneSelectedEntityType;\n const isOnlyOneSelectedReceived = () => propEq('length', 1, selectedEntityTypes);\n const {entityTypes} = metadata;\n\n return entityTypes\n .filter(isAvailableEntityType)\n .filter(\n anyPass([\n always(!selectedEntityTypes.length),\n allPass([isOnlyOneSelected, isOnlyOneSelectedReceived, propEq('uri', selectedEntityTypes[0])]),\n allPass([complement(isOnlyOneSelected), pipe(prop('uri'), inSelectedTypes)])\n ])\n )\n .map((entityType) => {\n const title = getEntityTypeLabel(metadata, {type: entityType.uri});\n\n const complexAttributes = getAdditionalAttributes(dataTenants, entityType).concat(\n getAttributesTree(metadata, entityType, filterFaceted).map((attrNode) =>\n createComplexAttributesConfig(metadata, attrNode, entityType.uri, '', createAttributeConfig)\n )\n );\n\n return complexAttributes.length ? createGroup(entityType.uri, title, complexAttributes) : null;\n })\n .filter(identity);\n }\n);\n\nexport const collectAdvancedAttributeGroups = memoizeOne(\n (metadata, selectedEntityTypes = [], attributesFilter = T, dataTenants) => {\n if (selectedEntityTypes.length === 0) {\n return collectAttributeGroups(\n metadata,\n undefined,\n createAttributesGroup,\n createAttributeItem,\n false,\n true,\n dataTenants\n );\n }\n\n const groups = [];\n const entityTypeUri =\n selectedEntityTypes.length > 1\n ? findClosestCommonAncestor(metadata, selectedEntityTypes)\n : selectedEntityTypes[0];\n\n if (entityTypeUri) {\n const entityType = getEntityType(metadata, entityTypeUri);\n const title =\n selectedEntityTypes.length > 1\n ? i18n.text('Attributes')\n : getEntityTypeLabel(metadata, {type: entityType.uri});\n\n const additionalAttributes = getAdditionalAttributes(dataTenants, entityType).filter(attributesFilter);\n const complexAttributes = additionalAttributes.concat(\n getAttributesTree(metadata, entityType, false).map((attrNode) =>\n createComplexAttributesConfig(metadata, attrNode, entityType.uri, '', createAttributeItem)\n )\n );\n if (complexAttributes.length) {\n groups.push(createAttributesGroup(entityType.uri, title, complexAttributes));\n }\n }\n\n return groups;\n }\n);\n\n//TODO: move to uisdk? Duplicates packages/components/src/components/VirtualGroupedList/helpers.js\nexport const flattenGroupedItemsData = (groupedItems) => {\n const getFlattenedItems = (items) =>\n flatten(items.map((item) => [item].concat(item.items ? getFlattenedItems(item.items) : [])));\n\n let titleItemIndex = null;\n const items = getFlattenedItems(groupedItems).map((item, index) => {\n if (item && item.items) {\n titleItemIndex = index;\n }\n return {item, index, titleItemIndex};\n });\n return items;\n};\n","import {\n chain,\n curry,\n identity,\n intersection,\n is,\n isNil,\n map,\n memoizeWith,\n pipe,\n prop,\n propEq,\n propOr,\n reject,\n toString,\n when\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {DEFAULT_FACET_PAGE_SIZE} from '../../constants/constants';\nimport {\n FACET_TYPES,\n getDataTenantSpecialAttributeFieldName,\n getFacetTypeForAttrType,\n isLookupAttrType,\n SpecialAttrTypes\n} from '@reltio/mdm-sdk';\nimport {\n collectAttributeGroups,\n createAttributeItem,\n createDataTenantConfigPart,\n createFacetForSpecialAttrType\n} from './collectAttributes.js';\nimport {getChildrenAttributes} from './collectAttributes';\nimport {envSpecificKey} from '../../utils/general';\n\nexport const getEntityTypeFacetConfig = (_metadata) =>\n createFacetForSpecialAttrType(SpecialAttrTypes.type, {\n hiddenTitle: i18n.text('Entity types'),\n disableIncludeFilter: true,\n pageSize: 101,\n showIcon: true,\n barColor: '#61D55D',\n transparentBackground: true,\n showDeleteButton: false\n });\n\nconst potentialMatchesFacetConfig = createFacetForSpecialAttrType(SpecialAttrTypes.matches, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n});\n\nexport const specialFacets = [\n createFacetForSpecialAttrType(SpecialAttrTypes.createdBy, {\n pageSize: DEFAULT_FACET_PAGE_SIZE\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.updatedBy, {\n pageSize: DEFAULT_FACET_PAGE_SIZE\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.createdTime, {\n disableIncludeFilter: true,\n pageSize: 1,\n orderType: 'reversedTerm'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.updatedTime, {\n disableIncludeFilter: true,\n pageSize: 1,\n orderType: 'reversedTerm'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.sourceSystems, {\n title: i18n.text('Sources'),\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.tags, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.roles, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n potentialMatchesFacetConfig,\n createFacetForSpecialAttrType(SpecialAttrTypes.matchScore, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.startDate, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.endDate, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n })\n];\n\nexport const getSpecialFacets = (dataTenants) => {\n const dataTenantFacets = (dataTenants || []).map((dataTenant) => ({\n ...potentialMatchesFacetConfig,\n ...createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matches',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant',\n originalTitle: potentialMatchesFacetConfig.title\n })\n }));\n return specialFacets.concat(dataTenantFacets);\n};\n\nexport const createAttributeFacetConfig = (metadata, attrType, entityTypeUri, fieldName, parents) => {\n return {\n ...createAttributeItem(metadata, attrType, entityTypeUri, fieldName, parents),\n uri: attrType.uri,\n type: getFacetTypeForAttrType(attrType)\n };\n};\n\nconst collectAttributeFacetsGroups = (metadata, selectedEntityTypes = [], dataTenants) => {\n return collectAttributeGroups(\n metadata,\n selectedEntityTypes,\n createFacetsGroup,\n createAttributeFacetConfig,\n true,\n true,\n dataTenants\n );\n};\n\nconst memoizedCollectAttributeFacetsGroups = memoizeWith(\n (metadata, selectedEntityTypes = [], dataTenants) =>\n envSpecificKey(selectedEntityTypes.toString() + (dataTenants || []).map(prop('id')).toString()),\n collectAttributeFacetsGroups\n);\n\nconst createFacetsGroup = (id, title, facets, needGroupIcon = true) => {\n return facets && facets.length\n ? {\n id,\n title,\n needGroupIcon,\n facets\n }\n : null;\n};\n\nexport const collectFacetsList = (metadata, selectedEntityTypes, recommendedFacets = [], dataTenants) => {\n const onlyOneEntityTypeSelected = selectedEntityTypes.length === 1;\n const specialFacets = getSpecialFacets(dataTenants);\n const specialGroup = createFacetsGroup('special', i18n.text('Basic'), specialFacets, false);\n const entityTypesGroup = memoizedCollectAttributeFacetsGroups(metadata, selectedEntityTypes, dataTenants);\n const entityTypesFacets = chain(prop('facets'), entityTypesGroup);\n const recommendedFacetsConfigs = pipe(\n map(findFacetConfigByFieldName([...specialFacets, ...entityTypesFacets])),\n reject(isNil)\n )(recommendedFacets);\n\n return [createFacetsGroup('recommended', i18n.text('Recommended'), recommendedFacetsConfigs, false)]\n .concat(onlyOneEntityTypeSelected ? entityTypesGroup : specialGroup)\n .concat(onlyOneEntityTypeSelected ? specialGroup : entityTypesGroup)\n .filter(identity);\n};\n\nexport const findFacetConfigByFieldName = curry((facetConfigs, fieldName) => {\n const facetConfig = facetConfigs.find(propEq('fieldName', fieldName));\n if (!facetConfig) {\n const children = chain(propOr([], 'children'), facetConfigs);\n return children.length ? findFacetConfigByFieldName(children, fieldName) : undefined;\n } else {\n return facetConfig;\n }\n});\n\nconst flattenChildrenForEntityTypeConfigs = (entityTypeConfig) => ({\n ...entityTypeConfig,\n facets: entityTypeConfig.facets.reduce((facetConfigs, facetConfig) => {\n facetConfigs.push(facetConfig);\n facetConfig.children && facetConfigs.push(...getChildrenAttributes(facetConfig));\n return facetConfigs;\n }, [])\n});\n\nexport const getAvailableFacetsGroupsList = (metadata, selectedEntityTypes, dataTenants) =>\n collectFacetsList(metadata, selectedEntityTypes, [], dataTenants).map(flattenChildrenForEntityTypeConfigs);\n\nconst getFlatFacets = (facet) => (facet.children ? [facet].concat(facet.children.flatMap(getFlatFacets)) : [facet]);\n\nexport const collectFacetsFlatList = (metadata, selectedEntityTypes, recommendedFacets, dataTenants) => {\n return collectFacetsList(metadata, selectedEntityTypes, recommendedFacets, dataTenants)\n .flatMap((facetGroup) => facetGroup.facets)\n .flatMap(getFlatFacets);\n};\n\nexport const prepareFacetDataForStore = (fieldName, {values = [], showAllItems} = {}) =>\n reject(isNil, {\n fieldName: fieldName,\n data: [],\n values: values && values.map(when(is(Boolean), toString)),\n showAllItems\n });\n\nexport const isComplexFacet = (config) => config.type === FACET_TYPES.COMPLEX_FACET;\n\nexport const isLookupFacet = (facet) => facet.attrType && isLookupAttrType(facet.attrType);\n\nexport const isPotentialMatchesFacet = (facet) =>\n facet.fieldName === 'matches' ||\n facet.fieldName === 'potentialMatches.matchScore' ||\n facet.fieldName.startsWith(getDataTenantSpecialAttributeFieldName('dtPotentialMatches.matches', ''));\n\nexport const isMatchRuleFacet = (facet) =>\n intersection(['matchRules', 'dtPotentialMatches.matchRules'], [facet.fieldNameForRequest, facet.fieldName]).length >\n 0;\n\nexport const isMLMatchRuleFacet = (facet) => facet.fieldName === 'MLRecommendedMatch';\n\nexport const isDataTenantFacet = (facet) => !!facet.dataTenant;\n","import {filter, isEmpty, not, partition, path, pick, pipe, prop} from 'ramda';\nimport nanoid from 'nanoid';\nimport memoizeOne from 'memoize-one';\nimport {collectSpecialAttributesGroups} from '../advancedSearch/collectSpecialAttributes';\nimport {\n getEntityTypeLabel,\n getFilterOptionForFacet,\n getFilterValueForFacet,\n isTypeFacet,\n getFilterOptionsForQueryBuilder\n} from '@reltio/mdm-sdk';\nimport {defaultGroupOperator} from '../../../constants/constants';\n\nconst getValuableFacets = filter(pipe(prop('values'), isEmpty, not));\n\nconst memoizedCollectSpecialAttributesGroups = memoizeOne((dataTenants) =>\n collectSpecialAttributesGroups({dataTenants})\n);\n\nexport const getGroupTitle = (metadata, dataTenants, data) => {\n return (\n getEntityTypeLabel(metadata, {type: data.entityTypeUri}) ||\n (\n memoizedCollectSpecialAttributesGroups(dataTenants).find((group) =>\n group.attributes.find((attr) => attr.fieldName === data.fieldName)\n ) || {}\n ).title\n );\n};\n\nexport const createAdvancedSearchGroupFromFacets = (metadata, dataTenants, facetsWithConfigs) => {\n const facetsToConvert = getValuableFacets(facetsWithConfigs);\n\n const [[typeFacet = {}], restFacets] = partition(isTypeFacet, facetsToConvert);\n\n const attributes = restFacets.reduce(\n (attributesList, facet) => {\n const filterOptions = getFilterOptionsForQueryBuilder(facet.attrType, facet.fieldName);\n const filter = getFilterOptionForFacet(facet);\n const dataFromFacet = pick([\n 'title',\n 'pathToTitle',\n 'fieldName',\n 'fieldNameForRequest',\n 'dataTenant',\n 'dataTenantFieldName',\n 'attrType',\n 'groupName',\n 'entityTypeUri',\n 'pageSize',\n 'orderType',\n 'isComplex',\n 'disableIncludeFilter',\n 'uri'\n ])(facet);\n\n const data = {\n ...dataFromFacet,\n groupName: getGroupTitle(metadata, dataTenants, dataFromFacet),\n filterOptions\n };\n\n const values = getFilterValueForFacet(facet);\n\n attributesList[0].push({\n data,\n operator: 'and',\n filter,\n id: nanoid(),\n values\n });\n\n return attributesList;\n },\n [[]]\n );\n\n return attributes\n .filter((attributeList) => attributeList.length || path(['values', 'length'], typeFacet))\n .map((attributeList) => ({\n attributes: attributeList,\n operator: defaultGroupOperator.value,\n id: nanoid(),\n entityTypes: typeFacet.values || []\n }));\n};\n","import {any, complement, filter, map, pipe, prop, propOr} from 'ramda';\n\nimport {isAvailableEntityType} from '@reltio/mdm-sdk';\n\nexport const hasNotAvailableEntityTypes = pipe(propOr([], 'entityTypes'), any(complement(isAvailableEntityType)));\n\nexport const getAvailableEntityTypesUris = pipe(\n propOr([], 'entityTypes'),\n filter(isAvailableEntityType),\n map(prop('uri'))\n);\n\nexport const addAvailableEntityTypesIfNeeded = (metadata, entityTypes = []) =>\n entityTypes.length === 0 && hasNotAvailableEntityTypes(metadata)\n ? getAvailableEntityTypesUris(metadata)\n : entityTypes;\n\nexport const removeNumberForDtssUnavailableEntityTypeItems = (items, tenantObject) => {\n if (tenantObject && Array.isArray(tenantObject.availableEntityTypes)) {\n return items.map((item) => {\n if (!tenantObject.availableEntityTypes.includes(item.value)) {\n return {...item, number: undefined};\n }\n return item;\n });\n }\n return items;\n};\n","import {\n __,\n curry,\n either,\n filter,\n find,\n flatten,\n gt,\n identity,\n ifElse,\n length,\n map,\n path,\n pipe,\n prop,\n propEq,\n propOr,\n uniqBy,\n when\n} from 'ramda';\nimport {Decimal} from 'decimal.js';\nimport {\n getAttrTypeLookupCode,\n getEntityType,\n getEntityTypeLabel,\n getLastUriPart,\n getLookupLabel,\n getUnresolvedLookupsList,\n isAvailableEntityType,\n isEnumAttrType,\n Maybe,\n mergeLookupsLists,\n orderByArrayComparator,\n isTypeFacet,\n FACET_TYPES,\n formatDataTypeValue,\n getAttrDataTypeDefinition,\n isBooleanType\n} from '@reltio/mdm-sdk';\n\nimport {getTypeGraphIcon} from '../entity/image';\nimport {formatMomentDate, formatNumberAsMetric} from '../../utils/general';\nimport {isLookupFacet, isMatchRuleFacet} from './collectFacets';\nimport moment from 'moment';\nimport {\n DATE_RANGE_MAX_VALUE,\n DATE_RANGE_MIN_VALUE,\n ENTITY_TYPE_FACET_ROW_COUNT,\n NUMERIC_RANGE_MAX_VALUE,\n NUMERIC_RANGE_MIN_VALUE\n} from '../../constants/constants';\nimport {createRangeServiceFor} from './rangeFacet';\nimport {addAvailableEntityTypesIfNeeded} from './entityTypes';\nimport {Facets, Search} from '../../constants/actionTypes';\n\nexport const findConfigByFieldName = (fieldName, configs) => {\n const config = configs.find((config) => [config.fieldName, `${config.fieldName}.ov`].includes(fieldName));\n if (config) {\n return config;\n } else {\n console.warn(`Can't find facet config for ${fieldName} fieldName`);\n return null;\n }\n};\n\nexport const prepareFacets = (metadata, facets, attributes, lookupsCodes, viewConfig) => {\n return Object.keys(facets).reduce((result, fieldName) => {\n const attribute = findConfigByFieldName(fieldName, attributes);\n if (attribute) {\n const realFieldName = attribute.fieldName;\n result[realFieldName] = prepareFacet(\n metadata,\n realFieldName,\n facets[fieldName],\n attribute,\n lookupsCodes,\n viewConfig\n );\n }\n return result;\n }, {});\n};\n\nexport const prepareStatsFacet = (facets, attributes) => {\n return Object.keys(facets).reduce((result, fieldName) => {\n const attribute = findConfigByFieldName(fieldName, attributes);\n if (attribute) {\n result[attribute.fieldName] = statsProcessing(\n facets[fieldName],\n attribute.attrType && attribute.attrType.type\n );\n }\n return result;\n }, {});\n};\n\nconst sortByNumber = (a, b) => b.number - a.number;\nconst numberMoreThanZero = ({number}) => number > 0;\nconst configHasValue = ({values = []}) => ({value}) => values.includes(value);\nconst specialFacetsFilter = (config) => either(numberMoreThanZero, configHasValue(config));\n\nconst defaultProcessing = (rawData) =>\n Object.keys(rawData)\n .map((key) => ({\n value: key,\n number: rawData[key],\n label: key\n }))\n .sort(sortByNumber);\n\nconst numericRangeTypeProcessing = (rawData, type) =>\n Object.keys(rawData).map((key) => ({\n value: type === 'Long' ? new Decimal(key) : +key,\n number: rawData[key],\n label: key\n }));\n\nconst lookupProcessing = (rawData, lookupCode) => {\n return defaultProcessing(rawData).map((data) => ({\n ...data,\n label: getLookupLabel(data.value, path([data.value, 'displayName'], lookupCode))\n }));\n};\n\nconst enumProcessing = (rawData, enumerationList) => {\n return enumerationList\n .map((value) => ({\n value,\n label: value,\n number: rawData[value] || 0\n }))\n .sort(sortByNumber);\n};\n\nconst booleanProcessing = (rawData, dataTypeDefinition) => {\n return Object.keys(rawData)\n .map((key) => ({\n value: key,\n number: rawData[key],\n label: formatDataTypeValue({dataTypeDefinition}, key)\n }))\n .sort(sortByNumber);\n};\n\nexport const entityTypeProcessing = (metadata, rawData, allowedEntityTypes) => {\n const {entityTypes} = metadata;\n return entityTypes\n .filter(allowedEntityTypes ? ({uri}) => allowedEntityTypes.includes(uri) : identity)\n .sort(allowedEntityTypes ? orderByArrayComparator(allowedEntityTypes, 'uri') : (_) => 0)\n .map((entityType) => {\n const lastUriPart = getLastUriPart(entityType.uri);\n return isAvailableEntityType(entityType)\n ? {\n value: entityType.uri,\n number: rawData[lastUriPart] || 0,\n label: getEntityTypeLabel(metadata, {type: entityType.uri}) || lastUriPart,\n icon: getTypeGraphIcon(metadata, entityType.uri)\n }\n : null;\n })\n .filter(identity);\n};\n\nconst roleProcessing = (metadata, rawData, attribute) => {\n const {roles} = metadata;\n return roles\n .map((role) => {\n const lastUriPart = getLastUriPart(role.uri);\n return {\n value: role.uri,\n label: role.label,\n number: rawData[lastUriPart] || 0\n };\n })\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nconst sourceSystemsProcessing = (metadata, rawData, attribute) => {\n const {sources} = metadata;\n\n return sources\n .map((source) => {\n const lastUriPart = getLastUriPart(source.uri);\n return {\n value: lastUriPart,\n number: rawData[lastUriPart] || 0,\n label: source.label || lastUriPart\n };\n })\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nconst matchRulesProcessing = (metadata, rawData, attribute) => {\n const entityType = getEntityType(metadata, attribute.entityTypeUri);\n const matchGroups = (entityType && entityType.matchGroups) || [];\n\n return uniqBy(prop('value'), [\n ...matchGroups.map(({uri, label}) => ({\n isRaw: false,\n value: uri,\n number: rawData[uri] || 0,\n label: label || uri\n })),\n ...Object.entries(rawData).map(([uriOrLabel, count]) => {\n const matchGroup = find(propEq('uri', uriOrLabel))(matchGroups);\n const isRaw = !matchGroup;\n\n return {\n value: uriOrLabel,\n number: count,\n label: isRaw ? uriOrLabel : matchGroup.label,\n isRaw\n };\n })\n ])\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nexport const statsProcessing = (rawData, type) => {\n const {min, max, count} = rawData;\n return {\n min: type === 'Long' ? new Decimal(min) : +min,\n max: type === 'Long' ? new Decimal(max) : +max,\n count\n };\n};\n\nconst prepareFacet = (metadata, fieldName, rawData, attribute, lookupsCodes = {}, viewConfig = {}) => {\n switch (fieldName) {\n case 'type': {\n const {allowedEntityTypes} = viewConfig;\n return entityTypeProcessing(metadata, rawData, allowedEntityTypes);\n }\n case 'roles':\n return roleProcessing(metadata, rawData, attribute);\n case 'sourceSystems':\n return sourceSystemsProcessing(metadata, rawData, attribute);\n }\n if (isMatchRuleFacet(attribute)) {\n return matchRulesProcessing(metadata, rawData, attribute);\n }\n if (isLookupFacet(attribute)) {\n return lookupProcessing(rawData, lookupsCodes[getAttrTypeLookupCode(attribute.attrType)]);\n }\n if (isEnumAttrType(attribute.attrType)) {\n return enumProcessing(rawData, path(['attrType', 'values'], attribute));\n }\n if (isBooleanType(attribute.attrType?.type)) {\n return booleanProcessing(rawData, getAttrDataTypeDefinition(attribute.attrType));\n }\n switch (attribute.type) {\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n case FACET_TYPES.DATE_RANGE_FACET:\n return numericRangeTypeProcessing(rawData, attribute.attrType && attribute.attrType.type);\n default:\n return defaultProcessing(rawData);\n }\n};\n\nexport const getDefaultRangeByType = (facetType) => {\n switch (facetType) {\n case FACET_TYPES.DATE_RANGE_FACET:\n return [DATE_RANGE_MIN_VALUE, DATE_RANGE_MAX_VALUE];\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n default:\n return [NUMERIC_RANGE_MIN_VALUE, NUMERIC_RANGE_MAX_VALUE];\n }\n};\n\nexport const fixNaNValues = curry((defaultValue, facets) => {\n Object.values(facets).map((facet) =>\n facet.filter((item) => isNaN(item.value)).forEach((item) => (item.value = defaultValue))\n );\n return facets;\n});\n\nexport const fixNaNValue = (defaultValue, facetValue) => {\n return isNaN(facetValue) ? defaultValue : facetValue;\n};\n\nexport const getFacetByFieldName = (fieldName, facets) =>\n facets.find((facet) => facet.fieldName === fieldName || facet.fieldNameForRequest === fieldName);\n\nexport const getAcceptedFacetValues = (facetData, acceptedValues) =>\n Object.keys(facetData)\n .filter((value) => acceptedValues.includes(value))\n .reduce((acc, value) => {\n acc[value] = facetData[value];\n return acc;\n }, {});\n\nexport const mergeConfigs = (facets, configsArray) => {\n const configs = configsArray.reduce((result, config) => {\n result[config.fieldName] = config;\n return result;\n }, {});\n return Object.keys(facets).reduce((result, fieldName) => {\n const config = configs[fieldName];\n result[fieldName] = {...facets[fieldName], ...config};\n return result;\n }, {});\n};\n\nexport const setFiltersToFacets = (facets) =>\n Object.keys(facets).reduce((result, fieldName) => {\n result[fieldName] = {...facets[fieldName], filter: facetTypeToFilter(facets[fieldName].type)};\n return result;\n }, {});\n\nexport const addAvailableEntityTypeValues = (metadata) =>\n map(\n ifElse(\n isTypeFacet,\n (facet) => ({\n ...facet,\n values: addAvailableEntityTypesIfNeeded(metadata, facet.values)\n }),\n identity\n )\n );\n\nexport const filterAllowedEntityTypes = (allowedEntityTypes) =>\n map(\n when(isTypeFacet, (facet) => ({\n ...facet,\n values:\n allowedEntityTypes && allowedEntityTypes.length > 0\n ? facet.values\n .filter((value) => allowedEntityTypes.includes(value))\n .sort(orderByArrayComparator(allowedEntityTypes))\n : facet.values\n }))\n );\n\nexport const getEntityTypeFacetFromState = path(['facets', 'facetsData', 'type']);\n\nconst facetTypeToFilter = (type) =>\n ({\n entityTypeFacet: 'equals',\n facetWithDropdownCheckboxes: 'equals',\n numericRangeFacet: 'range',\n dateRangeFacet: 'range'\n }[type]);\n\nexport const needFacetsCleanUp = (action = {}) => {\n const isTypeFacetAction = path(['payload', 'facetFieldName'], action) === 'type';\n return (\n (action.type === Facets.CHANGE_VALUES && isTypeFacetAction) ||\n action.type === Facets.CLEAR_ALL_VALUES ||\n action.type === Search.CLEAR_ALL\n );\n};\n\nexport const buildValuesLabels = (data = [], values = [], type = '') => {\n return values.map((value) => {\n let range;\n switch (type) {\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n return `${formatNumberAsMetric(+value[0], 10000)} — ${formatNumberAsMetric(+value[1], 10000)}`;\n case FACET_TYPES.DATE_RANGE_FACET:\n range = createRangeServiceFor().getRange(values, data);\n return `${formatMomentDate(moment(range[0]))} \\u2014 ${formatMomentDate(moment(range[1]))}`;\n case FACET_TYPES.ENTITY_TYPE_FACET:\n case FACET_TYPES.WITH_DROPDOWN_CHECKBOXES_FACET:\n default:\n return Maybe.fromNull(data.find((item) => item.value === value)).orSome({label: value || ''}).label;\n }\n });\n};\n\nexport const needShowAllEntityTypeFacetItems = pipe(propOr([], 'values'), length, gt(__, ENTITY_TYPE_FACET_ROW_COUNT));\nexport const getLookupsListFromFacets = pipe(\n pipe(\n filter(isLookupFacet),\n map((facet) => ({\n type: getAttrTypeLookupCode(path(['attrType'], facet)),\n codeValues: flatten(propOr([], 'values', facet))\n })),\n filter(({codeValues}) => codeValues.length > 0)\n ),\n mergeLookupsLists\n);\n\nexport const getUnresolvedLookupsListFromFacet = (facets, resolvedLookups) =>\n pipe(getLookupsListFromFacets, getUnresolvedLookupsList(resolvedLookups))(facets);\n","import {propEq, propOr} from 'ramda';\n\nexport const getConfigForFacet = (facetsGroups) => (facet) => {\n const entityType = facet.entityType || facet.entityTypeUri || 'special';\n const group = facetsGroups.find(propEq('id', entityType));\n const facets = propOr([], 'facets', group);\n return facets.find(propEq('fieldName', facet.fieldName));\n};\n\nexport const reduceFacetsConfig = (facetsGroups) => {\n const getFacetConfig = getConfigForFacet(facetsGroups);\n return (acc, facet) => {\n const config = getFacetConfig(facet);\n return config && !acc.find(propEq('fieldName', facet.fieldName)) ? [...acc, config] : acc;\n };\n};\n","import {getAvailableFacetsGroupsList, getEntityTypeFacetConfig} from '../collectFacets';\nimport {assoc, dissoc, evolve, filter, map, omit, pipe, reduce, values} from 'ramda';\nimport {reduceFacetsConfig} from './parsingUtils';\nimport {isAvailableEntityTypeUri} from '@reltio/mdm-sdk';\n\nexport const parseFacets = (metadata, facets, dataTenants) => {\n const entityTypeFacet = getEntityTypeFacetConfig(metadata);\n if (!facets || facets.length === 0) {\n return {facetsData: {}, facetsConfigs: [entityTypeFacet]};\n }\n\n const selectedEntityTypes = facets.type ? facets.type.values.filter(isAvailableEntityTypeUri(metadata)) : [];\n const availableFacetsGroupsList = getAvailableFacetsGroupsList(metadata, selectedEntityTypes, dataTenants);\n\n const facetsConfigs = pipe(\n dissoc('type'),\n values,\n reduce(reduceFacetsConfig(availableFacetsGroupsList), [entityTypeFacet])\n )(facets);\n\n const facetsData = pipe(\n evolve({\n type: assoc('values', selectedEntityTypes)\n }),\n filter(isInFacetsConfigs(facetsConfigs)),\n map(omit(['entityTypeUri']))\n )(facets);\n\n return {facetsConfigs, facetsData};\n};\n\nconst isInFacetsConfigs = (configs) => (facet) => configs.find((config) => config.fieldName === facet.fieldName);\n","import {\n chain,\n compose,\n either,\n isEmpty,\n isNil,\n partition,\n path,\n pathOr,\n pipe,\n prop,\n propEq,\n propOr,\n reject,\n values\n} from 'ramda';\nimport {getAvailableFacetsGroupsList, getEntityTypeFacetConfig} from '../collectFacets';\nimport {getConfigForFacet} from './parsingUtils';\nimport {\n convertOldFacets,\n findAttributeTypeByUri,\n getOldRangeFacetValues,\n isRangeFacet,\n isTypeFacet,\n searchUriToAttrUri\n} from '@reltio/mdm-sdk';\n\nexport const mergeFacetValuesByFieldName = pipe(\n (facets) =>\n facets.reduce((acc, facet) => {\n acc[facet.fieldName] = {\n ...facet,\n values: [...propOr([], 'values', facet), ...pathOr([], [facet.fieldName, 'values'], acc)]\n };\n return acc;\n }, {}),\n values\n);\n\nexport const parseOldFacets = (metadata, dataTenants, facets) => {\n const entityTypeFacet = getEntityTypeFacetConfig(metadata);\n if (!facets || isEmpty(facets)) {\n return {facetsData: {}, facetsConfigs: [entityTypeFacet]};\n }\n\n const [tenantFacets, nonTenantFacets] = partition((facet) => facet.fieldName === 'tenants', facets);\n const currentTenant = path([0, 'currentTenant'], tenantFacets);\n\n const [typeFacets, nonTypeFacets] = partition((facet) => facet.fieldName === 'type', nonTenantFacets);\n\n const selectedEntityTypes = chain(propOr([], 'values'), typeFacets);\n const getFacetConfig = compose(getConfigForFacet, getAvailableFacetsGroupsList)(\n metadata,\n selectedEntityTypes,\n dataTenants\n );\n\n const convertedFacets = convertOldFacets(nonTypeFacets);\n\n const isBasicFacetFilter = either(pipe(prop('filter'), isNil), propEq('filter', 'equals'));\n const isAdvancedFacet = (facet) => !getFacetConfig(facet) || !isBasicFacetFilter(facet);\n const hasAdvancedFacets = convertedFacets.some(isAdvancedFacet);\n\n if (hasAdvancedFacets) {\n const advanced = convertedFacets.reduce(reduceAdvancedFromFacets(metadata), {\n entityTypes: selectedEntityTypes,\n searchParams: []\n });\n return {currentTenant, advanced, facetsConfigs: [], facetsData: {}};\n } else {\n const basicFacets = mergeFacetValuesByFieldName(convertedFacets);\n const facetsConfigs = [entityTypeFacet, ...basicFacets.map(getFacetConfig)];\n const facetsData = [...typeFacets, ...basicFacets].reduce(reduceNewFacetsData(facetsConfigs), {});\n return {currentTenant, facetsConfigs, facetsData};\n }\n};\n\nexport const reduceAdvancedFromFacets = (metadata) => (advanced, facet) => {\n if (facet.entityType) {\n const attrUri = searchUriToAttrUri(facet.fieldName, facet.entityType);\n const attrType = findAttributeTypeByUri(metadata, attrUri);\n if (attrType) {\n if (advanced.entityTypes.length === 0) {\n advanced.entityTypes.push(facet.entityType);\n }\n if (advanced.entityTypes.includes(facet.entityType)) {\n advanced.searchParams.push({\n fieldName: facet.fieldName,\n filter: facet.filter || 'equals',\n uri: attrType.uri,\n values: facet.values || []\n });\n }\n }\n }\n return advanced;\n};\n\nexport const reduceNewFacetsData = (facetsConfigs) => (data, facet) => {\n const config = facetsConfigs.find((config) => config.fieldName === facet.fieldName);\n if (config) {\n const values = isRangeFacet(config) ? getOldRangeFacetValues(facet.values) : facet.values;\n const showAllItems = isTypeFacet(config) && facet.showAllEntityTypes ? facet.showAllEntityTypes : null;\n return {\n ...data,\n [facet.fieldName]: reject(isNil, {\n fieldName: facet.fieldName,\n values,\n showAllItems\n })\n };\n } else {\n return data;\n }\n};\n","import {curry, find, pick, pipe, propEq} from 'ramda';\nimport {\n findAttributeTypeByUri,\n getAttributeTypesHierarchyByUri,\n getEntityType,\n getEntityTypeLabel,\n searchUriToAttrUri,\n getFilterOptionsForQueryBuilder\n} from '@reltio/mdm-sdk';\nimport {createAttributeItem, getAdditionalAttributes} from '../collectAttributes';\nimport {collectSpecialAttributesGroups} from '../advancedSearch/collectSpecialAttributes';\n\nconst parseSpecialAttributeData = (metadata, dataTenants, canUserReadWorkflowDataTask, {fieldName}) => {\n const specialAttributeGroup = collectSpecialAttributesGroups({\n dataTenants,\n canUserReadWorkflowDataTask\n }).find((group) => group.attributes.find((attr) => attr.fieldName === fieldName));\n const specialAttr =\n specialAttributeGroup && specialAttributeGroup.attributes.find((attr) => attr.fieldName === fieldName);\n\n return specialAttr\n ? {\n groupName: specialAttributeGroup.title,\n filterOptions: getFilterOptionsForQueryBuilder(specialAttr.attrType, fieldName),\n ...pick(\n [\n 'title',\n 'fieldName',\n 'attrType',\n 'pageSize',\n 'orderType',\n 'dataTenant',\n 'fieldNameForRequest',\n 'dataTenantFieldName'\n ],\n specialAttr\n )\n }\n : null;\n};\n\nconst parseRegularAttributeData = (metadata, {uri, entityTypeUri, fieldName}) => {\n const attrType = findAttributeTypeByUri(metadata, uri);\n if (attrType) {\n const parents = (\n getAttributeTypesHierarchyByUri(metadata, searchUriToAttrUri(fieldName, entityTypeUri), entityTypeUri) || []\n )\n .map(pick(['label', 'name']))\n .slice(0, -1);\n\n return {\n uri,\n groupName: getEntityTypeLabel(metadata, {type: entityTypeUri}),\n filterOptions: getFilterOptionsForQueryBuilder(attrType, fieldName),\n ...createAttributeItem(metadata, attrType, entityTypeUri, fieldName, parents)\n };\n } else {\n return null;\n }\n};\n\nconst parseAdditionalAttributeData = (metadata, dataTenants, {fieldName, entityTypeUri}) => {\n const additionalAttribute = pipe(\n getEntityType(metadata),\n getAdditionalAttributes(dataTenants),\n find(propEq('fieldName', fieldName))\n )(entityTypeUri);\n\n return additionalAttribute\n ? {\n groupName: getEntityTypeLabel(metadata, {type: entityTypeUri}),\n filterOptions: getFilterOptionsForQueryBuilder(additionalAttribute.attrType, fieldName),\n ...additionalAttribute\n }\n : null;\n};\n\nconst parseAttributeData = curry((metadata, dataTenants, canUserReadWorkflowDataTask, attrData) => {\n const {uri} = attrData;\n if (uri && !uri.startsWith('special/')) {\n return parseRegularAttributeData(metadata, attrData);\n } else {\n return (\n parseSpecialAttributeData(metadata, dataTenants, canUserReadWorkflowDataTask, attrData) ||\n parseAdditionalAttributeData(metadata, dataTenants, attrData)\n );\n }\n});\n\nexport {parseAttributeData};\n","import {curry, evolve, pipe, prop, reject} from 'ramda';\nimport nanoid from 'nanoid';\nimport {parseAttributeData} from './parseAttributeData';\nimport {\n convertOldAdvancedAttribute,\n convertTransitionAttributes,\n findClosestCommonAncestor,\n isEmptySearchGroup,\n sanitizeTypesInSearchGroups,\n wrapInArray\n} from '@reltio/mdm-sdk';\nimport {defaultGroupOperator, defaultOperator} from '../../../constants/constants';\n\nexport const parseAttribute = curry((metadata, dataTenants, canUserReadWorkflowDataTask, entityTypeUri, attribute) => {\n return pipe(\n convertOldAdvancedAttribute(metadata, entityTypeUri),\n evolve({\n data: parseAttributeData(metadata, dataTenants, canUserReadWorkflowDataTask)\n })\n )(attribute);\n});\n\nconst parseOldAdvancedSearch = (\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n oldAdvancedSearch = {},\n useSeparateGroups = false\n) => {\n const {searchParams = [], fastSearchParams = [], entityTypes = []} = oldAdvancedSearch;\n const attributes = [...searchParams, ...fastSearchParams]\n .map(\n parseAttribute(\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n findClosestCommonAncestor(metadata, entityTypes)\n )\n )\n .filter((attribute) => attribute && attribute.data);\n\n const makeGroup = curry((operator, attributes) => ({\n id: nanoid(),\n operator,\n attributes,\n entityTypes\n }));\n const groups = useSeparateGroups\n ? attributes.map(pipe(wrapInArray, makeGroup(defaultOperator.value)))\n : wrapInArray(makeGroup(defaultGroupOperator.value, attributes));\n\n return pipe(sanitizeTypesInSearchGroups(metadata), convertTransitionAttributes, reject(isEmptySearchGroup))(groups);\n};\n\nexport const mergeAdvancedAndFacets = (advancedGroups, facetsGroups) => {\n const attributesFromFacets = prop(\n 'attributes',\n facetsGroups.find((group) => group.attributes)\n );\n attributesFromFacets.map((facetAttribute) => advancedGroups[0].attributes.push(facetAttribute));\n return advancedGroups;\n};\n\nexport {parseOldAdvancedSearch as default};\n","import {attributeUriToSearchUri, findAttributeTypeByUri, isComplexAttribute} from '@reltio/mdm-sdk';\nimport {DEFAULT_VIEW, PREVIEW_PANEL_MODES, SEARCH_RESULTS_MODES} from '../../../constants/constants';\nimport {concat, mergeDeepWith, propOr} from 'ramda';\nimport {getInitialColumnsByEntityTypes} from '../searchResults';\n\nexport const OLD_SEARCH_RESULTS_MODES = {\n NO_PREVIEW: 'NoPreview',\n PREVIEW: 'Preview',\n MAP_PREVIEW: 'MapPreview',\n TABLE_VIEW: 'TableView'\n};\n\nexport const NEW_SEARCH_RESULTS_MODES = {\n [OLD_SEARCH_RESULTS_MODES.NO_PREVIEW]: SEARCH_RESULTS_MODES.LIST,\n [OLD_SEARCH_RESULTS_MODES.PREVIEW]: DEFAULT_VIEW,\n [OLD_SEARCH_RESULTS_MODES.MAP_PREVIEW]: DEFAULT_VIEW,\n [OLD_SEARCH_RESULTS_MODES.TABLE_VIEW]: SEARCH_RESULTS_MODES.TABLE\n};\n\nexport const PREVIEW_PANEL_MODES_MAPPING = {\n [OLD_SEARCH_RESULTS_MODES.PREVIEW]: PREVIEW_PANEL_MODES.PROFILE\n};\n\nexport const parseOldView = (metadata, view = {}, viewConfig = {}) => {\n const {mode, tabs = []} = view;\n const {allowedEntityTypes} = viewConfig;\n return {\n searchResultsMode: NEW_SEARCH_RESULTS_MODES[mode] || DEFAULT_VIEW,\n previewPanelMode: PREVIEW_PANEL_MODES_MAPPING[mode] || null,\n entityTypeTab: propOr(null, 'entityTypeUri', findActiveTab(tabs)),\n sortField: 'label',\n sortOrder: 'asc',\n searchResultsColumns: processOldTabs(metadata, allowedEntityTypes, tabs)\n };\n};\n\nconst findActiveTab = (tabs) => tabs.find((tab) => tab.selected) || {};\n\nconst processOldTabs = (metadata, allowedEntityTypes, tabs) => {\n const columnsByEntityTypes = getInitialColumnsByEntityTypes(metadata, allowedEntityTypes);\n const columnsFromTabs = tabs.reduce((result, tab) => {\n result[tab.entityTypeUri] = tab.selectedAttributes\n .map((attribute) => {\n const attrType = findAttributeTypeByUri(metadata, attribute);\n return {\n id: attributeUriToSearchUri(attrType.uri),\n label: attrType.label,\n attrType: attrType\n };\n })\n .filter((attribute) => !isComplexAttribute(attribute.attrType));\n return result;\n }, {});\n return mergeDeepWith(concat, columnsByEntityTypes, columnsFromTabs);\n};\n","import {path, propEq} from 'ramda';\n\nexport const parseOldSearchOptions = (advanced = {}) => {\n const advancedOptions = advanced.options || [];\n const searchByOvOption = advancedOptions.find(propEq('fieldName', 'searchByOv'));\n if (searchByOvOption) {\n const searchByOv = path(['values', 0], searchByOvOption);\n if (typeof searchByOv === 'boolean') {\n return {\n searchByOv: searchByOv,\n ovOnly: searchByOv\n };\n }\n }\n return null;\n};\n","import {parseFacets} from './parseFacets';\nimport {parseOldFacets} from './parseOldFacets';\nimport parseOldAdvancedSearch, {mergeAdvancedAndFacets} from './parseOldAdvancedSearch';\nimport {parseAttributeData} from './parseAttributeData';\nimport {parseOldView} from './parseOldView';\nimport {DEFAULT_VIEW} from '../../../constants/constants';\nimport {prepareFacetDataForStore} from '../collectFacets';\nimport {createAdvancedSearchGroupFromFacets} from '../converting/createAdvancedSearchFromFacets';\nimport {mergeConfigs} from '../facet';\nimport {parseOldSearchOptions} from './parseOldSearchOptions';\nimport {getKeywordFromOldSearchState, parseAdvancedSearch, findAttributeTypeByUri} from '@reltio/mdm-sdk';\n\nconst parseSearchState = (metadata, state, config, dataTenants, canUserReadWorkflowDataTask) => {\n try {\n const {version} = state;\n return version === '2.0'\n ? parseNewSearchState(metadata, state, dataTenants, canUserReadWorkflowDataTask)\n : parseOldSearchState(metadata, state, config, dataTenants, canUserReadWorkflowDataTask);\n } catch (e) {\n console.warn(\"Can't parse search state\", e);\n return {\n errors: Array.isArray(e) ? e : [e]\n };\n }\n};\n\nconst parseNewSearchState = (\n metadata,\n {keyword = null, facets = {}, advanced = [], map, view, searchOptions, currentSavedSearchUri, currentTenant},\n dataTenants,\n canUserReadWorkflowDataTask\n) => {\n const newState = {map, keyword, searchOptions};\n const hasActiveAdvancedSearch = advanced.some(\n ({attributes, entityTypes = []}) => attributes.length || entityTypes.length\n );\n if (hasActiveAdvancedSearch) {\n newState.advanced = parseAdvancedSearch(\n parseAttributeData,\n metadata,\n advanced,\n dataTenants,\n canUserReadWorkflowDataTask\n );\n } else {\n newState.facets = parseFacets(metadata, facets, dataTenants);\n }\n\n if (view) {\n const tabs = view.tabs || {};\n Object.keys(tabs).forEach((key) => {\n tabs[key] = (tabs[key] || []).map((item) => ({\n ...item,\n attrType: item.attrType\n ? findAttributeTypeByUri(metadata, item.attrType.uri) || item.attrType\n : undefined\n }));\n });\n\n newState.view = {\n searchResultsMode: view.searchResultsMode || DEFAULT_VIEW,\n entityTypeTab: view.entityTypeTab,\n sortField: view.sortField,\n sortOrder: view.sortOrder,\n searchResultsColumns: tabs,\n previewPanelMode: view.previewPanelMode || null\n };\n }\n\n if (currentSavedSearchUri) {\n newState.currentSavedSearchUri = currentSavedSearchUri;\n }\n if (currentTenant) {\n newState.currentTenant = currentTenant;\n }\n return newState;\n};\n\nconst parseOldSearchState = (metadata, oldState, viewConfig, dataTenants, canUserReadWorkflowDataTask) => {\n const {facets = {}, advanced, view, curSavedSearchUri, useSeparateGroups} = oldState;\n const newState = {\n keyword: getKeywordFromOldSearchState(oldState),\n searchOptions: parseOldSearchOptions(advanced)\n };\n const {currentTenant, advanced: advancedFromFacets, ...parsedFacets} = parseOldFacets(\n metadata,\n dataTenants,\n facets\n );\n const parsedAdvanced = parseOldAdvancedSearch(\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n advanced || advancedFromFacets,\n useSeparateGroups\n );\n const hasActiveAdvancedSearch = parsedAdvanced.some(({attributes}) => attributes.length);\n if (hasActiveAdvancedSearch) {\n const {facetsData, facetsConfigs} = parsedFacets;\n const newData = facetsConfigs.reduce((data, config) => {\n return {\n ...data,\n [config.fieldName]: prepareFacetDataForStore(config.fieldName, facetsData[config.fieldName])\n };\n }, {});\n const groupFromFacets = createAdvancedSearchGroupFromFacets(\n metadata,\n dataTenants,\n Object.values(mergeConfigs(newData, facetsConfigs))\n );\n newState.advanced =\n groupFromFacets.length > 0 ? mergeAdvancedAndFacets(parsedAdvanced, groupFromFacets) : parsedAdvanced;\n } else {\n newState.facets = parsedFacets;\n }\n\n if (view) {\n newState.view = parseOldView(metadata, view, viewConfig);\n }\n\n if (curSavedSearchUri) {\n newState.currentSavedSearchUri = curSavedSearchUri;\n }\n\n if (currentTenant) {\n newState.currentTenant = currentTenant;\n }\n\n return newState;\n};\n\nexport default parseSearchState;\n","import {head, isNil, last, pathOr, unfold} from 'ramda';\nimport {Decimal} from 'decimal.js';\nimport {isFloatingType} from '@reltio/mdm-sdk';\nimport {formatNumberAsMetric, getNumbersMath} from '../../utils/general';\n\nexport const createRangeServiceFor = (attrType) => {\n const NumMath = getNumbersMath(attrType);\n const getRange = (values, data) => {\n const begin = pathOr(pathOr(null, ['value', 0], head(data)), [0, 0], values);\n const end = pathOr(pathOr(null, ['value', 1], last(data)), [0, 1], values);\n if (begin === null || end === null) {\n return [];\n }\n\n if (NumMath.lessThanOrEqualTo(begin, end)) {\n return [begin, end];\n } else {\n return [end, begin];\n }\n };\n\n const adjustRange = (range, min, max) => {\n const start = range[0];\n const end = range[1];\n return [isNil(min) ? start : NumMath.max(start, min), isNil(max) ? end : NumMath.min(end, max)];\n };\n\n const equals = (...args) => NumMath.equals(...args);\n\n const formatNumberForRangeFacet = (value) =>\n NumMath.greaterThan(value, 10000) ? formatNumberAsMetric(value, 10000) : value.toString();\n\n const getBarDomain = (data) => (data.length > 0 ? [head(data).value[0], last(data).value[1]] : []);\n\n const calcScale = (min, max) => {\n if (attrType === 'Long') {\n const delta = max.minus(min);\n\n // calculate ratio\n const ratio = delta.div(2).gt(Number.MAX_SAFE_INTEGER)\n ? new Decimal(Number.MAX_SAFE_INTEGER).mul(2).div(delta)\n : 1;\n\n const ratioFirstValue = min.mul(ratio);\n const ratioLastValue = max.mul(ratio);\n\n // calculate offset\n const offset = ratioFirstValue.lt(Number.MIN_SAFE_INTEGER)\n ? new Decimal(Number.MIN_SAFE_INTEGER).minus(ratioFirstValue)\n : ratioLastValue.gt(Number.MAX_SAFE_INTEGER)\n ? new Decimal(Number.MAX_SAFE_INTEGER).minus(ratioLastValue)\n : 0;\n\n return {ratio: ratio, offset: offset};\n }\n\n return {ratio: 1, offset: 0};\n };\n const revertScale = (value, scale) =>\n NumMath.toFixed(NumMath.div(NumMath.minus(value, scale.offset), scale.ratio), 0);\n\n const applyScale = (value, scale) => Number(NumMath.plus(NumMath.mul(value, scale.ratio), scale.offset));\n\n const bigNumbersTickFormatterX = (formatter, scale) => (value) => formatter(revertScale(value, scale));\n\n const addRanges = (values = [], start, end, interval) => {\n if (values.length === 0) {\n return [];\n }\n\n const firstValue = values[0].value;\n const lastValue = values[values.length - 1].value;\n const headValues = NumMath.greaterThan(firstValue, start)\n ? unfold(\n (n) => (NumMath.lessThan(n, firstValue) ? [{value: n, number: 0}, NumMath.plus(n, interval)] : false),\n start\n )\n : [];\n const tailValues = NumMath.lessThan(lastValue, NumMath.minus(end, interval))\n ? unfold(\n (n) =>\n NumMath.lessThanOrEqualTo(n, end) ? [{value: n, number: 0}, NumMath.plus(n, interval)] : false,\n NumMath.plus(lastValue, interval)\n )\n : [];\n return [...headValues, ...values, ...tailValues];\n };\n\n const getInterval = (from, to, bars = 50) => {\n if (from === to) {\n return 1;\n } else {\n return isFloatingType(attrType)\n ? (to - from) / bars\n : NumMath.ceil(NumMath.div(NumMath.minus(to, from), bars));\n }\n };\n\n return {\n NumMath,\n getRange,\n formatNumberForRangeFacet,\n getBarDomain,\n calcScale,\n revertScale,\n applyScale,\n bigNumbersTickFormatterX,\n adjustRange,\n equals,\n addRanges,\n getInterval\n };\n};\n","import queryString from 'query-string';\nimport {pipe} from 'ramda';\n\nconst addPrefixIfNecessary = (query) => (query ? `?${query}` : '');\nconst stringifyObject = (urlSearchObj) => queryString.stringify(urlSearchObj, {strict: false});\nexport const stringifySearch = pipe(stringifyObject, addPrefixIfNecessary);\n","import {\n __,\n allPass,\n always,\n append,\n assoc,\n both,\n complement,\n compose,\n concat,\n cond,\n defaultTo,\n evolve,\n filter,\n flatten,\n has,\n identity,\n ifElse,\n inc,\n join,\n length,\n lt,\n map,\n path,\n pathOr,\n pipe,\n pluck,\n prop,\n propEq,\n propOr,\n propSatisfies,\n reduce,\n slice,\n split,\n T,\n uniq,\n values,\n when\n} from 'ramda';\nimport {\n ActivityFilters,\n addGlobalFilterToQuery,\n attributeUriToSearchUri,\n basicFilterBuildRules,\n buildBasicFilterString,\n buildComplexFilterString,\n buildFilterHierarchyList,\n buildFilterQueryString,\n buildOperationsToString,\n canWrapInSameAttribute,\n FilterOptions,\n getEntityType,\n getRootFieldName,\n isAndOperator,\n isAvailableEntityType,\n isDateType,\n isOrOperator,\n isValidSearchGroup,\n isValidSearchGroupAttribute,\n joinFilterStrings,\n Maybe,\n parseCompositeFilters,\n requestForDataTenant,\n shiftDownOperators,\n shiftUpOperators,\n wrapQueryWithBrackets\n} from '@reltio/mdm-sdk';\nimport {getEnvironment, getTenant} from '../../utils/general';\nimport {stringifySearch} from '../../utils/url';\nimport {DEFAULT_SEARCH_SELECT, ROWS_PER_PAGE_OPTIONS} from '../../constants/constants';\n\nexport const isNotEmptyParam = (param) => (param.values && param.values.length) || param.rawFilter;\n\nconst prepareDataTenantFilters = (facet) =>\n facet.dataTenant\n ? [\n {\n filter: 'equals',\n fieldName: facet.dataTenantFieldName,\n values: [facet.dataTenant]\n }\n ]\n : [];\n\nconst getFieldNameForRequestRule = (extraBuildRules = []) => [\n prop('fieldNameForRequest'),\n ({fieldNameForRequest, ...otherData}) => {\n const query = cond([...extraBuildRules, ...basicFilterBuildRules])({\n ...otherData,\n fieldName: fieldNameForRequest\n });\n return pipe(\n buildFilterQueryString(),\n wrapQueryWithBrackets\n )([\n {\n rawFilter: query\n },\n ...prepareDataTenantFilters(otherData)\n ]);\n }\n];\n\nexport const buildQuery = buildFilterQueryString([getFieldNameForRequestRule()]);\n\nexport const buildQueryTree = pipe(filter(isNotEmptyParam), buildFilterHierarchyList);\n\nexport const buildEntitiesUrl = (searchParams, options = {}) => {\n const {sortOrder, sortField, select, forceOvOnly, searchOptions, activityFilter, globalFilter} = options;\n const filterParam = pipe(buildQuery, addGlobalFilterToQuery(globalFilter))(searchParams);\n const page = options.page || 0;\n const rowsPerPage = options.rowsPerPage || ROWS_PER_PAGE_OPTIONS[0];\n\n const urlSearch = {\n filter: filterParam || undefined,\n select: buildSelectParam(searchParams, activityFilter, select),\n max: rowsPerPage,\n offset: page * rowsPerPage,\n sort: sortField || undefined,\n order: sortOrder || undefined,\n scoreEnabled: false,\n options: (forceOvOnly ? addToSearchOptions(searchOptions, 'ovOnly') : searchOptions) || undefined,\n activeness: activityFilter || undefined\n };\n\n return `entities${stringifySearch(urlSearch)}`;\n};\n\nconst addToSearchOptions = (options, value) => {\n options = options || '';\n const splitted = options.split(',').filter(identity);\n return splitted.includes(value) ? options : splitted.concat(value).join(',');\n};\n\nexport const buildEntitiesByUrisRequest = (entitiesUris, searchParams, options = {}) => {\n const {select, searchOptions, activityFilter} = options;\n\n const body = {\n select: buildSelectParam(searchParams, activityFilter, select),\n uris: entitiesUris,\n options: addToSearchOptions(searchOptions, 'ovOnly')\n };\n\n return {\n url: 'entities/_byUris',\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nconst buildSelectParam = (searchParams, activityFilter, select = []) => {\n const selectParams = DEFAULT_SEARCH_SELECT.concat(select);\n if (activityFilter && activityFilter !== ActivityFilters.ACTIVE_ONLY) {\n selectParams.push('startDate', 'endDate');\n }\n return uniq(selectParams).join(',');\n};\n\nexport const businessCardAttributeURIsSelectRule = propOr([], 'businessCardAttributeURIs');\n\nexport const geoLocationAttributesSelectRule = compose(\n flatten,\n map((item) => [item.latitude, item.longitude]),\n propOr([], 'geoLocationAttributes')\n);\n\nexport const collectAdditionalSelect = (metadata, searchParams, selectRules = []) => {\n const entityTypesForSearch = Maybe.fromNull(\n searchParams.find((param) => param.fieldName === 'type' && param.values.length)\n )\n .map(prop('values'))\n .orSome(pluck('uri', metadata.entityTypes));\n const additionalAttrs = entityTypesForSearch.map((entityTypeUri) => {\n const entityType = getEntityType(metadata, entityTypeUri);\n\n return selectRules\n .reduce((attrUris, rule) => attrUris.concat(rule(entityType)), [])\n .map(prepareAttrUriForSearch);\n });\n return uniq(flatten(additionalAttrs).map(getFirstLevelSearchUri));\n};\n\nexport const prepareAttrUriForSearch = attributeUriToSearchUri;\n\nexport const getFirstLevelSearchUri = pipe(split('.'), slice(0, 2), join('.'));\n\nexport const buildFacetsRequest = (facets, searchParams, excludeFields = [], options = {}, extraUrlParams = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const dataTenantSearchParams = facets.length === 1 ? prepareDataTenantFilters(facets[0]) : [];\n const filterParam = pipe(\n filter((param) => param.forceInclude || !excludeFields.includes(param.fieldName)),\n concat(__, dataTenantSearchParams),\n buildQuery,\n addGlobalFilterToQuery(globalFilter)\n )(searchParams);\n const body = facets.map((facet) => {\n const facetBody = {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n pageSize: facet.pageSize,\n pageNo: 1,\n orderType: facet.orderType\n };\n if (!facet.disableIncludeFilter) {\n facetBody.includeFilter = facet.includeFilter || facet.values;\n }\n return facetBody;\n });\n\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined,\n ...extraUrlParams\n };\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildPotentialMatchesFacetUrl = (from, to, bars, searchParams, excludeFields = [], options = {}) => {\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = preparePotentialMatchesUrlSearch(from, to, bars, searchParams, excludeFields, options);\n return `api/${env}/${tenant}/entities/potentialMatches${stringifySearch(urlSearch)}`;\n};\n\nexport const buildMatchScoresFacetUrl = (from, to, bars, searchParams, excludeFields = [], options = {}) => {\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = preparePotentialMatchesUrlSearch(from, to, bars, searchParams, excludeFields, options);\n return `api/${env}/${tenant}/entities/matchScores${stringifySearch(urlSearch)}`;\n};\n\nconst preparePotentialMatchesUrlSearch = (from, to, bars, searchParams, excludeFields, options) => {\n const {searchOptions, activityFilter, globalFilter, dataTenant} = options;\n const filterParam = buildPureSearchQuery(searchParams, excludeFields, globalFilter);\n return {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n from,\n to,\n bars,\n activeness: activityFilter || undefined,\n dataTenant\n };\n};\n\nexport const buildTypeaheadRequest = ({entityTypes}, searchValue, maxSuggestions) => {\n const entityForRequest = entityTypes.filter(isAvailableEntityType).map(prop('uri'));\n const entityFilter = {\n filter: 'equals',\n fieldName: 'type',\n values: entityForRequest\n };\n const fuzzyFilter = {\n filter: 'containsWordStartingWith',\n fieldName: 'attributes',\n values: [searchValue]\n };\n const typeAheadFilter = buildQuery([entityFilter, fuzzyFilter]);\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = {\n filter: typeAheadFilter || undefined,\n scoreEnabled: true,\n max: maxSuggestions + 1\n };\n return {\n url: `api/${env}/${tenant}/entities/_typeAheadSearch${stringifySearch(urlSearch)}`\n };\n};\n\nexport const buildHistogramUrl = (facet, searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter, ...restOptions} = options;\n const filterParam = buildPureSearchQuery(\n searchParams.concat(prepareDataTenantFilters(facet)),\n excludeFields,\n globalFilter\n );\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n const body = [\n {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n facetType: 'histogram',\n ...restOptions\n }\n ];\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildStatsUrl = (facet, searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const filterParam = buildPureSearchQuery(\n searchParams.concat(prepareDataTenantFilters(facet)),\n excludeFields,\n globalFilter\n );\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n const body = [\n {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n facetType: 'stats'\n }\n ];\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildPureSearchQuery = (searchParams, excludeFields = [], globalFilter) => {\n return pipe(\n filter((param) => param.forceInclude || !excludeFields.includes(param.fieldName)),\n buildQuery,\n addGlobalFilterToQuery(globalFilter)\n )(searchParams);\n};\n\nexport const buildTotalUrlQuery = (searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const filterParam = buildPureSearchQuery(searchParams, excludeFields, globalFilter);\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n\n return stringifySearch(urlSearch).slice(1);\n};\n\nexport function callSearchRequestForTenant({searchRequest, url, options, dataTenant, customerTenant, dtssPath}) {\n return dataTenant\n ? requestForDataTenant({requestProvider: searchRequest, url, options, dataTenant, customerTenant, dtssPath})\n : searchRequest(`api/${getEnvironment()}/${customerTenant}/${url}`, options);\n}\n\nexport const buildTotalUrl = (searchParams, excludeFields = [], options) => {\n const urlQuery = buildTotalUrlQuery(searchParams, excludeFields, options);\n return `entities/_total${urlQuery ? `?${urlQuery}` : ''}`;\n};\n\nexport const buildTotalUrlForQuery = (query) => {\n const env = getEnvironment(),\n tenant = getTenant();\n\n return `api/${env}/${tenant}/entities/_total?${query}`;\n};\n\nconst getAttributeType = path(['data', 'attrType', 'type']);\n\nconst groupAttributeFilters = (result, attribute) => {\n let {orGroupIndex = 0} = result;\n const {filters} = result;\n const {values, filter, operator} = attribute;\n if (isOrOperator(operator)) {\n orGroupIndex = inc(orGroupIndex);\n }\n const attributeFilters = pathOr({}, ['filters', orGroupIndex], result);\n const attributeFilter = {\n filter,\n fieldName: path(['data', 'fieldName'], attribute),\n fieldNameForRequest: path(['data', 'fieldNameForRequest'], attribute),\n dataTenant: path(['data', 'dataTenant'], attribute),\n dataTenantFieldName: path(['data', 'dataTenantFieldName'], attribute),\n values: getQueryValuesArray(values),\n type: getAttributeType(attribute),\n operator\n };\n\n const rootFieldName = getRootFieldName(attributeFilter);\n attributeFilters[rootFieldName] = concat(propOr([], rootFieldName, attributeFilters), [attributeFilter]);\n\n return {orGroupIndex, filters: assoc(orGroupIndex, attributeFilters, filters)};\n};\n\nconst canWrapAnyChildrenInSameAttribute = (filterHierarchyList = []) =>\n filterHierarchyList.reduce((result, filterHierarchy) => {\n return (\n result ||\n canWrapInSameAttribute(filterHierarchy.children) ||\n canWrapAnyChildrenInSameAttribute(filterHierarchy.children)\n );\n }, false);\n\nconst prepareAttributeFilterOperations = (disableInSameAttributeValue) => (operations, filter) => {\n const attributesFilters = values(filter);\n const attributesOperations = attributesFilters.map((sameRootFieldNameFilters) => {\n const operator = path([0, 'operator'], sameRootFieldNameFilters);\n const filterHierarchyList = pipe(parseCompositeFilters, buildFilterHierarchyList)(sameRootFieldNameFilters);\n if (!disableInSameAttributeValue && canWrapAnyChildrenInSameAttribute(filterHierarchyList)) {\n return {\n filter: sameRootFieldNameFilters,\n operator: cond([\n [isAndOperator, always('and')],\n [isOrOperator, identity],\n [T, always(null)]\n ])(operator)\n };\n }\n return {\n filter: sameRootFieldNameFilters,\n operator: operator\n };\n });\n\n return append(attributesOperations, operations);\n};\n\nconst getOperationObject = (operand, operator) => ({operand, operator});\n\nconst isMultipleComplexValuesFormat = both(propSatisfies(lt(1), 'length'), propSatisfies(Array.isArray, 0));\n\nconst specialFiltersRules = [\n [\n propEq('fieldName', 'rdmLookups.resolved'),\n ({fieldName, values}) =>\n buildBasicFilterString({\n filter: FilterOptions.EQUALS,\n fieldName,\n values: [!values[0]]\n })\n ],\n [\n allPass([\n propEq('filter', FilterOptions.EQUALS),\n propSatisfies(isMultipleComplexValuesFormat, 'values'),\n complement(propEq('fieldName', 'type')),\n propSatisfies(complement(isDateType), 'type')\n ]),\n ({fieldName, values}) =>\n pipe(\n map((values) =>\n values.length > 1\n ? buildComplexFilterString({fieldName, values, filter: 'listEquals'})\n : buildBasicFilterString({fieldName, values, filter: 'equals'})\n ),\n joinFilterStrings(' and ')\n )(values)\n ]\n];\n\nconst buildQueryToOperationObject = (filtersRules = [], disableInSameAttributeValue = false) => (items) => {\n const extraRules = [...specialFiltersRules, ...filtersRules];\n return items.map((item) =>\n getOperationObject(\n buildFilterQueryString(\n [getFieldNameForRequestRule(extraRules), ...extraRules],\n disableInSameAttributeValue\n )(item.filter),\n item.operator\n )\n );\n};\n\nconst getQueryValuesArray = pipe(defaultTo([]), map(when(has('value'), prop('value'))));\n\nconst buildGroupQuery = (query = '', entityTypes = []) => {\n const entityTypeCondition = [\n {\n filter: 'equals',\n fieldName: 'type',\n values: entityTypes\n }\n ];\n const entityTypesPart = buildFilterQueryString()(entityTypeCondition);\n return entityTypesPart + (entityTypesPart && query ? ` and ${wrapQueryWithBrackets(query)}` : query);\n};\nconst toArray = (value) => (Array.isArray(value) ? value : Object.keys(value).map((key) => value[key]));\nexport const buildQueryForAdvancedSearchGroups = (groups, filtersRules = [], disableInSameAttributeValue = false) => {\n const groupsOperations = groups\n .map(evolve({attributes: shiftDownOperators}))\n .filter(isValidSearchGroup)\n .map((group) => {\n const attributesQuery = pipe(\n prop('attributes'),\n filter(isValidSearchGroupAttribute),\n reduce(groupAttributeFilters, {filters: []}),\n prop('filters'),\n toArray,\n reduce(prepareAttributeFilterOperations(disableInSameAttributeValue), []),\n map(buildQueryToOperationObject(filtersRules, disableInSameAttributeValue)),\n flatten,\n filter((operation) => operation.operand),\n map(evolve({operand: (operand) => wrapQueryWithBrackets(operand, false)})),\n shiftUpOperators,\n buildOperationsToString\n )(group);\n return getOperationObject(buildGroupQuery(attributesQuery, group.entityTypes), group.operator);\n })\n .filter((groupOperation) => groupOperation.operand);\n\n return pipe(\n ifElse(\n pipe(length, lt(1)),\n map((operation) => getOperationObject(wrapQueryWithBrackets(operation.operand), operation.operator)),\n identity\n ),\n buildOperationsToString\n )(groupsOperations);\n};\n","import {\n __,\n complement,\n concat,\n curry,\n equals,\n filter,\n flatten,\n intersection,\n isNil,\n map,\n memoizeWith,\n pipe,\n pluck,\n prop,\n reject,\n sort,\n uniq\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {getEntityType, getLastUriPart, isNested, isReadableAttribute, Maybe} from '@reltio/mdm-sdk';\n\nimport {SEARCH_RESULTS_MODES} from '../../constants/constants';\nimport {envSpecificKey} from '../../utils/general';\nimport {getFirstLevelSearchUri, prepareAttrUriForSearch} from './searchEngine';\nimport {entityTypeProcessing} from './facet';\n\nexport const isTableMode = (mode) => mode === SEARCH_RESULTS_MODES.TABLE;\n\n//prettier-ignore\nconst collectColumnsForest = curry((metadata, entityTypeUri, excludeIds = []) => {\n const entityType = Maybe.fromNull(getEntityType(metadata, entityTypeUri)).orSome({});\n return collectSpecialColumns(excludeIds).concat(collectAttributeColumns(\n (entityType.attributes || []).concat(entityType.analyticsAttributes || [])\n ));\n});\n\nexport const memoizedCollectColumnsForestWithoutLabel = memoizeWith(\n (metadata, entityTypeUri) => envSpecificKey(entityTypeUri),\n collectColumnsForest(__, __, ['label'])\n);\n\nexport const getAdditionalColumns = (metadata, entityTypeUri, headColumns) =>\n headColumns &&\n deepFilter(\n memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri),\n (column) => !headColumns.some((elem) => column.id === elem.id)\n );\n\nexport const collectSpecialColumns = (excludeIds = []) =>\n [\n {\n id: 'label',\n label: i18n.text('Profile')\n },\n {\n id: 'entityId',\n label: i18n.text('Entity ID')\n }\n ].filter((column) => !excludeIds.includes(column.id));\n\nconst collectAttributeColumns = (attributes = []) =>\n attributes.filter(isReadableAttribute).map((attrType) => {\n const column = {\n id: prepareAttrUriForSearch(attrType.uri),\n label: attrType.label || getLastUriPart(attrType.uri),\n attrType\n };\n const subAttrs = attrType.attributes || attrType.analyticsAttributes;\n if (attrType.type === 'Nested' && subAttrs) {\n column.children = collectAttributeColumns(subAttrs);\n }\n return column;\n });\n\nexport const getChildrenLeafsByParentId = (columns, parentId) => {\n const parent = findNodeInForest(columns, parentId);\n return getFlatChildrenLeafs(parent);\n};\n\nconst findNodeInForest = (children, id) => {\n let result = null;\n const walk = (children) => {\n children.some((node) => {\n if (node.id === id) {\n result = node;\n return true;\n }\n if (node.children) {\n return walk(node.children, id);\n }\n });\n };\n walk(children);\n return result;\n};\n\n//prettier-ignore\nconst getFlatChildrenLeafs = item => {\n return flatten(\n (item.children || []).map(node => (node.children ? getFlatChildrenLeafs(node) : [node]))\n );\n};\n\nexport const deepFilter = (nodes, filter) =>\n nodes.filter(filter).map((node) =>\n node.children\n ? {\n ...node,\n children: deepFilter(node.children, filter)\n }\n : node\n );\n\nconst collectColumnsByIds = (metadata, entityTypeUri, ids) => {\n const columns = collectColumnsForest(metadata, entityTypeUri);\n return uniq(\n pipe(\n concat(['label']),\n map((id) => findNodeInForest(columns, id)),\n reject(isNil),\n filter(pipe(prop('attrType'), complement(isNested)))\n )(ids)\n );\n};\n\nexport const getInitialColumnsByEntityTypes = (metadata, allowedEntityTypes, defaultTabs = {}) => {\n const entityTypesFacetData = entityTypeProcessing(metadata, {}, allowedEntityTypes);\n const defaultColumnIds = prop('*', defaultTabs);\n\n return entityTypesFacetData.reduce((result, item) => {\n const columnsIds = defaultTabs[item.value] || defaultColumnIds;\n result[item.value] = isNil(columnsIds)\n ? collectSpecialColumns()\n : collectColumnsByIds(metadata, item.value, columnsIds);\n return result;\n }, {});\n};\n\nconst orderComparator = (order) => (item1, item2) => order.indexOf(item1.value) - order.indexOf(item2.value);\n\nexport const getEntityTypesForTabs = ({entityTypes}, tabs = [], selectedEntityTypes = []) => {\n const orderInMetadata = pluck('uri', entityTypes);\n const metadataOrderComparator = orderComparator(orderInMetadata);\n const selectedValuesOrderComparator = orderComparator(selectedEntityTypes);\n const filteredTabs = tabs.filter(({value}) =>\n selectedEntityTypes.length === 0 ? true : selectedEntityTypes.includes(value)\n );\n return sort(\n selectedEntityTypes.length === 0 ? metadataOrderComparator : selectedValuesOrderComparator,\n filteredTabs\n );\n};\n\nexport const isColumnsEqual = (selected, initial) => {\n const getId = (column) => column.id;\n return equals(selected.map(getId), initial.map(getId));\n};\n\nexport const buildSelectFromColumns = (columns) => {\n const specialColumns = collectSpecialColumns();\n return uniq(\n columns\n .filter((column) => !specialColumns.find((specialColumn) => specialColumn.id === column.id))\n .map(pipe(prop('id'), getFirstLevelSearchUri))\n );\n};\n\nexport const needRequestAfterColumnsChanges = (columns, prevColumns) => {\n const select = buildSelectFromColumns(columns);\n const prevSelect = buildSelectFromColumns(prevColumns);\n return !equals(intersection(select, prevSelect), select);\n};\n","let appConfig = {};\nexport const getConfig = () => appConfig;\nexport const setConfig = (config) => (appConfig = config);\n\nconst getAppConfigParam = (name) => appConfig[name];\n\nexport const getApiPath = () => getAppConfigParam('apiPath');\nexport const getImagePath = () => getAppConfigParam('imagePath');\nexport const getMaxRecommended = () => getAppConfigParam('maxRecommended') || 5;\n","import {ErrorPopup} from '@reltio/components';\nimport {getRequestErrorMessage} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\n\nexport const showServerError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Server Error'),\n message: i18n.text('Something went wrong...')\n });\n};\n\nexport const showUpdateSearchStateErrors = (errors = []) => {\n console.error(errors); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: i18n.text(\"Can't apply search state\")\n });\n};\n\nexport const showLoadSavedSearchErrors = (errors = []) => {\n console.error(errors); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: i18n.text(\"Saved Search can't be applied\")\n });\n};\n\nexport const showImportFromDataTenantError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Import Error'),\n message: i18n.text(\"Record can't be imported\")\n });\n};\n\nexport const showLoadEntityError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: getRequestErrorMessage(error, i18n.text(\"Can't load entity\"))\n });\n};\n","import {Decimal} from 'decimal.js';\n\nexport const plus = (a, b) => new Decimal(a).add(b);\n\nexport const minus = (a, b) => new Decimal(a).sub(b);\n\nexport const div = (a, b) => new Decimal(a).div(b);\n\nexport const mul = (a, b) => new Decimal(a).mul(b);\n\nexport const greaterThan = (a, b) => Decimal(a).greaterThan(b);\n\nexport const greaterThanOrEqualTo = (a, b) => new Decimal(a).greaterThanOrEqualTo(b);\n\nexport const lessThan = (a, b) => new Decimal(a).lessThan(b);\n\nexport const lessThanOrEqualTo = (a, b) => new Decimal(a).lessThanOrEqualTo(b);\n\nexport const floor = (a) => new Decimal(a).floor();\n\nexport const ceil = (a) => new Decimal(a).ceil();\n\nexport const min = (a, b) => Decimal.min(a, b);\n\nexport const max = (a, b) => Decimal.max(a, b);\n\nexport const equals = (a, b) => new Decimal(a).equals(b);\n\nexport const clamp = (min, max, value) => {\n if (new Decimal(min).gt(max)) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n const bigValue = new Decimal(value);\n return bigValue.lt(min) ? min : bigValue.gt(max) ? max : value;\n};\n\nexport const toFixed = (value, digits) => new Decimal(value).toFixed(digits);\n","import {clamp as rclamp} from 'ramda';\n\nexport const plus = (a, b) => Number(a) + Number(b);\n\nexport const minus = (a, b) => a - b;\n\nexport const div = (a, b) => a / b;\n\nexport const mul = (a, b) => a * b;\n\nexport const greaterThan = (a, b) => Number(a) > Number(b);\n\nexport const greaterThanOrEqualTo = (a, b) => Number(a) >= Number(b);\n\nexport const lessThan = (a, b) => Number(a) < Number(b);\n\nexport const lessThanOrEqualTo = (a, b) => Number(a) <= Number(b);\n\nexport const floor = (a) => Math.floor(a);\n\nexport const ceil = (a) => Math.ceil(a);\n\nexport const min = (a, b) => Math.min(a, b);\n\nexport const max = (a, b) => Math.max(a, b);\n\nexport const equals = (a, b) => a === b;\n\nexport const clamp = (min, max, value) => rclamp(Number(min), Number(max), Number(value));\n\nexport const toFixed = (value, digits) => Number(value).toFixed(digits);\n","import queryString from 'query-string';\nimport {compose, memoizeWith, identity} from 'ramda';\nimport {isNumber} from './maybe';\nimport i18n from 'ui-i18n';\nimport moment from 'moment';\nimport {Decimal} from 'decimal.js';\nimport * as BNMath from './bigNumbersMath';\nimport * as NMath from './numbersMath';\n\nlet tenant;\nexport const setTenant = (_tenant) => {\n tenant = _tenant;\n};\n\nlet env;\nexport const setEnvironment = (_env) => {\n env = _env;\n};\n\nexport const getTenant = () => {\n return tenant;\n};\n\nexport const getEnvironment = () => {\n return env ? env.toString() : '';\n};\n\nexport const interpolate = (string, params) => {\n let template = string;\n for (let key in params) {\n template = template.replace(new RegExp('\\\\$\\\\{' + key + '\\\\}', 'g'), params[key]);\n }\n return template;\n};\n\nexport const clone = compose(JSON.parse, JSON.stringify);\n\nexport const redirectTo = (tenant, env) => {\n const searchState = queryString.parse(window.location.search);\n window.location.search = queryString.stringify({...searchState, tenant, env});\n};\n\nexport const log = (i) => {\n console.log(i); //eslint-disable-line\n return i;\n};\n\nexport const formatNumberAsMetric = (value, limit) => {\n if (!isNumber(value)) {\n return '';\n }\n\n const NumMath = getNumbersMath(Decimal.isDecimal(value) && 'Long');\n if (\n NumMath.lessThanOrEqualTo(value, Number.MAX_SAFE_INTEGER) &&\n NumMath.greaterThanOrEqualTo(value, Number.MIN_SAFE_INTEGER)\n ) {\n return NumMath.greaterThan(value, limit || 1000)\n ? i18n.number(value, '0,0.0a').toUpperCase()\n : i18n.number(value, '0,0[.]0');\n } else {\n return NumMath.greaterThan(value, limit || 1000)\n ? i18n.number(NumMath.div(value, 1e12), '0,0.0') + 'T'\n : value.toString();\n }\n};\n\nexport const envSpecificKey = (key) => {\n const tenant = getTenant();\n const env = getEnvironment();\n return `${tenant}_${env}_${key}`;\n};\n\nexport const formatMomentDate = (momentDate) => {\n return momentDate.format(moment.localeData().longDateFormat('L'));\n};\n\nexport const getNumbersMath = (attrType) => (attrType === 'Long' ? BNMath : NMath);\n\nexport const noop = () => {};\n\nexport const memoizedWrapInArray = memoizeWith(identity, (uri) => [uri]);\n","// prettier-ignore\nexport const lens = (getter, setter) => {\n return {\n get: getter,\n set: setter,\n compose: l => lens(\n obj => l.get(getter(obj)),\n (obj, value) => setter(obj, l.set(getter(obj), value))\n )\n };\n};\n\n// prettier-ignore\nexport const createLens = fieldName => lens(\n obj => obj[fieldName],\n (obj, value) => Object.assign({}, obj, {[fieldName]: value})\n);\nexport function inArrayByIndex(index) {\n return lens(\n (arr) => arr[index],\n (arr, val) => ((arr = [...arr]), (arr[index] = val), arr)\n );\n}\nexport const inObject = createLens;\nexport const prop = (key) => (typeof key === 'string' ? createLens(key) : inArrayByIndex(key));\n\nexport const path = (key, ...keys) => (keys.length ? prop(key).compose(path(...keys)) : prop(key));\n","export const isObject = (value) => typeof value === 'object' && value !== null;\nexport const isNumber = (value) => !isNaN(parseFloat(value)) && isFinite(value);\nexport const isString = (value) => typeof value === 'string' || value instanceof String;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Headers-styles-container--Zbdka\",\"title\":\"Headers-styles-title--TvsMA\",\"actionsBar\":\"Headers-styles-actionsBar--RXMy4\",\"splitter\":\"Headers-styles-splitter--sCvn6\",\"headerIcon\":\"Headers-styles-headerIcon--c2qe7\",\"previewSwitcher\":\"Headers-styles-previewSwitcher--Ppqem\",\"tabsContainer\":\"Headers-styles-tabsContainer--lhDXc\",\"number\":\"Headers-styles-number--trErH\"};"],"names":["AvatarStates","className","icon","avatarText","rootClasses","otherProps","state","setState","useState","useEffect","ICON_MODE","TEXT_MODE","onImageLoadFail","ERROR_MODE","Avatar","classnames","iconRoot","src","onError","textRoot","useStyles","makeStyles","pagination","display","alignItems","justifyContent","height","borderTop","boxShadow","caption","color","fontSize","lineHeight","selectRoot","marginLeft","marginRight","select","textAlign","actions","BasicTablePagination","classes","count","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","styles","resetScrollbarPosition","useCallback","pathOr","identity","handleChangePage","value","handleChangeRowsPerPage","TablePagination","root","component","i18n","labelDisplayedRows","from","to","fromRow","toRow","countRows","pipe","nthArg","getValue","propTypes","PropTypes","current","React","collapseButton","cursor","expandLess","transform","isOpen","tooltipTitle","buttonProps","ExpandMore","iconClassName","tooltipProps","SmallIconButton","textOverflow","overflow","whiteSpace","padding","borderRadius","fontWeight","entity","size","metadata","useSelector","mdmModule","entityTypeUri","type","entityType","getEntityType","entityTypeColor","getPropWithInheritance","theme","entityTypeLabel","getEntityTypeLabel","ExpandedValueTooltip","placement","Typography","style","backgroundColor","utils","width","check","ImportModes","tooltip","onClick","noop","mode","INIT","button","CloudDownloadIcon","PROGRESS","CircularProgress","spinner","SUCCESS","Done","renderCurrentMode","scroll","element","scrollIntoView","block","behavior","clearScrollTimer","scrollTimer","clearTimeout","isScrolledIntoView","scrollableParent","elemTop","offsetTop","elemBottom","clientHeight","scrollTop","background","highlighted","animationName","animationDuration","animationIterationCount","item","minHeight","borderBottom","flexDirection","content","clickable","selected","fade","palette","primary","main","inactive","inactiveBackground","inactiveHoverBackground","inactiveSelectedBackground","inactiveSelectedHoverBackground","justImported","avatar","image","marginTop","marginBottom","info","flexGrow","overflowWrap","wordWrap","label","textDecoration","secondaryLabel","businessCard","secondRow","connect","entities","entityToHighlight","selectedEntityUri","onEntityClick","onEntityHover","entitiesImportStatus","entityButtonsRenderer","list","useRef","useDidUpdateEffect","querySelectorAll","length","parentElement","setTimeout","ref","map","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","entityUriForLink","getEntityUriForLink","importStatus","prop","key","undefined","onMouseEnter","onMouseLeave","EntityAvatar","avatarClassName","imageClassName","EntityUriLink","EntityTypeBadge","getEntityId","_extends","Object","assign","target","i","arguments","source","prototype","hasOwnProperty","call","apply","this","props","viewBox","version","xmlns","stroke","strokeWidth","fill","fillRule","opacity","d","ConfigureColumnsButton","headColumns","onSelectColumns","popupAnchor","setPopupAnchor","filterText","setFilterText","handlePopupClose","handleColumnClick","data","checked","columnsForest","memoizedCollectColumnsForestWithoutLabel","children","getChildrenLeafsByParentId","id","selectedColumns","concat","filter","column","find","child","ConfigureColumnsIcon","e","currentTarget","ConfigureColumnsPopup","open","anchorEl","onListItemClick","onClose","onSearch","renderConfigureColumnsPopup","HeadCellRenderer","headCellData","headIndex","sortOrder","sortField","sortHandler","canCheck","onCheck","headerCheckboxState","openConfigColumnPopup","classNames","path","Checkbox","indeterminate","onChange","sortable","TableSortLabel","active","Boolean","direction","MoreVertIcon","withTableContext","pick","HeadCellRendererWithCheckbox","EntityProfileRenderer","DefaultRenderer","columnData","dataTypeDefinition","DataTypeValue","ReferenceRenderer","AvatarWithFallback","getTypeGraphIcon","refEntity","objectURI","stopPropagation","event","BlobRenderer","onScroll","ImageRenderer","getImageAttributeOvThumbnailUrl","columnInfo","getAttrPathFromColumnId","split","NOT_SORTABLE_COLUMN_IDS","isSortableColumn","includes","getNestedPathByColumnId","columnId","isAttributeSearchUri","attrPath","slice","EntityRowOverlay","isSelectedEntity","isHighlightedEntity","entityImportStatus","onEntityImportStatusChange","EntityRowButtons","values","highlightedEntityIndex","rowIndex","commonCellWrapperStyles","inactiveCell","selectedRowCell","lighten","withCellDecorationPropTypes","isSelected","isJustImported","checkboxWrapper","checkbox","withCheckboxPropTypes","isChecked","hasCheckbox","collapser","withCollapseButtonPropTypes","hasCollapseButton","Component","WithCollapseButton","componentProps","restProps","rowValue","CollapseRowButton","WithCheckbox","rawValue","WithCellDecoration","onCellClick","isInactive","checkedEntitiesUris","columnIndex","isFirstColumn","defaultRenderRowCell","getAttributeHeight","cell","countAttributes","defaultHeight","Math","max","EntitiesTable","forwardRef","onReorderingColumn","dndColumnReorderingEnabled","columnsSize","onChangeColumnsSize","onSort","logger","tableClasses","useMemo","highlightRow","dragColumnHead","dragColumnBody","draggableHeadCell","cellWrapper","hoverRowIndex","setHoverRowIndex","handleRowHover","tableRef","useImperativeHandle","resetLeft","handleSort","field","SORT_DIRECTION_ASC","order","SORT_DIRECTION_DESC","renderRowOverlay","renderRowCell","RowCellRenderer","hoverStateEnabled","sortingEnabled","columnsData","attrType","getAttrDataTypeDefinition","resizable","autoResize","draggable","nestedPath","headCellRenderer","rowCellValueRenderer","getAttributeValueRenderer","getBasicTableColumnsData","rowsData","reduce","acc","assoc","attrSource","getOvAttributeValuesByPath","getRowValueForColumn","getBasicTableRowsData","findIndex","propEq","tableContext","BasicTable","fixFirstColumn","sortFieldClassName","containerClassName","defaultColumnWidth","headRowHeight","defaultColumnMinWidth","defaultRowHeight","sorting","dndColumnReorderingHandler","resizeDebounceDelay","onRowHover","context","maxRowValuesCount","getRowCellHeight","defaultProps","displayName","memo","INSERT_LEFT","INSERT_RIGHT","HIDE","TEXT","ConfigColumnPopup","Popover","List","action","index","handler","ListItem","ListItemText","primaryTypographyProps","variant","renderListItem","getClickHandler","EntitiesTableWithConfigurableColumns","addColumnPopupOpen","configColumnPopupOpen","configurableColumnIndex","addColumnHandler","newColumnPlaceIndex","onChangeColumnsList","columns","splice","closeAddColumnPopup","openAddColumnPopup","parseInt","getAttribute","closeConfigColumnPopup","configColumnHandler","hideCurrentConfigColumn","memoizedGetColumnSize","memoizeWith","getMemoIdForColumnSize","getColumnSizeFromHeadColumns","envSpecificKey","toString","render","entitiesTableRef","additionalColumns","hideCheckBox","titleText","ImportEntityButton","onImportStatusChange","hideDelay","dtssPath","tenant","ImportButton","importEntityFromDataTenant","customerTenant","then","success","uris","Error","ctSubscribedUris","catch","showImportFromDataTenantError","EntityType","importButtonPlaceholder","flexShrink","position","canImportFromDataTenant","canImport","isDataTenantEntity","canImportEntity","checkCanImportEntityOfType","isEntityImportedToCT","showImportButton","status","query","text","secondary","letterSpacing","READABLE_QUERY_PRIMITIVE_TYPES","ReadableSearchQuery","readableQuery","CREATE_FACETS","DESTROY_FACETS","CHANGE_VALUES","CLEAR_ALL_VALUES","UPDATE_DATA","UPDATE_FILTERED_DATA","DESTROY_FILTERED_DATA","FILTER_FACET_DATA","HANDLE_CONFIGS_CHANGES","REQUEST_GIVEN_FACETS_DATA","SET_RECOMMENDED_FACETS_LIST","CONVERT_FROM_ADVANCED_SEARCH","SHOW_MORE_ENTITY_TYPES","HIGHLIGHT_ADDED_FACETS","CLEAR_HIGHLIGHT_ADDED_FACETS","UPDATE_ENTITIES","UPDATE_URL","CLEAR_RESULTS","REFRESH_DISPLAYED_ENTITIES","REFRESH","CLEAR_ALL","SHOW_MORE_RESULTS_FOR_ENTITY_TYPE","UPDATE_TOTAL","CHANGE_PAGE","RESET_PAGE","CHANGE_ROWS_PER_PAGE","CHANGE_SORT","CHANGE_LOADING","MAP_CHANGE_VALUE","STATE_UPDATED","EXPORT_RESULTS","OPEN_DATA_LOADER","CHANGE_CURRENT_TENANT","appId","ROWS_PER_PAGE_OPTIONS","NUMERIC_RANGE_MIN_VALUE","NUMERIC_RANGE_MAX_VALUE","DATE_RANGE_MIN_VALUE","currentDate","Date","setHours","setFullYear","getFullYear","yearAgoDate","DATE_RANGE_MAX_VALUE","SEARCH_RESULTS_MODES","TABLE","LIST","MAP","DEFAULT_VIEW","PREVIEW_PANEL_MODES","PROFILE","DEFAULT_FACET_PAGE_SIZE","operators","defaultOperator","defaultGroupOperator","STORED_SEARCHES_TYPES","saved","recent","SAVED_SEARCHES_SHARING_OPTIONS_VALUES","public","private","SAVED_SEARCHES_SORTED_FIELDS","name","updateDate","SAVED_SEARCHES_SORT_BY_VALUES","SAVED_SEARCHES_SORT_ORDER_VALUES","ASC","DESC","SAVED_SEARCHES_SHARING_OPTIONS","NOTIFICATION_TYPES","error","ML_RULES_ONLY","pmRulesScope","ENTITY_TYPE_FACET_ROW_COUNT","SEARCH_DEBOUNCE_TIME","BULK_UPDATE_SELECTION_MODES","include","exclude","BULK_UPDATE_COMMON_OPERATIONS","UpdateProfiles","DeleteProfiles","BULK_UPDATE_OPERATIONS","AddNew","Clear","ReplaceAllWith","FindAndReplace","FindAndRemove","RepointReference","BULK_UPDATE_OPERATION_LABELS","BULK_UPDATE_ALLOWED_OPERATION_VALUE_FIELDS","BULK_UPDATE_SIMPLE_ATTRIBUTE_OPERATIONS","without","BULK_UPDATE_NESTED_ATTRIBUTE_OPERATIONS","BULK_UPDATE_REFERENCE_ATTRIBUTE_OPERATIONS","BULK_UPDATE_API_OPERATIONS","AddAttribute","UpdateAttribute","DeleteAttribute","RepointReferencedEntity","AddTags","ReplaceTag","DeleteTags","ClearTags","BULK_UPDATE_REFERENCED_ENTITY_ID_FIELD_NAME","DEFAULT_SEARCH_SELECT","PROP_NAME_OPERATOR","PROP_NAME_VALUES","PROP_NAME_FILTER","getEmptyAttributeObject","nanoid","getAttributeObject","attribute","getAttributeData","filterOptions","enforcedFilterOptions","getFilterOptionsForQueryBuilder","fieldName","defaultFindGroupPath","curry","groups","groupIndex","group","createGetGroupLens","groupsLensPath","findGroupPath","createLPath","get","groupPath","createGetAttributesLens","getGroupLens","propNameAttributes","groupId","groupLens","compose","createLens","createGetAttributeIndex","getAttributesLens","attributeId","attributesLens","createGetAttributeLens","attributeIndex","getAttributeIndex","createSetAttributeProp","getAttributeLens","propName","groupAttributeL","newAttribute","set","createGetAttributeProp","addAttributeAfter","groupAttributesL","newAttributes","attrIndex","isLastAttribute","operator","push","changeAttributeData","attributeData","setAttributeProp","newState","currentFilter","isAttributeIncludesFilter","attrLens","setAttributeOperator","deleteAttribute","attributes","editedAttributes","remove","prevAttribute","removedAttribute","duplicateAttribute","setFilter","getAttributeProp","isCompatibleFilters","setValues","toggleQueryBuilderAttributeSelect","attributesPropName","selectInfo","selectedAttribute","selectIndex","selectedAttributes","changeAttribute","clearAttribute","groupAttributes","__","propOr","getGroupAttributeIdAt","put","nextSelectedAttribute","selectIndexFromEnd","targetIndex","getEntityTypeGraphIcon","getAbsoluteImageUrl","getImagePath","getApiPath","collectAttrTypesData","title","faceted","hideForDataTenant","entityAttributes","EntityAttrTypes","workflowAttributes","WorkflowAttrTypes","collaborationItemsAttributes","CollaborationAttrTypes","RDMItemsAttributes","RdmAttrTypes","auditItemsAttributes","AuditAttrTypes","potentialMatchesAttributes","PotentialMatchesAttrTypes","crosswalksItemsAttributes","omit","CrosswalksAttrTypes","getEntityAttributes","getWorkflowAttributes","getCollaborationItemsAttributes","getRDMItemsAttributes","getAuditItemsAttributes","getPotentialMatchesAttributes","dataTenants","evolve","dataTenant","fieldNameForRequest","dataTenantFieldName","getCrosswalksItemsAttributes","createSpecialAttributeItem","pageSize","getPageSizeByAttrType","orderType","getOrderTypeByAttrType","createDataTenantConfigPart","originalTitle","createAttributesGroup","collectSpecialAttributesGroups","attributesFilter","T","canUserReadWorkflowDataTask","_createAttributesGroup","attributesInitial","getSpecialAttribute","specialAttributeGroup","attr","createFacetForSpecialAttrType","facetProps","getFacetTypeForAttrType","singleValue","getDataTenantSpecialAttributeFieldName","additionalAttributesRules","SpecialAttrTypes","hasMatchRulesWithoutML","LogoIcon","xmlnsXlink","x1","y1","x2","y2","stopColor","offset","stopOpacity","xlinkHref","x","y","rx","mask","cx","cy","ry","r","hasMlMatchRule","getAdditionalAttributes","additionalAttributes","dataTenantAdditionalAttributes","flatMap","additionalAttribute","getDisableIncludeFilterByAttrType","isFaceted","isComplexAttribute","getAttributeTypeSubAttributes","some","getChildrenAttributes","flat","Infinity","complement","isEmpty","createComplexAttributesConfig","attrNode","createAttributeConfig","parents","resConfig","childNode","createAttributeItem","pathToTitle","Array","isArray","chain","prepareAttrUriForSearch","isComplex","disableIncludeFilter","getAttributesTree","entityOrAttrType","filterFaceted","getAllAttributeTypesTree","either","always","collectAttributeGroups","memoizeOne","selectedEntityTypes","createGroup","onlyOneSelectedEntityType","inSelectedTypes","isOnlyOneSelected","isOnlyOneSelectedReceived","entityTypes","isAvailableEntityType","anyPass","allPass","complexAttributes","collectAdvancedAttributeGroups","findClosestCommonAncestor","flattenGroupedItemsData","groupedItems","getFlattenedItems","items","flatten","titleItemIndex","getEntityTypeFacetConfig","_metadata","hiddenTitle","showIcon","barColor","transparentBackground","showDeleteButton","potentialMatchesFacetConfig","specialFacets","getSpecialFacets","dataTenantFacets","createAttributeFacetConfig","memoizedCollectAttributeFacetsGroups","createFacetsGroup","facets","needGroupIcon","collectFacetsList","recommendedFacets","onlyOneEntityTypeSelected","specialGroup","entityTypesGroup","entityTypesFacets","recommendedFacetsConfigs","findFacetConfigByFieldName","reject","isNil","facetConfigs","facetConfig","flattenChildrenForEntityTypeConfigs","entityTypeConfig","getAvailableFacetsGroupsList","getFlatFacets","facet","collectFacetsFlatList","facetGroup","prepareFacetDataForStore","showAllItems","when","is","isComplexFacet","config","FACET_TYPES","isLookupFacet","isLookupAttrType","isPotentialMatchesFacet","startsWith","isMatchRuleFacet","intersection","isMLMatchRuleFacet","isDataTenantFacet","getValuableFacets","not","memoizedCollectSpecialAttributesGroups","getGroupTitle","createAdvancedSearchGroupFromFacets","facetsWithConfigs","facetsToConvert","typeFacet","restFacets","partition","isTypeFacet","attributesList","getFilterOptionForFacet","dataFromFacet","groupName","getFilterValueForFacet","attributeList","hasNotAvailableEntityTypes","any","getAvailableEntityTypesUris","addAvailableEntityTypesIfNeeded","removeNumberForDtssUnavailableEntityTypeItems","tenantObject","availableEntityTypes","number","findConfigByFieldName","configs","console","warn","prepareFacets","lookupsCodes","viewConfig","keys","result","realFieldName","prepareFacet","prepareStatsFacet","statsProcessing","sortByNumber","a","b","numberMoreThanZero","specialFacetsFilter","configHasValue","defaultProcessing","rawData","sort","numericRangeTypeProcessing","Decimal","lookupProcessing","lookupCode","getLookupLabel","enumProcessing","enumerationList","booleanProcessing","formatDataTypeValue","entityTypeProcessing","allowedEntityTypes","orderByArrayComparator","_","lastUriPart","getLastUriPart","roleProcessing","roles","role","sourceSystemsProcessing","sources","matchRulesProcessing","matchGroups","uniqBy","isRaw","entries","uriOrLabel","matchGroup","min","getAttrTypeLookupCode","isEnumAttrType","isBooleanType","getDefaultRangeByType","facetType","fixNaNValue","defaultValue","isNaN","forEach","facetValue","getFacetByFieldName","getAcceptedFacetValues","facetData","acceptedValues","mergeConfigs","configsArray","setFiltersToFacets","facetTypeToFilter","addAvailableEntityTypeValues","ifElse","filterAllowedEntityTypes","getEntityTypeFacetFromState","entityTypeFacet","facetWithDropdownCheckboxes","numericRangeFacet","dateRangeFacet","needFacetsCleanUp","isTypeFacetAction","Facets","Search","buildValuesLabels","range","formatNumberAsMetric","createRangeServiceFor","getRange","formatMomentDate","moment","Maybe","orSome","needShowAllEntityTypeFacetItems","gt","getLookupsListFromFacets","codeValues","mergeLookupsLists","getUnresolvedLookupsListFromFacet","resolvedLookups","getUnresolvedLookupsList","getConfigForFacet","facetsGroups","isInFacetsConfigs","mergeFacetValuesByFieldName","reduceAdvancedFromFacets","advanced","attrUri","searchUriToAttrUri","findAttributeTypeByUri","searchParams","reduceNewFacetsData","facetsConfigs","isRangeFacet","getOldRangeFacetValues","showAllEntityTypes","parseAttributeData","attrData","getAttributeTypesHierarchyByUri","parseRegularAttributeData","specialAttr","parseSpecialAttributeData","parseAdditionalAttributeData","parseAttribute","convertOldAdvancedAttribute","OLD_SEARCH_RESULTS_MODES","NEW_SEARCH_RESULTS_MODES","PREVIEW_PANEL_MODES_MAPPING","findActiveTab","tabs","tab","processOldTabs","columnsByEntityTypes","getInitialColumnsByEntityTypes","columnsFromTabs","attributeUriToSearchUri","mergeDeepWith","parseOldSearchOptions","advancedOptions","options","searchByOvOption","searchByOv","ovOnly","parseNewSearchState","keyword","view","searchOptions","currentSavedSearchUri","currentTenant","parseAdvancedSearch","facetsData","isAvailableEntityTypeUri","availableFacetsGroupsList","dissoc","getFacetConfig","reduceFacetsConfig","parseFacets","searchResultsMode","entityTypeTab","searchResultsColumns","previewPanelMode","parseOldSearchState","oldState","curSavedSearchUri","useSeparateGroups","getKeywordFromOldSearchState","tenantFacets","nonTenantFacets","typeFacets","nonTypeFacets","convertedFacets","convertOldFacets","isBasicFacetFilter","hasAdvancedFacets","basicFacets","parseOldFacets","advancedFromFacets","parsedFacets","parsedAdvanced","oldAdvancedSearch","fastSearchParams","makeGroup","wrapInArray","sanitizeTypesInSearchGroups","convertTransitionAttributes","isEmptySearchGroup","parseOldAdvancedSearch","newData","groupFromFacets","advancedGroups","facetAttribute","parseOldView","errors","NumMath","getNumbersMath","revertScale","scale","toFixed","div","minus","ratio","begin","head","end","last","lessThanOrEqualTo","formatNumberForRangeFacet","greaterThan","getBarDomain","calcScale","delta","Number","MAX_SAFE_INTEGER","mul","ratioFirstValue","ratioLastValue","lt","MIN_SAFE_INTEGER","applyScale","plus","bigNumbersTickFormatterX","formatter","adjustRange","start","equals","addRanges","interval","firstValue","lastValue","headValues","unfold","n","lessThan","tailValues","getInterval","bars","isFloatingType","ceil","stringifySearch","urlSearchObj","queryString","strict","isNotEmptyParam","param","rawFilter","prepareDataTenantFilters","getFieldNameForRequestRule","extraBuildRules","otherData","cond","basicFilterBuildRules","buildFilterQueryString","wrapQueryWithBrackets","buildQuery","buildQueryTree","buildFilterHierarchyList","buildEntitiesUrl","forceOvOnly","activityFilter","globalFilter","filterParam","addGlobalFilterToQuery","urlSearch","buildSelectParam","scoreEnabled","addToSearchOptions","activeness","splitted","join","buildEntitiesByUrisRequest","entitiesUris","body","url","method","JSON","stringify","headers","selectParams","ActivityFilters","uniq","businessCardAttributeURIsSelectRule","geoLocationAttributesSelectRule","latitude","longitude","collectAdditionalSelect","selectRules","entityTypesForSearch","pluck","additionalAttrs","attrUris","rule","getFirstLevelSearchUri","buildFacetsRequest","excludeFields","extraUrlParams","dataTenantSearchParams","forceInclude","facetBody","pageNo","includeFilter","buildPotentialMatchesFacetUrl","env","getEnvironment","getTenant","preparePotentialMatchesUrlSearch","buildMatchScoresFacetUrl","buildPureSearchQuery","buildHistogramUrl","restOptions","buildStatsUrl","buildTotalUrlQuery","callSearchRequestForTenant","searchRequest","requestForDataTenant","requestProvider","buildTotalUrl","urlQuery","buildTotalUrlForQuery","getAttributeType","groupAttributeFilters","orGroupIndex","filters","isOrOperator","inc","attributeFilters","attributeFilter","getQueryValuesArray","rootFieldName","getRootFieldName","canWrapAnyChildrenInSameAttribute","filterHierarchyList","filterHierarchy","canWrapInSameAttribute","prepareAttributeFilterOperations","disableInSameAttributeValue","operations","attributesOperations","sameRootFieldNameFilters","parseCompositeFilters","isAndOperator","append","getOperationObject","operand","isMultipleComplexValuesFormat","both","propSatisfies","specialFiltersRules","buildBasicFilterString","FilterOptions","isDateType","buildComplexFilterString","joinFilterStrings","buildQueryToOperationObject","filtersRules","extraRules","defaultTo","has","buildGroupQuery","entityTypeCondition","entityTypesPart","toArray","buildQueryForAdvancedSearchGroups","groupsOperations","shiftDownOperators","isValidSearchGroup","attributesQuery","isValidSearchGroupAttribute","operation","shiftUpOperators","buildOperationsToString","groupOperation","isTableMode","collectColumnsForest","excludeIds","collectSpecialColumns","collectAttributeColumns","analyticsAttributes","getAdditionalColumns","deepFilter","elem","isReadableAttribute","subAttrs","parentId","parent","findNodeInForest","getFlatChildrenLeafs","walk","node","nodes","collectColumnsByIds","ids","isNested","defaultTabs","entityTypesFacetData","defaultColumnIds","columnsIds","orderComparator","item1","item2","indexOf","getEntityTypesForTabs","orderInMetadata","metadataOrderComparator","selectedValuesOrderComparator","filteredTabs","buildSelectFromColumns","specialColumns","specialColumn","needRequestAfterColumnsChanges","prevColumns","prevSelect","appConfig","setConfig","getAppConfigParam","getMaxRecommended","showServerError","ErrorPopup","message","showUpdateSearchStateErrors","showLoadSavedSearchErrors","showLoadEntityError","getRequestErrorMessage","add","sub","greaterThanOrEqualTo","floor","clamp","bigValue","digits","rclamp","setTenant","_tenant","setEnvironment","_env","parse","limit","isNumber","toUpperCase","momentDate","format","longDateFormat","BNMath","NMath","memoizedWrapInArray","lens","getter","setter","l","obj","arr","val","isObject","parseFloat","isFinite"],"sourceRoot":""}
|