@reltio/remotes 1.4.1600 → 1.4.1602

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.
Files changed (129) hide show
  1. package/1039.js +1 -1
  2. package/1146.js +1 -1
  3. package/1148.js +1 -1
  4. package/1148.js.map +1 -1
  5. package/1334.js +1 -1
  6. package/1425.js +1 -1
  7. package/1425.js.map +1 -1
  8. package/1572.js +2 -0
  9. package/1572.js.map +1 -0
  10. package/1584.js +1 -1
  11. package/1584.js.map +1 -1
  12. package/1664.js +1 -1
  13. package/1707.js +1 -1
  14. package/1790.js +1 -1
  15. package/1840.js +1 -1
  16. package/1840.js.map +1 -1
  17. package/1946.js +1 -1
  18. package/1946.js.map +1 -1
  19. package/2066.js +1 -1
  20. package/2066.js.map +1 -1
  21. package/2201.js +1 -1
  22. package/2400.js +1 -1
  23. package/2463.js +1 -1
  24. package/2463.js.map +1 -1
  25. package/2579.js +1 -1
  26. package/2641.js +1 -1
  27. package/2641.js.map +1 -1
  28. package/2775.js +1 -1
  29. package/3096.js +1 -1
  30. package/3123.js +1 -1
  31. package/3348.js +1 -1
  32. package/3358.js +1 -1
  33. package/3358.js.map +1 -1
  34. package/3383.js +1 -1
  35. package/3383.js.map +1 -1
  36. package/3424.js +1 -1
  37. package/3424.js.map +1 -1
  38. package/3463.js +1 -1
  39. package/3469.js +1 -1
  40. package/3538.js +1 -1
  41. package/3538.js.map +1 -1
  42. package/356.js +1 -1
  43. package/3603.js +1 -1
  44. package/3603.js.map +1 -1
  45. package/3875.js +1 -1
  46. package/3875.js.map +1 -1
  47. package/3879.js +1 -1
  48. package/3902.js +1 -1
  49. package/3902.js.map +1 -1
  50. package/3926.js +1 -1
  51. package/3926.js.map +1 -1
  52. package/4212.js +1 -1
  53. package/4390.js +1 -1
  54. package/4390.js.map +1 -1
  55. package/4426.js +1 -1
  56. package/4426.js.map +1 -1
  57. package/4703.js +1 -1
  58. package/4703.js.map +1 -1
  59. package/4806.js +1 -1
  60. package/4826.js +1 -1
  61. package/50.js +1 -1
  62. package/5108.js +1 -1
  63. package/5108.js.map +1 -1
  64. package/5171.js +1 -1
  65. package/5225.js +2 -0
  66. package/5225.js.map +1 -0
  67. package/527.js +1 -1
  68. package/5617.js +1 -1
  69. package/584.js +1 -1
  70. package/6020.js +1 -1
  71. package/6287.js +1 -1
  72. package/6287.js.map +1 -1
  73. package/6606.js +1 -1
  74. package/6606.js.map +1 -1
  75. package/673.js +1 -1
  76. package/673.js.map +1 -1
  77. package/6799.js +1 -1
  78. package/68.js +1 -1
  79. package/6844.js +1 -1
  80. package/6853.js +1 -1
  81. package/6860.js +1 -1
  82. package/6903.js +1 -1
  83. package/7293.js +1 -1
  84. package/735.js +1 -1
  85. package/7422.js +1 -1
  86. package/7422.js.map +1 -1
  87. package/7436.js +1 -1
  88. package/764.js +1 -1
  89. package/764.js.map +1 -1
  90. package/7829.js +1 -1
  91. package/7896.js +1 -1
  92. package/8075.js +1 -1
  93. package/820.js +1 -1
  94. package/8207.js +1 -1
  95. package/8322.js +1 -1
  96. package/8360.js +1 -1
  97. package/8360.js.map +1 -1
  98. package/8565.js +1 -1
  99. package/8741.js +1 -1
  100. package/8741.js.map +1 -1
  101. package/9016.js +1 -1
  102. package/9251.js +1 -1
  103. package/9251.js.map +1 -1
  104. package/9283.js +1 -1
  105. package/9283.js.map +1 -1
  106. package/9309.js +1 -1
  107. package/9328.js +1 -1
  108. package/9397.js +1 -1
  109. package/9397.js.map +1 -1
  110. package/9470.js +1 -1
  111. package/9622.js +1 -1
  112. package/9622.js.map +1 -1
  113. package/9719.js +1 -1
  114. package/9736.js +1 -1
  115. package/9736.js.map +1 -1
  116. package/9854.js +1 -1
  117. package/9854.js.map +1 -1
  118. package/9861.js +1 -1
  119. package/987.js +1 -1
  120. package/9960.js +1 -1
  121. package/9960.js.map +1 -1
  122. package/main.js +1 -1
  123. package/package.json +1 -1
  124. package/remoteEntry.js +1 -1
  125. package/remoteEntry.js.map +1 -1
  126. package/7056.js +0 -2
  127. package/7056.js.map +0 -1
  128. package/9383.js +0 -2
  129. package/9383.js.map +0 -1
