@reltio/remotes 1.4.1177 → 1.4.1179

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 (166) hide show
  1. package/1136.js +2 -1
  2. package/1136.js.map +1 -0
  3. package/1196.css +2 -0
  4. package/1196.css.map +1 -0
  5. package/1196.js +2 -1
  6. package/1196.js.map +1 -0
  7. package/1274.js +2 -1
  8. package/1274.js.map +1 -0
  9. package/1396.js +2 -1
  10. package/1396.js.map +1 -0
  11. package/1406.js +2 -1
  12. package/1406.js.map +1 -0
  13. package/1635.js +2 -1
  14. package/1635.js.map +1 -0
  15. package/1920.js +2 -1
  16. package/1920.js.map +1 -0
  17. package/1957.css +2 -0
  18. package/1957.css.map +1 -0
  19. package/1957.js +2 -1
  20. package/1957.js.map +1 -0
  21. package/2114.js +2 -1
  22. package/2114.js.map +1 -0
  23. package/2244.js +2 -1
  24. package/2244.js.map +1 -0
  25. package/2393.js +2 -1
  26. package/2393.js.map +1 -0
  27. package/2605.js +2 -1
  28. package/2605.js.map +1 -0
  29. package/2890.js +2 -1
  30. package/2890.js.map +1 -0
  31. package/2899.js +2 -1
  32. package/2899.js.map +1 -0
  33. package/3126.js +2 -1
  34. package/3126.js.map +1 -0
  35. package/3213.js +2 -1
  36. package/3213.js.map +1 -0
  37. package/3348.js +2 -1
  38. package/3348.js.map +1 -0
  39. package/3405.js +2 -1
  40. package/3405.js.map +1 -0
  41. package/350.js +2 -1
  42. package/350.js.map +1 -0
  43. package/366.js +2 -1
  44. package/366.js.map +1 -0
  45. package/3745.js +2 -1
  46. package/3745.js.map +1 -0
  47. package/3980.js +2 -1
  48. package/3980.js.map +1 -0
  49. package/3981.js +2 -1
  50. package/3981.js.map +1 -0
  51. package/4132.js +2 -1
  52. package/4132.js.map +1 -0
  53. package/4277.js +2 -1
  54. package/4277.js.map +1 -0
  55. package/4361.js +2 -1
  56. package/4361.js.map +1 -0
  57. package/4582.js +2 -1
  58. package/4582.js.map +1 -0
  59. package/4689.js +2 -1
  60. package/4689.js.map +1 -0
  61. package/4803.js +2 -1
  62. package/4803.js.map +1 -0
  63. package/4843.js +1 -1
  64. package/4863.js +2 -1
  65. package/4863.js.map +1 -0
  66. package/4889.js +2 -1
  67. package/4889.js.map +1 -0
  68. package/5026.js +2 -1
  69. package/5026.js.map +1 -0
  70. package/5198.js +2 -1
  71. package/5198.js.map +1 -0
  72. package/5312.js +2 -1
  73. package/5312.js.map +1 -0
  74. package/5400.js +2 -1
  75. package/5400.js.map +1 -0
  76. package/5701.js +2 -1
  77. package/5701.js.map +1 -0
  78. package/5709.js +2 -1
  79. package/5709.js.map +1 -0
  80. package/5714.js +2 -1
  81. package/5714.js.map +1 -0
  82. package/5720.js +2 -1
  83. package/5720.js.map +1 -0
  84. package/5797.js +2 -1
  85. package/5797.js.map +1 -0
  86. package/5805.js +2 -1
  87. package/5805.js.map +1 -0
  88. package/5884.js +2 -1
  89. package/5884.js.map +1 -0
  90. package/5912.js +2 -1
  91. package/5912.js.map +1 -0
  92. package/5953.js +2 -1
  93. package/5953.js.map +1 -0
  94. package/621.js +2 -1
  95. package/621.js.map +1 -0
  96. package/6244.js +2 -1
  97. package/6244.js.map +1 -0
  98. package/6248.js +2 -1
  99. package/6248.js.map +1 -0
  100. package/6596.css +2 -0
  101. package/6596.css.map +1 -0
  102. package/6596.js +2 -1
  103. package/6596.js.map +1 -0
  104. package/6710.js +2 -1
  105. package/6710.js.map +1 -0
  106. package/6719.js +2 -1
  107. package/6719.js.map +1 -0
  108. package/6971.js +2 -1
  109. package/6971.js.map +1 -0
  110. package/7147.js +2 -1
  111. package/7147.js.map +1 -0
  112. package/7265.js +2 -1
  113. package/7265.js.map +1 -0
  114. package/7526.js +2 -1
  115. package/7526.js.map +1 -0
  116. package/7621.js +2 -1
  117. package/7621.js.map +1 -0
  118. package/7737.js +2 -1
  119. package/7737.js.map +1 -0
  120. package/781.js +2 -1
  121. package/781.js.map +1 -0
  122. package/79.js +2 -1
  123. package/79.js.map +1 -0
  124. package/8047.js +2 -1
  125. package/8047.js.map +1 -0
  126. package/8122.js +2 -1
  127. package/8122.js.map +1 -0
  128. package/8148.js +2 -1
  129. package/8148.js.map +1 -0
  130. package/8419.js +2 -1
  131. package/8419.js.map +1 -0
  132. package/8570.js +2 -1
  133. package/8570.js.map +1 -0
  134. package/8581.js +2 -1
  135. package/8581.js.map +1 -0
  136. package/8753.js +2 -1
  137. package/8753.js.map +1 -0
  138. package/8794.js +2 -1
  139. package/8794.js.map +1 -0
  140. package/8969.js +2 -1
  141. package/8969.js.map +1 -0
  142. package/9394.js +2 -1
  143. package/9394.js.map +1 -0
  144. package/9431.js +2 -1
  145. package/9431.js.map +1 -0
  146. package/9446.js +2 -1
  147. package/9446.js.map +1 -0
  148. package/9503.js +2 -1
  149. package/9503.js.map +1 -0
  150. package/9551.js +2 -1
  151. package/9551.js.map +1 -0
  152. package/9630.js +2 -1
  153. package/9630.js.map +1 -0
  154. package/9838.css +2 -0
  155. package/9838.css.map +1 -0
  156. package/9838.js +2 -1
  157. package/9838.js.map +1 -0
  158. package/9854.js +2 -1
  159. package/9854.js.map +1 -0
  160. package/9983.js +2 -1
  161. package/9983.js.map +1 -0
  162. package/main.js +2 -1
  163. package/main.js.map +1 -0
  164. package/package.json +1 -1
  165. package/remoteEntry.js +2 -1
  166. package/remoteEntry.js.map +1 -0