package/9960.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"9960.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/EntityTypeBadge.tsx","webpack://@reltio/remotes/../search/src/actions/facets/constants.ts","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/services/entity/image.ts","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/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/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 from '@mui/material/Avatar';\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?: '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 {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import {makeStyles} from '@mui/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 flexShrink: 0\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 flexShrink: 0\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport Typography from '@mui/material/Typography';\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 color = entityType ? getPropWithInheritance(metadata, entityType, 'typeColor') : null;\n const entityTypeColor = color || 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","export enum FacetsActions {\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","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 from '@mui/material/TableSortLabel';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport Checkbox from '@mui/material/Checkbox';\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 {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 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: column.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} from '@mui/material/styles';\n\nimport {makeStyles} from '@mui/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 '@mui/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 from '@mui/material/Checkbox';\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 '@mui/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 resizeDebounceDelay\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(\n () => getBasicTableColumnsData(headColumns, sortingEnabled),\n [headColumns, sortingEnabled]\n );\n const rowsData = useMemo(\n () => getBasicTableRowsData(metadata, headColumns, entities),\n [metadata, headColumns, 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={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 resizeDebounceDelay: PropTypes.number\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 from '@mui/material/Popover';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemText from '@mui/material/ListItemText';\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 resizeDebounceDelay\n } = this.props;\n\n const {addColumnPopupOpen, configColumnPopupOpen, popupAnchor, filterText, 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 resizeDebounceDelay={resizeDebounceDelay}\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 '@mui/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 '@mui/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\n ref={ref}\n className={classnames(styles.query, className)}\n data-reltio-id=\"search-readable-query\"\n {...otherProps}\n >\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 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\nexport const ENTITIES_POST_SEARCH_URL = 'entities/_search';\nexport const ENTITIES_TOTAL_URL = 'entities/_total';\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 =\n (groupsLensPath, findGroupPath = defaultFindGroupPath) =>\n (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 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 name: 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 name: attrType.name,\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 (\n entity.children ? entity.children.concat(entity.children.map(getChildrenAttributes)).flat(Infinity) : []\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.relevanceScore, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.matchAction, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\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 anyPass,\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 DataTypes\n} from '@reltio/mdm-sdk';\n\nimport {formatNumberAsMetric, getNumbersMath} from '../../utils/general';\nimport {isLookupFacet, isMatchRuleFacet} from './collectFacets';\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 =\n ({values = []}) =>\n ({value}) =>\n values.includes(value);\nconst specialFacetsFilter = (config) => either(numberMoreThanZero, configHasValue(config));\nexport const isMetadataSourcedFacetedAttribute = anyPass([\n isMatchRuleFacet,\n propEq('fieldName', 'sourceSystems'),\n propEq('fieldName', 'roles'),\n pipe(prop('attrType'), isEnumAttrType)\n]);\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 const NumMath = getNumbersMath(type);\n return Object.keys(rawData)\n .map((key) => ({\n value: type === 'Long' ? new Decimal(key) : +key,\n number: rawData[key],\n label: key\n }))\n .sort((a, b) => NumMath.minus(a.value, b.value));\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 }\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 = '', masks = {}) => {\n const {dateTimeMask, dateMask} = masks;\n const formatValue = formatDataTypeValue({\n dataTypeDefinition: {type: DataTypes.TYPE_LOCAL_DATE},\n dateMask,\n dateTimeMask\n });\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 `${formatValue(range[0])} \\u2014 ${formatValue(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 filter\n} from 'ramda';\nimport {getAvailableFacetsGroupsList, getEntityTypeFacetConfig} from '../collectFacets';\nimport {getConfigForFacet} from './parsingUtils';\nimport {\n convertOldFacets,\n findAttributeTypeByUri,\n getEntityType,\n getOldRangeFacetValues,\n isAvailableEntityTypeUri,\n isRangeFacet,\n isTypeFacet,\n searchUriToAttrUri\n} from '@reltio/mdm-sdk';\nimport {getSpecialAttribute} from '../advancedSearch/collectSpecialAttributes';\nimport {getAdditionalAttributes} from '../collectAttributes';\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, canUserReadWorkflowDataTask) => {\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 const selectedEntityTypes = pipe(\n chain(propOr([], 'values')),\n filter(isAvailableEntityTypeUri(metadata))\n )(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(\n reduceAdvancedFromFacets(metadata, dataTenants, canUserReadWorkflowDataTask),\n {\n entityTypes: selectedEntityTypes,\n searchParams: []\n }\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(\n reduceNewFacetsData(facetsConfigs, selectedEntityTypes),\n {}\n );\n return {currentTenant, facetsConfigs, facetsData};\n }\n};\n\nexport const reduceAdvancedFromFacets = (metadata, dataTenants, canUserReadWorkflowDataTask) => (advanced, facet) => {\n const {entityType: entityTypeUri, fieldName, filter, values} = facet;\n const newSearchParam = {fieldName, filter: filter || 'equals', values: values || []};\n if (entityTypeUri) {\n const attrUri = searchUriToAttrUri(fieldName, entityTypeUri);\n const attrType = findAttributeTypeByUri(metadata, attrUri);\n const entityType = getEntityType(metadata, entityTypeUri);\n const additionalAttribute = getAdditionalAttributes(dataTenants, entityType).find(\n (attr) => attr.fieldName === fieldName\n );\n\n if (advanced.entityTypes.length === 0) {\n advanced.entityTypes.push(entityTypeUri);\n }\n if (advanced.entityTypes.includes(entityTypeUri)) {\n if (additionalAttribute) {\n advanced.searchParams.push(newSearchParam);\n } else if (attrType) {\n advanced.searchParams.push({...newSearchParam, uri: attrType.uri});\n }\n }\n } else {\n const specialAttribute = getSpecialAttribute(fieldName, dataTenants, canUserReadWorkflowDataTask);\n if (specialAttribute) {\n advanced.searchParams.push(newSearchParam);\n }\n }\n return advanced;\n};\n\nconst getFacetValues = (config, facet, selectedEntityTypes) => {\n if (isTypeFacet(config)) {\n return selectedEntityTypes;\n }\n if (isRangeFacet(config)) {\n return getOldRangeFacetValues(facet.values);\n }\n return facet.values;\n};\n\nexport const reduceNewFacetsData = (facetsConfigs, selectedEntityTypes) => (data, facet) => {\n const config = facetsConfigs.find((config) => config.fieldName === facet.fieldName);\n if (config) {\n const values = getFacetValues(config, facet, selectedEntityTypes);\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 {assocPath, curry} from 'ramda';\nimport {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} 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 replaceSearchResultsColumns = curry((searchResultsColumns, parsedState) => {\n return assocPath(['view', 'searchResultsColumns'], searchResultsColumns, parsedState);\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 newState.view = {\n searchResultsMode: view.searchResultsMode || DEFAULT_VIEW,\n entityTypeTab: view.entityTypeTab,\n sortField: view.sortField,\n sortOrder: view.sortOrder,\n searchResultsColumns: view.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 {\n currentTenant,\n advanced: advancedFromFacets,\n ...parsedFacets\n } = parseOldFacets(metadata, dataTenants, facets, canUserReadWorkflowDataTask);\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;\nexport {replaceSearchResultsColumns};\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 reject,\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 isDateType,\n isEmptyValue,\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\nconst collectSearchParamsForEntitiesRequest = (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 return {\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\nexport const buildEntitiesUrl = (searchParams, options = {}) =>\n `entities${stringifySearch(collectSearchParamsForEntitiesRequest(searchParams, options))}`;\n\nexport const buildEntitiesRequestOptions = (searchParams, options = {}) => ({\n method: 'POST',\n body: JSON.stringify(collectSearchParamsForEntitiesRequest(searchParams, options))\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: facet.pageNumber || 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 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 buildTotalParams = (searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const filterParam = buildPureSearchQuery(searchParams, excludeFields, globalFilter);\n\n return reject(isEmptyValue, {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n });\n};\n\nexport const buildTotalUrlQuery = (searchParams, excludeFields = [], options = {}) => {\n const urlSearch = buildTotalParams(searchParams, excludeFields, options);\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 buildTotalOptionsForQuery = (query) => {\n return {\n method: 'POST',\n body: Object.fromEntries(new URLSearchParams(query).entries())\n };\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 =\n (filtersRules = [], disableInSameAttributeValue = false) =>\n (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\nexport const 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: getRequestErrorMessage(error, 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 {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 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","classnames","iconRoot","src","onError","textRoot","contextSelector","CellRenderer","withContext","TableContext","makeStyles","textOverflow","overflow","whiteSpace","padding","fontSize","lineHeight","marginRight","borderRadius","flexShrink","fontWeight","entity","size","styles","useStyles","metadata","useSelector","mdmModule","entityTypeUri","type","entityType","getEntityType","entityTypeColor","getPropWithInheritance","theme","entityTypeLabel","getEntityTypeLabel","ExpandedValueTooltip","value","placement","Typography","style","backgroundColor","color","utils","component","FacetsActions","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","props","React","width","height","viewBox","version","xmlns","stroke","strokeWidth","fill","fillRule","opacity","d","ConfigureColumnsButton","headColumns","onSelectColumns","noop","popupAnchor","setPopupAnchor","filterText","setFilterText","handlePopupClose","handleColumnClick","useCallback","data","checked","columnsForest","memoizedCollectColumnsForestWithoutLabel","children","getChildrenLeafsByParentId","id","selectedColumns","concat","filter","column","find","child","SmallIconButton","tooltipTitle","i18n","ConfigureColumnsIcon","onClick","e","currentTarget","ConfigureColumnsPopup","open","anchorEl","onListItemClick","selected","onClose","onSearch","renderConfigureColumnsPopup","propTypes","PropTypes","HeadCellRenderer","headCellData","headIndex","sortOrder","sortField","sortHandler","canCheck","onCheck","headerCheckboxState","openConfigColumnPopup","classNames","path","Checkbox","indeterminate","onChange","sortable","TableSortLabel","active","Boolean","direction","classes","root","label","MoreVertIcon","withTableContext","pick","HeadCellRendererWithCheckbox","EntityProfileRenderer","getLabel","EntityAvatar","avatarClassName","imageClassName","EntityUriLink","getEntityUriForLink","DefaultRenderer","columnData","dataTypeDefinition","DataTypeValue","getTypeGraphIcon","getEntityTypeGraphIcon","getAbsoluteImageUrl","getImagePath","getApiPath","ReferenceRenderer","AvatarWithFallback","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","ImportModes","EntityRowButtons","values","entitiesImportStatus","selectedEntityUri","highlightedEntityIndex","rowIndex","uri","commonCellWrapperStyles","display","flexDirection","inactiveCell","background","inactiveBackground","inactiveSelectedBackground","selectedRowCell","lighten","palette","primary","main","clickable","cursor","justImported","withCellDecorationPropTypes","isSelected","onEntityClick","isJustImported","checkboxWrapper","alignItems","checkbox","marginLeft","withCheckboxPropTypes","isChecked","hasCheckbox","collapser","withCollapseButtonPropTypes","hasCollapseButton","pipe","Component","WithCollapseButton","componentProps","restProps","rowValue","CollapseRowButton","WithCheckbox","rawValue","WithCellDecoration","onCellClick","undefined","isInactive","isActiveObject","checkedEntitiesUris","columnIndex","isFirstColumn","defaultRenderRowCell","getAttributeHeight","cell","countAttributes","defaultHeight","Math","max","EntitiesTable","forwardRef","ref","entities","entityToHighlight","onReorderingColumn","dndColumnReorderingEnabled","columnsSize","onChangeColumnsSize","onSort","onEntityHover","logger","resizeDebounceDelay","tableClasses","useMemo","highlightRow","dragColumnHead","dragColumnBody","draggableHeadCell","cellWrapper","hoverRowIndex","setHoverRowIndex","handleRowHover","tableRef","useRef","useImperativeHandle","resetScrollbarPosition","current","resetLeft","handleSort","field","SORT_DIRECTION_ASC","order","SORT_DIRECTION_DESC","renderRowOverlay","prop","renderRowCell","RowCellRenderer","hoverStateEnabled","sortingEnabled","columnsData","map","attrType","getAttrDataTypeDefinition","resizable","autoResize","draggable","nestedPath","headCellRenderer","rowCellValueRenderer","getAttributeValueRenderer","getBasicTableColumnsData","rowsData","reduce","acc","assoc","getEntityId","attrSource","getOvAttributeValuesByPath","getRowValueForColumn","getBasicTableRowsData","findIndex","propEq","tableContext","BasicTable","fixFirstColumn","sortFieldClassName","containerClassName","defaultColumnWidth","headRowHeight","defaultColumnMinWidth","defaultRowHeight","sorting","dndColumnReorderingHandler","onRowHover","context","maxRowValuesCount","getRowCellHeight","defaultProps","displayName","memo","INSERT_LEFT","INSERT_RIGHT","HIDE","TEXT","ConfigColumnPopup","actions","Popover","List","action","index","handler","ListItem","button","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","importStatus","onImportStatusChange","hideDelay","dtssPath","tenant","ImportButton","mode","tooltip","importEntityFromDataTenant","customerTenant","then","success","uris","Error","ctSubscribedUris","setTimeout","catch","showImportFromDataTenantError","EntityType","importButtonPlaceholder","position","canImportFromDataTenant","canImport","isDataTenantEntity","canImportEntity","checkCanImportEntityOfType","isEntityImportedToCT","showImportButton","status","query","text","secondary","letterSpacing","READABLE_QUERY_PRIMITIVE_TYPES","ReadableSearchQuery","readableQuery","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","info","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","ENTITIES_POST_SEARCH_URL","ENTITIES_TOTAL_URL","PROP_NAME_OPERATOR","PROP_NAME_VALUES","PROP_NAME_FILTER","getEmptyAttributeObject","nanoid","getAttributeObject","attribute","getAttributeData","pathOr","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","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","identity","getSpecialAttribute","specialAttributeGroup","attr","createFacetForSpecialAttrType","facetProps","getFacetTypeForAttrType","singleValue","getDataTenantSpecialAttributeFieldName","additionalAttributesRules","SpecialAttrTypes","check","hasMatchRulesWithoutML","LogoIcon","xmlnsXlink","x1","y1","x2","y2","stopColor","offset","stopOpacity","transform","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","item","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","isMetadataSourcedFacetedAttribute","isEnumAttrType","defaultProcessing","rawData","sort","numericRangeTypeProcessing","NumMath","getNumbersMath","Decimal","minus","lookupProcessing","lookupCode","getLookupLabel","enumProcessing","enumerationList","booleanProcessing","formatDataTypeValue","entityTypeProcessing","allowedEntityTypes","orderByArrayComparator","_","lastUriPart","getLastUriPart","roleProcessing","roles","role","sourceSystemsProcessing","sources","matchRulesProcessing","matchGroups","uniqBy","isRaw","entries","uriOrLabel","count","matchGroup","min","getAttrTypeLookupCode","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","masks","dateTimeMask","dateMask","formatValue","DataTypes","range","formatNumberAsMetric","createRangeServiceFor","getRange","Maybe","orSome","needShowAllEntityTypeFacetItems","gt","getLookupsListFromFacets","codeValues","mergeLookupsLists","getUnresolvedLookupsListFromFacet","resolvedLookups","getUnresolvedLookupsList","getConfigForFacet","facetsGroups","isInFacetsConfigs","mergeFacetValuesByFieldName","reduceAdvancedFromFacets","advanced","newSearchParam","attrUri","searchUriToAttrUri","findAttributeTypeByUri","searchParams","reduceNewFacetsData","facetsConfigs","isRangeFacet","getOldRangeFacetValues","getFacetValues","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","replaceSearchResultsColumns","searchResultsColumns","parsedState","assocPath","parseNewSearchState","keyword","view","searchOptions","currentSavedSearchUri","currentTenant","parseAdvancedSearch","facetsData","isAvailableEntityTypeUri","availableFacetsGroupsList","dissoc","getFacetConfig","reduceFacetsConfig","parseFacets","searchResultsMode","entityTypeTab","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","revertScale","scale","toFixed","div","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","from","to","bars","isFloatingType","ceil","stringifySearch","urlSearchObj","queryString","strict","isNotEmptyParam","param","rawFilter","prepareDataTenantFilters","getFieldNameForRequestRule","extraBuildRules","otherData","cond","basicFilterBuildRules","buildFilterQueryString","wrapQueryWithBrackets","buildQuery","buildQueryTree","buildFilterHierarchyList","collectSearchParamsForEntitiesRequest","select","forceOvOnly","activityFilter","globalFilter","filterParam","addGlobalFilterToQuery","page","rowsPerPage","buildSelectParam","scoreEnabled","addToSearchOptions","activeness","buildEntitiesUrl","buildEntitiesRequestOptions","method","body","JSON","stringify","splitted","join","buildEntitiesByUrisRequest","entitiesUris","url","headers","selectParams","ActivityFilters","uniq","businessCardAttributeURIsSelectRule","geoLocationAttributesSelectRule","latitude","longitude","collectAdditionalSelect","selectRules","entityTypesForSearch","pluck","additionalAttrs","attrUris","rule","getFirstLevelSearchUri","buildFacetsRequest","excludeFields","extraUrlParams","dataTenantSearchParams","forceInclude","facetBody","pageNo","pageNumber","includeFilter","urlSearch","buildPotentialMatchesFacetUrl","env","getEnvironment","getTenant","preparePotentialMatchesUrlSearch","buildMatchScoresFacetUrl","buildPureSearchQuery","buildHistogramUrl","restOptions","buildStatsUrl","buildTotalParams","isEmptyValue","buildTotalUrlQuery","callSearchRequestForTenant","searchRequest","requestForDataTenant","requestProvider","buildTotalOptionsForQuery","fromEntries","URLSearchParams","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","getRequestErrorMessage","showUpdateSearchStateErrors","showLoadSavedSearchErrors","showLoadEntityError","add","sub","greaterThanOrEqualTo","floor","clamp","bigValue","digits","rclamp","setTenant","_tenant","setEnvironment","_env","parse","limit","isNumber","toUpperCase","BNMath","NMath","memoizedWrapInArray","lens","getter","setter","l","obj","arr","val","isObject","parseFloat","isFinite"],"sourceRoot":""}
1
+ {"version":3,"file":"9960.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/EntityTypeBadge.tsx","webpack://@reltio/remotes/../search/src/actions/facets/constants.ts","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/services/entity/image.ts","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/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/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 from '@mui/material/Avatar';\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?: '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 {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import {makeStyles} from '@mui/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 flexShrink: 0\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 flexShrink: 0\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport Typography from '@mui/material/Typography';\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 color = entityType ? getPropWithInheritance(metadata, entityType, 'typeColor') : null;\n const entityTypeColor = color || 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","export enum FacetsActions {\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","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 from '@mui/material/TableSortLabel';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport Checkbox from '@mui/material/Checkbox';\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 {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 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: column.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} from '@mui/material/styles';\n\nimport {makeStyles} from '@mui/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 '@mui/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 from '@mui/material/Checkbox';\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 '@mui/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 resizeDebounceDelay\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(\n () => getBasicTableColumnsData(headColumns, sortingEnabled),\n [headColumns, sortingEnabled]\n );\n const rowsData = useMemo(\n () => getBasicTableRowsData(metadata, headColumns, entities),\n [metadata, headColumns, 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={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 resizeDebounceDelay: PropTypes.number\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 from '@mui/material/Popover';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemText from '@mui/material/ListItemText';\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 resizeDebounceDelay\n } = this.props;\n\n const {addColumnPopupOpen, configColumnPopupOpen, popupAnchor, filterText, 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 resizeDebounceDelay={resizeDebounceDelay}\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 '@mui/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 '@mui/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\n ref={ref}\n className={classnames(styles.query, className)}\n data-reltio-id=\"search-readable-query\"\n {...otherProps}\n >\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 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\nexport const ENTITIES_POST_SEARCH_URL = 'entities/_search';\nexport const ENTITIES_TOTAL_URL = 'entities/_total';\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 =\n (groupsLensPath, findGroupPath = defaultFindGroupPath) =>\n (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 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 name: 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 name: attrType.name,\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 (\n entity.children ? entity.children.concat(entity.children.map(getChildrenAttributes)).flat(Infinity) : []\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.relevanceScore, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.matchAction, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\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 anyPass,\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 DataTypes\n} from '@reltio/mdm-sdk';\n\nimport {formatNumberAsMetric, getNumbersMath} from '../../utils/general';\nimport {isLookupFacet, isMatchRuleFacet} from './collectFacets';\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 =\n ({values = []}) =>\n ({value}) =>\n values.includes(value);\nconst specialFacetsFilter = (config) => either(numberMoreThanZero, configHasValue(config));\nexport const isMetadataSourcedFacetedAttribute = anyPass([\n isMatchRuleFacet,\n propEq('fieldName', 'sourceSystems'),\n propEq('fieldName', 'roles'),\n pipe(prop('attrType'), isEnumAttrType)\n]);\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 const NumMath = getNumbersMath(type);\n return Object.keys(rawData)\n .map((key) => ({\n value: type === 'Long' ? new Decimal(key) : +key,\n number: rawData[key],\n label: key\n }))\n .sort((a, b) => NumMath.minus(a.value, b.value));\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 }\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 = '', masks = {}) => {\n const {dateTimeMask, dateMask} = masks;\n const formatValue = formatDataTypeValue({\n dataTypeDefinition: {type: DataTypes.TYPE_LOCAL_DATE},\n dateMask,\n dateTimeMask\n });\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 `${formatValue(range[0])} \\u2014 ${formatValue(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 filter\n} from 'ramda';\nimport {getAvailableFacetsGroupsList, getEntityTypeFacetConfig} from '../collectFacets';\nimport {getConfigForFacet} from './parsingUtils';\nimport {\n convertOldFacets,\n findAttributeTypeByUri,\n getEntityType,\n getOldRangeFacetValues,\n isAvailableEntityTypeUri,\n isRangeFacet,\n isTypeFacet,\n searchUriToAttrUri\n} from '@reltio/mdm-sdk';\nimport {getSpecialAttribute} from '../advancedSearch/collectSpecialAttributes';\nimport {getAdditionalAttributes} from '../collectAttributes';\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, canUserReadWorkflowDataTask) => {\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 const selectedEntityTypes = pipe(\n chain(propOr([], 'values')),\n filter(isAvailableEntityTypeUri(metadata))\n )(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(\n reduceAdvancedFromFacets(metadata, dataTenants, canUserReadWorkflowDataTask),\n {\n entityTypes: selectedEntityTypes,\n searchParams: []\n }\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(\n reduceNewFacetsData(facetsConfigs, selectedEntityTypes),\n {}\n );\n return {currentTenant, facetsConfigs, facetsData};\n }\n};\n\nexport const reduceAdvancedFromFacets = (metadata, dataTenants, canUserReadWorkflowDataTask) => (advanced, facet) => {\n const {entityType: entityTypeUri, fieldName, filter, values} = facet;\n const newSearchParam = {fieldName, filter: filter || 'equals', values: values || []};\n if (entityTypeUri) {\n const attrUri = searchUriToAttrUri(fieldName, entityTypeUri);\n const attrType = findAttributeTypeByUri(metadata, attrUri);\n const entityType = getEntityType(metadata, entityTypeUri);\n const additionalAttribute = getAdditionalAttributes(dataTenants, entityType).find(\n (attr) => attr.fieldName === fieldName\n );\n\n if (advanced.entityTypes.length === 0) {\n advanced.entityTypes.push(entityTypeUri);\n }\n if (advanced.entityTypes.includes(entityTypeUri)) {\n if (additionalAttribute) {\n advanced.searchParams.push(newSearchParam);\n } else if (attrType) {\n advanced.searchParams.push({...newSearchParam, uri: attrType.uri});\n }\n }\n } else {\n const specialAttribute = getSpecialAttribute(fieldName, dataTenants, canUserReadWorkflowDataTask);\n if (specialAttribute) {\n advanced.searchParams.push(newSearchParam);\n }\n }\n return advanced;\n};\n\nconst getFacetValues = (config, facet, selectedEntityTypes) => {\n if (isTypeFacet(config)) {\n return selectedEntityTypes;\n }\n if (isRangeFacet(config)) {\n return getOldRangeFacetValues(facet.values);\n }\n return facet.values;\n};\n\nexport const reduceNewFacetsData = (facetsConfigs, selectedEntityTypes) => (data, facet) => {\n const config = facetsConfigs.find((config) => config.fieldName === facet.fieldName);\n if (config) {\n const values = getFacetValues(config, facet, selectedEntityTypes);\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 {assocPath, curry} from 'ramda';\nimport {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} 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 replaceSearchResultsColumns = curry((searchResultsColumns, parsedState) => {\n return assocPath(['view', 'searchResultsColumns'], searchResultsColumns, parsedState);\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 newState.view = {\n searchResultsMode: view.searchResultsMode || DEFAULT_VIEW,\n entityTypeTab: view.entityTypeTab,\n sortField: view.sortField,\n sortOrder: view.sortOrder,\n searchResultsColumns: view.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 {\n currentTenant,\n advanced: advancedFromFacets,\n ...parsedFacets\n } = parseOldFacets(metadata, dataTenants, facets, canUserReadWorkflowDataTask);\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;\nexport {replaceSearchResultsColumns};\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 reject,\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 isDateType,\n isEmptyValue,\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\nconst collectSearchParamsForEntitiesRequest = (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 return {\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\nexport const buildEntitiesUrl = (searchParams, options = {}) =>\n `entities${stringifySearch(collectSearchParamsForEntitiesRequest(searchParams, options))}`;\n\nexport const buildEntitiesRequestOptions = (searchParams, options = {}) => ({\n method: 'POST',\n body: JSON.stringify(collectSearchParamsForEntitiesRequest(searchParams, options))\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: facet.pageNumber || 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 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 buildTotalParams = (searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const filterParam = buildPureSearchQuery(searchParams, excludeFields, globalFilter);\n\n return reject(isEmptyValue, {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n });\n};\n\nexport const buildTotalUrlQuery = (searchParams, excludeFields = [], options = {}) => {\n const urlSearch = buildTotalParams(searchParams, excludeFields, options);\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 buildTotalOptionsForQuery = (query) => {\n return {\n method: 'POST',\n body: Object.fromEntries(new URLSearchParams(query).entries())\n };\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 =\n (filtersRules = [], disableInSameAttributeValue = false) =>\n (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\nexport const 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: getRequestErrorMessage(error, 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 {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 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","classnames","iconRoot","src","onError","textRoot","contextSelector","CellRenderer","withContext","TableContext","makeStyles","textOverflow","overflow","whiteSpace","padding","fontSize","lineHeight","marginRight","borderRadius","flexShrink","fontWeight","entity","size","styles","useStyles","metadata","useSelector","mdmModule","entityTypeUri","type","entityType","getEntityType","entityTypeColor","getPropWithInheritance","theme","entityTypeLabel","getEntityTypeLabel","ExpandedValueTooltip","value","placement","Typography","style","backgroundColor","color","utils","component","FacetsActions","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","props","React","width","height","viewBox","version","xmlns","stroke","strokeWidth","fill","fillRule","opacity","d","ConfigureColumnsButton","headColumns","onSelectColumns","noop","popupAnchor","setPopupAnchor","filterText","setFilterText","handlePopupClose","handleColumnClick","useCallback","data","checked","columnsForest","memoizedCollectColumnsForestWithoutLabel","children","getChildrenLeafsByParentId","id","selectedColumns","concat","filter","column","find","child","SmallIconButton","tooltipTitle","i18n","ConfigureColumnsIcon","onClick","e","currentTarget","ConfigureColumnsPopup","open","anchorEl","onListItemClick","selected","onClose","onSearch","renderConfigureColumnsPopup","propTypes","PropTypes","HeadCellRenderer","headCellData","headIndex","sortOrder","sortField","sortHandler","canCheck","onCheck","headerCheckboxState","openConfigColumnPopup","classNames","path","Checkbox","indeterminate","onChange","sortable","TableSortLabel","active","Boolean","direction","classes","root","label","MoreVertIcon","withTableContext","pick","HeadCellRendererWithCheckbox","EntityProfileRenderer","getLabel","EntityAvatar","avatarClassName","imageClassName","EntityUriLink","getEntityUriForLink","DefaultRenderer","columnData","dataTypeDefinition","DataTypeValue","getTypeGraphIcon","getEntityTypeGraphIcon","getAbsoluteImageUrl","getImagePath","getApiPath","ReferenceRenderer","AvatarWithFallback","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","ImportModes","EntityRowButtons","values","entitiesImportStatus","selectedEntityUri","highlightedEntityIndex","rowIndex","uri","commonCellWrapperStyles","display","flexDirection","inactiveCell","background","inactiveBackground","inactiveSelectedBackground","selectedRowCell","lighten","palette","primary","main","clickable","cursor","justImported","withCellDecorationPropTypes","isSelected","onEntityClick","isJustImported","checkboxWrapper","alignItems","checkbox","marginLeft","withCheckboxPropTypes","isChecked","hasCheckbox","collapser","withCollapseButtonPropTypes","hasCollapseButton","pipe","Component","WithCollapseButton","componentProps","restProps","rowValue","CollapseRowButton","WithCheckbox","rawValue","WithCellDecoration","onCellClick","undefined","isInactive","isActiveObject","checkedEntitiesUris","columnIndex","isFirstColumn","defaultRenderRowCell","getAttributeHeight","cell","countAttributes","defaultHeight","Math","max","EntitiesTable","forwardRef","ref","entities","entityToHighlight","onReorderingColumn","dndColumnReorderingEnabled","columnsSize","onChangeColumnsSize","onSort","onEntityHover","logger","resizeDebounceDelay","tableClasses","useMemo","highlightRow","dragColumnHead","dragColumnBody","draggableHeadCell","cellWrapper","hoverRowIndex","setHoverRowIndex","handleRowHover","tableRef","useRef","useImperativeHandle","resetScrollbarPosition","current","resetLeft","handleSort","field","SORT_DIRECTION_ASC","order","SORT_DIRECTION_DESC","renderRowOverlay","prop","renderRowCell","RowCellRenderer","hoverStateEnabled","sortingEnabled","columnsData","map","attrType","getAttrDataTypeDefinition","resizable","autoResize","draggable","nestedPath","headCellRenderer","rowCellValueRenderer","getAttributeValueRenderer","getBasicTableColumnsData","rowsData","reduce","acc","assoc","getEntityId","attrSource","getOvAttributeValuesByPath","getRowValueForColumn","getBasicTableRowsData","findIndex","propEq","tableContext","BasicTable","fixFirstColumn","sortFieldClassName","containerClassName","defaultColumnWidth","headRowHeight","defaultColumnMinWidth","defaultRowHeight","sorting","dndColumnReorderingHandler","onRowHover","context","maxRowValuesCount","getRowCellHeight","defaultProps","displayName","memo","INSERT_LEFT","INSERT_RIGHT","HIDE","TEXT","ConfigColumnPopup","actions","Popover","List","action","index","handler","ListItem","button","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","importStatus","onImportStatusChange","hideDelay","dtssPath","tenant","ImportButton","mode","tooltip","importEntityFromDataTenant","customerTenant","then","success","uris","Error","ctSubscribedUris","setTimeout","catch","showImportFromDataTenantError","EntityType","importButtonPlaceholder","position","canImportFromDataTenant","canImport","isDataTenantEntity","canImportEntity","checkCanImportEntityOfType","isEntityImportedToCT","showImportButton","status","query","text","secondary","letterSpacing","READABLE_QUERY_PRIMITIVE_TYPES","ReadableSearchQuery","readableQuery","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","info","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","ENTITIES_POST_SEARCH_URL","ENTITIES_TOTAL_URL","PROP_NAME_OPERATOR","PROP_NAME_VALUES","PROP_NAME_FILTER","getEmptyAttributeObject","nanoid","getAttributeObject","attribute","getAttributeData","pathOr","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","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","identity","getSpecialAttribute","specialAttributeGroup","attr","createFacetForSpecialAttrType","facetProps","getFacetTypeForAttrType","singleValue","getDataTenantSpecialAttributeFieldName","additionalAttributesRules","SpecialAttrTypes","check","hasMatchRulesWithoutML","LogoIcon","xmlnsXlink","x1","y1","x2","y2","stopColor","offset","stopOpacity","transform","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","item","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","isMetadataSourcedFacetedAttribute","isEnumAttrType","defaultProcessing","rawData","sort","numericRangeTypeProcessing","NumMath","getNumbersMath","Decimal","minus","lookupProcessing","lookupCode","getLookupLabel","enumProcessing","enumerationList","booleanProcessing","formatDataTypeValue","entityTypeProcessing","allowedEntityTypes","orderByArrayComparator","_","lastUriPart","getLastUriPart","roleProcessing","roles","role","sourceSystemsProcessing","sources","matchRulesProcessing","matchGroups","uniqBy","isRaw","entries","uriOrLabel","count","matchGroup","min","getAttrTypeLookupCode","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","masks","dateTimeMask","dateMask","formatValue","DataTypes","range","formatNumberAsMetric","createRangeServiceFor","getRange","Maybe","orSome","needShowAllEntityTypeFacetItems","gt","getLookupsListFromFacets","codeValues","mergeLookupsLists","getUnresolvedLookupsListFromFacet","resolvedLookups","getUnresolvedLookupsList","getConfigForFacet","facetsGroups","isInFacetsConfigs","mergeFacetValuesByFieldName","reduceAdvancedFromFacets","advanced","newSearchParam","attrUri","searchUriToAttrUri","findAttributeTypeByUri","searchParams","reduceNewFacetsData","facetsConfigs","isRangeFacet","getOldRangeFacetValues","getFacetValues","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","replaceSearchResultsColumns","searchResultsColumns","parsedState","assocPath","parseNewSearchState","keyword","view","searchOptions","currentSavedSearchUri","currentTenant","parseAdvancedSearch","facetsData","isAvailableEntityTypeUri","availableFacetsGroupsList","dissoc","getFacetConfig","reduceFacetsConfig","parseFacets","searchResultsMode","entityTypeTab","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","revertScale","scale","toFixed","div","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","from","to","bars","isFloatingType","ceil","stringifySearch","urlSearchObj","queryString","strict","isNotEmptyParam","param","rawFilter","prepareDataTenantFilters","getFieldNameForRequestRule","extraBuildRules","otherData","cond","basicFilterBuildRules","buildFilterQueryString","wrapQueryWithBrackets","buildQuery","buildQueryTree","buildFilterHierarchyList","collectSearchParamsForEntitiesRequest","select","forceOvOnly","activityFilter","globalFilter","filterParam","addGlobalFilterToQuery","page","rowsPerPage","buildSelectParam","scoreEnabled","addToSearchOptions","activeness","buildEntitiesUrl","buildEntitiesRequestOptions","method","body","JSON","stringify","splitted","join","buildEntitiesByUrisRequest","entitiesUris","url","headers","selectParams","ActivityFilters","uniq","businessCardAttributeURIsSelectRule","geoLocationAttributesSelectRule","latitude","longitude","collectAdditionalSelect","selectRules","entityTypesForSearch","pluck","additionalAttrs","attrUris","rule","getFirstLevelSearchUri","buildFacetsRequest","excludeFields","extraUrlParams","dataTenantSearchParams","forceInclude","facetBody","pageNo","pageNumber","includeFilter","urlSearch","buildPotentialMatchesFacetUrl","env","getEnvironment","getTenant","preparePotentialMatchesUrlSearch","buildMatchScoresFacetUrl","buildPureSearchQuery","buildHistogramUrl","restOptions","buildStatsUrl","buildTotalParams","isEmptyValue","buildTotalUrlQuery","callSearchRequestForTenant","searchRequest","requestForDataTenant","requestProvider","buildTotalOptionsForQuery","fromEntries","URLSearchParams","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","getRequestErrorMessage","showUpdateSearchStateErrors","showLoadSavedSearchErrors","showLoadEntityError","add","sub","greaterThanOrEqualTo","floor","clamp","bigValue","digits","rclamp","setTenant","_tenant","setEnvironment","_env","parse","limit","isNumber","toUpperCase","BNMath","NMath","memoizedWrapInArray","lens","getter","setter","l","obj","arr","val","isObject","parseFloat","isFinite"],"sourceRoot":""}