package/350.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"350.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/ImportButton/styles.ts","webpack://@reltio/remotes/../components/src/components/ImportButton/ImportButton.tsx","webpack://@reltio/remotes/../components/src/components/ProfilesList/helpers.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/index.ts","webpack://@reltio/remotes/../components/src/components/ProfilesList/ProfilesList.tsx","webpack://@reltio/remotes/../search/src/components/ConfigureColumnsButton/show_hide_columns.svg","webpack://@reltio/remotes/../search/src/components/ConfigureColumnsButton/ConfigureColumnsButton.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/HeadCellRenderer/styles.less?a0e2","webpack://@reltio/remotes/../search/src/components/EntitiesTable/HeadCellRenderer/HeadCellRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/styles.less?da5d","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/EntityProfileRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/DefaultRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/ReferenceRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/BlobRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/ImageRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/getAttributeValueRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/entitiesTableUtils.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/EntityRowOverlay/EntityRowOverlay.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCellDecoration/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCellDecoration/withCellDecoration.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCheckbox/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCheckbox/withCheckbox.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCollapseButton/styles.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/HOCs/withCollapseButton/withCollapseButton.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/RowCellRenderer/RowCellRenderer.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/AttributeRenderers/heightCalculator.js","webpack://@reltio/remotes/../search/src/components/EntitiesTable/EntitiesTable.js","webpack://@reltio/remotes/../search/src/components/EntitiesTableWithConfigurableColumns/ConfigColumnPopup/ConfigColumnPopup.js","webpack://@reltio/remotes/../search/src/components/EntitiesTableWithConfigurableColumns/EntitiesTableWithConfigurableColumns.js","webpack://@reltio/remotes/../search/src/components/ImportEntityButton/ImportEntityButton.js","webpack://@reltio/remotes/../search/src/components/EntityRowButtons/styles.ts","webpack://@reltio/remotes/../search/src/components/EntityRowButtons/EntityRowButtons.tsx","webpack://@reltio/remotes/../search/src/components/ReadableSearchQuery/styles.js","webpack://@reltio/remotes/../search/src/components/ReadableSearchQuery/ReadableSearchQuery.js","webpack://@reltio/remotes/../search/src/constants/actionTypes/facets.js","webpack://@reltio/remotes/../search/src/constants/actionTypes/search.js","webpack://@reltio/remotes/../search/src/constants/constants.js","webpack://@reltio/remotes/../search/src/reducers/helpers/queryBuilderHelpers.js","webpack://@reltio/remotes/../search/src/sagas/queryBuilderSaga.js","webpack://@reltio/remotes/../search/src/services/entity/image.ts","webpack://@reltio/remotes/../search/src/services/search/advancedSearch/collectSpecialAttributes.js","webpack://@reltio/remotes/../search/src/services/search/icons/ml-recommended.svg","webpack://@reltio/remotes/../search/src/services/search/collectAttributes.js","webpack://@reltio/remotes/../search/src/services/search/collectFacets.js","webpack://@reltio/remotes/../search/src/services/search/converting/createAdvancedSearchFromFacets.js","webpack://@reltio/remotes/../search/src/services/search/entityTypes.js","webpack://@reltio/remotes/../search/src/services/search/facet.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parsingUtils.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseFacets.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldFacets.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseAttributeData.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldAdvancedSearch.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldView.js","webpack://@reltio/remotes/../search/src/services/search/parsing/parseOldSearchOptions.js","webpack://@reltio/remotes/../search/src/services/search/parsing/index.js","webpack://@reltio/remotes/../search/src/services/search/rangeFacet.js","webpack://@reltio/remotes/../search/src/utils/url.js","webpack://@reltio/remotes/../search/src/services/search/searchEngine.js","webpack://@reltio/remotes/../search/src/services/search/searchResults.js","webpack://@reltio/remotes/../search/src/utils/config.js","webpack://@reltio/remotes/../search/src/utils/error.js","webpack://@reltio/remotes/../search/src/utils/bigNumbersMath.js","webpack://@reltio/remotes/../search/src/utils/numbersMath.js","webpack://@reltio/remotes/../search/src/utils/general.js","webpack://@reltio/remotes/../search/src/utils/lenses.js","webpack://@reltio/remotes/../search/src/utils/maybe.js","webpack://@reltio/remotes/../search/src/components/SearchResultsArea/Headers/styles.less?0cb4"],"sourcesContent":["import {Avatar as Avatar} from '@material-ui/core';\nimport classnames from 'classnames';\nimport React, {useEffect, useState} from 'react';\n\nenum AvatarStates {\n ICON_MODE,\n TEXT_MODE,\n ERROR_MODE\n}\ntype Props = {\n className?: string;\n icon?: string;\n avatarText?: string;\n variant?: 'circle' | 'circular' | 'rounded' | 'square';\n rootClasses?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst AvatarWithFallback = ({className, icon, avatarText, rootClasses, ...otherProps}: Props) => {\n const [state, setState] = useState<AvatarStates>(null);\n useEffect(() => {\n if (icon) {\n setState(AvatarStates.ICON_MODE);\n } else {\n setState(AvatarStates.TEXT_MODE);\n }\n }, [icon, avatarText]);\n const onImageLoadFail = () => {\n setState(AvatarStates.ERROR_MODE);\n };\n\n switch (state) {\n case AvatarStates.ICON_MODE:\n return (\n <Avatar\n className={classnames(className, rootClasses?.iconRoot)}\n src={icon}\n onError={onImageLoadFail}\n {...otherProps}\n />\n );\n case AvatarStates.TEXT_MODE:\n case AvatarStates.ERROR_MODE:\n return (\n <Avatar className={classnames(className, rootClasses?.textRoot)} {...otherProps}>\n {avatarText}\n </Avatar>\n );\n default:\n return null;\n }\n};\n\nexport default AvatarWithFallback;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '24px',\n height: '24px'\n },\n check: {\n color: '#8CC152'\n }\n});\n","import React from 'react';\n\nimport {CircularProgress as CircularProgress} from '@material-ui/core';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport DoneIcon from '@material-ui/icons/Done';\nimport {noop} from '../../core';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nexport enum ImportModes {\n INIT = 1,\n PROGRESS = 2,\n SUCCESS = 3,\n DONE = 4\n}\n\ntype Props = {\n tooltip?: string;\n onClick?: () => void;\n classes?: Partial<Record<'root' | 'spinner' | 'button' | 'check', string>>;\n mode?: ImportModes;\n};\n\nconst ImportButton = ({classes = {}, tooltip = '', onClick = noop, mode = ImportModes.INIT}: Props) => {\n const styles = useStyles();\n\n const renderCurrentMode = () => {\n switch (mode) {\n case ImportModes.INIT: {\n return (\n <SmallIconButtonWithTooltip\n className={classes.button}\n size={'M'}\n tooltipTitle={tooltip}\n icon={CloudDownloadIcon}\n onClick={onClick}\n />\n );\n }\n case ImportModes.PROGRESS:\n return <CircularProgress className={classes.spinner} size={24} />;\n case ImportModes.SUCCESS:\n return <DoneIcon className={classnames(styles.check, classes.check)} />;\n default:\n return null;\n }\n };\n return <div className={classnames(styles.root, classes.root)}>{renderCurrentMode()}</div>;\n};\n\nexport default ImportButton;\n","export const scroll = (element) => element && element.scrollIntoView({block: 'end', behavior: 'smooth'});\n\nexport const clearScrollTimer = (scrollTimer) => {\n if (scrollTimer) {\n clearTimeout(scrollTimer);\n }\n};\n\nexport const isScrolledIntoView = (element, scrollableParent) => {\n if (element && scrollableParent) {\n const elemTop = element.offsetTop;\n const elemBottom = element.offsetTop + element.clientHeight;\n const {clientHeight, scrollTop} = scrollableParent;\n return elemTop >= 0 && elemBottom > scrollTop && elemBottom < scrollTop + clientHeight;\n }\n};\n","import {fade, makeStyles} from '@material-ui/core/styles';\nimport {Theme} from '@material-ui/core';\n\nexport const useStyles = makeStyles(\n (\n theme: Theme & {\n inactiveBackground: string;\n inactiveHoverBackground: string;\n inactiveSelectedBackground: string;\n inactiveSelectedHoverBackground: string;\n }\n ) => {\n return {\n '@keyframes animate': {\n from: {background: 'transparent'},\n '66%': {background: '#f2e68e'},\n '100%': {background: 'transparent'}\n },\n\n highlighted: {\n animationName: '$animate',\n animationDuration: '3s',\n animationIterationCount: 1\n },\n\n item: {\n display: 'flex',\n minHeight: '40px',\n borderBottom: '1px solid rgba(0, 0, 0, 0.1)',\n flexDirection: 'row',\n\n '&:after': {\n // IE flex & min-height workaround\n content: '',\n minHeight: 'inherit',\n fontSize: 0\n },\n\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n },\n\n clickable: {\n cursor: 'pointer'\n },\n\n selected: {\n background: fade(theme.palette.primary.main, 0.12),\n '&:hover': {\n background: fade(theme.palette.primary.main, 0.24)\n }\n },\n\n inactive: {\n background: theme.inactiveBackground,\n\n '&:hover': {\n background: theme.inactiveHoverBackground\n },\n\n '&$selected': {\n background: theme.inactiveSelectedBackground,\n\n '&:hover': {\n background: theme.inactiveSelectedHoverBackground\n }\n }\n },\n\n justImported: {\n backgroundColor: '#FFFBEB !important'\n },\n\n avatar: {\n marginLeft: '20px'\n },\n\n image: {\n height: '32px',\n width: '32px',\n marginTop: '8px',\n marginBottom: '7px'\n },\n\n info: {\n marginLeft: '20px',\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n fontSize: '13px',\n width: '100%',\n overflow: 'hidden',\n overflowWrap: 'break-word',\n wordWrap: 'break-word' // for IE\n },\n\n label: {\n fontSize: '13px',\n lineHeight: '15px',\n fontWeight: 500,\n color: theme.palette.primary.main,\n marginRight: '17px',\n textDecoration: 'none'\n },\n\n secondaryLabel: {\n marginRight: '12px'\n },\n\n businessCard: {\n color: 'rgba(0, 0, 0, 0.54)'\n },\n\n secondRow: {\n display: 'flex',\n marginTop: '2px',\n alignItems: 'center',\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: '12px'\n }\n };\n }\n);\n","import {connect} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport ProfilesList from './ProfilesList';\n\nconst mapStateToProps = (state) => {\n return {\n metadata: mdmModule.selectors.getMetadata(state)\n };\n};\n\nexport {ProfilesList};\n\nexport default connect(mapStateToProps)(ProfilesList);\n","import React, {useRef} from 'react';\nimport classnames from 'classnames';\nimport {prop} from 'ramda';\nimport {\n Entity,\n getBusinessCardAttributesText,\n getEntityId,\n getEntityUriForLink,\n getLabel,\n isActiveObject,\n Metadata\n} from '@reltio/mdm-sdk';\nimport EntityTypeBadge from '../EntityTypeBadge/EntityTypeBadge';\nimport EntityUriLink from '../EntityUriLink/EntityUriLink';\nimport EntityAvatar from '../EntityAvatar/EntityAvatar';\nimport {ImportModes} from '../ImportButton/ImportButton';\nimport {clearScrollTimer, isScrolledIntoView, scroll} from './helpers';\nimport {useDidUpdateEffect} from '../../hooks';\n\nimport {useStyles} from './styles';\n\nconst SECOND_SCROLL_PAUSE = 1000;\n\ntype Props = {\n metadata: Metadata;\n entities: Entity[];\n entityToHighlight?: string;\n selectedEntityUri?: string;\n onEntityClick?: (entityUri: string) => void;\n onEntityHover?: (entityUri: string) => void;\n entitiesImportStatus?: {entityUri: string};\n entityButtonsRenderer?: (entity: Entity) => void;\n};\n\nconst ProfilesList = ({\n entities,\n metadata,\n entityToHighlight,\n selectedEntityUri,\n onEntityClick,\n onEntityHover,\n entitiesImportStatus,\n entityButtonsRenderer\n}: Props) => {\n const styles = useStyles();\n\n const list = useRef(null);\n const scrollTimer = useRef(null);\n\n useDidUpdateEffect(() => {\n if (entityToHighlight) {\n const element = list.current?.querySelectorAll(`[data-entity-uri='${entityToHighlight}']`);\n clearScrollTimer(scrollTimer.current);\n if (element?.length > 0) {\n const scrollableParent = list.current?.parentElement;\n if (!isScrolledIntoView(element[0], scrollableParent)) {\n scroll(element[0]);\n scrollTimer.current = setTimeout(() => {\n if (!isScrolledIntoView(element[0], scrollableParent)) {\n scroll(element[0]);\n }\n }, SECOND_SCROLL_PAUSE);\n }\n }\n }\n\n return () => {\n clearScrollTimer(scrollTimer.current);\n };\n }, [entityToHighlight]);\n\n return (\n <div ref={list}>\n {(entities || []).map((entity) => {\n const label = getLabel(entity.label);\n const secondaryLabel = entity.secondaryLabel;\n const businessCardText = getBusinessCardAttributesText(metadata, entity);\n const isActive = isActiveObject(entity);\n const entityUri = entity.uri;\n const entityUriForLink = getEntityUriForLink(entity);\n\n const importStatus = prop(entityUri, entitiesImportStatus);\n\n return (\n <div\n key={entityUri}\n className={classnames(styles.item, {\n [styles.clickable]: !!onEntityClick,\n [styles.selected]: entityUri === selectedEntityUri,\n [styles.highlighted]: entityUri === entityToHighlight,\n [styles.inactive]: !isActive,\n [styles.justImported]: importStatus === ImportModes.SUCCESS\n })}\n onClick={onEntityClick ? () => onEntityClick(entityUri) : undefined}\n onMouseEnter={onEntityHover ? () => onEntityHover(entityUri) : undefined}\n onMouseLeave={onEntityHover ? () => onEntityHover(null) : undefined}\n data-entity-uri={entityUri}\n >\n <EntityAvatar entity={entity} avatarClassName={styles.avatar} imageClassName={styles.image} />\n <div className={styles.info}>\n <div>\n <EntityUriLink value={entityUriForLink} className={styles.label}>\n {label}\n </EntityUriLink>\n {secondaryLabel && <span className={styles.secondaryLabel}>{secondaryLabel} </span>}\n {businessCardText && <span className={styles.businessCard}>{businessCardText}</span>}\n </div>\n <div className={styles.secondRow}>\n <EntityTypeBadge entity={entity} />\n <div>{getEntityId(entity)}</div>\n </div>\n </div>\n {entityButtonsRenderer && entityButtonsRenderer(entity)}\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default ProfilesList;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\",\n opacity: \".54\"\n}, React.createElement(\"path\", {\n d: \"M19 11.24V10h-4v1.24a8.417 8.417 0 00-2 .768V10H9v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H5c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM7 16v-6H5v6h2zm0-8V6H5v2h2zm6 0V6H9v2h4zm6 0V6h-4v2h4zm-2 5a6.451 6.451 0 00-6 4.09 6.451 6.451 0 006 4.092 6.451 6.451 0 006-4.091A6.451 6.451 0 0017 13zm0 6.818a2.728 2.728 0 010-5.454 2.728 2.728 0 010 5.454zm0-4.363c-.905 0-1.636.73-1.636 1.636 0 .905.73 1.636 1.636 1.636.905 0 1.636-.73 1.636-1.636 0-.906-.73-1.636-1.636-1.636z\",\n fill: \"#000\",\n fillRule: \"nonzero\"\n}))));","import React, {useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useSelector} from 'react-redux';\nimport {ConfigureColumnsPopup, SmallIconButtonWithTooltip, noop} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {\n getChildrenLeafsByParentId,\n memoizedCollectColumnsForestWithoutLabel\n} from '../../services/search/searchResults';\nimport ConfigureColumnsIcon from './show_hide_columns.svg';\nimport styles from '../SearchResultsArea/Headers/styles.less';\n\nimport mdmModule from '@reltio/mdm-module';\n\nconst ConfigureColumnsButton = ({entityTypeUri, headColumns = [], onSelectColumns = noop, ...otherProps}) => {\n const [popupAnchor, setPopupAnchor] = useState(null);\n const [filterText, setFilterText] = useState('');\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const openConfigureColumnsPopup = (e) => setPopupAnchor(e.currentTarget);\n const closeConfigureColumnsPopup = () => setPopupAnchor(null);\n\n const handlePopupClose = () => {\n closeConfigureColumnsPopup();\n setFilterText('');\n };\n\n const handleColumnClick = useCallback(\n (data, checked) => {\n const columnsForest = memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri);\n const children = getChildrenLeafsByParentId(columnsForest, data.id);\n let selectedColumns;\n if (children.length) {\n selectedColumns = checked\n ? headColumns.concat(children)\n : headColumns.filter((column) => !children.find((child) => child.id === column.id));\n } else {\n selectedColumns = checked\n ? headColumns.concat(data)\n : headColumns.filter((column) => column.id !== data.id);\n }\n\n onSelectColumns(selectedColumns);\n },\n [metadata, entityTypeUri, headColumns, onSelectColumns]\n );\n\n const renderConfigureColumnsPopup = () => {\n const columnsForest = memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri);\n return (\n <ConfigureColumnsPopup\n open={!!popupAnchor}\n anchorEl={popupAnchor}\n data={columnsForest}\n onListItemClick={handleColumnClick}\n selected={headColumns}\n filterText={filterText}\n onClose={handlePopupClose}\n onSearch={setFilterText}\n />\n );\n };\n\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={i18n.text('Show/hide columns')}\n size=\"M\"\n icon={ConfigureColumnsIcon}\n onClick={openConfigureColumnsPopup}\n className={styles.headerIcon}\n {...otherProps}\n />\n {renderConfigureColumnsPopup()}\n </>\n );\n};\n\nConfigureColumnsButton.propTypes = {\n entityTypeUri: PropTypes.string,\n headColumns: PropTypes.array,\n onSelectColumns: PropTypes.func\n};\n\nexport default ConfigureColumnsButton;\n","// extracted by mini-css-extract-plugin\nexport default {\"headCellContentWrapper\":\"HeadCellRenderer-styles-headCellContentWrapper--204Aj\",\"checkbox\":\"HeadCellRenderer-styles-checkbox--3kWo3\",\"sortLabel\":\"HeadCellRenderer-styles-sortLabel--3pCJO\",\"labelWrapper\":\"HeadCellRenderer-styles-labelWrapper--3v65T\",\"menuButtonWrapper\":\"HeadCellRenderer-styles-menuButtonWrapper--2WKUw\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport {TableSortLabel as TableSortLabel} from '@material-ui/core';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {path, pick} from 'ramda';\nimport {SmallIconButton, withTableContext} from '@reltio/components';\n\nimport styles from './styles.less';\n\nconst HeadCellRenderer = ({\n headCellData,\n headIndex,\n sortOrder,\n sortField,\n sortHandler,\n canCheck,\n onCheck,\n headerCheckboxState,\n openConfigColumnPopup\n}) => {\n return (\n <div className={classNames(styles.headCellContentWrapper, path(['wrapperClassName'], headCellData))}>\n {headCellData && canCheck && (\n <Checkbox\n className={styles.checkbox}\n checked={headerCheckboxState || false}\n indeterminate={headerCheckboxState === null}\n onChange={() => onCheck()}\n />\n )}\n <div className={styles.labelWrapper}>\n {headCellData &&\n (headCellData.sortable ? (\n <TableSortLabel\n active={Boolean(sortOrder && sortField === headCellData.id)}\n direction={sortOrder}\n onClick={sortHandler}\n classes={{root: styles.sortLabel}}\n component=\"div\"\n >\n {headCellData.label}\n </TableSortLabel>\n ) : (\n headCellData.label\n ))}\n </div>\n {openConfigColumnPopup && (\n <div className={styles.menuButtonWrapper}>\n <SmallIconButton\n icon={MoreVertIcon}\n onClick={openConfigColumnPopup}\n size={'S'}\n data-column-index={headIndex}\n />\n </div>\n )}\n </div>\n );\n};\n\nHeadCellRenderer.propTypes = {\n headCellData: PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n sortable: PropTypes.bool\n }),\n headIndex: PropTypes.number,\n sortOrder: PropTypes.string,\n sortField: PropTypes.string,\n sortHandler: PropTypes.func,\n canCheck: PropTypes.bool,\n onCheck: PropTypes.func,\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n openConfigColumnPopup: PropTypes.func\n};\n\nexport default withTableContext(pick(['openConfigColumnPopup']))(HeadCellRenderer);\n\nexport const HeadCellRendererWithCheckbox = withTableContext(\n pick(['openConfigColumnPopup', 'canCheck', 'onCheck', 'headerCheckboxState'])\n)(HeadCellRenderer);\n","// extracted by mini-css-extract-plugin\nexport default {\"popupBackdrop\":\"EntitiesTable-styles-popupBackdrop--1kv_-\",\"popupContent\":\"EntitiesTable-styles-popupContent--2_Yic\",\"complexPopupContent\":\"EntitiesTable-styles-complexPopupContent--3eaMg\",\"highlighted\":\"EntitiesTable-styles-highlighted--2KGk8\",\"highlightAnimate\":\"EntitiesTable-styles-highlightAnimate--31hFj\",\"inactiveBackground\":\"EntitiesTable-styles-inactiveBackground--3GLxS\",\"inactiveHoverBackground\":\"EntitiesTable-styles-inactiveHoverBackground--2IA7I\",\"inactiveSelectedBackground\":\"EntitiesTable-styles-inactiveSelectedBackground--fXrDv\",\"inactiveSelectedHoverBackground\":\"EntitiesTable-styles-inactiveSelectedHoverBackground--2xMPL\",\"textOverflow\":\"EntitiesTable-styles-textOverflow--2r-Op\",\"textOverflowInactive\":\"EntitiesTable-styles-textOverflowInactive--c704F\",\"link\":\"EntitiesTable-styles-link--3M_i8\",\"defaultWrapper\":\"EntitiesTable-styles-defaultWrapper--17m-1\",\"table\":\"EntitiesTable-styles-table--2cYK8\",\"imageWrapper\":\"EntitiesTable-styles-imageWrapper--1Mh4_\",\"blobWrapper\":\"EntitiesTable-styles-blobWrapper--1lpTF\",\"highlightAnimateForEllipsis\":\"EntitiesTable-styles-highlightAnimateForEllipsis--3K07i\",\"referenceWrapper\":\"EntitiesTable-styles-referenceWrapper--2em-P\",\"referenceContent\":\"EntitiesTable-styles-referenceContent--Y_vP-\",\"referenceIcon\":\"EntitiesTable-styles-referenceIcon--3TGdy\",\"nestedCellWrapper\":\"EntitiesTable-styles-nestedCellWrapper--24W5V\",\"nestedAttributeWrapper\":\"EntitiesTable-styles-nestedAttributeWrapper--2fLKb\",\"profileWrapper\":\"EntitiesTable-styles-profileWrapper--31FtH\",\"entityAvatar\":\"EntitiesTable-styles-entityAvatar--1LVQ0\",\"entityAvatarImage\":\"EntitiesTable-styles-entityAvatarImage--1ePjP\",\"entityLabel\":\"EntitiesTable-styles-entityLabel--2Wawq\",\"scores\":\"EntitiesTable-styles-scores--RoYyd\",\"dragColumnHead\":\"EntitiesTable-styles-dragColumnHead--tOZC8\",\"dragColumnBody\":\"EntitiesTable-styles-dragColumnBody--1F9zz\",\"draggableHeadCell\":\"EntitiesTable-styles-draggableHeadCell--3LNDx\",\"cellWrapper\":\"EntitiesTable-styles-cellWrapper--1-flA\",\"entityButtons\":\"EntitiesTable-styles-entityButtons--uhQM9\",\"selectedEntityButtons\":\"EntitiesTable-styles-selectedEntityButtons--1s9-b\",\"justImportedEntityButtons\":\"EntitiesTable-styles-justImportedEntityButtons--3bEFw\",\"highlightedEntityButtons\":\"EntitiesTable-styles-highlightedEntityButtons--3KFhD\"};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {EntityAvatar, EntityUriLink} from '@reltio/components';\nimport {getEntityUriForLink, getLabel} from '@reltio/mdm-sdk';\n\nimport classNames from 'classnames';\nimport styles from '../styles.less';\n\nconst EntityProfileRenderer = ({value: entity = {}}) => {\n const label = getLabel(entity.label);\n return (\n <div className={classNames(styles.defaultWrapper, styles.profileWrapper)}>\n <EntityAvatar\n avatarClassName={styles.entityAvatar}\n imageClassName={styles.entityAvatarImage}\n entity={entity}\n />\n <EntityUriLink value={getEntityUriForLink(entity)} className={styles.entityLabel}>\n {label}\n </EntityUriLink>\n </div>\n );\n};\n\nEntityProfileRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default EntityProfileRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {DataTypeValue} from '@reltio/components';\nimport styles from '../styles.less';\n\nconst DefaultRenderer = ({value, columnData: {dataTypeDefinition}}) => {\n return (\n <div className={styles.defaultWrapper}>\n {dataTypeDefinition ? <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} /> : value}\n </div>\n );\n};\n\nDefaultRenderer.propTypes = {\n value: PropTypes.any,\n columnData: PropTypes.object\n};\n\nexport default DefaultRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useSelector} from 'react-redux';\n\nimport classnames from 'classnames';\nimport {getTypeGraphIcon} from '../../../services/entity/image';\nimport styles from '../styles.less';\nimport {AvatarWithFallback, EntityUriLink} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {getLabel} from '@reltio/mdm-sdk';\n\nconst ReferenceRenderer = ({value}) => {\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n return (\n value && (\n <div className={classnames(styles.defaultWrapper, styles.referenceWrapper)}>\n <AvatarWithFallback\n className={styles.referenceIcon}\n icon={getTypeGraphIcon(metadata, value.refEntity.type)}\n />\n <EntityUriLink value={value.refEntity.objectURI} className={styles.referenceContent}>\n {getLabel(value.label)}\n </EntityUriLink>\n </div>\n )\n );\n};\n\nReferenceRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default ReferenceRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport styles from '../styles.less';\n\nconst stopPropagation = (event) => {\n event.stopPropagation();\n};\n\nconst BlobRenderer = (props) => {\n const {value} = props;\n return (\n <div className={styles.blobWrapper} onScroll={stopPropagation}>\n {value}\n </div>\n );\n};\n\nBlobRenderer.propTypes = {\n value: PropTypes.any\n};\n\nexport default BlobRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {getImageAttributeOvThumbnailUrl} from '@reltio/mdm-sdk';\nimport styles from '../styles.less';\n\nconst ImageRenderer = ({value}) => {\n const src = getImageAttributeOvThumbnailUrl({value});\n return (\n src && (\n <div className={styles.imageWrapper}>\n <img src={src} />\n </div>\n )\n );\n};\n\nImageRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default ImageRenderer;\n","import {path} from 'ramda';\n\nimport EntityProfileRenderer from './EntityProfileRenderer';\nimport DefaultRenderer from './DefaultRenderer';\nimport ReferenceRenderer from './ReferenceRenderer';\nimport BlobRenderer from './BlobRenderer';\nimport ImageRenderer from './ImageRenderer';\n\nconst getAttributeValueRenderer = (columnInfo) => {\n if (columnInfo.id === 'label') {\n return EntityProfileRenderer;\n }\n\n switch (path(['attrType', 'type'], columnInfo)) {\n case 'Reference':\n return ReferenceRenderer;\n case 'Blob':\n return BlobRenderer;\n case 'Image':\n return ImageRenderer;\n }\n\n return DefaultRenderer;\n};\n\nexport default getAttributeValueRenderer;\n","import HeadCellRenderer, {HeadCellRendererWithCheckbox} from './HeadCellRenderer/HeadCellRenderer';\nimport {assoc, pipe, prop, reduce, split} from 'ramda';\nimport {getAttrDataTypeDefinition, getEntityId, getOvAttributeValuesByPath} from '@reltio/mdm-sdk';\nimport getAttributeValueRenderer from './AttributeRenderers/getAttributeValueRenderer';\nimport {isAttributeSearchUri} from '@reltio/mdm-sdk';\n\nconst getAttrPathFromColumnId = split('.');\n\nconst getRowValueForColumn = (metadata, columnData, entity) => {\n switch (columnData.id) {\n case 'label':\n return entity;\n case 'entityId':\n return getEntityId(entity);\n default: {\n const [attrSource, ...attrPath] = getAttrPathFromColumnId(columnData.id);\n return pipe(prop(attrSource), getOvAttributeValuesByPath(attrPath))(entity);\n }\n }\n};\n\nexport const getBasicTableRowsData = (metadata, headColumns, entities) => {\n return entities.map((entity) => {\n return pipe(\n reduce(\n (acc, columnData) => assoc(columnData.id, getRowValueForColumn(metadata, columnData, entity), acc),\n {}\n ),\n assoc('rawValue', entity)\n )(headColumns);\n });\n};\n\nconst NOT_SORTABLE_COLUMN_IDS = ['entityId'];\nconst isSortableColumn = (column) => !NOT_SORTABLE_COLUMN_IDS.includes(column.id);\n\nconst getNestedPathByColumnId = (columnId) => {\n if (isAttributeSearchUri(columnId)) {\n const [, ...attrPath] = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nexport const getBasicTableColumnsData = (headColumns, sortingEnabled = true) => {\n return headColumns.map(({attrType, ...column}, i) => {\n const isFirstColumn = i === 0;\n return {\n ...column,\n dataTypeDefinition: attrType && getAttrDataTypeDefinition(attrType),\n resizable: true,\n autoResize: !isFirstColumn,\n draggable: !isFirstColumn,\n sortable: sortingEnabled && isSortableColumn(column),\n nestedPath: getNestedPathByColumnId(column.id),\n headCellRenderer: isFirstColumn ? HeadCellRendererWithCheckbox : HeadCellRenderer,\n rowCellValueRenderer: getAttributeValueRenderer({...column, attrType})\n };\n });\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {ImportModes, withTableContext} from '@reltio/components';\nimport EntityRowButtons from '../../EntityRowButtons/EntityRowButtons';\n\nimport classnames from 'classnames';\nimport styles from '../styles.less';\n\nconst EntityRowOverlay = ({\n entity,\n isSelectedEntity,\n isHighlightedEntity,\n entityImportStatus,\n onEntityImportStatusChange\n}) => {\n return (\n <div\n className={classnames(styles.entityButtons, {\n [styles.selectedEntityButtons]: isSelectedEntity,\n [styles.justImportedEntityButtons]: entityImportStatus === ImportModes.SUCCESS,\n [styles.highlightedEntityButtons]: isHighlightedEntity\n })}\n >\n <EntityRowButtons\n entity={entity}\n entityImportStatus={entityImportStatus}\n onEntityImportStatusChange={onEntityImportStatusChange}\n />\n </div>\n );\n};\n\nEntityRowOverlay.propTypes = {\n entity: PropTypes.object,\n isSelectedEntity: PropTypes.bool,\n isHighlightedEntity: PropTypes.bool,\n entityImportStatus: PropTypes.oneOf(Object.values(ImportModes)),\n onEntityImportStatusChange: PropTypes.func\n};\n\nexport default withTableContext(\n (\n {entitiesImportStatus, onEntityImportStatusChange, selectedEntityUri, highlightedEntityIndex},\n {entity, rowIndex}\n ) => {\n const entityImportStatus = entity && entitiesImportStatus[entity.uri];\n return {\n entityImportStatus,\n onEntityImportStatusChange,\n isSelectedEntity: selectedEntityUri === entity.uri,\n isHighlightedEntity: highlightedEntityIndex === rowIndex\n };\n }\n)(EntityRowOverlay);\n","import {lighten, makeStyles} from '@material-ui/core/styles';\n\nconst commonCellWrapperStyles = {\n height: '100%',\n display: 'flex',\n flexDirection: 'column'\n};\n\nexport const useStyles = makeStyles((theme) => ({\n inactiveCell: {\n background: theme.inactiveBackground,\n ...commonCellWrapperStyles,\n '&$selectedRowCell': {\n background: theme.inactiveSelectedBackground\n }\n },\n selectedRowCell: {\n background: lighten(theme.palette.primary.main, 0.88),\n ...commonCellWrapperStyles\n },\n clickable: {\n cursor: 'pointer',\n ...commonCellWrapperStyles\n },\n justImported: {\n backgroundColor: '#FFFBEB !important',\n ...commonCellWrapperStyles\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isActiveObject} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst withCellDecorationPropTypes = {\n entity: PropTypes.object,\n isSelected: PropTypes.bool,\n onEntityClick: PropTypes.func,\n isJustImported: PropTypes.bool\n};\n\nconst withCellDecoration = (Component) => {\n const WithCellDecoration = (componentProps) => {\n const styles = useStyles();\n const {\n rowValue: {rawValue: entity},\n isSelected,\n onEntityClick,\n isJustImported\n } = componentProps;\n const onCellClick = onEntityClick ? () => onEntityClick(entity.uri) : undefined;\n const isInactive = entity && !isActiveObject(entity);\n\n return onCellClick || isInactive || isSelected || isJustImported ? (\n <div\n className={classnames(\n {[styles.inactiveCell]: isInactive},\n {inactiveCell: isInactive},\n {[styles.selectedRowCell]: isSelected},\n {selectedRowCell: isSelected},\n {[styles.clickable]: !!onCellClick},\n {[styles.justImported]: isJustImported},\n {justImported: isJustImported}\n )}\n onClick={onCellClick}\n >\n <Component {...componentProps} />\n </div>\n ) : (\n <Component {...componentProps} />\n );\n };\n\n WithCellDecoration.propTypes = withCellDecorationPropTypes;\n\n return WithCellDecoration;\n};\n\nexport default withCellDecoration;\nexport {withCellDecorationPropTypes};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n checkboxWrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n checkbox: {\n marginRight: '-8px',\n marginLeft: '11px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {Checkbox as Checkbox} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\nconst withCheckboxPropTypes = {\n onCheck: PropTypes.func,\n isChecked: PropTypes.bool,\n hasCheckbox: PropTypes.bool\n};\n\nconst withCheckbox = (Component) => {\n const WithCheckbox = (componentProps) => {\n const styles = useStyles();\n const {onCheck, isChecked, hasCheckbox, ...restProps} = componentProps;\n const {\n rowValue: {rawValue: entity}\n } = restProps;\n\n return hasCheckbox ? (\n <div className={classnames(styles.checkboxWrapper, 'cellWithCheckbox')}>\n <Checkbox\n className={styles.checkbox}\n checked={isChecked}\n onClick={(e) => e.stopPropagation()}\n onChange={(e) => onCheck(entity.uri, e.target.checked)}\n />\n <Component {...restProps} />\n </div>\n ) : (\n <Component {...restProps} />\n );\n };\n\n WithCheckbox.propTypes = withCheckboxPropTypes;\n\n return WithCheckbox;\n};\n\nexport default withCheckbox;\nexport {withCheckboxPropTypes};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n collapser: {\n marginLeft: '-2px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useStyles} from './styles';\n\nimport {CollapseRowButton} from '@reltio/components';\n\nconst withCollapseButtonPropTypes = {\n hasCollapseButton: PropTypes.bool\n};\nconst withCollapseButton = (Component) => {\n const WithCollapseButton = (componentProps) => {\n const styles = useStyles();\n const {hasCollapseButton, ...restProps} = componentProps;\n const {rowValue, rowIndex} = restProps;\n\n return hasCollapseButton ? (\n <div className={'cellWithCollapser'}>\n <CollapseRowButton className={styles.collapser} rowIndex={rowIndex} rowValue={rowValue} />\n <Component {...restProps} />\n </div>\n ) : (\n <Component {...restProps} />\n );\n };\n\n WithCollapseButton.propTypes = withCollapseButtonPropTypes;\n\n return WithCollapseButton;\n};\n\nexport default withCollapseButton;\nexport {withCollapseButtonPropTypes};\n","import {defaultRenderRowCell, ImportModes, withTableContext} from '@reltio/components';\nimport withCellDecoration from './HOCs/withCellDecoration/withCellDecoration';\nimport withCheckbox from './HOCs/withCheckbox/withCheckbox';\nimport withCollapseButton from './HOCs/withCollapseButton/withCollapseButton';\nimport {pipe} from 'ramda';\n\nexport default pipe(\n withCollapseButton,\n withCheckbox,\n withCellDecoration,\n withTableContext(\n (\n {onEntityClick, selectedEntityUri, entitiesImportStatus, canCheck, onCheck, checkedEntitiesUris},\n {rowValue, columnIndex}\n ) => {\n const {rawValue: entity} = rowValue;\n const isFirstColumn = columnIndex === 0;\n return {\n onCheck,\n isChecked: checkedEntitiesUris && checkedEntitiesUris.includes(entity.uri),\n hasCheckbox: canCheck && isFirstColumn,\n hasCollapseButton: isFirstColumn,\n isSelected: selectedEntityUri === entity.uri,\n isJustImported: entitiesImportStatus[entity.uri] === ImportModes.SUCCESS,\n onEntityClick\n };\n }\n )\n)(defaultRenderRowCell);\n","import {path} from 'ramda';\n\nexport const REFERENCE_HEIGHT = 28;\nexport const BLOB_HEIGHT = 100;\nexport const IMAGE_HEIGHT = 76;\nconst PADDING = 17;\n\nexport const getAttributeHeight = ({columnData, cell}) => {\n const countAttributes = cell.values.length;\n const defaultHeight = 28 * Math.max(countAttributes, 1) + 20;\n\n if (!countAttributes) {\n return defaultHeight;\n }\n\n switch (path(['dataTypeDefinition', 'type'], columnData)) {\n case 'Reference':\n return REFERENCE_HEIGHT * countAttributes + PADDING;\n case 'Blob':\n return BLOB_HEIGHT * countAttributes;\n case 'Image':\n return IMAGE_HEIGHT * countAttributes + PADDING;\n default:\n return defaultHeight;\n }\n};\n","import React, {forwardRef, memo, useCallback, useImperativeHandle, useMemo, useRef, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport {path, prop, propEq} from 'ramda';\nimport {SORT_DIRECTION_ASC, SORT_DIRECTION_DESC} from 'react-components/dist/Table/Table';\nimport {BasicTable} from '@reltio/components';\nimport {getBasicTableColumnsData, getBasicTableRowsData} from './entitiesTableUtils';\nimport EntityRowOverlay from './EntityRowOverlay/EntityRowOverlay';\nimport RowCellRenderer from './RowCellRenderer/RowCellRenderer';\nimport {getAttributeHeight} from './AttributeRenderers/heightCalculator';\n\nimport styles from './styles.less';\nimport mdmModule from '@reltio/mdm-module';\n\nexport const MAX_LENGTH_VALUE = 2;\nexport const DEFAULT_ROW_HEIGHT = 48;\nexport const HEAD_ROW_HEIGHT = 50;\nexport const DEFAULT_COLUMN_WIDTH = 250;\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const RESIZE_DEBOUNCE_DELAY = 150;\n\nconst EntitiesTable = forwardRef(\n (\n {\n headColumns,\n entities,\n entityToHighlight,\n selectedEntityUri,\n onReorderingColumn,\n dndColumnReorderingEnabled,\n columnsSize,\n onChangeColumnsSize,\n onScroll,\n onSort,\n sortField,\n sortOrder,\n onEntityHover,\n onEntityClick,\n entitiesImportStatus,\n onEntityImportStatusChange,\n logger,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck,\n openConfigColumnPopup\n },\n ref\n ) => {\n const tableClasses = useMemo(\n () => ({\n highlightRow: 'highlightedSelector',\n dragColumnHead: styles.dragColumnHead,\n dragColumnBody: styles.dragColumnBody,\n draggableHeadCell: styles.draggableHeadCell,\n cellWrapper: styles.cellWrapper\n }),\n []\n );\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const [hoverRowIndex, setHoverRowIndex] = useState(null);\n const handleRowHover = useCallback(\n (hoverRowIndex) => {\n setHoverRowIndex(hoverRowIndex);\n if (onEntityHover) {\n onEntityHover(path([hoverRowIndex, 'uri'], entities));\n }\n },\n [onEntityHover, entities]\n );\n\n const tableRef = useRef();\n useImperativeHandle(ref, () => ({\n resetScrollbarPosition: () => {\n tableRef.current && tableRef.current.resetScrollbarPosition({resetLeft: false});\n }\n }));\n\n const handleSort = useCallback(\n (field) => {\n if (!sortOrder || field !== sortField) {\n onSort({field, order: SORT_DIRECTION_ASC});\n } else if (sortOrder === SORT_DIRECTION_ASC) {\n onSort({field, order: SORT_DIRECTION_DESC});\n } else {\n onSort({field});\n }\n },\n [onSort, sortField, sortOrder]\n );\n\n const renderRowOverlay = useCallback(\n (rowIndex) => {\n const entity = prop(rowIndex, entities);\n return entity ? <EntityRowOverlay entity={entity} rowIndex={rowIndex} /> : null;\n },\n [entities]\n );\n\n const renderRowCell = useCallback((props) => {\n return <RowCellRenderer {...props} />;\n }, []);\n\n const hoverStateEnabled = !!onEntityHover;\n const sortingEnabled = !!onSort;\n\n const columnsData = useMemo(() => getBasicTableColumnsData(headColumns, sortingEnabled), [\n headColumns,\n sortingEnabled\n ]);\n const rowsData = useMemo(() => getBasicTableRowsData(metadata, headColumns, entities), [\n metadata,\n headColumns,\n entities\n ]);\n\n const highlightedEntityIndex = entityToHighlight ? entities.findIndex(propEq('uri', entityToHighlight)) : -1;\n\n const tableContext = useMemo(\n () => ({\n onEntityClick,\n selectedEntityUri,\n highlightedEntityIndex,\n entitiesImportStatus,\n onEntityImportStatusChange,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck,\n openConfigColumnPopup\n }),\n [\n checkedEntitiesUris,\n entitiesImportStatus,\n headerCheckboxState,\n highlightedEntityIndex,\n canCheck,\n onCheck,\n onEntityClick,\n onEntityImportStatusChange,\n selectedEntityUri,\n openConfigColumnPopup\n ]\n );\n\n return (\n <BasicTable\n fixFirstColumn={true}\n onScroll={onScroll}\n rowsData={rowsData}\n columnsData={columnsData}\n onSort={handleSort}\n highlightRow={highlightedEntityIndex !== -1 ? highlightedEntityIndex : null}\n ref={tableRef}\n sortFieldClassName={styles.sortableCell}\n containerClassName={styles.table}\n classes={tableClasses}\n defaultColumnWidth={DEFAULT_COLUMN_WIDTH}\n headRowHeight={HEAD_ROW_HEIGHT}\n defaultColumnMinWidth={DEFAULT_COLUMN_MIN_WIDTH}\n defaultRowHeight={DEFAULT_ROW_HEIGHT}\n sorting={{\n field: sortField,\n order: sortOrder\n }}\n dndColumnReorderingHandler={onReorderingColumn}\n dndColumnReorderingEnabled={dndColumnReorderingEnabled}\n onChangeColumnsSize={onChangeColumnsSize}\n columnsSize={columnsSize}\n resizeDebounceDelay={RESIZE_DEBOUNCE_DELAY}\n onRowHover={hoverStateEnabled ? handleRowHover : undefined}\n hoverStateEnabled={hoverStateEnabled}\n hoverRowIndex={hoverRowIndex}\n renderRowOverlay={renderRowOverlay}\n logger={logger}\n context={tableContext}\n maxRowValuesCount={MAX_LENGTH_VALUE}\n renderRowCell={renderRowCell}\n getRowCellHeight={getAttributeHeight}\n />\n );\n }\n);\n\nEntitiesTable.propTypes = {\n entities: PropTypes.array,\n entityToHighlight: PropTypes.string,\n selectedEntityUri: PropTypes.string,\n headColumns: PropTypes.array,\n columnsSize: PropTypes.array,\n onScroll: PropTypes.func,\n onSort: PropTypes.func,\n onReorderingColumn: PropTypes.func,\n onChangeColumnsSize: PropTypes.func,\n dndColumnReorderingEnabled: PropTypes.bool,\n onEntityClick: PropTypes.func,\n onEntityHover: PropTypes.func,\n sortField: PropTypes.string,\n sortOrder: PropTypes.oneOf([SORT_DIRECTION_ASC, SORT_DIRECTION_DESC]),\n entitiesImportStatus: PropTypes.object,\n onEntityImportStatusChange: PropTypes.func,\n logger: PropTypes.func,\n canCheck: PropTypes.bool,\n checkedEntitiesUris: PropTypes.arrayOf(PropTypes.string),\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n onCheck: PropTypes.func,\n openConfigColumnPopup: PropTypes.func\n};\n\nEntitiesTable.defaultProps = {\n entities: [],\n headColumns: []\n};\n\nEntitiesTable.displayName = 'EntitiesTable';\n\nexport default memo(EntitiesTable);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Popover as Popover} from '@material-ui/core';\nimport {List as List} from '@material-ui/core';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nexport const INSERT_LEFT = 'left';\nexport const INSERT_RIGHT = 'right';\nexport const HIDE = 'hide';\n\nconst TEXT = {\n [INSERT_LEFT]: i18n.text('Insert 1 left'),\n [INSERT_RIGHT]: i18n.text('Insert 1 right'),\n [HIDE]: i18n.text('Hide column')\n};\n\nconst renderListItem = (action, handler, index) => (\n <ListItem button component={'div'} key={index} onClick={handler}>\n <ListItemText primary={TEXT[action]} primaryTypographyProps={{variant: 'body2'}} />\n </ListItem>\n);\n\nconst ConfigColumnPopup = ({open, anchorEl, onClick, onClose, actions}) => {\n const getClickHandler = (action) => () => {\n onClick(action);\n };\n\n return (\n <Popover open={open} anchorEl={anchorEl} onClose={onClose}>\n <List component=\"div\">\n {actions.map((action, index) => renderListItem(action, getClickHandler(action), index))}\n </List>\n </Popover>\n );\n};\n\nConfigColumnPopup.propTypes = {\n open: PropTypes.bool,\n anchorEl: PropTypes.any,\n onClick: PropTypes.func,\n onClose: PropTypes.func,\n actions: PropTypes.array\n};\n\nexport default ConfigColumnPopup;\n","import EntitiesTable from '../EntitiesTable/EntitiesTable';\nimport React from 'react';\nimport {ConfigureColumnsPopup} from '@reltio/components';\nimport * as i18n from 'ui-i18n';\nimport ConfigColumnPopup, {HIDE, INSERT_LEFT, INSERT_RIGHT} from './ConfigColumnPopup/ConfigColumnPopup';\nimport PropTypes from 'prop-types';\nimport {SORT_DIRECTION_ASC, SORT_DIRECTION_DESC} from 'react-components/dist/Table/Table';\nimport {memoizeWith, pick, toString} from 'ramda';\nimport {envSpecificKey} from '../../utils/general';\n\nclass EntitiesTableWithConfigurableColumns extends React.PureComponent {\n state = {\n addColumnPopupOpen: false,\n configColumnPopupOpen: false,\n configurableColumnIndex: false,\n popupAnchor: null,\n filterText: ''\n };\n\n addColumnHandler = (data) => {\n const {newColumnPlaceIndex} = this.state;\n const {onChangeColumnsList, headColumns} = this.props;\n const columns = headColumns.slice();\n columns.splice(newColumnPlaceIndex, 0, data);\n onChangeColumnsList({columns});\n this.closeAddColumnPopup();\n };\n\n openAddColumnPopup = ({newColumnPlaceIndex}) => {\n this.setState({newColumnPlaceIndex, configColumnPopupOpen: false, addColumnPopupOpen: true});\n };\n\n closeAddColumnPopup = () => {\n this.setState({popupAnchor: null, addColumnPopupOpen: false, filterText: ''});\n };\n\n setFilterText = (filterText) => {\n this.setState({filterText});\n };\n\n openConfigColumnPopup = (event) => {\n this.setState({\n popupAnchor: event.currentTarget,\n configColumnPopupOpen: true,\n configurableColumnIndex: parseInt(event.currentTarget.getAttribute('data-column-index'))\n });\n };\n\n closeConfigColumnPopup = () => {\n this.setState({configColumnPopupOpen: false});\n };\n\n configColumnHandler = (action) => {\n const {configurableColumnIndex} = this.state;\n switch (action) {\n case INSERT_LEFT:\n this.openAddColumnPopup({newColumnPlaceIndex: configurableColumnIndex});\n break;\n case INSERT_RIGHT:\n this.openAddColumnPopup({newColumnPlaceIndex: configurableColumnIndex + 1});\n break;\n case HIDE:\n this.hideCurrentConfigColumn();\n break;\n }\n };\n\n hideCurrentConfigColumn = () => {\n const {configurableColumnIndex} = this.state;\n const {onChangeColumnsList, headColumns} = this.props;\n const columns = headColumns.slice();\n columns.splice(configurableColumnIndex, 1);\n onChangeColumnsList({columns});\n this.closeConfigColumnPopup();\n };\n\n static getColumnSizeFromHeadColumns(headColumns) {\n return headColumns.map((column) => ({\n id: column.id,\n size: column.size\n }));\n }\n\n static getMemoIdForColumnSize(headColumns, entityTypeUri, envSpecificKey) {\n return `${envSpecificKey}${entityTypeUri}${toString(\n headColumns.map((columns) => pick(['id', 'size'], columns))\n )}`;\n }\n\n memoizedGetColumnSize = memoizeWith(\n EntitiesTableWithConfigurableColumns.getMemoIdForColumnSize,\n EntitiesTableWithConfigurableColumns.getColumnSizeFromHeadColumns\n );\n\n render() {\n const {\n entities,\n entityToHighlight,\n selectedEntityUri,\n onScroll,\n headColumns,\n sortField,\n sortOrder,\n dndColumnReorderingEnabled,\n onEntityClick,\n onEntityHover,\n entitiesTableRef,\n additionalColumns,\n onChangeColumnsList,\n onReorderingColumn,\n onSort,\n onChangeColumnsSize,\n entityTypeUri,\n entitiesImportStatus = {},\n onEntityImportStatusChange,\n logger,\n canCheck,\n checkedEntitiesUris,\n headerCheckboxState,\n onCheck\n } = this.props;\n\n const {\n addColumnPopupOpen,\n configColumnPopupOpen,\n popupAnchor,\n filterText,\n configurableColumnIndex\n } = this.state;\n\n const columnsSize = this.memoizedGetColumnSize(headColumns, entityTypeUri, envSpecificKey());\n return (\n <>\n <EntitiesTable\n entities={entities}\n entityToHighlight={entityToHighlight}\n selectedEntityUri={selectedEntityUri}\n onScroll={onScroll}\n onSort={onSort}\n onEntityClick={onEntityClick}\n onEntityHover={onEntityHover}\n headColumns={headColumns}\n sortField={sortField}\n sortOrder={sortOrder}\n onReorderingColumn={onReorderingColumn}\n ref={entitiesTableRef}\n onChangeColumnsList={onChangeColumnsList}\n dndColumnReorderingEnabled={dndColumnReorderingEnabled}\n onChangeColumnsSize={onChangeColumnsSize}\n columnsSize={columnsSize}\n entitiesImportStatus={entitiesImportStatus}\n onEntityImportStatusChange={onEntityImportStatusChange}\n logger={logger}\n canCheck={canCheck}\n checkedEntitiesUris={checkedEntitiesUris}\n headerCheckboxState={headerCheckboxState}\n onCheck={onCheck}\n openConfigColumnPopup={this.openConfigColumnPopup}\n />\n <ConfigureColumnsPopup\n open={addColumnPopupOpen}\n anchorEl={popupAnchor}\n data={additionalColumns}\n onListItemClick={this.addColumnHandler}\n filterText={filterText}\n onClose={this.closeAddColumnPopup}\n onSearch={this.setFilterText}\n hideCheckBox={true}\n titleText={i18n.text('Add column')}\n />\n <ConfigColumnPopup\n onClick={this.configColumnHandler}\n onClose={this.closeConfigColumnPopup}\n anchorEl={popupAnchor}\n open={configColumnPopupOpen}\n actions={configurableColumnIndex > 0 ? [INSERT_LEFT, INSERT_RIGHT, HIDE] : [INSERT_RIGHT]}\n />\n </>\n );\n }\n\n static propTypes = {\n entities: PropTypes.array,\n entityToHighlight: PropTypes.string,\n selectedEntityUri: PropTypes.string,\n entityTypeUri: PropTypes.string,\n headColumns: PropTypes.array,\n dndColumnReorderingEnabled: PropTypes.bool,\n onScroll: PropTypes.func,\n onSort: PropTypes.func,\n onReorderingColumn: PropTypes.func,\n onChangeColumnsSize: PropTypes.func,\n onChangeColumnsList: PropTypes.func,\n onEntityClick: PropTypes.func,\n onEntityHover: PropTypes.func,\n sortField: PropTypes.string,\n sortOrder: PropTypes.oneOf([SORT_DIRECTION_ASC, SORT_DIRECTION_DESC]),\n entitiesTableRef: PropTypes.shape({\n current: PropTypes.shape({\n resetScrollbarPosition: PropTypes.func\n })\n }),\n additionalColumns: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string\n })\n ),\n entitiesImportStatus: PropTypes.object,\n onEntityImportStatusChange: PropTypes.func,\n logger: PropTypes.func,\n canCheck: PropTypes.bool,\n checkedEntitiesUris: PropTypes.arrayOf(PropTypes.string),\n headerCheckboxState: PropTypes.oneOf([true, false, null]),\n onCheck: PropTypes.func\n };\n}\n\nexport default EntitiesTableWithConfigurableColumns;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport mdmModule from '@reltio/mdm-module';\nimport {EntityType, importEntityFromDataTenant} from '@reltio/mdm-sdk';\nimport {showImportFromDataTenantError} from '../../utils/error';\nimport {ImportButton, ImportModes} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {values} from 'ramda';\n\nconst ImportEntityButton = ({entity, importStatus, onImportStatusChange, hideDelay = 3000, ...otherProps}) => {\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const tenant = useSelector(mdmModule.selectors.getTenant);\n\n return (\n <ImportButton\n {...otherProps}\n mode={importStatus}\n tooltip={i18n.text('Import this record')}\n onClick={(e) => {\n e.stopPropagation();\n onImportStatusChange(ImportModes.PROGRESS);\n importEntityFromDataTenant({\n dtssPath,\n customerTenant: tenant,\n entity\n })\n .then(({success, uris}) => {\n if (success) {\n entity.ctSubscribedUris = uris;\n onImportStatusChange(ImportModes.SUCCESS);\n setTimeout(() => onImportStatusChange(ImportModes.DONE), hideDelay);\n } else {\n throw new Error('Failed to import entity');\n }\n })\n .catch(() => {\n onImportStatusChange(ImportModes.INIT);\n showImportFromDataTenantError();\n });\n }}\n />\n );\n};\n\nImportEntityButton.propTypes = {\n entity: EntityType,\n importStatus: PropTypes.oneOf(values(ImportModes)),\n onImportStatusChange: PropTypes.func,\n hideDelay: PropTypes.number\n};\n\nexport default ImportEntityButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n importButtonPlaceholder: {\n display: 'flex',\n alignItems: 'center',\n padding: '0 10px',\n width: '24px',\n flexShrink: 0,\n position: 'relative'\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\n\nimport ImportEntityButton from '../ImportEntityButton/ImportEntityButton';\nimport {\n checkCanImportEntityOfType,\n getEntityType,\n isDataTenantEntity,\n isEntityImportedToCT,\n Metadata,\n Entity\n} from '@reltio/mdm-sdk';\nimport {ImportModes} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n entityImportStatus: ImportModes;\n onEntityImportStatusChange: (uri: string, status: ImportModes) => void;\n};\n\nexport const EntityRowButtons = ({entity, entityImportStatus, onEntityImportStatusChange}: Props) => {\n const styles = useStyles();\n\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const canImportFromDataTenant: boolean = useSelector(mdmModule.selectors.getCanUserImportEntitiesFromDT);\n const canImport = isDataTenantEntity(entity) && canImportFromDataTenant;\n const entityType = getEntityType(metadata, entity.type);\n const canImportEntity = checkCanImportEntityOfType(entityType) && !isEntityImportedToCT(entity);\n const isImportInProgress = entityImportStatus && entityImportStatus !== ImportModes.DONE;\n const showImportButton = isImportInProgress || canImportEntity;\n\n return (\n <>\n {canImport && (\n <div className={styles.importButtonPlaceholder}>\n {showImportButton && (\n <ImportEntityButton\n entity={entity}\n importStatus={entityImportStatus}\n onImportStatusChange={(status) => onEntityImportStatusChange(entity.uri, status)}\n />\n )}\n </div>\n )}\n </>\n );\n};\n\nexport default EntityRowButtons;\n","import {makeStyles} from '@material-ui/core/styles';\nimport {READABLE_QUERY_PRIMITIVE_TYPES} from '@reltio/mdm-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n query: {\n color: theme.palette.text.secondary,\n fontSize: '12px',\n letterSpacing: 0,\n lineHeight: '16px'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.entityTypeLabel]: {\n color: '#03904A'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeLabel]: {\n color: '#059BEA'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.specialAttributeLabel]: {\n color: '#EA05CF'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeFilter]: {\n color: '#7F00FF'\n },\n [READABLE_QUERY_PRIMITIVE_TYPES.attributeValue]: {\n color: '#000000'\n }\n}));\n\nexport {useStyles};\n","import React, {forwardRef} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ReadableSearchQuery = forwardRef(({readableQuery = [], className, ...otherProps}, ref) => {\n const styles = useStyles();\n return (\n <span ref={ref} className={classnames(styles.query, className)} {...otherProps}>\n {readableQuery.map(({type, text}, i) => (\n <span key={i} className={styles[type]}>\n {text}\n </span>\n ))}\n </span>\n );\n});\n\nReadableSearchQuery.displayName = 'ReadableSearchQuery';\n\nReadableSearchQuery.propTypes = {\n readableQuery: PropTypes.array,\n className: PropTypes.string\n};\n\nexport default ReadableSearchQuery;\n","export default {\n CREATE_FACETS: 'FACETS_CREATE_FACETS',\n DESTROY_FACETS: 'FACETS_DESTROY_FACETS',\n CHANGE_VALUES: 'FACETS_CHANGE_VALUES',\n CLEAR_ALL_VALUES: 'FACETS_CLEAR_ALL_VALUES',\n UPDATE_DATA: 'FACETS_UPDATE_DATA',\n UPDATE_FILTERED_DATA: 'FACETS_UPDATE_FILTERED_DATA',\n DESTROY_FILTERED_DATA: 'FACETS_DESTROY_FILTERED_DATA',\n FILTER_FACET_DATA: 'FACETS_FILTER_FACET_DATA',\n HANDLE_CONFIGS_CHANGES: 'FACETS_HANDLE_CONFIGS_CHANGES',\n REQUEST_GIVEN_FACETS_DATA: 'FACETS_REQUEST_GIVEN_FACETS_DATA',\n SET_RECOMMENDED_FACETS_LIST: 'FACETS_SET_RECOMMENDED_FACETS_LIST',\n CONVERT_FROM_ADVANCED_SEARCH: 'FACETS_CONVERT_FROM_ADVANCED_SEARCH',\n SHOW_MORE_ENTITY_TYPES: 'FACETS_SHOW_MORE_ENTITY_TYPES',\n HIGHLIGHT_ADDED_FACETS: 'FACETS_HIGHLIGHT_ADDED_FACETS',\n CLEAR_HIGHLIGHT_ADDED_FACETS: 'FACETS_CLEAR_HIGHLIGHT_ADDED_FACETS'\n};\n","export default {\n UPDATE_ENTITIES: 'SEARCH_UPDATE_ENTITIES',\n UPDATE_URL: 'SEARCH_UPDATE_URL',\n CLEAR_RESULTS: 'SEARCH_CLEAR_RESULTS',\n REFRESH_DISPLAYED_ENTITIES: 'SEARCH_REFRESH_DISPLAYED_ENTITIES',\n REFRESH: 'SEARCH_REFRESH',\n CLEAR_ALL: 'SEARCH_CLEAR_ALL',\n SHOW_MORE_RESULTS_FOR_ENTITY_TYPE: 'SEARCH_SHOW_MORE_RESULTS_FOR_ENTITY_TYPE',\n UPDATE_TOTAL: 'SEARCH_UPDATE_TOTAL',\n CHANGE_PAGE: 'SEARCH_CHANGE_PAGE',\n RESET_PAGE: 'SEARCH_RESET_PAGE',\n CHANGE_ROWS_PER_PAGE: 'SEARCH_CHANGE_ROWS_PER_PAGE',\n CHANGE_SORT: 'SEARCH_CHANGE_SORT',\n CHANGE_LOADING: 'SEARCH_CHANGE_LOADING',\n MAP_CHANGE_VALUE: 'SEARCH_MAP_CHANGE_VALUE',\n STATE_UPDATED: 'SEARCH_STATE_UPDATED',\n EXPORT_RESULTS: 'SEARCH_EXPORT_RESULTS',\n OPEN_DATA_LOADER: 'SEARCH_OPEN_DATA_LOADER',\n CHANGE_CURRENT_TENANT: 'SEARCH_CHANGE_CURRENT_TENANT'\n};\n","import i18n from 'ui-i18n';\nimport {pipe, values, without} from 'ramda';\n\nexport const appId = 'explorer';\n\nexport const ROWS_PER_PAGE_OPTIONS = [25, 50, 100];\n\nexport const NUMERIC_RANGE_MIN_VALUE = 0;\nexport const NUMERIC_RANGE_MAX_VALUE = 10000;\n\nconst currentDate = () => new Date().setHours(0, 0, 0, 0);\nconst yearAgoDate = () => {\n const currentDate = new Date();\n currentDate.setHours(0, 0, 0, 0);\n return currentDate.setFullYear(currentDate.getFullYear() - 1);\n};\n\nexport const DATE_RANGE_MIN_VALUE = yearAgoDate();\nexport const DATE_RANGE_MAX_VALUE = currentDate();\n\nexport const SEARCH_RESULTS_MODES = {\n TABLE: 'table',\n LIST: 'list',\n MAP: 'map'\n};\n\nexport const DEFAULT_VIEW = SEARCH_RESULTS_MODES.TABLE;\n\nexport const PREVIEW_PANEL_MODES = {\n PROFILE: 'profile',\n MAP: 'map'\n};\n\nexport const DEFAULT_FACET_PAGE_SIZE = 20;\n\nexport const operators = [\n {\n label: 'And',\n value: 'and'\n },\n {\n label: 'Or',\n value: 'or'\n },\n {\n label: 'And not',\n value: 'and not'\n },\n {\n label: 'Or not',\n value: 'or not'\n }\n];\nexport const defaultOperator = operators[0];\nexport const defaultGroupOperator = operators[1];\n\nexport const STORED_SEARCHES_TYPES = {\n saved: 'saved',\n recent: 'recent'\n};\n\nexport const SAVED_SEARCHES_SHARING_OPTIONS_VALUES = {\n public: 'public',\n private: 'private'\n};\n\nexport const SAVED_SEARCHES_SORTED_FIELDS = {\n name: 'name',\n updateDate: 'updateDate'\n};\n\nexport const SAVED_SEARCHES_SORT_BY_VALUES = {\n [SAVED_SEARCHES_SORTED_FIELDS.name]: 'NAME',\n [SAVED_SEARCHES_SORTED_FIELDS.updateDate]: 'UPDATE_DATE'\n};\n\nexport const SAVED_SEARCHES_SORT_ORDER_VALUES = {\n ASC: 'asc',\n DESC: 'desc'\n};\n\nexport const SAVED_SEARCHES_SHARING_OPTIONS = [\n {\n label: i18n.text('Only me'),\n value: SAVED_SEARCHES_SHARING_OPTIONS_VALUES.private\n },\n {\n label: i18n.text('All users'),\n value: SAVED_SEARCHES_SHARING_OPTIONS_VALUES.public\n }\n];\n\nexport const NOTIFICATION_TYPES = {\n info: 'info',\n error: 'error'\n};\n\nexport const ML_RULES_ONLY = {pmRulesScope: 'ML_RULES_ONLY'};\n\nexport const ENTITY_TYPE_FACET_ROW_COUNT = 7;\n\nexport const SEARCH_DEBOUNCE_TIME = 300;\n\nexport const BULK_UPDATE_SELECTION_MODES = {\n include: 'include',\n exclude: 'exclude'\n};\n\nexport const BULK_UPDATE_COMMON_OPERATIONS = {\n UpdateProfiles: 'UpdateProfiles',\n DeleteProfiles: 'DeleteProfiles'\n};\n\nexport const BULK_UPDATE_OPERATIONS = {\n AddNew: 'AddNew',\n Clear: 'Clear',\n ReplaceAllWith: 'ReplaceAllWith',\n FindAndReplace: 'FindAndReplace',\n FindAndRemove: 'FindAndRemove',\n RepointReference: 'RepointReference'\n};\n\nexport const BULK_UPDATE_OPERATION_LABELS = {\n [BULK_UPDATE_OPERATIONS.AddNew]: i18n.text('Add new'),\n [BULK_UPDATE_OPERATIONS.Clear]: i18n.text('Clear attribute'),\n [BULK_UPDATE_OPERATIONS.ReplaceAllWith]: i18n.text('Replace all with'),\n [BULK_UPDATE_OPERATIONS.FindAndReplace]: i18n.text('Find and replace'),\n [BULK_UPDATE_OPERATIONS.FindAndRemove]: i18n.text('Find and remove'),\n [BULK_UPDATE_OPERATIONS.RepointReference]: i18n.text('Repoint reference')\n};\n\nexport const BULK_UPDATE_ALLOWED_OPERATION_VALUE_FIELDS = {\n [BULK_UPDATE_OPERATIONS.AddNew]: ['attributeValue'],\n [BULK_UPDATE_OPERATIONS.Clear]: [],\n [BULK_UPDATE_OPERATIONS.ReplaceAllWith]: ['attributeValue'],\n [BULK_UPDATE_OPERATIONS.FindAndReplace]: ['attributeValue', 'attributeValueToFind'],\n [BULK_UPDATE_OPERATIONS.FindAndRemove]: ['attributeValueToFind'],\n [BULK_UPDATE_OPERATIONS.RepointReference]: ['attributeValue']\n};\n\nexport const BULK_UPDATE_SIMPLE_ATTRIBUTE_OPERATIONS = pipe(\n values,\n without(BULK_UPDATE_OPERATIONS.RepointReference)\n)(BULK_UPDATE_OPERATIONS);\n\nexport const BULK_UPDATE_NESTED_ATTRIBUTE_OPERATIONS = [\n BULK_UPDATE_OPERATIONS.AddNew,\n BULK_UPDATE_OPERATIONS.Clear,\n BULK_UPDATE_OPERATIONS.ReplaceAllWith\n];\nexport const BULK_UPDATE_REFERENCE_ATTRIBUTE_OPERATIONS = [\n BULK_UPDATE_OPERATIONS.AddNew,\n BULK_UPDATE_OPERATIONS.Clear,\n BULK_UPDATE_OPERATIONS.RepointReference\n];\n\nexport const BULK_UPDATE_API_OPERATIONS = {\n AddAttribute: 'AddAttribute',\n UpdateAttribute: 'UpdateAttribute',\n DeleteAttribute: 'DeleteAttribute',\n RepointReferencedEntity: 'RepointReferencedEntity',\n AddTags: 'AddTags',\n ReplaceTag: 'ReplaceTag',\n DeleteTags: 'DeleteTags',\n ClearTags: 'ClearTags'\n};\n\nexport const BULK_UPDATE_REFERENCED_ENTITY_ID_FIELD_NAME = 'referenced_entity_id';\n\nexport const DEFAULT_SEARCH_SELECT = [\n 'uri',\n 'label',\n 'type',\n 'secondaryLabel',\n 'defaultProfilePic',\n 'defaultProfilePicValue',\n 'attributes.Address',\n 'attributes.GeoLocation',\n 'attributes.ImageGallery'\n];\n","import {curry, pathOr, remove} from 'ramda';\nimport nanoid from 'nanoid';\n\nimport {isCompatibleFilters, getFilterOptionsForQueryBuilder} from '@reltio/mdm-sdk';\nimport {defaultOperator} from '../../constants/constants';\nimport {createLens, path as createLPath} from '../../utils/lenses';\n\nexport const PROP_NAME_OPERATOR = 'operator';\nexport const PROP_NAME_VALUES = 'values';\nexport const PROP_NAME_FILTER = 'filter';\n\nexport const getEmptyAttributeObject = (id = nanoid()) => ({\n [PROP_NAME_OPERATOR]: defaultOperator.value,\n id\n});\n\nexport const getAttributeObject = (attribute, id = nanoid()) => {\n const data = getAttributeData(attribute);\n return {\n data,\n [PROP_NAME_OPERATOR]: defaultOperator.value,\n [PROP_NAME_FILTER]: pathOr('', ['filterOptions', 0], data),\n id\n };\n};\n\nexport const getAttributeData = (attribute) => ({\n ...attribute,\n filterOptions:\n attribute.enforcedFilterOptions || getFilterOptionsForQueryBuilder(attribute.attrType, attribute.fieldName)\n});\n\nexport const defaultFindGroupPath = curry((id, groups) => {\n const groupIndex = groups.findIndex((group) => group.id === id);\n return groupIndex > -1 ? [groupIndex] : null;\n});\n\nexport const createGetGroupLens = (groupsLensPath, findGroupPath = defaultFindGroupPath) => (state, id) => {\n const searchGroupsL = createLPath(...groupsLensPath);\n const groups = searchGroupsL.get(state);\n const groupPath = findGroupPath(id, groups);\n return groupPath ? createLPath(...groupsLensPath, ...groupPath) : false;\n};\n\nexport const createGetAttributesLens = (getGroupLens, propNameAttributes) => (state, groupId) => {\n const groupLens = getGroupLens(state, groupId);\n return groupLens && groupLens.compose(createLens(propNameAttributes));\n};\n\nexport const createGetAttributeIndex = (getAttributesLens) => (state, groupId, attributeId) => {\n const attributesLens = getAttributesLens(state, groupId);\n if (attributesLens) {\n const attributes = attributesLens.get(state);\n return attributes.findIndex((attribute) => attribute.id === attributeId);\n }\n return -1;\n};\n\nexport const createGetAttributeLens = (getAttributesLens) => (state, groupId, attributeId) => {\n const attributesLens = getAttributesLens(state, groupId);\n const getAttributeIndex = createGetAttributeIndex(getAttributesLens);\n const attributeIndex = getAttributeIndex(state, groupId, attributeId);\n return attributeIndex !== -1 ? attributesLens.compose(createLPath(attributeIndex)) : null;\n};\n\nexport const createSetAttributeProp = (getAttributeLens) => (state, groupId, attributeId, propName, value) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n if (groupAttributeL) {\n const newAttribute = {...groupAttributeL.get(state)};\n newAttribute[propName] = value;\n return groupAttributeL.set(state, newAttribute);\n }\n\n return state;\n};\n\nexport const createGetAttributeProp = (getAttributeLens) => (state, groupId, attributeId, propName) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n if (groupAttributeL) {\n return groupAttributeL.get(state)[propName];\n }\n};\n\nconst isAttributeIncludesFilter = (state, groupId, attributeId, attribute, getAttributeLens) => {\n const groupAttributeL = getAttributeLens(state, groupId, attributeId);\n let currentFilter;\n if (groupAttributeL) currentFilter = groupAttributeL.get(state).filter;\n\n return attribute.filterOptions.length && (!currentFilter || !attribute.filterOptions.includes(currentFilter));\n};\n\nexport const addAttributeAfter = ({state, groupId, attributeId, attribute, getAttributesLens, getAttributeIndex}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n let newAttributes = [...groupAttributesL.get(state)];\n const attrIndex = getAttributeIndex(state, groupId, attributeId);\n const isLastAttribute = !newAttributes[attrIndex + 1];\n if (attrIndex !== -1 && isLastAttribute) {\n newAttributes.splice(attrIndex + 1, 0, attribute);\n } else if (attrIndex !== -1) {\n newAttributes.splice(attrIndex + 1, 0, {\n ...attribute,\n operator: newAttributes[attrIndex].operator\n });\n\n newAttributes[attrIndex] = {\n ...newAttributes[attrIndex],\n operator: defaultOperator.value\n };\n } else {\n newAttributes.push(attribute);\n }\n return groupAttributesL.set(state, newAttributes);\n }\n return state;\n};\n\nexport const changeAttributeData = ({\n state,\n groupId,\n attributeId,\n attributeData,\n setAttributeProp,\n getAttributeLens\n}) => {\n let newState = state;\n if (attributeData) {\n if (isAttributeIncludesFilter(state, groupId, attributeId, attributeData, getAttributeLens))\n newState = setAttributeProp(state, groupId, attributeId, PROP_NAME_FILTER, attributeData.filterOptions[0]);\n newState = setAttributeProp(newState, groupId, attributeId, PROP_NAME_VALUES, []);\n return setAttributeProp(newState, groupId, attributeId, 'data', attributeData);\n } else {\n const attrLens = getAttributeLens(state, groupId, attributeId);\n if (attrLens) {\n newState = attrLens.set(newState, getEmptyAttributeObject(attributeId));\n }\n return newState;\n }\n};\n\nexport const setAttributeOperator = ({state, groupId, attributeId, operator, setAttributeProp}) => {\n return setAttributeProp(state, groupId, attributeId, PROP_NAME_OPERATOR, operator);\n};\n\nexport const deleteAttribute = ({state, groupId, attributeId, getAttributesLens}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n const attributes = [...groupAttributesL.get(state)];\n const attributeIndex = attributes.findIndex((attribute) => attribute.id === attributeId);\n\n if (attributeIndex > -1) {\n const editedAttributes = remove(attributeIndex, 1, attributes);\n const prevAttribute = editedAttributes[attributeIndex - 1];\n const removedAttribute = attributes[attributeIndex];\n\n if (prevAttribute) {\n editedAttributes[attributeIndex - 1] = {\n ...prevAttribute,\n operator: removedAttribute.operator\n };\n }\n\n return groupAttributesL.set(state, editedAttributes);\n }\n }\n return state;\n};\n\nexport const duplicateAttribute = ({state, groupId, attributeId, id, getAttributesLens}) => {\n const groupAttributesL = getAttributesLens(state, groupId);\n if (groupAttributesL) {\n const attributes = [...groupAttributesL.get(state)];\n const attributeIndex = attributes.findIndex((attribute) => attribute.id === attributeId);\n if (attributeIndex > -1) {\n attributes.push({...attributes[attributeIndex], id});\n return groupAttributesL.set(state, attributes);\n }\n }\n return state;\n};\n\nexport const setFilter = ({state, groupId, attributeId, filter, getAttributeProp, setAttributeProp}) => {\n const currentFilter = getAttributeProp(state, groupId, attributeId, PROP_NAME_FILTER);\n\n const newState = isCompatibleFilters(currentFilter, filter)\n ? state\n : setAttributeProp(state, groupId, attributeId, PROP_NAME_VALUES, []);\n return setAttributeProp(newState, groupId, attributeId, PROP_NAME_FILTER, filter);\n};\n\nexport const setValues = ({state, groupId, attributeId, values, setAttributeProp}) => {\n return setAttributeProp(state, groupId, attributeId, PROP_NAME_VALUES, values);\n};\n","import {put} from 'redux-saga/effects';\nimport {__, path, pipe, propEq, propOr} from 'ramda';\nimport {defaultFindGroupPath} from '../reducers/helpers/queryBuilderHelpers';\n\nexport function* toggleQueryBuilderAttributeSelect({\n groups,\n findGroupPath = defaultFindGroupPath,\n attributesPropName,\n groupId,\n attributeId,\n selectInfo,\n actions\n}) {\n const {checked, attribute: selectedAttribute, index: selectIndex, selectedAttributes} = selectInfo;\n const {addAttributeAfter, changeAttribute, clearAttribute, deleteAttribute} = actions;\n\n const groupAttributes = pipe(findGroupPath(groupId), path(__, groups), propOr([], attributesPropName))(groups);\n const getGroupAttributeIdAt = (index) => path([index, 'id'], groupAttributes);\n\n const attributeIndex = groupAttributes.findIndex(propEq('id', attributeId));\n const shouldChangeAttribute = attributeId && selectIndex === 0;\n\n if (shouldChangeAttribute) {\n if (checked) {\n yield put(changeAttribute(groupId, attributeId, selectedAttribute));\n } else {\n let nextSelectedAttribute = selectedAttributes[selectIndex + 1];\n if (nextSelectedAttribute) {\n yield put(changeAttribute(groupId, attributeId, nextSelectedAttribute));\n yield put(deleteAttribute(groupId, getGroupAttributeIdAt(attributeIndex + 1)));\n } else {\n yield put(clearAttribute(groupId, attributeId));\n }\n }\n } else {\n const selectIndexFromEnd = selectedAttributes.length - selectIndex;\n const targetIndex = attributeId ? attributeIndex + selectIndex : groupAttributes.length - selectIndexFromEnd;\n\n checked\n ? yield put(addAttributeAfter(groupId, getGroupAttributeIdAt(targetIndex - 1), selectedAttribute))\n : yield put(deleteAttribute(groupId, getGroupAttributeIdAt(targetIndex)));\n }\n}\n","import {getAbsoluteImageUrl, getEntityTypeGraphIcon} from '@reltio/mdm-sdk';\nimport {getApiPath, getImagePath} from '../../utils/config';\nimport {Metadata} from '@reltio/mdm-sdk';\n\nconst getAbsoluteImagePath = (path: string): string => getAbsoluteImageUrl(getImagePath() || getApiPath(), path);\n\nexport const getTypeGraphIcon = (metadata: Metadata, entityTypeUri: string): string => {\n const entityTypeGraphIcon = getEntityTypeGraphIcon(metadata, {type: entityTypeUri});\n return getAbsoluteImagePath(entityTypeGraphIcon);\n};\n","import i18n from 'ui-i18n';\n\nimport {\n AuditAttrTypes,\n CollaborationAttrTypes,\n CrosswalksAttrTypes,\n EntityAttrTypes,\n PotentialMatchesAttrTypes,\n RdmAttrTypes,\n WorkflowAttrTypes\n} from '@reltio/mdm-sdk';\nimport {createDataTenantConfigPart, getOrderTypeByAttrType, getPageSizeByAttrType} from '../collectAttributes';\nimport {__, concat, evolve, identity, map, omit, pipe, propEq, T, values} from 'ramda';\n\nconst collectAttrTypesData = pipe(\n values,\n map((attrType) => ({\n title: attrType.label,\n fieldName: attrType.name,\n type: attrType.type,\n faceted: attrType.faceted,\n hideForDataTenant: attrType.hideForDataTenant\n }))\n);\n\nexport const entityAttributes = {\n id: 'entity',\n title: i18n.text('Entity'),\n attributes: collectAttrTypesData(EntityAttrTypes)\n};\n\nexport const workflowAttributes = {\n id: 'workflow',\n title: i18n.text('Workflow'),\n attributes: collectAttrTypesData(WorkflowAttrTypes)\n};\n\nexport const collaborationItemsAttributes = {\n id: 'collaborationItems',\n title: i18n.text('Collaboration Items'),\n attributes: collectAttrTypesData(CollaborationAttrTypes)\n};\n\nexport const RDMItemsAttributes = {\n id: 'RDMItems',\n title: i18n.text('Reference Data Management'),\n attributes: collectAttrTypesData(RdmAttrTypes)\n};\n\nexport const auditItemsAttributes = {\n id: 'auditItems',\n title: i18n.text('Audit Items'),\n attributes: collectAttrTypesData(AuditAttrTypes)\n};\n\nexport const potentialMatchesAttributes = {\n id: 'potentialMatches',\n title: i18n.text('Potential Matches'),\n attributes: collectAttrTypesData(PotentialMatchesAttrTypes)\n};\n\nexport const crosswalksItemsAttributes = {\n id: 'crosswalksItems',\n title: i18n.text('Crosswalks Items'),\n attributes: collectAttrTypesData(omit(['sourceTable'], CrosswalksAttrTypes))\n};\n\nconst getEntityAttributes = () => entityAttributes;\nconst getWorkflowAttributes = () => workflowAttributes;\nconst getCollaborationItemsAttributes = () => collaborationItemsAttributes;\nconst getRDMItemsAttributes = () => RDMItemsAttributes;\nconst getAuditItemsAttributes = () => auditItemsAttributes;\nconst getPotentialMatchesAttributes = (dataTenants) =>\n dataTenants\n ? evolve(\n {\n attributes: concat(\n __,\n dataTenants.map((dataTenant) => ({\n ...potentialMatchesAttributes.attributes.find(\n propEq('fieldName', PotentialMatchesAttrTypes.matches.name)\n ),\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matches',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant'\n }))\n )\n },\n potentialMatchesAttributes\n )\n : potentialMatchesAttributes;\nconst getCrosswalksItemsAttributes = () => crosswalksItemsAttributes;\n\nexport const createSpecialAttributeItem = ({\n title,\n fieldName,\n dataTenant,\n fieldNameForRequest,\n dataTenantFieldName,\n ...attrType\n}) => {\n const facetedSpecificPart = attrType.faceted\n ? {\n pageSize: getPageSizeByAttrType(attrType),\n orderType: getOrderTypeByAttrType(attrType)\n }\n : {};\n const dataTenantPart = dataTenant\n ? createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest,\n dataTenantFieldName,\n originalTitle: title\n })\n : {};\n return {\n title,\n fieldName,\n attrType,\n ...facetedSpecificPart,\n ...dataTenantPart\n };\n};\n\nexport const createAttributesGroup = (id, title, attributes) =>\n attributes && attributes.length\n ? {\n id,\n title,\n attributes\n }\n : null;\n\nexport const collectSpecialAttributesGroups = ({\n attributesFilter = T,\n dataTenants,\n canUserReadWorkflowDataTask = true\n} = {}) => {\n const _createAttributesGroup = ({id, title, attributes}) =>\n createAttributesGroup(id, title, attributes.map(createSpecialAttributeItem).filter(attributesFilter));\n const attributesInitial = [\n getEntityAttributes(),\n ...(canUserReadWorkflowDataTask ? [getWorkflowAttributes()] : []),\n getCollaborationItemsAttributes(),\n getRDMItemsAttributes(),\n getAuditItemsAttributes(),\n getPotentialMatchesAttributes(dataTenants),\n getCrosswalksItemsAttributes()\n ];\n\n return attributesInitial.map(_createAttributesGroup).filter(identity);\n};\n\nexport const getSpecialAttribute = (fieldName, dataTenants, canUserReadWorkflowDataTask) => {\n const specialAttributeGroup = collectSpecialAttributesGroups({\n dataTenants,\n canUserReadWorkflowDataTask\n }).find((group) => group.attributes.find((attr) => attr.fieldName === fieldName));\n return specialAttributeGroup && specialAttributeGroup.attributes.find((attr) => attr.fieldName === fieldName);\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\"\n}, props), React.createElement(\"defs\", null, React.createElement(\"linearGradient\", {\n x1: \"94.582%\",\n y1: \"6.451%\",\n x2: \"23.195%\",\n y2: \"83.323%\",\n id: \"svg1842926308b\"\n}, React.createElement(\"stop\", {\n stopColor: \"#CDE1FF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#AFFBF4\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"94.582%\",\n y1: \"6.594%\",\n x2: \"23.195%\",\n y2: \"83.214%\",\n id: \"svg1842926308d\"\n}, React.createElement(\"stop\", {\n stopColor: \"#FFF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#FDFFFF\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"93.837%\",\n y1: \"55.274%\",\n x2: \"29.292%\",\n y2: \"-20.431%\",\n id: \"svg1842926308g\"\n}, React.createElement(\"stop\", {\n stopColor: \"#FFFCC7\",\n stopOpacity: \"0\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#FFF470\",\n offset: \"100%\"\n})), React.createElement(\"linearGradient\", {\n x1: \"50%\",\n y1: \"0%\",\n x2: \"50%\",\n y2: \"98.152%\",\n id: \"svg1842926308i\"\n}, React.createElement(\"stop\", {\n stopColor: \"#83D6FF\",\n offset: \"0%\"\n}), React.createElement(\"stop\", {\n stopColor: \"#72B9EF\",\n offset: \"100%\"\n})), React.createElement(\"path\", {\n d: \"M.228 8.25l4.055-7.007C4.579.727 5.709.074 6.425.009L14.48.001c.633-.03 1.853.635 2.236 1.3l3.934 6.812c.398.69.345 2.074-.017 2.765l-3.868 6.685c-.472.64-1.77 1.39-2.446 1.416l-7.767.008c-.689-.033-1.992-.72-2.345-1.332L.232 10.769c-.338-.585-.278-1.938-.004-2.519z\",\n id: \"svg1842926308a\"\n}), React.createElement(\"path\", {\n d: \"M1.389 8.38l3.589-6.202c.262-.457 1.263-1.033 1.898-1.09h7.143c.56-.026 1.643.565 1.984 1.153l3.494 6.037c.353.611.308 1.837-.012 2.449l-3.424 5.916c-.418.567-1.569 1.23-2.168 1.252H7.006c-.61-.03-1.766-.64-2.08-1.182L1.395 10.61c-.3-.518-.249-1.717-.006-2.23z\",\n id: \"svg1842926308c\"\n}), React.createElement(\"path\", {\n d: \"M.124 0l-.161-.002c3.374 0 6.11 2.727 6.11 6.092 0 3.279-2.974 4.316-2.974 7.123a.84.84 0 01-.84.838H.123V8.623a1.75 1.75 0 000-3.437V0z\",\n id: \"svg1842926308e\"\n}), React.createElement(\"path\", {\n d: \"M5.92 0l-.012 5.154-.132.006A1.75 1.75 0 005.9 8.654l-.012 5.409H3.486c-.237-.07-.4-.155-.489-.254-.089-.098-.17-.284-.242-.557l-.291-1.341a2.084 2.084 0 00-.12-.344 1.507 1.507 0 00-.187-.267L.25 8.796a1.032 1.032 0 01-.201-.293 1.277 1.277 0 01-.048-.38V3.917a.522.522 0 01.027-.22.562.562 0 01.147-.172L3.546.111a.456.456 0 01.11-.088A.345.345 0 013.784 0h2.136z\",\n id: \"svg1842926308h\"\n})), React.createElement(\"g\", {\n stroke: \"none\",\n strokeWidth: \"1\",\n fill: \"none\",\n fillRule: \"evenodd\"\n}, React.createElement(\"g\", null, React.createElement(\"g\", {\n transform: \"translate(1.5 .75)\"\n}, React.createElement(\"use\", {\n fill: \"url(#svg1842926308b)\",\n xlinkHref: \"#svg1842926308a\"\n}), React.createElement(\"use\", {\n fill: \"url(#svg1842926308d)\",\n opacity: \".5\",\n xlinkHref: \"#svg1842926308c\"\n})), React.createElement(\"g\", {\n transform: \"translate(8.707 3.846)\"\n}, React.createElement(\"rect\", {\n fill: \"#363636\",\n x: \"1.932\",\n y: \"16.593\",\n width: \"2.644\",\n height: \"2.895\",\n rx: \"1.322\"\n}), React.createElement(\"path\", {\n d: \"M6.018 14.845v2.367c0 .9-.743 1.629-1.66 1.629H2.27c-.917 0-1.66-.73-1.66-1.63v-2.366l.004-.095h5.401c.002.031.003.063.003.095z\",\n fill: \"#717171\"\n}), React.createElement(\"path\", {\n d: \"M5.168 17.15c0 .9-.618 1.63-1.38 1.63H2.049c-.762 0-1.38-.73-1.38-1.63v-2.37h4.5v2.37z\",\n fill: \"#828282\"\n}), React.createElement(\"path\", {\n d: \"M5.939 17.28a.5.5 0 010 1H.569a.5.5 0 110-1h5.37zm0-1.376a.5.5 0 010 1H.569a.5.5 0 110-1h5.37zm0-1.375a.5.5 0 010 1H.569a.5.5 0 110-1h5.37z\",\n fill: \"#B1B1B1\"\n}), React.createElement(\"path\", {\n d: \"M3.125 17.28v1h-2v-1h2zm0-1.376v1h-2v-1h2zm0-1.375v1h-2v-1h2z\",\n fill: \"#C5C5C5\"\n}), React.createElement(\"g\", {\n transform: \"translate(3.375)\"\n}, React.createElement(\"mask\", {\n id: \"svg1842926308f\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg1842926308e\"\n})), React.createElement(\"use\", {\n fill: \"#FFD44B\",\n xlinkHref: \"#svg1842926308e\"\n}), React.createElement(\"path\", {\n d: \"M-6.125 6.091A6.076 6.076 0 01-.025 0c3.367 0 6.098 2.727 6.098 6.091 0 3.279-2.969 4.316-2.969 7.123a.838.838 0 01-.839.837H-2.51a.838.838 0 01-.839-.837c0-2.562-2.775-3.73-2.775-7.123z\",\n fill: \"#FFD347\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"path\", {\n d: \"M-6.125 6.091A6.076 6.076 0 01-.025 0c3.367 0 6.098 2.727 6.098 6.091 0 3.279-2.969 4.316-2.969 7.123a.838.838 0 01-.839.837H-2.51a.838.838 0 01-.839-.837c0-2.562-2.775-3.73-2.775-7.123z\",\n fill: \"#FFDE72\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"path\", {\n d: \"M1.496 6.08c.02-.896.936-1.336 1.732-.85.906.553.507 2.04-.592 2.069H2.199l-.576 7.012-.75-.032.552-6.406.023-.574H.124v-.75h1.354l.017-.448v-.02zm1.342-.21c-.318-.193-.58-.072-.592.221l-.001.036-.016.422h.373c.357 0 .5-.493.252-.668l-.016-.01z\",\n fill: \"#F3BE13\",\n mask: \"url(#svg1842926308f)\"\n}), React.createElement(\"ellipse\", {\n fill: \"url(#svg1842926308g)\",\n mask: \"url(#svg1842926308f)\",\n cx: \"-.236\",\n cy: \"6.031\",\n rx: \"4.567\",\n ry: \"4.583\"\n})))), React.createElement(\"g\", null, React.createElement(\"g\", {\n transform: \"translate(5.706 3.846)\"\n}, React.createElement(\"mask\", {\n id: \"svg1842926308j\",\n fill: \"#fff\"\n}, React.createElement(\"use\", {\n xlinkHref: \"#svg1842926308h\"\n})), React.createElement(\"use\", {\n fill: \"url(#svg1842926308i)\",\n xlinkHref: \"#svg1842926308h\"\n}), React.createElement(\"path\", {\n fill: \"#D6FCFA\",\n fillRule: \"nonzero\",\n opacity: \".5\",\n mask: \"url(#svg1842926308j)\",\n d: \"M4.78 1.404v.75h-.444L1.56 4.93H-.706v-.75H1.25l2.775-2.776zM3.21 5.097l1.725 1.725H6.25v.75H4.625L2.68 5.628zM6.664 3.53v.75H4.958l-.492.53-.55-.51.714-.77zM1.781 6.53l2.565 2.564h.462v.75h-.773L1.47 7.28H-.08v-.75zM2.67 10.53h1.118L5.05 11.79h2.094v.75H4.74L3.477 11.28z\"\n}))), React.createElement(\"circle\", {\n fill: \"#008FD8\",\n cx: \"11.75\",\n cy: \"10.75\",\n r: \"1.125\"\n}))));","import {\n allPass,\n always,\n anyPass,\n chain,\n complement,\n curry,\n either,\n flatten,\n identity,\n isEmpty,\n pipe,\n prop,\n propEq,\n T\n} from 'ramda';\nimport memoizeOne from 'memoize-one';\n\nimport i18n from 'ui-i18n';\nimport MLRecommendedIcon from './icons/ml-recommended.svg';\nimport {prepareAttrUriForSearch} from './searchEngine';\nimport {DEFAULT_FACET_PAGE_SIZE} from '../../constants/constants';\nimport {\n findClosestCommonAncestor,\n getAllAttributeTypesTree,\n getAttributeTypeSubAttributes,\n getDataTenantSpecialAttributeFieldName,\n getEntityType,\n getEntityTypeLabel,\n getFacetTypeForAttrType,\n hasMatchRulesWithoutML,\n hasMlMatchRule,\n isAvailableEntityType,\n isComplexAttribute,\n SpecialAttrTypes\n} from '@reltio/mdm-sdk';\nimport {createAttributesGroup} from './advancedSearch/collectSpecialAttributes';\n\nexport const createFacetForSpecialAttrType = (attrType, facetProps) => ({\n title: attrType.label,\n fieldName: attrType.name,\n type: getFacetTypeForAttrType(attrType),\n attrType: {\n type: attrType.type,\n singleValue: attrType.singleValue,\n hideForDataTenant: attrType.hideForDataTenant,\n faceted: true\n },\n ...facetProps\n});\n\nexport const createDataTenantConfigPart = ({dataTenant, fieldNameForRequest, dataTenantFieldName, originalTitle}) => ({\n fieldName: getDataTenantSpecialAttributeFieldName(fieldNameForRequest, dataTenant.id),\n fieldNameForRequest,\n dataTenant: dataTenant.id,\n dataTenantFieldName,\n title: `${dataTenant.label} ${originalTitle}`\n});\n\nconst additionalAttributesRules = [\n {\n attribute: createFacetForSpecialAttrType(SpecialAttrTypes.matchRules, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n check: hasMatchRulesWithoutML\n },\n {\n attribute: createFacetForSpecialAttrType(SpecialAttrTypes.MLRecommendedMatch, {\n fieldNameForRequest: 'matchRules',\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount',\n LogoIcon: MLRecommendedIcon\n }),\n check: hasMlMatchRule\n }\n];\n\nexport const getAdditionalAttributes = curry((dataTenants, entityType) => {\n const additionalAttributes = additionalAttributesRules.reduce((attributes, {attribute, check}) => {\n check(entityType) && attributes.push({...attribute, entityTypeUri: entityType.uri});\n return attributes;\n }, []);\n const dataTenantAdditionalAttributes = (dataTenants || []).flatMap((dataTenant) =>\n additionalAttributes\n .filter(propEq('fieldName', SpecialAttrTypes.matchRules.name))\n .map((additionalAttribute) => ({\n ...additionalAttribute,\n ...createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matchRules',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant',\n originalTitle: additionalAttribute.title\n })\n }))\n );\n return additionalAttributes.concat(dataTenantAdditionalAttributes);\n});\n\nexport const getPageSizeByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return 1;\n default:\n return DEFAULT_FACET_PAGE_SIZE;\n }\n};\n\nexport const getOrderTypeByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return 'reversedTerm';\n default:\n return 'reversedCount';\n }\n};\n\nexport const getDisableIncludeFilterByAttrType = (attrType = {}) => {\n switch (attrType.type) {\n case 'Int':\n case 'Float':\n case 'Double':\n case 'Long':\n case 'Number':\n case 'Date':\n case 'ActivenessDate':\n case 'Timestamp':\n return true;\n default:\n return false;\n }\n};\n\nconst isFaceted = curry((metadata, attrType) => {\n if (isComplexAttribute(attrType)) {\n const attributes = getAttributeTypeSubAttributes(metadata, attrType);\n return attributes.some(isFaceted(metadata));\n } else {\n return !!attrType.faceted;\n }\n});\n\nexport const getChildrenAttributes = (entity = []) => {\n return (entity.children\n ? entity.children.concat(entity.children.map(getChildrenAttributes)).flat(Infinity)\n : []\n ).filter(complement(isEmpty));\n};\n\nexport const createComplexAttributesConfig = (\n metadata,\n attrNode,\n entityTypeUri,\n fieldName,\n createAttributeConfig,\n parents = []\n) => {\n const resConfig = {\n ...createAttributeConfig(metadata, attrNode, entityTypeUri, fieldName, parents),\n uri: attrNode.uri\n };\n const children = attrNode.children\n ? attrNode.children.map((childNode) =>\n createComplexAttributesConfig(\n metadata,\n childNode,\n entityTypeUri,\n '',\n createAttributeConfig,\n parents.concat({name: attrNode.name, label: attrNode.label})\n )\n )\n : [];\n\n if (children.length) resConfig.children = children;\n\n return resConfig;\n};\n\nexport const createAttributeItem = (metadata, attrType, entityTypeUri, fieldName, parents) => {\n const entityTypeLabel = getEntityTypeLabel(metadata, {type: entityTypeUri});\n const title = attrType.label || attrType.name;\n return {\n title: title,\n pathToTitle: Array.isArray(parents)\n ? [entityTypeLabel, ...chain(prop('label'), parents), title]\n : [entityTypeLabel, title],\n fieldName: fieldName || prepareAttrUriForSearch(attrType.uri, parents),\n entityTypeUri: entityTypeUri,\n attrType: attrType,\n pageSize: getPageSizeByAttrType(attrType),\n orderType: getOrderTypeByAttrType(attrType),\n isComplex: isComplexAttribute(attrType),\n disableIncludeFilter: getDisableIncludeFilterByAttrType(attrType)\n };\n};\n\nexport const getAttributesTree = (metadata, entityOrAttrType, filterFaceted = true) => {\n return getAllAttributeTypesTree(metadata, entityOrAttrType, either(always(!filterFaceted), isFaceted(metadata)));\n};\n\nexport const collectAttributeGroups = memoizeOne(\n (\n metadata,\n selectedEntityTypes = [],\n createGroup,\n createAttributeConfig,\n filterFaceted = true,\n onlyOneSelectedEntityType = true,\n dataTenants\n ) => {\n const inSelectedTypes = (value) => selectedEntityTypes.includes(value);\n const isOnlyOneSelected = () => onlyOneSelectedEntityType;\n const isOnlyOneSelectedReceived = () => propEq('length', 1, selectedEntityTypes);\n const {entityTypes} = metadata;\n\n return entityTypes\n .filter(isAvailableEntityType)\n .filter(\n anyPass([\n always(!selectedEntityTypes.length),\n allPass([isOnlyOneSelected, isOnlyOneSelectedReceived, propEq('uri', selectedEntityTypes[0])]),\n allPass([complement(isOnlyOneSelected), pipe(prop('uri'), inSelectedTypes)])\n ])\n )\n .map((entityType) => {\n const title = getEntityTypeLabel(metadata, {type: entityType.uri});\n\n const complexAttributes = getAdditionalAttributes(dataTenants, entityType).concat(\n getAttributesTree(metadata, entityType, filterFaceted).map((attrNode) =>\n createComplexAttributesConfig(metadata, attrNode, entityType.uri, '', createAttributeConfig)\n )\n );\n\n return complexAttributes.length ? createGroup(entityType.uri, title, complexAttributes) : null;\n })\n .filter(identity);\n }\n);\n\nexport const collectAdvancedAttributeGroups = memoizeOne(\n (metadata, selectedEntityTypes = [], attributesFilter = T, dataTenants) => {\n if (selectedEntityTypes.length === 0) {\n return collectAttributeGroups(\n metadata,\n undefined,\n createAttributesGroup,\n createAttributeItem,\n false,\n true,\n dataTenants\n );\n }\n\n const groups = [];\n const entityTypeUri =\n selectedEntityTypes.length > 1\n ? findClosestCommonAncestor(metadata, selectedEntityTypes)\n : selectedEntityTypes[0];\n\n if (entityTypeUri) {\n const entityType = getEntityType(metadata, entityTypeUri);\n const title =\n selectedEntityTypes.length > 1\n ? i18n.text('Attributes')\n : getEntityTypeLabel(metadata, {type: entityType.uri});\n\n const additionalAttributes = getAdditionalAttributes(dataTenants, entityType).filter(attributesFilter);\n const complexAttributes = additionalAttributes.concat(\n getAttributesTree(metadata, entityType, false).map((attrNode) =>\n createComplexAttributesConfig(metadata, attrNode, entityType.uri, '', createAttributeItem)\n )\n );\n if (complexAttributes.length) {\n groups.push(createAttributesGroup(entityType.uri, title, complexAttributes));\n }\n }\n\n return groups;\n }\n);\n\n//TODO: move to uisdk? Duplicates packages/components/src/components/VirtualGroupedList/helpers.js\nexport const flattenGroupedItemsData = (groupedItems) => {\n const getFlattenedItems = (items) =>\n flatten(items.map((item) => [item].concat(item.items ? getFlattenedItems(item.items) : [])));\n\n let titleItemIndex = null;\n const items = getFlattenedItems(groupedItems).map((item, index) => {\n if (item && item.items) {\n titleItemIndex = index;\n }\n return {item, index, titleItemIndex};\n });\n return items;\n};\n","import {\n chain,\n curry,\n identity,\n intersection,\n is,\n isNil,\n map,\n memoizeWith,\n pipe,\n prop,\n propEq,\n propOr,\n reject,\n toString,\n when\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {DEFAULT_FACET_PAGE_SIZE} from '../../constants/constants';\nimport {\n FACET_TYPES,\n getDataTenantSpecialAttributeFieldName,\n getFacetTypeForAttrType,\n isLookupAttrType,\n SpecialAttrTypes\n} from '@reltio/mdm-sdk';\nimport {\n collectAttributeGroups,\n createAttributeItem,\n createDataTenantConfigPart,\n createFacetForSpecialAttrType\n} from './collectAttributes.js';\nimport {getChildrenAttributes} from './collectAttributes';\nimport {envSpecificKey} from '../../utils/general';\n\nexport const getEntityTypeFacetConfig = (_metadata) =>\n createFacetForSpecialAttrType(SpecialAttrTypes.type, {\n hiddenTitle: i18n.text('Entity types'),\n disableIncludeFilter: true,\n pageSize: 101,\n showIcon: true,\n barColor: '#61D55D',\n transparentBackground: true,\n showDeleteButton: false\n });\n\nconst potentialMatchesFacetConfig = createFacetForSpecialAttrType(SpecialAttrTypes.matches, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n});\n\nexport const specialFacets = [\n createFacetForSpecialAttrType(SpecialAttrTypes.createdBy, {\n pageSize: DEFAULT_FACET_PAGE_SIZE\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.updatedBy, {\n pageSize: DEFAULT_FACET_PAGE_SIZE\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.createdTime, {\n disableIncludeFilter: true,\n pageSize: 1,\n orderType: 'reversedTerm'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.updatedTime, {\n disableIncludeFilter: true,\n pageSize: 1,\n orderType: 'reversedTerm'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.sourceSystems, {\n title: i18n.text('Sources'),\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.tags, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.roles, {\n pageSize: DEFAULT_FACET_PAGE_SIZE,\n orderType: 'reversedCount'\n }),\n potentialMatchesFacetConfig,\n createFacetForSpecialAttrType(SpecialAttrTypes.matchScore, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.startDate, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n }),\n createFacetForSpecialAttrType(SpecialAttrTypes.endDate, {\n pageSize: 1,\n orderType: 'reversedTerm',\n disableIncludeFilter: true\n })\n];\n\nexport const getSpecialFacets = (dataTenants) => {\n const dataTenantFacets = (dataTenants || []).map((dataTenant) => ({\n ...potentialMatchesFacetConfig,\n ...createDataTenantConfigPart({\n dataTenant,\n fieldNameForRequest: 'dtPotentialMatches.matches',\n dataTenantFieldName: 'dtPotentialMatches.dataTenant',\n originalTitle: potentialMatchesFacetConfig.title\n })\n }));\n return specialFacets.concat(dataTenantFacets);\n};\n\nexport const createAttributeFacetConfig = (metadata, attrType, entityTypeUri, fieldName, parents) => {\n return {\n ...createAttributeItem(metadata, attrType, entityTypeUri, fieldName, parents),\n uri: attrType.uri,\n type: getFacetTypeForAttrType(attrType)\n };\n};\n\nconst collectAttributeFacetsGroups = (metadata, selectedEntityTypes = [], dataTenants) => {\n return collectAttributeGroups(\n metadata,\n selectedEntityTypes,\n createFacetsGroup,\n createAttributeFacetConfig,\n true,\n true,\n dataTenants\n );\n};\n\nconst memoizedCollectAttributeFacetsGroups = memoizeWith(\n (metadata, selectedEntityTypes = [], dataTenants) =>\n envSpecificKey(selectedEntityTypes.toString() + (dataTenants || []).map(prop('id')).toString()),\n collectAttributeFacetsGroups\n);\n\nconst createFacetsGroup = (id, title, facets, needGroupIcon = true) => {\n return facets && facets.length\n ? {\n id,\n title,\n needGroupIcon,\n facets\n }\n : null;\n};\n\nexport const collectFacetsList = (metadata, selectedEntityTypes, recommendedFacets = [], dataTenants) => {\n const onlyOneEntityTypeSelected = selectedEntityTypes.length === 1;\n const specialFacets = getSpecialFacets(dataTenants);\n const specialGroup = createFacetsGroup('special', i18n.text('Basic'), specialFacets, false);\n const entityTypesGroup = memoizedCollectAttributeFacetsGroups(metadata, selectedEntityTypes, dataTenants);\n const entityTypesFacets = chain(prop('facets'), entityTypesGroup);\n const recommendedFacetsConfigs = pipe(\n map(findFacetConfigByFieldName([...specialFacets, ...entityTypesFacets])),\n reject(isNil)\n )(recommendedFacets);\n\n return [createFacetsGroup('recommended', i18n.text('Recommended'), recommendedFacetsConfigs, false)]\n .concat(onlyOneEntityTypeSelected ? entityTypesGroup : specialGroup)\n .concat(onlyOneEntityTypeSelected ? specialGroup : entityTypesGroup)\n .filter(identity);\n};\n\nexport const findFacetConfigByFieldName = curry((facetConfigs, fieldName) => {\n const facetConfig = facetConfigs.find(propEq('fieldName', fieldName));\n if (!facetConfig) {\n const children = chain(propOr([], 'children'), facetConfigs);\n return children.length ? findFacetConfigByFieldName(children, fieldName) : undefined;\n } else {\n return facetConfig;\n }\n});\n\nconst flattenChildrenForEntityTypeConfigs = (entityTypeConfig) => ({\n ...entityTypeConfig,\n facets: entityTypeConfig.facets.reduce((facetConfigs, facetConfig) => {\n facetConfigs.push(facetConfig);\n facetConfig.children && facetConfigs.push(...getChildrenAttributes(facetConfig));\n return facetConfigs;\n }, [])\n});\n\nexport const getAvailableFacetsGroupsList = (metadata, selectedEntityTypes, dataTenants) =>\n collectFacetsList(metadata, selectedEntityTypes, [], dataTenants).map(flattenChildrenForEntityTypeConfigs);\n\nconst getFlatFacets = (facet) => (facet.children ? [facet].concat(facet.children.flatMap(getFlatFacets)) : [facet]);\n\nexport const collectFacetsFlatList = (metadata, selectedEntityTypes, recommendedFacets, dataTenants) => {\n return collectFacetsList(metadata, selectedEntityTypes, recommendedFacets, dataTenants)\n .flatMap((facetGroup) => facetGroup.facets)\n .flatMap(getFlatFacets);\n};\n\nexport const prepareFacetDataForStore = (fieldName, {values = [], showAllItems} = {}) =>\n reject(isNil, {\n fieldName: fieldName,\n data: [],\n values: values && values.map(when(is(Boolean), toString)),\n showAllItems\n });\n\nexport const isComplexFacet = (config) => config.type === FACET_TYPES.COMPLEX_FACET;\n\nexport const isLookupFacet = (facet) => facet.attrType && isLookupAttrType(facet.attrType);\n\nexport const isPotentialMatchesFacet = (facet) =>\n facet.fieldName === 'matches' ||\n facet.fieldName === 'potentialMatches.matchScore' ||\n facet.fieldName.startsWith(getDataTenantSpecialAttributeFieldName('dtPotentialMatches.matches', ''));\n\nexport const isMatchRuleFacet = (facet) =>\n intersection(['matchRules', 'dtPotentialMatches.matchRules'], [facet.fieldNameForRequest, facet.fieldName]).length >\n 0;\n\nexport const isMLMatchRuleFacet = (facet) => facet.fieldName === 'MLRecommendedMatch';\n\nexport const isDataTenantFacet = (facet) => !!facet.dataTenant;\n","import {filter, isEmpty, not, partition, path, pick, pipe, prop} from 'ramda';\nimport nanoid from 'nanoid';\nimport memoizeOne from 'memoize-one';\nimport {collectSpecialAttributesGroups} from '../advancedSearch/collectSpecialAttributes';\nimport {\n getEntityTypeLabel,\n getFilterOptionForFacet,\n getFilterValueForFacet,\n isTypeFacet,\n getFilterOptionsForQueryBuilder\n} from '@reltio/mdm-sdk';\nimport {defaultGroupOperator} from '../../../constants/constants';\n\nconst getValuableFacets = filter(pipe(prop('values'), isEmpty, not));\n\nconst memoizedCollectSpecialAttributesGroups = memoizeOne((dataTenants) =>\n collectSpecialAttributesGroups({dataTenants})\n);\n\nexport const getGroupTitle = (metadata, dataTenants, data) => {\n return (\n getEntityTypeLabel(metadata, {type: data.entityTypeUri}) ||\n (\n memoizedCollectSpecialAttributesGroups(dataTenants).find((group) =>\n group.attributes.find((attr) => attr.fieldName === data.fieldName)\n ) || {}\n ).title\n );\n};\n\nexport const createAdvancedSearchGroupFromFacets = (metadata, dataTenants, facetsWithConfigs) => {\n const facetsToConvert = getValuableFacets(facetsWithConfigs);\n\n const [[typeFacet = {}], restFacets] = partition(isTypeFacet, facetsToConvert);\n\n const attributes = restFacets.reduce(\n (attributesList, facet) => {\n const filterOptions = getFilterOptionsForQueryBuilder(facet.attrType, facet.fieldName);\n const filter = getFilterOptionForFacet(facet);\n const dataFromFacet = pick([\n 'title',\n 'pathToTitle',\n 'fieldName',\n 'fieldNameForRequest',\n 'dataTenant',\n 'dataTenantFieldName',\n 'attrType',\n 'groupName',\n 'entityTypeUri',\n 'pageSize',\n 'orderType',\n 'isComplex',\n 'disableIncludeFilter',\n 'uri'\n ])(facet);\n\n const data = {\n ...dataFromFacet,\n groupName: getGroupTitle(metadata, dataTenants, dataFromFacet),\n filterOptions\n };\n\n const values = getFilterValueForFacet(facet);\n\n attributesList[0].push({\n data,\n operator: 'and',\n filter,\n id: nanoid(),\n values\n });\n\n return attributesList;\n },\n [[]]\n );\n\n return attributes\n .filter((attributeList) => attributeList.length || path(['values', 'length'], typeFacet))\n .map((attributeList) => ({\n attributes: attributeList,\n operator: defaultGroupOperator.value,\n id: nanoid(),\n entityTypes: typeFacet.values || []\n }));\n};\n","import {any, complement, filter, map, pipe, prop, propOr} from 'ramda';\n\nimport {isAvailableEntityType} from '@reltio/mdm-sdk';\n\nexport const hasNotAvailableEntityTypes = pipe(propOr([], 'entityTypes'), any(complement(isAvailableEntityType)));\n\nexport const getAvailableEntityTypesUris = pipe(\n propOr([], 'entityTypes'),\n filter(isAvailableEntityType),\n map(prop('uri'))\n);\n\nexport const addAvailableEntityTypesIfNeeded = (metadata, entityTypes = []) =>\n entityTypes.length === 0 && hasNotAvailableEntityTypes(metadata)\n ? getAvailableEntityTypesUris(metadata)\n : entityTypes;\n\nexport const removeNumberForDtssUnavailableEntityTypeItems = (items, tenantObject) => {\n if (tenantObject && Array.isArray(tenantObject.availableEntityTypes)) {\n return items.map((item) => {\n if (!tenantObject.availableEntityTypes.includes(item.value)) {\n return {...item, number: undefined};\n }\n return item;\n });\n }\n return items;\n};\n","import {\n __,\n curry,\n either,\n filter,\n find,\n flatten,\n gt,\n identity,\n ifElse,\n length,\n map,\n path,\n pipe,\n prop,\n propEq,\n propOr,\n uniqBy,\n when\n} from 'ramda';\nimport {Decimal} from 'decimal.js';\nimport {\n getAttrTypeLookupCode,\n getEntityType,\n getEntityTypeLabel,\n getLastUriPart,\n getLookupLabel,\n getUnresolvedLookupsList,\n isAvailableEntityType,\n isEnumAttrType,\n Maybe,\n mergeLookupsLists,\n orderByArrayComparator,\n isTypeFacet,\n FACET_TYPES,\n formatDataTypeValue,\n getAttrDataTypeDefinition,\n isBooleanType\n} from '@reltio/mdm-sdk';\n\nimport {getTypeGraphIcon} from '../entity/image';\nimport {formatMomentDate, formatNumberAsMetric} from '../../utils/general';\nimport {isLookupFacet, isMatchRuleFacet} from './collectFacets';\nimport moment from 'moment';\nimport {\n DATE_RANGE_MAX_VALUE,\n DATE_RANGE_MIN_VALUE,\n ENTITY_TYPE_FACET_ROW_COUNT,\n NUMERIC_RANGE_MAX_VALUE,\n NUMERIC_RANGE_MIN_VALUE\n} from '../../constants/constants';\nimport {createRangeServiceFor} from './rangeFacet';\nimport {addAvailableEntityTypesIfNeeded} from './entityTypes';\nimport {Facets, Search} from '../../constants/actionTypes';\n\nexport const findConfigByFieldName = (fieldName, configs) => {\n const config = configs.find((config) => [config.fieldName, `${config.fieldName}.ov`].includes(fieldName));\n if (config) {\n return config;\n } else {\n console.warn(`Can't find facet config for ${fieldName} fieldName`);\n return null;\n }\n};\n\nexport const prepareFacets = (metadata, facets, attributes, lookupsCodes, viewConfig) => {\n return Object.keys(facets).reduce((result, fieldName) => {\n const attribute = findConfigByFieldName(fieldName, attributes);\n if (attribute) {\n const realFieldName = attribute.fieldName;\n result[realFieldName] = prepareFacet(\n metadata,\n realFieldName,\n facets[fieldName],\n attribute,\n lookupsCodes,\n viewConfig\n );\n }\n return result;\n }, {});\n};\n\nexport const prepareStatsFacet = (facets, attributes) => {\n return Object.keys(facets).reduce((result, fieldName) => {\n const attribute = findConfigByFieldName(fieldName, attributes);\n if (attribute) {\n result[attribute.fieldName] = statsProcessing(\n facets[fieldName],\n attribute.attrType && attribute.attrType.type\n );\n }\n return result;\n }, {});\n};\n\nconst sortByNumber = (a, b) => b.number - a.number;\nconst numberMoreThanZero = ({number}) => number > 0;\nconst configHasValue = ({values = []}) => ({value}) => values.includes(value);\nconst specialFacetsFilter = (config) => either(numberMoreThanZero, configHasValue(config));\n\nconst defaultProcessing = (rawData) =>\n Object.keys(rawData)\n .map((key) => ({\n value: key,\n number: rawData[key],\n label: key\n }))\n .sort(sortByNumber);\n\nconst numericRangeTypeProcessing = (rawData, type) =>\n Object.keys(rawData).map((key) => ({\n value: type === 'Long' ? new Decimal(key) : +key,\n number: rawData[key],\n label: key\n }));\n\nconst lookupProcessing = (rawData, lookupCode) => {\n return defaultProcessing(rawData).map((data) => ({\n ...data,\n label: getLookupLabel(data.value, path([data.value, 'displayName'], lookupCode))\n }));\n};\n\nconst enumProcessing = (rawData, enumerationList) => {\n return enumerationList\n .map((value) => ({\n value,\n label: value,\n number: rawData[value] || 0\n }))\n .sort(sortByNumber);\n};\n\nconst booleanProcessing = (rawData, dataTypeDefinition) => {\n return Object.keys(rawData)\n .map((key) => ({\n value: key,\n number: rawData[key],\n label: formatDataTypeValue({dataTypeDefinition}, key)\n }))\n .sort(sortByNumber);\n};\n\nexport const entityTypeProcessing = (metadata, rawData, allowedEntityTypes) => {\n const {entityTypes} = metadata;\n return entityTypes\n .filter(allowedEntityTypes ? ({uri}) => allowedEntityTypes.includes(uri) : identity)\n .sort(allowedEntityTypes ? orderByArrayComparator(allowedEntityTypes, 'uri') : (_) => 0)\n .map((entityType) => {\n const lastUriPart = getLastUriPart(entityType.uri);\n return isAvailableEntityType(entityType)\n ? {\n value: entityType.uri,\n number: rawData[lastUriPart] || 0,\n label: getEntityTypeLabel(metadata, {type: entityType.uri}) || lastUriPart,\n icon: getTypeGraphIcon(metadata, entityType.uri)\n }\n : null;\n })\n .filter(identity);\n};\n\nconst roleProcessing = (metadata, rawData, attribute) => {\n const {roles} = metadata;\n return roles\n .map((role) => {\n const lastUriPart = getLastUriPart(role.uri);\n return {\n value: role.uri,\n label: role.label,\n number: rawData[lastUriPart] || 0\n };\n })\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nconst sourceSystemsProcessing = (metadata, rawData, attribute) => {\n const {sources} = metadata;\n\n return sources\n .map((source) => {\n const lastUriPart = getLastUriPart(source.uri);\n return {\n value: lastUriPart,\n number: rawData[lastUriPart] || 0,\n label: source.label || lastUriPart\n };\n })\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nconst matchRulesProcessing = (metadata, rawData, attribute) => {\n const entityType = getEntityType(metadata, attribute.entityTypeUri);\n const matchGroups = (entityType && entityType.matchGroups) || [];\n\n return uniqBy(prop('value'), [\n ...matchGroups.map(({uri, label}) => ({\n isRaw: false,\n value: uri,\n number: rawData[uri] || 0,\n label: label || uri\n })),\n ...Object.entries(rawData).map(([uriOrLabel, count]) => {\n const matchGroup = find(propEq('uri', uriOrLabel))(matchGroups);\n const isRaw = !matchGroup;\n\n return {\n value: uriOrLabel,\n number: count,\n label: isRaw ? uriOrLabel : matchGroup.label,\n isRaw\n };\n })\n ])\n .filter(specialFacetsFilter(attribute))\n .sort(sortByNumber);\n};\n\nexport const statsProcessing = (rawData, type) => {\n const {min, max, count} = rawData;\n return {\n min: type === 'Long' ? new Decimal(min) : +min,\n max: type === 'Long' ? new Decimal(max) : +max,\n count\n };\n};\n\nconst prepareFacet = (metadata, fieldName, rawData, attribute, lookupsCodes = {}, viewConfig = {}) => {\n switch (fieldName) {\n case 'type': {\n const {allowedEntityTypes} = viewConfig;\n return entityTypeProcessing(metadata, rawData, allowedEntityTypes);\n }\n case 'roles':\n return roleProcessing(metadata, rawData, attribute);\n case 'sourceSystems':\n return sourceSystemsProcessing(metadata, rawData, attribute);\n }\n if (isMatchRuleFacet(attribute)) {\n return matchRulesProcessing(metadata, rawData, attribute);\n }\n if (isLookupFacet(attribute)) {\n return lookupProcessing(rawData, lookupsCodes[getAttrTypeLookupCode(attribute.attrType)]);\n }\n if (isEnumAttrType(attribute.attrType)) {\n return enumProcessing(rawData, path(['attrType', 'values'], attribute));\n }\n if (isBooleanType(attribute.attrType?.type)) {\n return booleanProcessing(rawData, getAttrDataTypeDefinition(attribute.attrType));\n }\n switch (attribute.type) {\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n case FACET_TYPES.DATE_RANGE_FACET:\n return numericRangeTypeProcessing(rawData, attribute.attrType && attribute.attrType.type);\n default:\n return defaultProcessing(rawData);\n }\n};\n\nexport const getDefaultRangeByType = (facetType) => {\n switch (facetType) {\n case FACET_TYPES.DATE_RANGE_FACET:\n return [DATE_RANGE_MIN_VALUE, DATE_RANGE_MAX_VALUE];\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n default:\n return [NUMERIC_RANGE_MIN_VALUE, NUMERIC_RANGE_MAX_VALUE];\n }\n};\n\nexport const fixNaNValues = curry((defaultValue, facets) => {\n Object.values(facets).map((facet) =>\n facet.filter((item) => isNaN(item.value)).forEach((item) => (item.value = defaultValue))\n );\n return facets;\n});\n\nexport const fixNaNValue = (defaultValue, facetValue) => {\n return isNaN(facetValue) ? defaultValue : facetValue;\n};\n\nexport const getFacetByFieldName = (fieldName, facets) =>\n facets.find((facet) => facet.fieldName === fieldName || facet.fieldNameForRequest === fieldName);\n\nexport const getAcceptedFacetValues = (facetData, acceptedValues) =>\n Object.keys(facetData)\n .filter((value) => acceptedValues.includes(value))\n .reduce((acc, value) => {\n acc[value] = facetData[value];\n return acc;\n }, {});\n\nexport const mergeConfigs = (facets, configsArray) => {\n const configs = configsArray.reduce((result, config) => {\n result[config.fieldName] = config;\n return result;\n }, {});\n return Object.keys(facets).reduce((result, fieldName) => {\n const config = configs[fieldName];\n result[fieldName] = {...facets[fieldName], ...config};\n return result;\n }, {});\n};\n\nexport const setFiltersToFacets = (facets) =>\n Object.keys(facets).reduce((result, fieldName) => {\n result[fieldName] = {...facets[fieldName], filter: facetTypeToFilter(facets[fieldName].type)};\n return result;\n }, {});\n\nexport const addAvailableEntityTypeValues = (metadata) =>\n map(\n ifElse(\n isTypeFacet,\n (facet) => ({\n ...facet,\n values: addAvailableEntityTypesIfNeeded(metadata, facet.values)\n }),\n identity\n )\n );\n\nexport const filterAllowedEntityTypes = (allowedEntityTypes) =>\n map(\n when(isTypeFacet, (facet) => ({\n ...facet,\n values:\n allowedEntityTypes && allowedEntityTypes.length > 0\n ? facet.values\n .filter((value) => allowedEntityTypes.includes(value))\n .sort(orderByArrayComparator(allowedEntityTypes))\n : facet.values\n }))\n );\n\nexport const getEntityTypeFacetFromState = path(['facets', 'facetsData', 'type']);\n\nconst facetTypeToFilter = (type) =>\n ({\n entityTypeFacet: 'equals',\n facetWithDropdownCheckboxes: 'equals',\n numericRangeFacet: 'range',\n dateRangeFacet: 'range'\n }[type]);\n\nexport const needFacetsCleanUp = (action = {}) => {\n const isTypeFacetAction = path(['payload', 'facetFieldName'], action) === 'type';\n return (\n (action.type === Facets.CHANGE_VALUES && isTypeFacetAction) ||\n action.type === Facets.CLEAR_ALL_VALUES ||\n action.type === Search.CLEAR_ALL\n );\n};\n\nexport const buildValuesLabels = (data = [], values = [], type = '') => {\n return values.map((value) => {\n let range;\n switch (type) {\n case FACET_TYPES.NUMERIC_RANGE_FACET:\n return `${formatNumberAsMetric(+value[0], 10000)} — ${formatNumberAsMetric(+value[1], 10000)}`;\n case FACET_TYPES.DATE_RANGE_FACET:\n range = createRangeServiceFor().getRange(values, data);\n return `${formatMomentDate(moment(range[0]))} \\u2014 ${formatMomentDate(moment(range[1]))}`;\n case FACET_TYPES.ENTITY_TYPE_FACET:\n case FACET_TYPES.WITH_DROPDOWN_CHECKBOXES_FACET:\n default:\n return Maybe.fromNull(data.find((item) => item.value === value)).orSome({label: value || ''}).label;\n }\n });\n};\n\nexport const needShowAllEntityTypeFacetItems = pipe(propOr([], 'values'), length, gt(__, ENTITY_TYPE_FACET_ROW_COUNT));\nexport const getLookupsListFromFacets = pipe(\n pipe(\n filter(isLookupFacet),\n map((facet) => ({\n type: getAttrTypeLookupCode(path(['attrType'], facet)),\n codeValues: flatten(propOr([], 'values', facet))\n })),\n filter(({codeValues}) => codeValues.length > 0)\n ),\n mergeLookupsLists\n);\n\nexport const getUnresolvedLookupsListFromFacet = (facets, resolvedLookups) =>\n pipe(getLookupsListFromFacets, getUnresolvedLookupsList(resolvedLookups))(facets);\n","import {propEq, propOr} from 'ramda';\n\nexport const getConfigForFacet = (facetsGroups) => (facet) => {\n const entityType = facet.entityType || facet.entityTypeUri || 'special';\n const group = facetsGroups.find(propEq('id', entityType));\n const facets = propOr([], 'facets', group);\n return facets.find(propEq('fieldName', facet.fieldName));\n};\n\nexport const reduceFacetsConfig = (facetsGroups) => {\n const getFacetConfig = getConfigForFacet(facetsGroups);\n return (acc, facet) => {\n const config = getFacetConfig(facet);\n return config && !acc.find(propEq('fieldName', facet.fieldName)) ? [...acc, config] : acc;\n };\n};\n","import {getAvailableFacetsGroupsList, getEntityTypeFacetConfig} from '../collectFacets';\nimport {assoc, dissoc, evolve, filter, map, omit, pipe, reduce, values} from 'ramda';\nimport {reduceFacetsConfig} from './parsingUtils';\nimport {isAvailableEntityTypeUri} from '@reltio/mdm-sdk';\n\nexport const parseFacets = (metadata, facets, dataTenants) => {\n const entityTypeFacet = getEntityTypeFacetConfig(metadata);\n if (!facets || facets.length === 0) {\n return {facetsData: {}, facetsConfigs: [entityTypeFacet]};\n }\n\n const selectedEntityTypes = facets.type ? facets.type.values.filter(isAvailableEntityTypeUri(metadata)) : [];\n const availableFacetsGroupsList = getAvailableFacetsGroupsList(metadata, selectedEntityTypes, dataTenants);\n\n const facetsConfigs = pipe(\n dissoc('type'),\n values,\n reduce(reduceFacetsConfig(availableFacetsGroupsList), [entityTypeFacet])\n )(facets);\n\n const facetsData = pipe(\n evolve({\n type: assoc('values', selectedEntityTypes)\n }),\n filter(isInFacetsConfigs(facetsConfigs)),\n map(omit(['entityTypeUri']))\n )(facets);\n\n return {facetsConfigs, facetsData};\n};\n\nconst isInFacetsConfigs = (configs) => (facet) => configs.find((config) => config.fieldName === facet.fieldName);\n","import {\n chain,\n compose,\n either,\n isEmpty,\n isNil,\n partition,\n path,\n pathOr,\n pipe,\n prop,\n propEq,\n propOr,\n reject,\n values\n} from 'ramda';\nimport {getAvailableFacetsGroupsList, getEntityTypeFacetConfig} from '../collectFacets';\nimport {getConfigForFacet} from './parsingUtils';\nimport {\n convertOldFacets,\n findAttributeTypeByUri,\n getOldRangeFacetValues,\n isRangeFacet,\n isTypeFacet,\n searchUriToAttrUri\n} from '@reltio/mdm-sdk';\n\nexport const mergeFacetValuesByFieldName = pipe(\n (facets) =>\n facets.reduce((acc, facet) => {\n acc[facet.fieldName] = {\n ...facet,\n values: [...propOr([], 'values', facet), ...pathOr([], [facet.fieldName, 'values'], acc)]\n };\n return acc;\n }, {}),\n values\n);\n\nexport const parseOldFacets = (metadata, dataTenants, facets) => {\n const entityTypeFacet = getEntityTypeFacetConfig(metadata);\n if (!facets || isEmpty(facets)) {\n return {facetsData: {}, facetsConfigs: [entityTypeFacet]};\n }\n\n const [tenantFacets, nonTenantFacets] = partition((facet) => facet.fieldName === 'tenants', facets);\n const currentTenant = path([0, 'currentTenant'], tenantFacets);\n\n const [typeFacets, nonTypeFacets] = partition((facet) => facet.fieldName === 'type', nonTenantFacets);\n\n const selectedEntityTypes = chain(propOr([], 'values'), typeFacets);\n const getFacetConfig = compose(getConfigForFacet, getAvailableFacetsGroupsList)(\n metadata,\n selectedEntityTypes,\n dataTenants\n );\n\n const convertedFacets = convertOldFacets(nonTypeFacets);\n\n const isBasicFacetFilter = either(pipe(prop('filter'), isNil), propEq('filter', 'equals'));\n const isAdvancedFacet = (facet) => !getFacetConfig(facet) || !isBasicFacetFilter(facet);\n const hasAdvancedFacets = convertedFacets.some(isAdvancedFacet);\n\n if (hasAdvancedFacets) {\n const advanced = convertedFacets.reduce(reduceAdvancedFromFacets(metadata), {\n entityTypes: selectedEntityTypes,\n searchParams: []\n });\n return {currentTenant, advanced, facetsConfigs: [], facetsData: {}};\n } else {\n const basicFacets = mergeFacetValuesByFieldName(convertedFacets);\n const facetsConfigs = [entityTypeFacet, ...basicFacets.map(getFacetConfig)];\n const facetsData = [...typeFacets, ...basicFacets].reduce(reduceNewFacetsData(facetsConfigs), {});\n return {currentTenant, facetsConfigs, facetsData};\n }\n};\n\nexport const reduceAdvancedFromFacets = (metadata) => (advanced, facet) => {\n if (facet.entityType) {\n const attrUri = searchUriToAttrUri(facet.fieldName, facet.entityType);\n const attrType = findAttributeTypeByUri(metadata, attrUri);\n if (attrType) {\n if (advanced.entityTypes.length === 0) {\n advanced.entityTypes.push(facet.entityType);\n }\n if (advanced.entityTypes.includes(facet.entityType)) {\n advanced.searchParams.push({\n fieldName: facet.fieldName,\n filter: facet.filter || 'equals',\n uri: attrType.uri,\n values: facet.values || []\n });\n }\n }\n }\n return advanced;\n};\n\nexport const reduceNewFacetsData = (facetsConfigs) => (data, facet) => {\n const config = facetsConfigs.find((config) => config.fieldName === facet.fieldName);\n if (config) {\n const values = isRangeFacet(config) ? getOldRangeFacetValues(facet.values) : facet.values;\n const showAllItems = isTypeFacet(config) && facet.showAllEntityTypes ? facet.showAllEntityTypes : null;\n return {\n ...data,\n [facet.fieldName]: reject(isNil, {\n fieldName: facet.fieldName,\n values,\n showAllItems\n })\n };\n } else {\n return data;\n }\n};\n","import {curry, find, pick, pipe, propEq} from 'ramda';\nimport {\n findAttributeTypeByUri,\n getAttributeTypesHierarchyByUri,\n getEntityType,\n getEntityTypeLabel,\n searchUriToAttrUri,\n getFilterOptionsForQueryBuilder\n} from '@reltio/mdm-sdk';\nimport {createAttributeItem, getAdditionalAttributes} from '../collectAttributes';\nimport {collectSpecialAttributesGroups} from '../advancedSearch/collectSpecialAttributes';\n\nconst parseSpecialAttributeData = (metadata, dataTenants, canUserReadWorkflowDataTask, {fieldName}) => {\n const specialAttributeGroup = collectSpecialAttributesGroups({\n dataTenants,\n canUserReadWorkflowDataTask\n }).find((group) => group.attributes.find((attr) => attr.fieldName === fieldName));\n const specialAttr =\n specialAttributeGroup && specialAttributeGroup.attributes.find((attr) => attr.fieldName === fieldName);\n\n return specialAttr\n ? {\n groupName: specialAttributeGroup.title,\n filterOptions: getFilterOptionsForQueryBuilder(specialAttr.attrType, fieldName),\n ...pick(\n [\n 'title',\n 'fieldName',\n 'attrType',\n 'pageSize',\n 'orderType',\n 'dataTenant',\n 'fieldNameForRequest',\n 'dataTenantFieldName'\n ],\n specialAttr\n )\n }\n : null;\n};\n\nconst parseRegularAttributeData = (metadata, {uri, entityTypeUri, fieldName}) => {\n const attrType = findAttributeTypeByUri(metadata, uri);\n if (attrType) {\n const parents = (\n getAttributeTypesHierarchyByUri(metadata, searchUriToAttrUri(fieldName, entityTypeUri), entityTypeUri) || []\n )\n .map(pick(['label', 'name']))\n .slice(0, -1);\n\n return {\n uri,\n groupName: getEntityTypeLabel(metadata, {type: entityTypeUri}),\n filterOptions: getFilterOptionsForQueryBuilder(attrType, fieldName),\n ...createAttributeItem(metadata, attrType, entityTypeUri, fieldName, parents)\n };\n } else {\n return null;\n }\n};\n\nconst parseAdditionalAttributeData = (metadata, dataTenants, {fieldName, entityTypeUri}) => {\n const additionalAttribute = pipe(\n getEntityType(metadata),\n getAdditionalAttributes(dataTenants),\n find(propEq('fieldName', fieldName))\n )(entityTypeUri);\n\n return additionalAttribute\n ? {\n groupName: getEntityTypeLabel(metadata, {type: entityTypeUri}),\n filterOptions: getFilterOptionsForQueryBuilder(additionalAttribute.attrType, fieldName),\n ...additionalAttribute\n }\n : null;\n};\n\nconst parseAttributeData = curry((metadata, dataTenants, canUserReadWorkflowDataTask, attrData) => {\n const {uri} = attrData;\n if (uri && !uri.startsWith('special/')) {\n return parseRegularAttributeData(metadata, attrData);\n } else {\n return (\n parseSpecialAttributeData(metadata, dataTenants, canUserReadWorkflowDataTask, attrData) ||\n parseAdditionalAttributeData(metadata, dataTenants, attrData)\n );\n }\n});\n\nexport {parseAttributeData};\n","import {curry, evolve, pipe, prop, reject} from 'ramda';\nimport nanoid from 'nanoid';\nimport {parseAttributeData} from './parseAttributeData';\nimport {\n convertOldAdvancedAttribute,\n convertTransitionAttributes,\n findClosestCommonAncestor,\n isEmptySearchGroup,\n sanitizeTypesInSearchGroups,\n wrapInArray\n} from '@reltio/mdm-sdk';\nimport {defaultGroupOperator, defaultOperator} from '../../../constants/constants';\n\nexport const parseAttribute = curry((metadata, dataTenants, canUserReadWorkflowDataTask, entityTypeUri, attribute) => {\n return pipe(\n convertOldAdvancedAttribute(metadata, entityTypeUri),\n evolve({\n data: parseAttributeData(metadata, dataTenants, canUserReadWorkflowDataTask)\n })\n )(attribute);\n});\n\nconst parseOldAdvancedSearch = (\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n oldAdvancedSearch = {},\n useSeparateGroups = false\n) => {\n const {searchParams = [], fastSearchParams = [], entityTypes = []} = oldAdvancedSearch;\n const attributes = [...searchParams, ...fastSearchParams]\n .map(\n parseAttribute(\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n findClosestCommonAncestor(metadata, entityTypes)\n )\n )\n .filter((attribute) => attribute && attribute.data);\n\n const makeGroup = curry((operator, attributes) => ({\n id: nanoid(),\n operator,\n attributes,\n entityTypes\n }));\n const groups = useSeparateGroups\n ? attributes.map(pipe(wrapInArray, makeGroup(defaultOperator.value)))\n : wrapInArray(makeGroup(defaultGroupOperator.value, attributes));\n\n return pipe(sanitizeTypesInSearchGroups(metadata), convertTransitionAttributes, reject(isEmptySearchGroup))(groups);\n};\n\nexport const mergeAdvancedAndFacets = (advancedGroups, facetsGroups) => {\n const attributesFromFacets = prop(\n 'attributes',\n facetsGroups.find((group) => group.attributes)\n );\n attributesFromFacets.map((facetAttribute) => advancedGroups[0].attributes.push(facetAttribute));\n return advancedGroups;\n};\n\nexport {parseOldAdvancedSearch as default};\n","import {attributeUriToSearchUri, findAttributeTypeByUri, isComplexAttribute} from '@reltio/mdm-sdk';\nimport {DEFAULT_VIEW, PREVIEW_PANEL_MODES, SEARCH_RESULTS_MODES} from '../../../constants/constants';\nimport {concat, mergeDeepWith, propOr} from 'ramda';\nimport {getInitialColumnsByEntityTypes} from '../searchResults';\n\nexport const OLD_SEARCH_RESULTS_MODES = {\n NO_PREVIEW: 'NoPreview',\n PREVIEW: 'Preview',\n MAP_PREVIEW: 'MapPreview',\n TABLE_VIEW: 'TableView'\n};\n\nexport const NEW_SEARCH_RESULTS_MODES = {\n [OLD_SEARCH_RESULTS_MODES.NO_PREVIEW]: SEARCH_RESULTS_MODES.LIST,\n [OLD_SEARCH_RESULTS_MODES.PREVIEW]: DEFAULT_VIEW,\n [OLD_SEARCH_RESULTS_MODES.MAP_PREVIEW]: DEFAULT_VIEW,\n [OLD_SEARCH_RESULTS_MODES.TABLE_VIEW]: SEARCH_RESULTS_MODES.TABLE\n};\n\nexport const PREVIEW_PANEL_MODES_MAPPING = {\n [OLD_SEARCH_RESULTS_MODES.PREVIEW]: PREVIEW_PANEL_MODES.PROFILE\n};\n\nexport const parseOldView = (metadata, view = {}, viewConfig = {}) => {\n const {mode, tabs = []} = view;\n const {allowedEntityTypes} = viewConfig;\n return {\n searchResultsMode: NEW_SEARCH_RESULTS_MODES[mode] || DEFAULT_VIEW,\n previewPanelMode: PREVIEW_PANEL_MODES_MAPPING[mode] || null,\n entityTypeTab: propOr(null, 'entityTypeUri', findActiveTab(tabs)),\n sortField: 'label',\n sortOrder: 'asc',\n searchResultsColumns: processOldTabs(metadata, allowedEntityTypes, tabs)\n };\n};\n\nconst findActiveTab = (tabs) => tabs.find((tab) => tab.selected) || {};\n\nconst processOldTabs = (metadata, allowedEntityTypes, tabs) => {\n const columnsByEntityTypes = getInitialColumnsByEntityTypes(metadata, allowedEntityTypes);\n const columnsFromTabs = tabs.reduce((result, tab) => {\n result[tab.entityTypeUri] = tab.selectedAttributes\n .map((attribute) => {\n const attrType = findAttributeTypeByUri(metadata, attribute);\n return {\n id: attributeUriToSearchUri(attrType.uri),\n label: attrType.label,\n attrType: attrType\n };\n })\n .filter((attribute) => !isComplexAttribute(attribute.attrType));\n return result;\n }, {});\n return mergeDeepWith(concat, columnsByEntityTypes, columnsFromTabs);\n};\n","import {path, propEq} from 'ramda';\n\nexport const parseOldSearchOptions = (advanced = {}) => {\n const advancedOptions = advanced.options || [];\n const searchByOvOption = advancedOptions.find(propEq('fieldName', 'searchByOv'));\n if (searchByOvOption) {\n const searchByOv = path(['values', 0], searchByOvOption);\n if (typeof searchByOv === 'boolean') {\n return {\n searchByOv: searchByOv,\n ovOnly: searchByOv\n };\n }\n }\n return null;\n};\n","import {parseFacets} from './parseFacets';\nimport {parseOldFacets} from './parseOldFacets';\nimport parseOldAdvancedSearch, {mergeAdvancedAndFacets} from './parseOldAdvancedSearch';\nimport {parseAttributeData} from './parseAttributeData';\nimport {parseOldView} from './parseOldView';\nimport {DEFAULT_VIEW} from '../../../constants/constants';\nimport {prepareFacetDataForStore} from '../collectFacets';\nimport {createAdvancedSearchGroupFromFacets} from '../converting/createAdvancedSearchFromFacets';\nimport {mergeConfigs} from '../facet';\nimport {parseOldSearchOptions} from './parseOldSearchOptions';\nimport {getKeywordFromOldSearchState, parseAdvancedSearch, findAttributeTypeByUri} from '@reltio/mdm-sdk';\n\nconst parseSearchState = (metadata, state, config, dataTenants, canUserReadWorkflowDataTask) => {\n try {\n const {version} = state;\n return version === '2.0'\n ? parseNewSearchState(metadata, state, dataTenants, canUserReadWorkflowDataTask)\n : parseOldSearchState(metadata, state, config, dataTenants, canUserReadWorkflowDataTask);\n } catch (e) {\n console.warn(\"Can't parse search state\", e);\n return {\n errors: Array.isArray(e) ? e : [e]\n };\n }\n};\n\nconst parseNewSearchState = (\n metadata,\n {keyword = null, facets = {}, advanced = [], map, view, searchOptions, currentSavedSearchUri, currentTenant},\n dataTenants,\n canUserReadWorkflowDataTask\n) => {\n const newState = {map, keyword, searchOptions};\n const hasActiveAdvancedSearch = advanced.some(\n ({attributes, entityTypes = []}) => attributes.length || entityTypes.length\n );\n if (hasActiveAdvancedSearch) {\n newState.advanced = parseAdvancedSearch(\n parseAttributeData,\n metadata,\n advanced,\n dataTenants,\n canUserReadWorkflowDataTask\n );\n } else {\n newState.facets = parseFacets(metadata, facets, dataTenants);\n }\n\n if (view) {\n const tabs = view.tabs || {};\n Object.keys(tabs).forEach((key) => {\n tabs[key] = (tabs[key] || []).map((item) => ({\n ...item,\n attrType: item.attrType\n ? findAttributeTypeByUri(metadata, item.attrType.uri) || item.attrType\n : undefined\n }));\n });\n\n newState.view = {\n searchResultsMode: view.searchResultsMode || DEFAULT_VIEW,\n entityTypeTab: view.entityTypeTab,\n sortField: view.sortField,\n sortOrder: view.sortOrder,\n searchResultsColumns: tabs,\n previewPanelMode: view.previewPanelMode || null\n };\n }\n\n if (currentSavedSearchUri) {\n newState.currentSavedSearchUri = currentSavedSearchUri;\n }\n if (currentTenant) {\n newState.currentTenant = currentTenant;\n }\n return newState;\n};\n\nconst parseOldSearchState = (metadata, oldState, viewConfig, dataTenants, canUserReadWorkflowDataTask) => {\n const {facets = {}, advanced, view, curSavedSearchUri, useSeparateGroups} = oldState;\n const newState = {\n keyword: getKeywordFromOldSearchState(oldState),\n searchOptions: parseOldSearchOptions(advanced)\n };\n const {currentTenant, advanced: advancedFromFacets, ...parsedFacets} = parseOldFacets(\n metadata,\n dataTenants,\n facets\n );\n const parsedAdvanced = parseOldAdvancedSearch(\n metadata,\n dataTenants,\n canUserReadWorkflowDataTask,\n advanced || advancedFromFacets,\n useSeparateGroups\n );\n const hasActiveAdvancedSearch = parsedAdvanced.some(({attributes}) => attributes.length);\n if (hasActiveAdvancedSearch) {\n const {facetsData, facetsConfigs} = parsedFacets;\n const newData = facetsConfigs.reduce((data, config) => {\n return {\n ...data,\n [config.fieldName]: prepareFacetDataForStore(config.fieldName, facetsData[config.fieldName])\n };\n }, {});\n const groupFromFacets = createAdvancedSearchGroupFromFacets(\n metadata,\n dataTenants,\n Object.values(mergeConfigs(newData, facetsConfigs))\n );\n newState.advanced =\n groupFromFacets.length > 0 ? mergeAdvancedAndFacets(parsedAdvanced, groupFromFacets) : parsedAdvanced;\n } else {\n newState.facets = parsedFacets;\n }\n\n if (view) {\n newState.view = parseOldView(metadata, view, viewConfig);\n }\n\n if (curSavedSearchUri) {\n newState.currentSavedSearchUri = curSavedSearchUri;\n }\n\n if (currentTenant) {\n newState.currentTenant = currentTenant;\n }\n\n return newState;\n};\n\nexport default parseSearchState;\n","import {head, isNil, last, pathOr, unfold} from 'ramda';\nimport {Decimal} from 'decimal.js';\nimport {isFloatingType} from '@reltio/mdm-sdk';\nimport {formatNumberAsMetric, getNumbersMath} from '../../utils/general';\n\nexport const createRangeServiceFor = (attrType) => {\n const NumMath = getNumbersMath(attrType);\n const getRange = (values, data) => {\n const begin = pathOr(pathOr(null, ['value', 0], head(data)), [0, 0], values);\n const end = pathOr(pathOr(null, ['value', 1], last(data)), [0, 1], values);\n if (begin === null || end === null) {\n return [];\n }\n\n if (NumMath.lessThanOrEqualTo(begin, end)) {\n return [begin, end];\n } else {\n return [end, begin];\n }\n };\n\n const adjustRange = (range, min, max) => {\n const start = range[0];\n const end = range[1];\n return [isNil(min) ? start : NumMath.max(start, min), isNil(max) ? end : NumMath.min(end, max)];\n };\n\n const equals = (...args) => NumMath.equals(...args);\n\n const formatNumberForRangeFacet = (value) =>\n NumMath.greaterThan(value, 10000) ? formatNumberAsMetric(value, 10000) : value.toString();\n\n const getBarDomain = (data) => (data.length > 0 ? [head(data).value[0], last(data).value[1]] : []);\n\n const calcScale = (min, max) => {\n if (attrType === 'Long') {\n const delta = max.minus(min);\n\n // calculate ratio\n const ratio = delta.div(2).gt(Number.MAX_SAFE_INTEGER)\n ? new Decimal(Number.MAX_SAFE_INTEGER).mul(2).div(delta)\n : 1;\n\n const ratioFirstValue = min.mul(ratio);\n const ratioLastValue = max.mul(ratio);\n\n // calculate offset\n const offset = ratioFirstValue.lt(Number.MIN_SAFE_INTEGER)\n ? new Decimal(Number.MIN_SAFE_INTEGER).minus(ratioFirstValue)\n : ratioLastValue.gt(Number.MAX_SAFE_INTEGER)\n ? new Decimal(Number.MAX_SAFE_INTEGER).minus(ratioLastValue)\n : 0;\n\n return {ratio: ratio, offset: offset};\n }\n\n return {ratio: 1, offset: 0};\n };\n const revertScale = (value, scale) =>\n NumMath.toFixed(NumMath.div(NumMath.minus(value, scale.offset), scale.ratio), 0);\n\n const applyScale = (value, scale) => Number(NumMath.plus(NumMath.mul(value, scale.ratio), scale.offset));\n\n const bigNumbersTickFormatterX = (formatter, scale) => (value) => formatter(revertScale(value, scale));\n\n const addRanges = (values = [], start, end, interval) => {\n if (values.length === 0) {\n return [];\n }\n\n const firstValue = values[0].value;\n const lastValue = values[values.length - 1].value;\n const headValues = NumMath.greaterThan(firstValue, start)\n ? unfold(\n (n) => (NumMath.lessThan(n, firstValue) ? [{value: n, number: 0}, NumMath.plus(n, interval)] : false),\n start\n )\n : [];\n const tailValues = NumMath.lessThan(lastValue, NumMath.minus(end, interval))\n ? unfold(\n (n) =>\n NumMath.lessThanOrEqualTo(n, end) ? [{value: n, number: 0}, NumMath.plus(n, interval)] : false,\n NumMath.plus(lastValue, interval)\n )\n : [];\n return [...headValues, ...values, ...tailValues];\n };\n\n const getInterval = (from, to, bars = 50) => {\n if (from === to) {\n return 1;\n } else {\n return isFloatingType(attrType)\n ? (to - from) / bars\n : NumMath.ceil(NumMath.div(NumMath.minus(to, from), bars));\n }\n };\n\n return {\n NumMath,\n getRange,\n formatNumberForRangeFacet,\n getBarDomain,\n calcScale,\n revertScale,\n applyScale,\n bigNumbersTickFormatterX,\n adjustRange,\n equals,\n addRanges,\n getInterval\n };\n};\n","import queryString from 'query-string';\nimport {pipe} from 'ramda';\n\nconst addPrefixIfNecessary = (query) => (query ? `?${query}` : '');\nconst stringifyObject = (urlSearchObj) => queryString.stringify(urlSearchObj, {strict: false});\nexport const stringifySearch = pipe(stringifyObject, addPrefixIfNecessary);\n","import {\n __,\n allPass,\n always,\n append,\n assoc,\n both,\n complement,\n compose,\n concat,\n cond,\n defaultTo,\n evolve,\n filter,\n flatten,\n has,\n identity,\n ifElse,\n inc,\n join,\n length,\n lt,\n map,\n path,\n pathOr,\n pipe,\n pluck,\n prop,\n propEq,\n propOr,\n propSatisfies,\n reduce,\n slice,\n split,\n T,\n uniq,\n values,\n when\n} from 'ramda';\nimport {\n ActivityFilters,\n addGlobalFilterToQuery,\n attributeUriToSearchUri,\n basicFilterBuildRules,\n buildBasicFilterString,\n buildComplexFilterString,\n buildFilterHierarchyList,\n buildFilterQueryString,\n buildOperationsToString,\n canWrapInSameAttribute,\n FilterOptions,\n getEntityType,\n getRootFieldName,\n isAndOperator,\n isAvailableEntityType,\n isDateType,\n isOrOperator,\n isValidSearchGroup,\n isValidSearchGroupAttribute,\n joinFilterStrings,\n Maybe,\n parseCompositeFilters,\n requestForDataTenant,\n shiftDownOperators,\n shiftUpOperators,\n wrapQueryWithBrackets\n} from '@reltio/mdm-sdk';\nimport {getEnvironment, getTenant} from '../../utils/general';\nimport {stringifySearch} from '../../utils/url';\nimport {DEFAULT_SEARCH_SELECT, ROWS_PER_PAGE_OPTIONS} from '../../constants/constants';\n\nexport const isNotEmptyParam = (param) => (param.values && param.values.length) || param.rawFilter;\n\nconst prepareDataTenantFilters = (facet) =>\n facet.dataTenant\n ? [\n {\n filter: 'equals',\n fieldName: facet.dataTenantFieldName,\n values: [facet.dataTenant]\n }\n ]\n : [];\n\nconst getFieldNameForRequestRule = (extraBuildRules = []) => [\n prop('fieldNameForRequest'),\n ({fieldNameForRequest, ...otherData}) => {\n const query = cond([...extraBuildRules, ...basicFilterBuildRules])({\n ...otherData,\n fieldName: fieldNameForRequest\n });\n return pipe(\n buildFilterQueryString(),\n wrapQueryWithBrackets\n )([\n {\n rawFilter: query\n },\n ...prepareDataTenantFilters(otherData)\n ]);\n }\n];\n\nexport const buildQuery = buildFilterQueryString([getFieldNameForRequestRule()]);\n\nexport const buildQueryTree = pipe(filter(isNotEmptyParam), buildFilterHierarchyList);\n\nexport const buildEntitiesUrl = (searchParams, options = {}) => {\n const {sortOrder, sortField, select, forceOvOnly, searchOptions, activityFilter, globalFilter} = options;\n const filterParam = pipe(buildQuery, addGlobalFilterToQuery(globalFilter))(searchParams);\n const page = options.page || 0;\n const rowsPerPage = options.rowsPerPage || ROWS_PER_PAGE_OPTIONS[0];\n\n const urlSearch = {\n filter: filterParam || undefined,\n select: buildSelectParam(searchParams, activityFilter, select),\n max: rowsPerPage,\n offset: page * rowsPerPage,\n sort: sortField || undefined,\n order: sortOrder || undefined,\n scoreEnabled: false,\n options: (forceOvOnly ? addToSearchOptions(searchOptions, 'ovOnly') : searchOptions) || undefined,\n activeness: activityFilter || undefined\n };\n\n return `entities${stringifySearch(urlSearch)}`;\n};\n\nconst addToSearchOptions = (options, value) => {\n options = options || '';\n const splitted = options.split(',').filter(identity);\n return splitted.includes(value) ? options : splitted.concat(value).join(',');\n};\n\nexport const buildEntitiesByUrisRequest = (entitiesUris, searchParams, options = {}) => {\n const {select, searchOptions, activityFilter} = options;\n\n const body = {\n select: buildSelectParam(searchParams, activityFilter, select),\n uris: entitiesUris,\n options: addToSearchOptions(searchOptions, 'ovOnly')\n };\n\n return {\n url: 'entities/_byUris',\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nconst buildSelectParam = (searchParams, activityFilter, select = []) => {\n const selectParams = DEFAULT_SEARCH_SELECT.concat(select);\n if (activityFilter && activityFilter !== ActivityFilters.ACTIVE_ONLY) {\n selectParams.push('startDate', 'endDate');\n }\n return uniq(selectParams).join(',');\n};\n\nexport const businessCardAttributeURIsSelectRule = propOr([], 'businessCardAttributeURIs');\n\nexport const geoLocationAttributesSelectRule = compose(\n flatten,\n map((item) => [item.latitude, item.longitude]),\n propOr([], 'geoLocationAttributes')\n);\n\nexport const collectAdditionalSelect = (metadata, searchParams, selectRules = []) => {\n const entityTypesForSearch = Maybe.fromNull(\n searchParams.find((param) => param.fieldName === 'type' && param.values.length)\n )\n .map(prop('values'))\n .orSome(pluck('uri', metadata.entityTypes));\n const additionalAttrs = entityTypesForSearch.map((entityTypeUri) => {\n const entityType = getEntityType(metadata, entityTypeUri);\n\n return selectRules\n .reduce((attrUris, rule) => attrUris.concat(rule(entityType)), [])\n .map(prepareAttrUriForSearch);\n });\n return uniq(flatten(additionalAttrs).map(getFirstLevelSearchUri));\n};\n\nexport const prepareAttrUriForSearch = attributeUriToSearchUri;\n\nexport const getFirstLevelSearchUri = pipe(split('.'), slice(0, 2), join('.'));\n\nexport const buildFacetsRequest = (facets, searchParams, excludeFields = [], options = {}, extraUrlParams = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const dataTenantSearchParams = facets.length === 1 ? prepareDataTenantFilters(facets[0]) : [];\n const filterParam = pipe(\n filter((param) => param.forceInclude || !excludeFields.includes(param.fieldName)),\n concat(__, dataTenantSearchParams),\n buildQuery,\n addGlobalFilterToQuery(globalFilter)\n )(searchParams);\n const body = facets.map((facet) => {\n const facetBody = {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n pageSize: facet.pageSize,\n pageNo: 1,\n orderType: facet.orderType\n };\n if (!facet.disableIncludeFilter) {\n facetBody.includeFilter = facet.includeFilter || facet.values;\n }\n return facetBody;\n });\n\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined,\n ...extraUrlParams\n };\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildPotentialMatchesFacetUrl = (from, to, bars, searchParams, excludeFields = [], options = {}) => {\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = preparePotentialMatchesUrlSearch(from, to, bars, searchParams, excludeFields, options);\n return `api/${env}/${tenant}/entities/potentialMatches${stringifySearch(urlSearch)}`;\n};\n\nexport const buildMatchScoresFacetUrl = (from, to, bars, searchParams, excludeFields = [], options = {}) => {\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = preparePotentialMatchesUrlSearch(from, to, bars, searchParams, excludeFields, options);\n return `api/${env}/${tenant}/entities/matchScores${stringifySearch(urlSearch)}`;\n};\n\nconst preparePotentialMatchesUrlSearch = (from, to, bars, searchParams, excludeFields, options) => {\n const {searchOptions, activityFilter, globalFilter, dataTenant} = options;\n const filterParam = buildPureSearchQuery(searchParams, excludeFields, globalFilter);\n return {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n from,\n to,\n bars,\n activeness: activityFilter || undefined,\n dataTenant\n };\n};\n\nexport const buildTypeaheadRequest = ({entityTypes}, searchValue, maxSuggestions) => {\n const entityForRequest = entityTypes.filter(isAvailableEntityType).map(prop('uri'));\n const entityFilter = {\n filter: 'equals',\n fieldName: 'type',\n values: entityForRequest\n };\n const fuzzyFilter = {\n filter: 'containsWordStartingWith',\n fieldName: 'attributes',\n values: [searchValue]\n };\n const typeAheadFilter = buildQuery([entityFilter, fuzzyFilter]);\n const env = getEnvironment(),\n tenant = getTenant();\n const urlSearch = {\n filter: typeAheadFilter || undefined,\n scoreEnabled: true,\n max: maxSuggestions + 1\n };\n return {\n url: `api/${env}/${tenant}/entities/_typeAheadSearch${stringifySearch(urlSearch)}`\n };\n};\n\nexport const buildHistogramUrl = (facet, searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter, ...restOptions} = options;\n const filterParam = buildPureSearchQuery(\n searchParams.concat(prepareDataTenantFilters(facet)),\n excludeFields,\n globalFilter\n );\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n const body = [\n {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n facetType: 'histogram',\n ...restOptions\n }\n ];\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildStatsUrl = (facet, searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const filterParam = buildPureSearchQuery(\n searchParams.concat(prepareDataTenantFilters(facet)),\n excludeFields,\n globalFilter\n );\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n const body = [\n {\n fieldName: facet.fieldNameForRequest || facet.fieldName,\n facetType: 'stats'\n }\n ];\n\n return {\n url: `entities/_facets${stringifySearch(urlSearch)}`,\n options: {\n method: 'POST',\n body: JSON.stringify(body),\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n };\n};\n\nexport const buildPureSearchQuery = (searchParams, excludeFields = [], globalFilter) => {\n return pipe(\n filter((param) => param.forceInclude || !excludeFields.includes(param.fieldName)),\n buildQuery,\n addGlobalFilterToQuery(globalFilter)\n )(searchParams);\n};\n\nexport const buildTotalUrlQuery = (searchParams, excludeFields = [], options = {}) => {\n const {searchOptions, activityFilter, globalFilter} = options;\n const filterParam = buildPureSearchQuery(searchParams, excludeFields, globalFilter);\n const urlSearch = {\n filter: filterParam || undefined,\n options: searchOptions || undefined,\n activeness: activityFilter || undefined\n };\n\n return stringifySearch(urlSearch).slice(1);\n};\n\nexport function callSearchRequestForTenant({searchRequest, url, options, dataTenant, customerTenant, dtssPath}) {\n return dataTenant\n ? requestForDataTenant({requestProvider: searchRequest, url, options, dataTenant, customerTenant, dtssPath})\n : searchRequest(`api/${getEnvironment()}/${customerTenant}/${url}`, options);\n}\n\nexport const buildTotalUrl = (searchParams, excludeFields = [], options) => {\n const urlQuery = buildTotalUrlQuery(searchParams, excludeFields, options);\n return `entities/_total${urlQuery ? `?${urlQuery}` : ''}`;\n};\n\nexport const buildTotalUrlForQuery = (query) => {\n const env = getEnvironment(),\n tenant = getTenant();\n\n return `api/${env}/${tenant}/entities/_total?${query}`;\n};\n\nconst getAttributeType = path(['data', 'attrType', 'type']);\n\nconst groupAttributeFilters = (result, attribute) => {\n let {orGroupIndex = 0} = result;\n const {filters} = result;\n const {values, filter, operator} = attribute;\n if (isOrOperator(operator)) {\n orGroupIndex = inc(orGroupIndex);\n }\n const attributeFilters = pathOr({}, ['filters', orGroupIndex], result);\n const attributeFilter = {\n filter,\n fieldName: path(['data', 'fieldName'], attribute),\n fieldNameForRequest: path(['data', 'fieldNameForRequest'], attribute),\n dataTenant: path(['data', 'dataTenant'], attribute),\n dataTenantFieldName: path(['data', 'dataTenantFieldName'], attribute),\n values: getQueryValuesArray(values),\n type: getAttributeType(attribute),\n operator\n };\n\n const rootFieldName = getRootFieldName(attributeFilter);\n attributeFilters[rootFieldName] = concat(propOr([], rootFieldName, attributeFilters), [attributeFilter]);\n\n return {orGroupIndex, filters: assoc(orGroupIndex, attributeFilters, filters)};\n};\n\nconst canWrapAnyChildrenInSameAttribute = (filterHierarchyList = []) =>\n filterHierarchyList.reduce((result, filterHierarchy) => {\n return (\n result ||\n canWrapInSameAttribute(filterHierarchy.children) ||\n canWrapAnyChildrenInSameAttribute(filterHierarchy.children)\n );\n }, false);\n\nconst prepareAttributeFilterOperations = (disableInSameAttributeValue) => (operations, filter) => {\n const attributesFilters = values(filter);\n const attributesOperations = attributesFilters.map((sameRootFieldNameFilters) => {\n const operator = path([0, 'operator'], sameRootFieldNameFilters);\n const filterHierarchyList = pipe(parseCompositeFilters, buildFilterHierarchyList)(sameRootFieldNameFilters);\n if (!disableInSameAttributeValue && canWrapAnyChildrenInSameAttribute(filterHierarchyList)) {\n return {\n filter: sameRootFieldNameFilters,\n operator: cond([\n [isAndOperator, always('and')],\n [isOrOperator, identity],\n [T, always(null)]\n ])(operator)\n };\n }\n return {\n filter: sameRootFieldNameFilters,\n operator: operator\n };\n });\n\n return append(attributesOperations, operations);\n};\n\nconst getOperationObject = (operand, operator) => ({operand, operator});\n\nconst isMultipleComplexValuesFormat = both(propSatisfies(lt(1), 'length'), propSatisfies(Array.isArray, 0));\n\nconst specialFiltersRules = [\n [\n propEq('fieldName', 'rdmLookups.resolved'),\n ({fieldName, values}) =>\n buildBasicFilterString({\n filter: FilterOptions.EQUALS,\n fieldName,\n values: [!values[0]]\n })\n ],\n [\n allPass([\n propEq('filter', FilterOptions.EQUALS),\n propSatisfies(isMultipleComplexValuesFormat, 'values'),\n complement(propEq('fieldName', 'type')),\n propSatisfies(complement(isDateType), 'type')\n ]),\n ({fieldName, values}) =>\n pipe(\n map((values) =>\n values.length > 1\n ? buildComplexFilterString({fieldName, values, filter: 'listEquals'})\n : buildBasicFilterString({fieldName, values, filter: 'equals'})\n ),\n joinFilterStrings(' and ')\n )(values)\n ]\n];\n\nconst buildQueryToOperationObject = (filtersRules = [], disableInSameAttributeValue = false) => (items) => {\n const extraRules = [...specialFiltersRules, ...filtersRules];\n return items.map((item) =>\n getOperationObject(\n buildFilterQueryString(\n [getFieldNameForRequestRule(extraRules), ...extraRules],\n disableInSameAttributeValue\n )(item.filter),\n item.operator\n )\n );\n};\n\nconst getQueryValuesArray = pipe(defaultTo([]), map(when(has('value'), prop('value'))));\n\nconst buildGroupQuery = (query = '', entityTypes = []) => {\n const entityTypeCondition = [\n {\n filter: 'equals',\n fieldName: 'type',\n values: entityTypes\n }\n ];\n const entityTypesPart = buildFilterQueryString()(entityTypeCondition);\n return entityTypesPart + (entityTypesPart && query ? ` and ${wrapQueryWithBrackets(query)}` : query);\n};\nconst toArray = (value) => (Array.isArray(value) ? value : Object.keys(value).map((key) => value[key]));\nexport const buildQueryForAdvancedSearchGroups = (groups, filtersRules = [], disableInSameAttributeValue = false) => {\n const groupsOperations = groups\n .map(evolve({attributes: shiftDownOperators}))\n .filter(isValidSearchGroup)\n .map((group) => {\n const attributesQuery = pipe(\n prop('attributes'),\n filter(isValidSearchGroupAttribute),\n reduce(groupAttributeFilters, {filters: []}),\n prop('filters'),\n toArray,\n reduce(prepareAttributeFilterOperations(disableInSameAttributeValue), []),\n map(buildQueryToOperationObject(filtersRules, disableInSameAttributeValue)),\n flatten,\n filter((operation) => operation.operand),\n map(evolve({operand: (operand) => wrapQueryWithBrackets(operand, false)})),\n shiftUpOperators,\n buildOperationsToString\n )(group);\n return getOperationObject(buildGroupQuery(attributesQuery, group.entityTypes), group.operator);\n })\n .filter((groupOperation) => groupOperation.operand);\n\n return pipe(\n ifElse(\n pipe(length, lt(1)),\n map((operation) => getOperationObject(wrapQueryWithBrackets(operation.operand), operation.operator)),\n identity\n ),\n buildOperationsToString\n )(groupsOperations);\n};\n","import {\n __,\n complement,\n concat,\n curry,\n equals,\n filter,\n flatten,\n intersection,\n isNil,\n map,\n memoizeWith,\n pipe,\n pluck,\n prop,\n reject,\n sort,\n uniq\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {getEntityType, getLastUriPart, isNested, isReadableAttribute, Maybe} from '@reltio/mdm-sdk';\n\nimport {SEARCH_RESULTS_MODES} from '../../constants/constants';\nimport {envSpecificKey} from '../../utils/general';\nimport {getFirstLevelSearchUri, prepareAttrUriForSearch} from './searchEngine';\nimport {entityTypeProcessing} from './facet';\n\nexport const isTableMode = (mode) => mode === SEARCH_RESULTS_MODES.TABLE;\n\n//prettier-ignore\nconst collectColumnsForest = curry((metadata, entityTypeUri, excludeIds = []) => {\n const entityType = Maybe.fromNull(getEntityType(metadata, entityTypeUri)).orSome({});\n return collectSpecialColumns(excludeIds).concat(collectAttributeColumns(\n (entityType.attributes || []).concat(entityType.analyticsAttributes || [])\n ));\n});\n\nexport const memoizedCollectColumnsForestWithoutLabel = memoizeWith(\n (metadata, entityTypeUri) => envSpecificKey(entityTypeUri),\n collectColumnsForest(__, __, ['label'])\n);\n\nexport const getAdditionalColumns = (metadata, entityTypeUri, headColumns) =>\n headColumns &&\n deepFilter(\n memoizedCollectColumnsForestWithoutLabel(metadata, entityTypeUri),\n (column) => !headColumns.some((elem) => column.id === elem.id)\n );\n\nexport const collectSpecialColumns = (excludeIds = []) =>\n [\n {\n id: 'label',\n label: i18n.text('Profile')\n },\n {\n id: 'entityId',\n label: i18n.text('Entity ID')\n }\n ].filter((column) => !excludeIds.includes(column.id));\n\nconst collectAttributeColumns = (attributes = []) =>\n attributes.filter(isReadableAttribute).map((attrType) => {\n const column = {\n id: prepareAttrUriForSearch(attrType.uri),\n label: attrType.label || getLastUriPart(attrType.uri),\n attrType\n };\n const subAttrs = attrType.attributes || attrType.analyticsAttributes;\n if (attrType.type === 'Nested' && subAttrs) {\n column.children = collectAttributeColumns(subAttrs);\n }\n return column;\n });\n\nexport const getChildrenLeafsByParentId = (columns, parentId) => {\n const parent = findNodeInForest(columns, parentId);\n return getFlatChildrenLeafs(parent);\n};\n\nconst findNodeInForest = (children, id) => {\n let result = null;\n const walk = (children) => {\n children.some((node) => {\n if (node.id === id) {\n result = node;\n return true;\n }\n if (node.children) {\n return walk(node.children, id);\n }\n });\n };\n walk(children);\n return result;\n};\n\n//prettier-ignore\nconst getFlatChildrenLeafs = item => {\n return flatten(\n (item.children || []).map(node => (node.children ? getFlatChildrenLeafs(node) : [node]))\n );\n};\n\nexport const deepFilter = (nodes, filter) =>\n nodes.filter(filter).map((node) =>\n node.children\n ? {\n ...node,\n children: deepFilter(node.children, filter)\n }\n : node\n );\n\nconst collectColumnsByIds = (metadata, entityTypeUri, ids) => {\n const columns = collectColumnsForest(metadata, entityTypeUri);\n return uniq(\n pipe(\n concat(['label']),\n map((id) => findNodeInForest(columns, id)),\n reject(isNil),\n filter(pipe(prop('attrType'), complement(isNested)))\n )(ids)\n );\n};\n\nexport const getInitialColumnsByEntityTypes = (metadata, allowedEntityTypes, defaultTabs = {}) => {\n const entityTypesFacetData = entityTypeProcessing(metadata, {}, allowedEntityTypes);\n const defaultColumnIds = prop('*', defaultTabs);\n\n return entityTypesFacetData.reduce((result, item) => {\n const columnsIds = defaultTabs[item.value] || defaultColumnIds;\n result[item.value] = isNil(columnsIds)\n ? collectSpecialColumns()\n : collectColumnsByIds(metadata, item.value, columnsIds);\n return result;\n }, {});\n};\n\nconst orderComparator = (order) => (item1, item2) => order.indexOf(item1.value) - order.indexOf(item2.value);\n\nexport const getEntityTypesForTabs = ({entityTypes}, tabs = [], selectedEntityTypes = []) => {\n const orderInMetadata = pluck('uri', entityTypes);\n const metadataOrderComparator = orderComparator(orderInMetadata);\n const selectedValuesOrderComparator = orderComparator(selectedEntityTypes);\n const filteredTabs = tabs.filter(({value}) =>\n selectedEntityTypes.length === 0 ? true : selectedEntityTypes.includes(value)\n );\n return sort(\n selectedEntityTypes.length === 0 ? metadataOrderComparator : selectedValuesOrderComparator,\n filteredTabs\n );\n};\n\nexport const isColumnsEqual = (selected, initial) => {\n const getId = (column) => column.id;\n return equals(selected.map(getId), initial.map(getId));\n};\n\nexport const buildSelectFromColumns = (columns) => {\n const specialColumns = collectSpecialColumns();\n return uniq(\n columns\n .filter((column) => !specialColumns.find((specialColumn) => specialColumn.id === column.id))\n .map(pipe(prop('id'), getFirstLevelSearchUri))\n );\n};\n\nexport const needRequestAfterColumnsChanges = (columns, prevColumns) => {\n const select = buildSelectFromColumns(columns);\n const prevSelect = buildSelectFromColumns(prevColumns);\n return !equals(intersection(select, prevSelect), select);\n};\n","let appConfig = {};\nexport const getConfig = () => appConfig;\nexport const setConfig = (config) => (appConfig = config);\n\nconst getAppConfigParam = (name) => appConfig[name];\n\nexport const getApiPath = () => getAppConfigParam('apiPath');\nexport const getImagePath = () => getAppConfigParam('imagePath');\nexport const getMaxRecommended = () => getAppConfigParam('maxRecommended') || 5;\n","import {ErrorPopup} from '@reltio/components';\nimport {getRequestErrorMessage} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\n\nexport const showServerError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Server Error'),\n message: i18n.text('Something went wrong...')\n });\n};\n\nexport const showUpdateSearchStateErrors = (errors = []) => {\n console.error(errors); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: i18n.text(\"Can't apply search state\")\n });\n};\n\nexport const showLoadSavedSearchErrors = (errors = []) => {\n console.error(errors); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: i18n.text(\"Saved Search can't be applied\")\n });\n};\n\nexport const showImportFromDataTenantError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Import Error'),\n message: i18n.text(\"Record can't be imported\")\n });\n};\n\nexport const showLoadEntityError = (error) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: getRequestErrorMessage(error, i18n.text(\"Can't load entity\"))\n });\n};\n","import {Decimal} from 'decimal.js';\n\nexport const plus = (a, b) => new Decimal(a).add(b);\n\nexport const minus = (a, b) => new Decimal(a).sub(b);\n\nexport const div = (a, b) => new Decimal(a).div(b);\n\nexport const mul = (a, b) => new Decimal(a).mul(b);\n\nexport const greaterThan = (a, b) => Decimal(a).greaterThan(b);\n\nexport const greaterThanOrEqualTo = (a, b) => new Decimal(a).greaterThanOrEqualTo(b);\n\nexport const lessThan = (a, b) => new Decimal(a).lessThan(b);\n\nexport const lessThanOrEqualTo = (a, b) => new Decimal(a).lessThanOrEqualTo(b);\n\nexport const floor = (a) => new Decimal(a).floor();\n\nexport const ceil = (a) => new Decimal(a).ceil();\n\nexport const min = (a, b) => Decimal.min(a, b);\n\nexport const max = (a, b) => Decimal.max(a, b);\n\nexport const equals = (a, b) => new Decimal(a).equals(b);\n\nexport const clamp = (min, max, value) => {\n if (new Decimal(min).gt(max)) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n const bigValue = new Decimal(value);\n return bigValue.lt(min) ? min : bigValue.gt(max) ? max : value;\n};\n\nexport const toFixed = (value, digits) => new Decimal(value).toFixed(digits);\n","import {clamp as rclamp} from 'ramda';\n\nexport const plus = (a, b) => Number(a) + Number(b);\n\nexport const minus = (a, b) => a - b;\n\nexport const div = (a, b) => a / b;\n\nexport const mul = (a, b) => a * b;\n\nexport const greaterThan = (a, b) => Number(a) > Number(b);\n\nexport const greaterThanOrEqualTo = (a, b) => Number(a) >= Number(b);\n\nexport const lessThan = (a, b) => Number(a) < Number(b);\n\nexport const lessThanOrEqualTo = (a, b) => Number(a) <= Number(b);\n\nexport const floor = (a) => Math.floor(a);\n\nexport const ceil = (a) => Math.ceil(a);\n\nexport const min = (a, b) => Math.min(a, b);\n\nexport const max = (a, b) => Math.max(a, b);\n\nexport const equals = (a, b) => a === b;\n\nexport const clamp = (min, max, value) => rclamp(Number(min), Number(max), Number(value));\n\nexport const toFixed = (value, digits) => Number(value).toFixed(digits);\n","import queryString from 'query-string';\nimport {compose, memoizeWith, identity} from 'ramda';\nimport {isNumber} from './maybe';\nimport i18n from 'ui-i18n';\nimport moment from 'moment';\nimport {Decimal} from 'decimal.js';\nimport * as BNMath from './bigNumbersMath';\nimport * as NMath from './numbersMath';\n\nlet tenant;\nexport const setTenant = (_tenant) => {\n tenant = _tenant;\n};\n\nlet env;\nexport const setEnvironment = (_env) => {\n env = _env;\n};\n\nexport const getTenant = () => {\n return tenant;\n};\n\nexport const getEnvironment = () => {\n return env ? env.toString() : '';\n};\n\nexport const interpolate = (string, params) => {\n let template = string;\n for (let key in params) {\n template = template.replace(new RegExp('\\\\$\\\\{' + key + '\\\\}', 'g'), params[key]);\n }\n return template;\n};\n\nexport const clone = compose(JSON.parse, JSON.stringify);\n\nexport const redirectTo = (tenant, env) => {\n const searchState = queryString.parse(window.location.search);\n window.location.search = queryString.stringify({...searchState, tenant, env});\n};\n\nexport const log = (i) => {\n console.log(i); //eslint-disable-line\n return i;\n};\n\nexport const formatNumberAsMetric = (value, limit) => {\n if (!isNumber(value)) {\n return '';\n }\n\n const NumMath = getNumbersMath(Decimal.isDecimal(value) && 'Long');\n if (\n NumMath.lessThanOrEqualTo(value, Number.MAX_SAFE_INTEGER) &&\n NumMath.greaterThanOrEqualTo(value, Number.MIN_SAFE_INTEGER)\n ) {\n return NumMath.greaterThan(value, limit || 1000)\n ? i18n.number(value, '0,0.0a').toUpperCase()\n : i18n.number(value, '0,0[.]0');\n } else {\n return NumMath.greaterThan(value, limit || 1000)\n ? i18n.number(NumMath.div(value, 1e12), '0,0.0') + 'T'\n : value.toString();\n }\n};\n\nexport const envSpecificKey = (key) => {\n const tenant = getTenant();\n const env = getEnvironment();\n return `${tenant}_${env}_${key}`;\n};\n\nexport const formatMomentDate = (momentDate) => {\n return momentDate.format(moment.localeData().longDateFormat('L'));\n};\n\nexport const getNumbersMath = (attrType) => (attrType === 'Long' ? BNMath : NMath);\n\nexport const noop = () => {};\n\nexport const memoizedWrapInArray = memoizeWith(identity, (uri) => [uri]);\n","// prettier-ignore\nexport const lens = (getter, setter) => {\n return {\n get: getter,\n set: setter,\n compose: l => lens(\n obj => l.get(getter(obj)),\n (obj, value) => setter(obj, l.set(getter(obj), value))\n )\n };\n};\n\n// prettier-ignore\nexport const createLens = fieldName => lens(\n obj => obj[fieldName],\n (obj, value) => Object.assign({}, obj, {[fieldName]: value})\n);\nexport function inArrayByIndex(index) {\n return lens(\n (arr) => arr[index],\n (arr, val) => ((arr = [...arr]), (arr[index] = val), arr)\n );\n}\nexport const inObject = createLens;\nexport const prop = (key) => (typeof key === 'string' ? createLens(key) : inArrayByIndex(key));\n\nexport const path = (key, ...keys) => (keys.length ? prop(key).compose(path(...keys)) : prop(key));\n","export const isObject = (value) => typeof value === 'object' && value !== null;\nexport const isNumber = (value) => !isNaN(parseFloat(value)) && isFinite(value);\nexport const isString = (value) => typeof value === 'string' || value instanceof String;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"Headers-styles-container--xVHUC\",\"title\":\"Headers-styles-title--2f-Hk\",\"actionsBar\":\"Headers-styles-actionsBar--3znSF\",\"splitter\":\"Headers-styles-splitter--2cuCI\",\"headerIcon\":\"Headers-styles-headerIcon--24r6n\",\"previewSwitcher\":\"Headers-styles-previewSwitcher--IJ7aJ\",\"tabsContainer\":\"Headers-styles-tabsContainer--33mAP\",\"number\":\"Headers-styles-number--1bDWm\"};"],"names":["AvatarStates","className","icon","avatarText","rootClasses","otherProps","state","setState","useState","useEffect","ICON_MODE","TEXT_MODE","onImageLoadFail","ERROR_MODE","Avatar","classnames","iconRoot","src","onError","textRoot","useStyles","makeStyles","root","display","alignItems","justifyContent","width","height","check","color","ImportModes","classes","tooltip","onClick","noop","mode","INIT","styles","SmallIconButton","button","size","tooltipTitle","CloudDownloadIcon","PROGRESS","CircularProgress","spinner","SUCCESS","Done","renderCurrentMode","scroll","element","scrollIntoView","block","behavior","clearScrollTimer","scrollTimer","clearTimeout","isScrolledIntoView","scrollableParent","elemTop","offsetTop","elemBottom","clientHeight","scrollTop","theme","from","background","highlighted","animationName","animationDuration","animationIterationCount","item","minHeight","borderBottom","flexDirection","content","fontSize","backgroundColor","clickable","cursor","selected","fade","palette","primary","main","inactive","inactiveBackground","inactiveHoverBackground","inactiveSelectedBackground","inactiveSelectedHoverBackground","justImported","avatar","marginLeft","image","marginTop","marginBottom","info","flexGrow","overflow","overflowWrap","wordWrap","label","lineHeight","fontWeight","marginRight","textDecoration","secondaryLabel","businessCard","secondRow","connect","metadata","mdmModule","entities","entityToHighlight","selectedEntityUri","onEntityClick","onEntityHover","entitiesImportStatus","entityButtonsRenderer","list","useRef","useDidUpdateEffect","current","querySelectorAll","length","parentElement","setTimeout","ref","map","entity","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","entityUriForLink","getEntityUriForLink","importStatus","prop","key","undefined","onMouseEnter","onMouseLeave","EntityAvatar","avatarClassName","imageClassName","EntityUriLink","value","EntityTypeBadge","getEntityId","_extends","Object","assign","target","i","arguments","source","prototype","hasOwnProperty","call","apply","this","props","React","viewBox","version","xmlns","stroke","strokeWidth","fill","fillRule","opacity","d","ConfigureColumnsButton","entityTypeUri","headColumns","onSelectColumns","popupAnchor","setPopupAnchor","filterText","setFilterText","useSelector","handlePopupClose","handleColumnClick","useCallback","data","checked","columnsForest","memoizedCollectColumnsForestWithoutLabel","children","getChildrenLeafsByParentId","id","selectedColumns","concat","filter","column","find","child","i18n","ConfigureColumnsIcon","e","currentTarget","ConfigureColumnsPopup","open","anchorEl","onListItemClick","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","component","MoreVertIcon","withTableContext","pick","HeadCellRendererWithCheckbox","EntityProfileRenderer","DefaultRenderer","columnData","dataTypeDefinition","DataTypeValue","ReferenceRenderer","AvatarWithFallback","getTypeGraphIcon","refEntity","type","objectURI","stopPropagation","event","BlobRenderer","onScroll","ImageRenderer","getImageAttributeOvThumbnailUrl","columnInfo","getAttrPathFromColumnId","split","NOT_SORTABLE_COLUMN_IDS","isSortableColumn","includes","getNestedPathByColumnId","columnId","isAttributeSearchUri","attrPath","slice","EntityRowOverlay","isSelectedEntity","isHighlightedEntity","entityImportStatus","onEntityImportStatusChange","EntityRowButtons","values","highlightedEntityIndex","rowIndex","commonCellWrapperStyles","inactiveCell","selectedRowCell","lighten","withCellDecorationPropTypes","isSelected","isJustImported","checkboxWrapper","checkbox","withCheckboxPropTypes","isChecked","hasCheckbox","collapser","withCollapseButtonPropTypes","hasCollapseButton","pipe","Component","WithCollapseButton","componentProps","restProps","rowValue","CollapseRowButton","WithCheckbox","rawValue","WithCellDecoration","onCellClick","isInactive","checkedEntitiesUris","columnIndex","isFirstColumn","defaultRenderRowCell","getAttributeHeight","cell","countAttributes","defaultHeight","Math","max","EntitiesTable","forwardRef","onReorderingColumn","dndColumnReorderingEnabled","columnsSize","onChangeColumnsSize","onSort","logger","tableClasses","useMemo","highlightRow","dragColumnHead","dragColumnBody","draggableHeadCell","cellWrapper","hoverRowIndex","setHoverRowIndex","handleRowHover","tableRef","useImperativeHandle","resetScrollbarPosition","resetLeft","handleSort","field","SORT_DIRECTION_ASC","order","SORT_DIRECTION_DESC","renderRowOverlay","renderRowCell","RowCellRenderer","hoverStateEnabled","sortingEnabled","columnsData","attrType","getAttrDataTypeDefinition","resizable","autoResize","draggable","nestedPath","headCellRenderer","rowCellValueRenderer","getAttributeValueRenderer","getBasicTableColumnsData","rowsData","reduce","acc","assoc","attrSource","getOvAttributeValuesByPath","getRowValueForColumn","getBasicTableRowsData","findIndex","propEq","tableContext","BasicTable","fixFirstColumn","sortFieldClassName","containerClassName","defaultColumnWidth","headRowHeight","defaultColumnMinWidth","defaultRowHeight","sorting","dndColumnReorderingHandler","resizeDebounceDelay","onRowHover","context","maxRowValuesCount","getRowCellHeight","defaultProps","displayName","memo","INSERT_LEFT","INSERT_RIGHT","HIDE","TEXT","ConfigColumnPopup","actions","Popover","List","action","index","handler","ListItem","ListItemText","primaryTypographyProps","variant","renderListItem","getClickHandler","EntitiesTableWithConfigurableColumns","addColumnPopupOpen","configColumnPopupOpen","configurableColumnIndex","addColumnHandler","newColumnPlaceIndex","onChangeColumnsList","columns","splice","closeAddColumnPopup","openAddColumnPopup","parseInt","getAttribute","closeConfigColumnPopup","configColumnHandler","hideCurrentConfigColumn","memoizedGetColumnSize","memoizeWith","getMemoIdForColumnSize","getColumnSizeFromHeadColumns","envSpecificKey","toString","render","entitiesTableRef","additionalColumns","hideCheckBox","titleText","ImportEntityButton","onImportStatusChange","hideDelay","dtssPath","tenant","ImportButton","importEntityFromDataTenant","customerTenant","then","success","uris","Error","ctSubscribedUris","catch","showImportFromDataTenantError","EntityType","importButtonPlaceholder","padding","flexShrink","position","canImportFromDataTenant","canImport","isDataTenantEntity","entityType","getEntityType","canImportEntity","checkCanImportEntityOfType","isEntityImportedToCT","showImportButton","status","query","text","secondary","letterSpacing","READABLE_QUERY_PRIMITIVE_TYPES","ReadableSearchQuery","readableQuery","CREATE_FACETS","DESTROY_FACETS","CHANGE_VALUES","CLEAR_ALL_VALUES","UPDATE_DATA","UPDATE_FILTERED_DATA","DESTROY_FILTERED_DATA","FILTER_FACET_DATA","HANDLE_CONFIGS_CHANGES","REQUEST_GIVEN_FACETS_DATA","SET_RECOMMENDED_FACETS_LIST","CONVERT_FROM_ADVANCED_SEARCH","SHOW_MORE_ENTITY_TYPES","HIGHLIGHT_ADDED_FACETS","CLEAR_HIGHLIGHT_ADDED_FACETS","UPDATE_ENTITIES","UPDATE_URL","CLEAR_RESULTS","REFRESH_DISPLAYED_ENTITIES","REFRESH","CLEAR_ALL","SHOW_MORE_RESULTS_FOR_ENTITY_TYPE","UPDATE_TOTAL","CHANGE_PAGE","RESET_PAGE","CHANGE_ROWS_PER_PAGE","CHANGE_SORT","CHANGE_LOADING","MAP_CHANGE_VALUE","STATE_UPDATED","EXPORT_RESULTS","OPEN_DATA_LOADER","CHANGE_CURRENT_TENANT","appId","ROWS_PER_PAGE_OPTIONS","NUMERIC_RANGE_MIN_VALUE","NUMERIC_RANGE_MAX_VALUE","DATE_RANGE_MIN_VALUE","currentDate","Date","setHours","setFullYear","getFullYear","yearAgoDate","DATE_RANGE_MAX_VALUE","SEARCH_RESULTS_MODES","TABLE","LIST","MAP","DEFAULT_VIEW","PREVIEW_PANEL_MODES","PROFILE","DEFAULT_FACET_PAGE_SIZE","operators","defaultOperator","defaultGroupOperator","STORED_SEARCHES_TYPES","saved","recent","SAVED_SEARCHES_SHARING_OPTIONS_VALUES","public","private","SAVED_SEARCHES_SORTED_FIELDS","name","updateDate","SAVED_SEARCHES_SORT_BY_VALUES","SAVED_SEARCHES_SORT_ORDER_VALUES","ASC","DESC","SAVED_SEARCHES_SHARING_OPTIONS","NOTIFICATION_TYPES","error","ML_RULES_ONLY","pmRulesScope","ENTITY_TYPE_FACET_ROW_COUNT","SEARCH_DEBOUNCE_TIME","BULK_UPDATE_SELECTION_MODES","include","exclude","BULK_UPDATE_COMMON_OPERATIONS","UpdateProfiles","DeleteProfiles","BULK_UPDATE_OPERATIONS","AddNew","Clear","ReplaceAllWith","FindAndReplace","FindAndRemove","RepointReference","BULK_UPDATE_OPERATION_LABELS","BULK_UPDATE_ALLOWED_OPERATION_VALUE_FIELDS","BULK_UPDATE_SIMPLE_ATTRIBUTE_OPERATIONS","without","BULK_UPDATE_NESTED_ATTRIBUTE_OPERATIONS","BULK_UPDATE_REFERENCE_ATTRIBUTE_OPERATIONS","BULK_UPDATE_API_OPERATIONS","AddAttribute","UpdateAttribute","DeleteAttribute","RepointReferencedEntity","AddTags","ReplaceTag","DeleteTags","ClearTags","BULK_UPDATE_REFERENCED_ENTITY_ID_FIELD_NAME","DEFAULT_SEARCH_SELECT","PROP_NAME_OPERATOR","PROP_NAME_VALUES","PROP_NAME_FILTER","getEmptyAttributeObject","nanoid","getAttributeObject","attribute","getAttributeData","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","getEntityTypeGraphIcon","getAbsoluteImageUrl","getImagePath","getApiPath","collectAttrTypesData","title","faceted","hideForDataTenant","entityAttributes","EntityAttrTypes","workflowAttributes","WorkflowAttrTypes","collaborationItemsAttributes","CollaborationAttrTypes","RDMItemsAttributes","RdmAttrTypes","auditItemsAttributes","AuditAttrTypes","potentialMatchesAttributes","PotentialMatchesAttrTypes","crosswalksItemsAttributes","omit","CrosswalksAttrTypes","getEntityAttributes","getWorkflowAttributes","getCollaborationItemsAttributes","getRDMItemsAttributes","getAuditItemsAttributes","getPotentialMatchesAttributes","dataTenants","evolve","dataTenant","fieldNameForRequest","dataTenantFieldName","getCrosswalksItemsAttributes","createSpecialAttributeItem","pageSize","getPageSizeByAttrType","orderType","getOrderTypeByAttrType","createDataTenantConfigPart","originalTitle","createAttributesGroup","collectSpecialAttributesGroups","attributesFilter","T","canUserReadWorkflowDataTask","_createAttributesGroup","attributesInitial","identity","getSpecialAttribute","specialAttributeGroup","attr","createFacetForSpecialAttrType","facetProps","getFacetTypeForAttrType","singleValue","getDataTenantSpecialAttributeFieldName","additionalAttributesRules","SpecialAttrTypes","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","entityTypeLabel","getEntityTypeLabel","pathToTitle","Array","isArray","chain","prepareAttrUriForSearch","isComplex","disableIncludeFilter","getAttributesTree","entityOrAttrType","filterFaceted","getAllAttributeTypesTree","either","always","collectAttributeGroups","memoizeOne","selectedEntityTypes","createGroup","onlyOneSelectedEntityType","inSelectedTypes","isOnlyOneSelected","isOnlyOneSelectedReceived","entityTypes","isAvailableEntityType","anyPass","allPass","complexAttributes","collectAdvancedAttributeGroups","findClosestCommonAncestor","flattenGroupedItemsData","groupedItems","getFlattenedItems","items","flatten","titleItemIndex","getEntityTypeFacetConfig","_metadata","hiddenTitle","showIcon","barColor","transparentBackground","showDeleteButton","potentialMatchesFacetConfig","specialFacets","getSpecialFacets","dataTenantFacets","createAttributeFacetConfig","memoizedCollectAttributeFacetsGroups","createFacetsGroup","facets","needGroupIcon","collectFacetsList","recommendedFacets","onlyOneEntityTypeSelected","specialGroup","entityTypesGroup","entityTypesFacets","recommendedFacetsConfigs","findFacetConfigByFieldName","reject","isNil","facetConfigs","facetConfig","flattenChildrenForEntityTypeConfigs","entityTypeConfig","getAvailableFacetsGroupsList","getFlatFacets","facet","collectFacetsFlatList","facetGroup","prepareFacetDataForStore","showAllItems","when","is","isComplexFacet","config","FACET_TYPES","isLookupFacet","isLookupAttrType","isPotentialMatchesFacet","startsWith","isMatchRuleFacet","intersection","isMLMatchRuleFacet","isDataTenantFacet","getValuableFacets","not","memoizedCollectSpecialAttributesGroups","getGroupTitle","createAdvancedSearchGroupFromFacets","facetsWithConfigs","facetsToConvert","typeFacet","restFacets","partition","isTypeFacet","attributesList","getFilterOptionForFacet","dataFromFacet","groupName","getFilterValueForFacet","attributeList","hasNotAvailableEntityTypes","any","getAvailableEntityTypesUris","addAvailableEntityTypesIfNeeded","removeNumberForDtssUnavailableEntityTypeItems","tenantObject","availableEntityTypes","number","findConfigByFieldName","configs","console","warn","prepareFacets","lookupsCodes","viewConfig","keys","result","realFieldName","prepareFacet","prepareStatsFacet","statsProcessing","sortByNumber","a","b","numberMoreThanZero","specialFacetsFilter","configHasValue","defaultProcessing","rawData","sort","numericRangeTypeProcessing","Decimal","lookupProcessing","lookupCode","getLookupLabel","enumProcessing","enumerationList","booleanProcessing","formatDataTypeValue","entityTypeProcessing","allowedEntityTypes","orderByArrayComparator","_","lastUriPart","getLastUriPart","roleProcessing","roles","role","sourceSystemsProcessing","sources","matchRulesProcessing","matchGroups","uniqBy","isRaw","entries","uriOrLabel","count","matchGroup","min","getAttrTypeLookupCode","isEnumAttrType","isBooleanType","getDefaultRangeByType","facetType","fixNaNValue","defaultValue","isNaN","forEach","facetValue","getFacetByFieldName","getAcceptedFacetValues","facetData","acceptedValues","mergeConfigs","configsArray","setFiltersToFacets","facetTypeToFilter","addAvailableEntityTypeValues","ifElse","filterAllowedEntityTypes","getEntityTypeFacetFromState","entityTypeFacet","facetWithDropdownCheckboxes","numericRangeFacet","dateRangeFacet","needFacetsCleanUp","isTypeFacetAction","Facets","Search","buildValuesLabels","range","formatNumberAsMetric","createRangeServiceFor","getRange","formatMomentDate","moment","Maybe","orSome","needShowAllEntityTypeFacetItems","gt","getLookupsListFromFacets","codeValues","mergeLookupsLists","getUnresolvedLookupsListFromFacet","resolvedLookups","getUnresolvedLookupsList","getConfigForFacet","facetsGroups","isInFacetsConfigs","mergeFacetValuesByFieldName","reduceAdvancedFromFacets","advanced","attrUri","searchUriToAttrUri","findAttributeTypeByUri","searchParams","reduceNewFacetsData","facetsConfigs","isRangeFacet","getOldRangeFacetValues","showAllEntityTypes","parseAttributeData","attrData","getAttributeTypesHierarchyByUri","parseRegularAttributeData","specialAttr","parseSpecialAttributeData","parseAdditionalAttributeData","parseAttribute","convertOldAdvancedAttribute","OLD_SEARCH_RESULTS_MODES","NEW_SEARCH_RESULTS_MODES","PREVIEW_PANEL_MODES_MAPPING","findActiveTab","tabs","tab","processOldTabs","columnsByEntityTypes","getInitialColumnsByEntityTypes","columnsFromTabs","attributeUriToSearchUri","mergeDeepWith","parseOldSearchOptions","advancedOptions","options","searchByOvOption","searchByOv","ovOnly","parseNewSearchState","keyword","view","searchOptions","currentSavedSearchUri","currentTenant","parseAdvancedSearch","facetsData","isAvailableEntityTypeUri","availableFacetsGroupsList","dissoc","getFacetConfig","reduceFacetsConfig","parseFacets","searchResultsMode","entityTypeTab","searchResultsColumns","previewPanelMode","parseOldSearchState","oldState","curSavedSearchUri","useSeparateGroups","getKeywordFromOldSearchState","tenantFacets","nonTenantFacets","typeFacets","nonTypeFacets","convertedFacets","convertOldFacets","isBasicFacetFilter","hasAdvancedFacets","basicFacets","parseOldFacets","advancedFromFacets","parsedFacets","parsedAdvanced","oldAdvancedSearch","fastSearchParams","makeGroup","wrapInArray","sanitizeTypesInSearchGroups","convertTransitionAttributes","isEmptySearchGroup","parseOldAdvancedSearch","newData","groupFromFacets","advancedGroups","facetAttribute","parseOldView","errors","NumMath","getNumbersMath","revertScale","scale","toFixed","div","minus","ratio","begin","head","end","last","lessThanOrEqualTo","formatNumberForRangeFacet","greaterThan","getBarDomain","calcScale","delta","Number","MAX_SAFE_INTEGER","mul","ratioFirstValue","ratioLastValue","lt","MIN_SAFE_INTEGER","applyScale","plus","bigNumbersTickFormatterX","formatter","adjustRange","start","equals","addRanges","interval","firstValue","lastValue","headValues","unfold","n","lessThan","tailValues","getInterval","to","bars","isFloatingType","ceil","stringifySearch","urlSearchObj","queryString","strict","isNotEmptyParam","param","rawFilter","prepareDataTenantFilters","getFieldNameForRequestRule","extraBuildRules","otherData","cond","basicFilterBuildRules","buildFilterQueryString","wrapQueryWithBrackets","buildQuery","buildQueryTree","buildFilterHierarchyList","buildEntitiesUrl","select","forceOvOnly","activityFilter","globalFilter","filterParam","addGlobalFilterToQuery","page","rowsPerPage","urlSearch","buildSelectParam","scoreEnabled","addToSearchOptions","activeness","splitted","join","buildEntitiesByUrisRequest","entitiesUris","body","url","method","JSON","stringify","headers","selectParams","ActivityFilters","uniq","businessCardAttributeURIsSelectRule","geoLocationAttributesSelectRule","latitude","longitude","collectAdditionalSelect","selectRules","entityTypesForSearch","pluck","additionalAttrs","attrUris","rule","getFirstLevelSearchUri","buildFacetsRequest","excludeFields","extraUrlParams","dataTenantSearchParams","forceInclude","facetBody","pageNo","includeFilter","buildPotentialMatchesFacetUrl","env","getEnvironment","getTenant","preparePotentialMatchesUrlSearch","buildMatchScoresFacetUrl","buildPureSearchQuery","buildHistogramUrl","restOptions","buildStatsUrl","buildTotalUrlQuery","callSearchRequestForTenant","searchRequest","requestForDataTenant","requestProvider","buildTotalUrl","urlQuery","buildTotalUrlForQuery","getAttributeType","groupAttributeFilters","orGroupIndex","filters","isOrOperator","inc","attributeFilters","attributeFilter","getQueryValuesArray","rootFieldName","getRootFieldName","canWrapAnyChildrenInSameAttribute","filterHierarchyList","filterHierarchy","canWrapInSameAttribute","prepareAttributeFilterOperations","disableInSameAttributeValue","operations","attributesOperations","sameRootFieldNameFilters","parseCompositeFilters","isAndOperator","append","getOperationObject","operand","isMultipleComplexValuesFormat","both","propSatisfies","specialFiltersRules","buildBasicFilterString","FilterOptions","isDateType","buildComplexFilterString","joinFilterStrings","buildQueryToOperationObject","filtersRules","extraRules","defaultTo","has","buildGroupQuery","entityTypeCondition","entityTypesPart","toArray","buildQueryForAdvancedSearchGroups","groupsOperations","shiftDownOperators","isValidSearchGroup","attributesQuery","isValidSearchGroupAttribute","operation","shiftUpOperators","buildOperationsToString","groupOperation","isTableMode","collectColumnsForest","excludeIds","collectSpecialColumns","collectAttributeColumns","analyticsAttributes","getAdditionalColumns","deepFilter","elem","isReadableAttribute","subAttrs","parentId","parent","findNodeInForest","getFlatChildrenLeafs","walk","node","nodes","collectColumnsByIds","ids","isNested","defaultTabs","entityTypesFacetData","defaultColumnIds","columnsIds","orderComparator","item1","item2","indexOf","getEntityTypesForTabs","orderInMetadata","metadataOrderComparator","selectedValuesOrderComparator","filteredTabs","buildSelectFromColumns","specialColumns","specialColumn","needRequestAfterColumnsChanges","prevColumns","prevSelect","appConfig","setConfig","getAppConfigParam","getMaxRecommended","showServerError","ErrorPopup","message","showUpdateSearchStateErrors","showLoadSavedSearchErrors","showLoadEntityError","getRequestErrorMessage","add","sub","greaterThanOrEqualTo","floor","clamp","bigValue","digits","rclamp","setTenant","_tenant","setEnvironment","_env","parse","limit","isNumber","toUpperCase","momentDate","format","longDateFormat","BNMath","NMath","memoizedWrapInArray","lens","getter","setter","l","obj","arr","val","isObject","parseFloat","isFinite"],"sourceRoot":""}