@reltio/remotes 1.4.1639 → 1.4.1641
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/1039.js +1 -1
- package/1088.js +1 -1
- package/1146.js +1 -1
- package/1148.js +1 -1
- package/1334.js +1 -1
- package/1425.js +1 -1
- package/1425.js.map +1 -1
- package/1554.js +1 -1
- package/1572.js +1 -1
- package/1664.js +1 -1
- package/1707.js +1 -1
- package/1790.js +1 -1
- package/2066.js +1 -1
- package/2400.js +1 -1
- package/3096.js +1 -1
- package/3348.js +1 -1
- package/3358.js +1 -1
- package/3373.js +1 -1
- package/3381.js +1 -1
- package/3383.js +1 -1
- package/3463.js +1 -1
- package/3469.js +1 -1
- package/3538.js +1 -1
- package/356.js +1 -1
- package/3785.js +1 -1
- package/3854.js +1 -1
- package/3902.js +1 -1
- package/3912.js +1 -1
- package/3926.js +1 -1
- package/415.js +1 -1
- package/4212.js +1 -1
- package/446.js +1 -1
- package/4481.js +1 -1
- package/4609.js +1 -1
- package/4609.js.map +1 -1
- package/4610.js +1 -1
- package/4703.js +1 -1
- package/4806.js +1 -1
- package/4838.js +1 -1
- package/50.js +1 -1
- package/5039.js +1 -1
- package/5039.js.map +1 -1
- package/5053.js +1 -1
- package/5108.js +1 -1
- package/5163.js +1 -1
- package/5292.js +1 -1
- package/5383.js +1 -1
- package/5617.js +1 -1
- package/6020.js +1 -1
- package/6287.js +1 -1
- package/636.js +1 -1
- package/6606.js +1 -1
- package/6606.js.map +1 -1
- package/672.js +1 -1
- package/6844.js +1 -1
- package/6903.js +1 -1
- package/6945.js +1 -1
- package/7128.js +1 -1
- package/7303.js +1 -1
- package/7340.js +1 -1
- package/735.js +1 -1
- package/7422.js +1 -1
- package/7744.js +1 -1
- package/7896.js +1 -1
- package/7963.js +1 -1
- package/820.js +1 -1
- package/8207.js +1 -1
- package/829.js +1 -1
- package/8344.js +1 -1
- package/8565.js +1 -1
- package/8741.js +1 -1
- package/8893.js +1 -1
- package/9016.js +1 -1
- package/9050.js +1 -1
- package/9109.js +1 -1
- package/9283.js +1 -1
- package/9309.js +1 -1
- package/9328.js +1 -1
- package/938.js +1 -1
- package/9387.js +1 -1
- package/9464.js +1 -1
- package/9464.js.map +1 -1
- package/9612.js +1 -1
- package/9652.js +1 -1
- package/9736.js +1 -1
- package/987.js +1 -1
- package/9952.js +1 -1
- package/9952.js.map +1 -1
- package/9960.js +1 -1
- package/9990.js +1 -1
- package/main.js +1 -1
- package/package.json +1 -1
- package/remoteEntry.js +1 -1
package/4609.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"4609.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/icons/Table.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettings.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnListItem.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettingsPopup.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/columnHelpers.js","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/EntityTypeBadge.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBand/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBand/ProfileBand.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/ProfileBandNavigationWidget.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/MainSearchProvider.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/GraphSearchProvider.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/SearchProviderFactory.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/hooks/useSearchNavigation.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/ProfileBandNavigation.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/hooks/useSearchNavigationVisibility.ts","webpack://@reltio/remotes/../components/src/components/ResizablePanes/styles.ts","webpack://@reltio/remotes/../components/src/components/ResizablePanes/ResizablePanes.tsx","webpack://@reltio/remotes/../components/src/components/SourceIcon/SourceIcon.tsx","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../components/src/components/history/ProfileBandHistory/styles.ts","webpack://@reltio/remotes/../components/src/components/history/ProfileBandHistory/ProfileBandHistory.tsx","webpack://@reltio/remotes/../components/src/contexts/ActionsHookContext/index.tsx","webpack://@reltio/remotes/../components/src/contexts/CrosswalksDisplayContext/index.tsx","webpack://@reltio/remotes/../components/src/contexts/EntityLoadingIndicationContext/index.tsx","webpack://@reltio/remotes/../components/src/contexts/LabelsContext/index.ts","webpack://@reltio/remotes/../components/src/hooks/useCollaboration.ts"],"sourcesContent":["import Avatar from '@mui/material/Avatar';\nimport classnames from 'classnames';\nimport React, {useEffect, useState} from 'react';\n\nenum AvatarStates {\n ICON_MODE,\n TEXT_MODE,\n ERROR_MODE\n}\ntype Props = {\n className?: string;\n icon?: string;\n avatarText?: string;\n variant?: 'circular' | 'rounded' | 'square';\n rootClasses?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst AvatarWithFallback = ({className, icon, avatarText, rootClasses, ...otherProps}: Props) => {\n const [state, setState] = useState<AvatarStates>(null);\n useEffect(() => {\n if (icon) {\n setState(AvatarStates.ICON_MODE);\n } else {\n setState(AvatarStates.TEXT_MODE);\n }\n }, [icon, avatarText]);\n const onImageLoadFail = () => {\n setState(AvatarStates.ERROR_MODE);\n };\n\n switch (state) {\n case AvatarStates.ICON_MODE:\n return (\n <Avatar\n className={classnames(className, rootClasses?.iconRoot)}\n src={icon}\n onError={onImageLoadFail}\n {...otherProps}\n />\n );\n case AvatarStates.TEXT_MODE:\n case AvatarStates.ERROR_MODE:\n return (\n <Avatar className={classnames(className, rootClasses?.textRoot)} {...otherProps}>\n {avatarText}\n </Avatar>\n );\n default:\n return null;\n }\n};\n\nexport default AvatarWithFallback;\n","import {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import React from 'react';\n\nconst SvgTable: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={20} height={18} viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16 7.24V6h-4v1.24a8.417 8.417 0 00-2 .768V6H6v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM4 12V6H2v6h2zm0-8V2H2v2h2zm6 0V2H6v2h4zm6 0V2h-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 0014 9zm0 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 stroke=\"none\"\n strokeWidth={1}\n opacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgTable;\n","import React, {useCallback, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {ColumnsDataType} from '../../../../constants';\nimport TableIcon from '../../../../icons/Table';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport {pipe, uniq, pluck, difference, concat} from 'ramda';\n\nimport {ColumnsSettingsPopup} from './ColumnsSettingsPopup';\n\nimport i18n from 'ui-i18n';\nimport {getChildColumns, isColumnSelected} from './columnHelpers';\n\nconst ColumnsSettings = ({columnsData, selectedColumns, onChangeColumns, title, tooltipTitle}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const openPopup = (event) => setAnchorEl(event.currentTarget);\n const closePopup = () => setAnchorEl(null);\n const handleColumnClick = useCallback(\n (column) => {\n const changedColumns = pipe(getChildColumns, pluck('id'))(column);\n const wasSelected = isColumnSelected(selectedColumns, column);\n onChangeColumns(\n wasSelected\n ? difference(selectedColumns, changedColumns)\n : uniq(concat(selectedColumns, changedColumns))\n );\n },\n [selectedColumns, onChangeColumns]\n );\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={tooltipTitle || i18n.text('Show/hide columns')}\n size=\"L\"\n icon={TableIcon}\n onClick={openPopup}\n />\n <ColumnsSettingsPopup\n onColumnClick={handleColumnClick}\n anchorEl={anchorEl}\n columnsData={columnsData}\n onClose={closePopup}\n title={title}\n selectedColumns={selectedColumns}\n />\n </>\n );\n};\n\nColumnsSettings.propTypes = {\n columnsData: ColumnsDataType,\n selectedColumns: PropTypes.arrayOf(PropTypes.string),\n onChangeColumns: PropTypes.func,\n title: PropTypes.string,\n tooltipTitle: PropTypes.string\n};\n\nexport default ColumnsSettings;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n popup: {\n minWidth: '200px'\n },\n groupItem: {\n backgroundColor: 'rgba(0,0,0,0.04)'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AttributeListItem from '../../../AttributeListItem/AttributeListItem';\nimport Highlighter from '../../../Highlighter/Highlighter';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ColumnListItem = ({item, onClick, checked, level, style, isFocused, isGroupItem, hideCheckBox}) => {\n const styles = useStyles();\n return (\n <AttributeListItem\n hideCheckBox={hideCheckBox}\n key={item.id}\n onClick={onClick}\n checked={checked}\n level={level}\n data={item}\n label={<Highlighter text={item.label} highlight={item.filterText} />}\n labelInText={item.label}\n style={style}\n isFocused={isFocused}\n hideIcon={isGroupItem}\n className={classnames({[styles.groupItem]: isGroupItem})}\n />\n );\n};\n\nColumnListItem.propTypes = {\n item: PropTypes.shape({\n label: PropTypes.string,\n filterText: PropTypes.string\n }),\n level: PropTypes.number,\n onClick: PropTypes.func,\n checked: PropTypes.bool,\n style: PropTypes.object,\n isGroupItem: PropTypes.bool,\n isFocused: PropTypes.bool,\n hideCheckBox: PropTypes.bool\n};\n\nexport default ColumnListItem;\n","import React, {useState, useMemo, useCallback} from 'react';\nimport i18n from 'ui-i18n';\nimport {pipe} from 'ramda';\n\nimport {getMaxItemWidth, DataTypeDefinition} from '@reltio/mdm-sdk';\n\nimport VirtualGroupedList from '../../../VirtualGroupedList/VirtualGroupedList';\nimport SelectionPopup from '../../../SelectionPopup/SelectionPopup';\nimport {buildColumnItems, isColumnSelected, isGroupColumn} from './columnHelpers';\nimport {flattenGroupedItemsData} from '../../../VirtualGroupedList/helpers';\nimport {useKeyboardNavigation} from '../../../SelectionPopup/helpers';\nimport ColumnListItem from './ColumnListItem';\n\nimport {useStyles} from './styles';\nimport {ListItemProps} from '@mui/material/ListItem';\n\ntype Column = {\n id: string;\n label: string;\n};\n\ntype GroupedColumnData =\n | {\n id: string;\n label: string;\n columns: Column[];\n }\n | Column;\n\ntype GroupedColumnList = {\n id: string;\n groupId: string;\n label: string;\n attrType: DataTypeDefinition;\n};\n\ntype Props = {\n anchorEl: HTMLElement;\n onClose: () => void;\n title?: string;\n columnsData: GroupedColumnData[];\n onColumnClick: (column: {id: string}) => void;\n selectedColumns: string[];\n hideCheckBox?: boolean;\n};\n\nconst ITEM_HEIGHT = 32;\nconst MAX_LIST_CONTAINER_HEIGHT = 300;\nconst DEFAULT_MIN_CONTAINER_WIDTH = 308;\nconst CONTAINER_HEADER_HEIGHT = 108;\nconst MIN_CONTAINER_HEIGHT = 140;\n\nexport const ColumnsSettingsPopup = ({\n anchorEl,\n onClose,\n title,\n columnsData,\n onColumnClick,\n selectedColumns,\n hideCheckBox\n}: Props) => {\n const styles = useStyles();\n const [filterText, setFilterText] = useState('');\n const clearFilter = () => setFilterText('');\n const groupedItems = useMemo(() => buildColumnItems(columnsData, filterText), [columnsData, filterText]);\n\n const items = useMemo(() => flattenGroupedItemsData(groupedItems), [groupedItems]);\n const containerWidth: number = getMaxItemWidth('label')(groupedItems) || DEFAULT_MIN_CONTAINER_WIDTH;\n\n const handleSearchOnEnter = useCallback(\n ({item}: {item: {id: string}; groupData: {item: {id: string}}}) => onColumnClick(item),\n [onColumnClick]\n );\n\n const {focusIndex, handleKeyDown} = useKeyboardNavigation({\n items,\n open: true,\n onSelectFocusedItem: handleSearchOnEnter,\n selectedItems: selectedColumns,\n onClose\n });\n const handleClose = useCallback(pipe(onClose, clearFilter), [onClose]);\n\n const renderColumnItem = (\n style: ListItemProps['style'],\n {item, level = 0}: {item: GroupedColumnList; level?: number},\n index: number\n ) => {\n return (\n <ColumnListItem\n hideCheckBox={hideCheckBox}\n style={style}\n item={item}\n level={level}\n isFocused={focusIndex === index}\n checked={isColumnSelected(selectedColumns, item)}\n isGroupItem={isGroupColumn(item)}\n onClick={hideCheckBox ? pipe(onColumnClick, handleClose) : onColumnClick}\n />\n );\n };\n\n const listHeight = Math.min(MAX_LIST_CONTAINER_HEIGHT, ITEM_HEIGHT * items.length);\n const containerHeight = Math.max(MIN_CONTAINER_HEIGHT, listHeight + CONTAINER_HEADER_HEIGHT);\n\n return (\n <SelectionPopup\n className={styles.popup}\n open={!!anchorEl}\n anchorEl={anchorEl}\n onClose={handleClose}\n onSearch={setFilterText}\n title={title || i18n.text('Show/hide columns')}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n searchInputOnKeyDown={handleKeyDown}\n >\n <VirtualGroupedList\n fixedTitle={false}\n height={listHeight}\n renderItem={renderColumnItem}\n items={items}\n getItemSize={() => ITEM_HEIGHT}\n focusIndex={focusIndex}\n />\n </SelectionPopup>\n );\n};\n","import {assoc, chain, curry, either, filter, has, pipe, propOr, reduce, when} from 'ramda';\nimport {utils} from '@reltio/mdm-sdk';\n\nconst isGroupColumn = (column) => column.id === column.groupId;\nconst isParentToColumn = curry(\n ({id, groupId}, parent) => parent.groupId === groupId && (id === parent.id || id.startsWith(`${parent.id}.`))\n);\nconst isGroupToColumn = curry(({groupId}, group) => groupId === group.id);\nconst isHideableColumn = propOr(true, 'hideable');\n\nconst getColumnRoot = (columns, column) => columns.find(either(isGroupToColumn(column), isParentToColumn(column)));\n\nconst addColumn = (columns, column) => {\n const root = getColumnRoot(columns, column);\n if (root) {\n root.children = addColumn(root.children || [], column);\n return columns;\n } else {\n return columns.concat(column);\n }\n};\n\nconst filterColumnsByLabel = curry(\n (filterText, column) =>\n utils.strings.search(column.label, filterText) || (column.children || []).some(filterColumnsByLabel(filterText))\n);\n\nconst buildColumnsTrees = reduce(\n (acc, columnData) =>\n addColumn(acc, {\n id: columnData.id,\n groupId: columnData.groupId,\n label: columnData.label,\n attrType: columnData.dataTypeDefinition\n }),\n []\n);\n\nconst buildFilteredColumnItems = curry((filterText, columns, level = 0) =>\n pipe(\n filter(filterColumnsByLabel(filterText)),\n chain((column) => {\n const item = {\n item: {...column, filterText},\n level\n };\n const childrenItems = column.children\n ? buildFilteredColumnItems(filterText, column.children, level + 1)\n : [];\n return [item, ...childrenItems];\n })\n )(columns)\n);\n\nconst isGroupedColumnsData = has('columns');\nconst flattenGroupedColumnsData = ({id, label, columns}) => [\n {id, groupId: id, label},\n ...columns.map(assoc('groupId', id))\n];\n\nconst buildColumnItems = (columnsData, filterText) => {\n return pipe(\n chain(when(isGroupedColumnsData, flattenGroupedColumnsData)),\n filter(either(isGroupColumn, isHideableColumn)),\n buildColumnsTrees,\n buildFilteredColumnItems(filterText)\n )(columnsData);\n};\n\nconst getChildColumns = (column) => (column.children ? chain(getChildColumns, column.children) : [column]);\n\nconst isColumnSelected = (selectedColumns, column) => {\n const childColumns = getChildColumns(column);\n const isColumnSelected = (column) => selectedColumns.includes(column.id);\n return isGroupColumn(column) ? childColumns.every(isColumnSelected) : childColumns.some(isColumnSelected);\n};\n\nexport {buildColumnItems, getChildColumns, isGroupColumn, isColumnSelected};\n","import {makeStyles} from '@mui/styles';\n\nconst useStyles = makeStyles({\n 'entityType-overflow': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n\n 'entityType-small': {\n padding: '1px 4px',\n fontSize: '10px',\n lineHeight: 'normal',\n marginRight: '12px',\n borderRadius: '2px',\n flexShrink: 0\n },\n 'entityType-medium': {\n padding: '2px 8px 3px',\n borderRadius: '2px',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '15px',\n marginRight: '16px',\n flexShrink: 0\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {getEntityType, getEntityTypeLabel, getPropWithInheritance, theme, utils, Entity} from '@reltio/mdm-sdk';\nimport Typography from '@mui/material/Typography';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {useMdmMetadata} from '../../contexts';\nimport useStyles from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n size?: 'small' | 'medium';\n};\n\nconst EntityTypeBadge = ({entity, className, size = 'small'}: Props) => {\n const styles = useStyles();\n const metadata = useMdmMetadata();\n const entityType = getEntityType(metadata, entity.type);\n const color = entityType ? getPropWithInheritance(metadata, entityType, 'typeColor') : null;\n const entityTypeColor = color || theme.palette.primary.main;\n const entityTypeLabel = getEntityTypeLabel(metadata, entity);\n\n return (\n <ExpandedValueTooltip value={entityTypeLabel} placement=\"top\">\n <Typography\n style={{\n backgroundColor: entityTypeColor,\n color: utils.Colors.getColor(entityTypeColor) ? '#FFFFFF' : '#212121'\n }}\n className={classnames(styles[`entityType-${size}`], styles['entityType-overflow'], className)}\n component=\"div\"\n >\n {entityTypeLabel}\n </Typography>\n </ExpandedValueTooltip>\n );\n};\n\nexport default EntityTypeBadge;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n profileBandWrapper: {\n // especially for IE (overflow fix)\n flexShrink: 0\n },\n profileBand: {\n display: 'flex',\n padding: '16px 12px 16px 16px',\n alignItems: 'flex-start',\n backgroundColor: '#fff',\n boxShadow: '0px 1px 0px rgba(0, 0, 0, 0.12)',\n marginBottom: '1px',\n '&:after': {\n // IE workaround for minHeight and centering items\n content: '\"\"',\n minHeight: 'inherit',\n fontSize: 0\n }\n },\n inactive: {\n background: theme.inactiveBackground\n },\n profileIcon: {\n marginRight: '12px'\n },\n imageProfileIcon: {\n width: '48px',\n height: '48px'\n },\n profileInfo: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 1 50%'\n },\n badge: {},\n label: {\n lineHeight: '1.2',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n\n '&+ $specialInfo': {\n marginTop: '4px'\n }\n },\n secondaryLabel: {\n display: 'inline-flex',\n color: theme.palette.text.primary,\n marginTop: '2px',\n lineHeight: '16px',\n fontSize: '14px',\n fontWeight: 400,\n\n '&+ $businessCard': {\n marginLeft: '12px'\n }\n },\n businessCard: {\n color: theme.palette.text.secondary,\n display: 'inline-flex',\n fontSize: '14px',\n marginTop: '4px',\n lineHeight: '1.2'\n },\n specialInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n marginTop: '8px'\n },\n entityType: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n entityId: {\n fontSize: '13px',\n color: theme.palette.text.secondary,\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n}));\n\nexport default useStyles;\n","import React, {ReactNode, useCallback} from 'react';\nimport classnames from 'classnames';\nimport {isNil, identity} from 'ramda';\nimport Typography from '@mui/material/Typography';\nimport Tooltip from '@mui/material/Tooltip';\nimport i18n from 'ui-i18n';\nimport {getLabel, isActiveObject, getBusinessCardAttributesText, getEntityId, isTempUri, Entity} from '@reltio/mdm-sdk';\nimport EntityAvatar from '../EntityAvatar/EntityAvatar';\nimport EntityTypeBadge from '../EntityTypeBadge/EntityTypeBadge';\nimport {useMdmMetadata, useMdmShowEntityId} from '../../contexts';\nimport useStyles from './styles';\n\ntype Props = {\n className?: string;\n entity?: Entity;\n children?: ReactNode;\n classes?: Partial<ReturnType<typeof useStyles>>;\n renderLabel?: (label: string) => React.ReactNode;\n};\n\nconst ProfileBand = ({className, entity, children, classes, renderLabel = identity}: Props) => {\n const styles = useStyles({classes});\n\n const metadata = useMdmMetadata();\n const showEntityId = useMdmShowEntityId();\n\n const handleCopyEntityIdToClipboard = useCallback(() => {\n navigator.clipboard.writeText(getEntityId(entity));\n }, [entity]);\n\n if (isNil(entity)) {\n return null;\n }\n\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 entityId = getEntityId(entity);\n return (\n <div className={classnames(styles.profileBandWrapper, className)}>\n <div\n className={classnames(styles.profileBand, {\n [styles.inactive]: !isActive\n })}\n data-entity-uri={entityUri}\n >\n <EntityAvatar\n key={entity.uri}\n entity={entity}\n avatarClassName={styles.profileIcon}\n imageClassName={styles.imageProfileIcon}\n />\n <div className={styles.profileInfo}>\n <div>\n <Typography variant=\"h6\" className={styles.label}>\n {renderLabel(label)}\n </Typography>\n {secondaryLabel && (\n <Typography variant=\"subtitle2\" className={styles.secondaryLabel}>\n {secondaryLabel}\n </Typography>\n )}\n {businessCardText && (\n <Typography variant=\"subtitle1\" className={styles.businessCard}>\n {businessCardText}\n </Typography>\n )}\n </div>\n <div className={styles.specialInfo}>\n <div className={styles.entityType}>\n <EntityTypeBadge entity={entity} size=\"medium\" className={styles.badge} />\n {!isTempUri(entityUri) && showEntityId && (\n <Tooltip title={i18n.text('Copy to clipboard')}>\n <Typography\n display=\"inline\"\n variant=\"body2\"\n className={styles.entityId}\n onClick={handleCopyEntityIdToClipboard}\n >\n {i18n.text('Entity ID')}: {entityId}\n </Typography>\n </Tooltip>\n )}\n </div>\n </div>\n </div>\n {children && <div>{children}</div>}\n </div>\n </div>\n );\n};\n\nexport default ProfileBand;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n container: {\n display: 'flex',\n alignItems: 'center'\n },\n link: {\n whiteSpace: 'nowrap',\n marginRight: '9px'\n }\n});\n","import React, {useContext} from 'react';\nimport Link from '@mui/material/Link';\nimport KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';\nimport {formatNumberAsMetric} from '@reltio/mdm-sdk';\nimport classnames from 'classnames';\nimport {mergeRight} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {LabelsContext} from '../../contexts/LabelsContext';\nimport {withTooltip} from '../../HOCs';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport {useStyles} from './styles';\n// NEED TO MIGRATE\nconst LinkWithTooltip = withTooltip<typeof Link, {component: string}>(Link);\n\ntype Props = {\n className?: string;\n total?: number;\n onPrev?: () => void;\n onNext?: () => void;\n onSearchResultsClick?: () => void;\n isPrevDisabled?: boolean;\n isNextDisabled?: boolean;\n};\n\nconst ProfileBandNavigationWidget = ({\n className,\n total = 0,\n onPrev,\n onNext,\n onSearchResultsClick,\n isPrevDisabled,\n isNextDisabled\n}: Props) => {\n const styles = useStyles();\n const labels = useContext(LabelsContext);\n const {OPEN_RESULTS, SEARCH_RESULT, SEARCH_RESULTS, NEXT_PROFILE, PREVIOUS_PROFILE} = mergeRight(\n {\n OPEN_RESULTS: i18n.text('Go to search results'),\n SEARCH_RESULT: i18n.text('Search result'),\n SEARCH_RESULTS: i18n.text('Search results'),\n PREVIOUS_PROFILE: i18n.text('Go to previous profile'),\n NEXT_PROFILE: i18n.text('Go to next profile')\n },\n labels?.profileBand ?? {}\n );\n return (\n <div className={classnames(styles.container, className)}>\n <LinkWithTooltip\n className={styles.link}\n component=\"button\"\n variant=\"caption\"\n onClick={onSearchResultsClick}\n underline=\"none\"\n tooltipTitle={OPEN_RESULTS}\n >\n {formatNumberAsMetric(total, 1000000)} {total === 1 ? SEARCH_RESULT : SEARCH_RESULTS}\n </LinkWithTooltip>\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={KeyboardArrowLeft}\n data-reltio-id=\"reltio-previous-profile-button\"\n tooltipTitle={PREVIOUS_PROFILE}\n onClick={onPrev}\n disabled={isPrevDisabled}\n showForDisabled\n />\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={KeyboardArrowRight}\n data-reltio-id=\"reltio-next-profile-button\"\n tooltipTitle={NEXT_PROFILE}\n onClick={onNext}\n disabled={isNextDisabled}\n showForDisabled\n />\n </div>\n );\n};\n\nexport {ProfileBandNavigationWidget, LinkWithTooltip};\n","import {\n Entity,\n getFilteredEntities,\n getFilteredEntitiesFromDataTenant,\n getTotals,\n getTotalFromDataTenant,\n TotalResponse\n} from '@reltio/mdm-sdk';\n\nimport {SearchProvider} from './SearchProvider';\n\nexport class MainSearchProvider implements SearchProvider {\n private readonly query;\n private readonly sortField;\n private readonly sortOrder;\n private readonly tenant;\n private readonly searchTenant;\n private readonly apiPath;\n private readonly dtssPath;\n private readonly globalSearchRequestOptions;\n\n constructor({\n data: {query, sortField, sortOrder},\n tenant,\n searchTenant,\n apiPath,\n dtssPath,\n globalSearchRequestOptions\n }) {\n this.query = query;\n this.sortField = sortField;\n this.sortOrder = sortOrder;\n this.tenant = tenant;\n this.searchTenant = searchTenant;\n this.apiPath = apiPath;\n this.dtssPath = dtssPath;\n this.globalSearchRequestOptions = globalSearchRequestOptions;\n }\n\n private isDT = () => this.tenant !== this.searchTenant;\n\n private getQueryFilter = () => ({rawFilter: this.query});\n\n private getEntities = (filters = [], options = {}): Promise<Entity[]> => {\n const requestFilters = [this.getQueryFilter(), ...filters];\n const requestOptions = {\n ...this.globalSearchRequestOptions,\n sort: this.sortField,\n order: this.sortOrder,\n select: 'uri,label,type',\n scoreEnabled: false,\n ...options\n };\n return this.isDT()\n ? getFilteredEntitiesFromDataTenant({\n filters: requestFilters,\n options: requestOptions,\n customerTenant: this.tenant,\n dataTenant: this.searchTenant,\n dtssPath: this.dtssPath\n })\n : getFilteredEntities(requestFilters, requestOptions);\n };\n\n checkEntity = (uri): Promise<boolean> => {\n return this.getEntities(\n [\n {\n filter: 'equals',\n fieldName: 'uri',\n values: [uri]\n }\n ],\n {offset: 0, max: 1}\n ).then((entities) => {\n return entities && entities.length > 0 && entities[0].uri === uri;\n });\n };\n\n requestEntities = (max, offset): Promise<Entity[]> => {\n return this.getEntities([], {offset, max});\n };\n\n requestTotal = (): Promise<number> => {\n const filters = [this.getQueryFilter()];\n const options = this.globalSearchRequestOptions;\n return (\n this.isDT()\n ? getTotalFromDataTenant({\n filters,\n options,\n customerTenant: this.tenant,\n dataTenant: this.searchTenant,\n dtssPath: this.dtssPath\n })\n : getTotals(filters, options)\n ).then((json) => (json as TotalResponse).total);\n };\n}\n","import {\n Entity,\n getGraphSearchCount,\n getGraphSearchEntities,\n getEntityId,\n buildFilterQueryString\n} from '@reltio/mdm-sdk';\n\nimport {SearchProvider} from './SearchProvider';\n\nexport class GraphSearchProvider implements SearchProvider {\n private readonly searchBody;\n private readonly tenant;\n private readonly apiPath;\n\n constructor({data, tenant, apiPath}) {\n this.searchBody = data;\n this.tenant = tenant;\n this.apiPath = apiPath;\n }\n\n private getEntities = (filters = [], options = {}): Promise<Entity[]> => {\n const allFilters = [\n {\n rawFilter: this.searchBody.filter\n },\n ...filters\n ];\n return getGraphSearchEntities({\n apiPath: this.apiPath,\n tenant: this.tenant,\n searchBody: {\n ...this.searchBody,\n filter: filters.length ? buildFilterQueryString()(allFilters) : this.searchBody.filter\n },\n options\n });\n };\n\n checkEntity = (uri): Promise<boolean> => {\n return this.getEntities(\n [\n {\n filter: 'equals',\n fieldName: 'id',\n values: [getEntityId({uri})]\n }\n ],\n {from: 0, max: 1}\n ).then((entities) => {\n return entities && entities.length > 0 && entities[0].uri === uri;\n });\n };\n\n requestEntities = (max, from): Promise<Entity[]> => {\n return this.getEntities([], {from, max});\n };\n\n requestTotal = (): Promise<number> => {\n return getGraphSearchCount({\n apiPath: this.apiPath,\n tenant: this.tenant,\n searchBody: this.searchBody\n }).then((json) => json.count);\n };\n}\n","import {MainSearchProvider} from './MainSearchProvider';\nimport {GraphSearchProvider} from './GraphSearchProvider';\n\nexport const getSearchProvider = (type: string, options) => {\n switch (type) {\n case 'search':\n return new MainSearchProvider(options);\n case 'graphsearch':\n return new GraphSearchProvider(options);\n }\n};\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react';\nimport {getEntityUriForLink, SearchNavigationData} from '@reltio/mdm-sdk';\nimport {map, pipe, prop, reject} from 'ramda';\nimport {\n useEntityLoadingIndication,\n useActionsHook,\n ViewIdContext,\n useMdmApiPath,\n useMdmDtssPath,\n useMdmGlobalSearchRequestOptions,\n useMdmSearchNavigationData,\n useMdmSearchProviderData,\n useMdmTenant,\n useMdmAction,\n useMdmListener\n} from '../../../contexts';\nimport {useSafePromise} from '../../../hooks';\nimport {getSearchProvider} from '../searchProviders/SearchProviderFactory';\n\nexport const REQUEST_PAGE_SIZE = 15;\n\nconst getNewUris = (entities, cache) =>\n pipe(\n map(prop('uri')),\n reject((uri) => cache.includes(uri))\n )(entities);\n\nconst useSearchNavigation = () => {\n const safeCheckEntityPromise = useSafePromise();\n const safeRequestTotalPromise = useSafePromise();\n const safeRequestEntitiesPromise = useSafePromise();\n\n const viewId = useContext(ViewIdContext);\n\n const searchNavigationListener = useMdmListener('searchNavigationListener');\n const updateSearchNavigationDataFields = useMdmAction('updateSearchNavigationDataFields');\n const mdmOpenEntity = useMdmAction('openEntity');\n const openPerspective = useMdmAction('openPerspective');\n const {uri, index, total, tenant: searchTenant, cache} = useMdmSearchNavigationData() || {};\n const {type, data} = useMdmSearchProviderData() || {};\n const tenant = useMdmTenant();\n const apiPath = useMdmApiPath();\n const dtssPath = useMdmDtssPath();\n const globalSearchRequestOptions = useMdmGlobalSearchRequestOptions(['ovOnly']);\n\n const {updateEntitiesNavigationLoadingState} = useEntityLoadingIndication();\n const [loading, setLoading] = useState<boolean>(false);\n\n const searchProvider = useMemo(\n () => getSearchProvider(type, {data, tenant, searchTenant, apiPath, dtssPath, globalSearchRequestOptions}),\n [type, data, tenant, searchTenant, apiPath, dtssPath, globalSearchRequestOptions]\n );\n\n const updateNavigationData = useCallback(\n (data: Partial<SearchNavigationData>) => {\n updateSearchNavigationDataFields(data);\n },\n [updateSearchNavigationDataFields]\n );\n\n const openEntity = useCallback(\n (uri: string) => {\n const preparedUri = tenant !== searchTenant ? getEntityUriForLink({uri, dataTenant: searchTenant}) : uri;\n mdmOpenEntity({uri: preparedUri, viewId, source: 'navigation'});\n },\n [mdmOpenEntity, viewId, tenant, searchTenant]\n );\n\n const onSearchResultsClick = useCallback(() => {\n openPerspective({perspectiveId: type, viewId});\n }, [openPerspective, type, viewId]);\n\n useEffect(() => {\n if (index >= total) {\n updateNavigationData({\n index: total - 1\n });\n } else if (index < 0) {\n updateNavigationData({\n index: 0\n });\n }\n }, [total, index, updateNavigationData]);\n\n const listenToActions = useActionsHook();\n\n useEffect(() => {\n const stopListeningActions = listenToActions(searchNavigationListener);\n return () => stopListeningActions();\n }, [listenToActions, updateNavigationData, searchNavigationListener]);\n\n const requestNextPage = useCallback(\n (cache: string[], total: number, index: number): Promise<void> => {\n setLoading(true);\n safeRequestTotalPromise(searchProvider.requestTotal()).then((total) => updateNavigationData({total}));\n\n const newIndex = index + 1;\n return safeRequestEntitiesPromise(searchProvider.requestEntities(REQUEST_PAGE_SIZE, newIndex))\n .then((entities) => {\n if (!entities) {\n return;\n }\n if (entities.length) {\n const newUris = getNewUris(entities, cache);\n if (newUris.length > 0) {\n updateNavigationData({\n cache: cache.concat(newUris),\n uri: newUris[0],\n index: newIndex + entities.length - newUris.length\n });\n openEntity(newUris[0]);\n return;\n } else if (index + entities.length < total - 1) {\n return requestNextPage(cache, total - entities.length, index + entities.length);\n }\n }\n updateNavigationData({\n index: newIndex\n });\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [searchProvider, updateNavigationData, openEntity]\n );\n\n const requestPrevPage = useCallback(\n (cache: string[], index: number): Promise<void> => {\n setLoading(true);\n safeRequestTotalPromise(searchProvider.requestTotal()).then((total) => updateNavigationData({total}));\n\n const newIndex = index - 1;\n const offset = Math.max(0, index - REQUEST_PAGE_SIZE);\n const max = REQUEST_PAGE_SIZE + Math.min(0, index - REQUEST_PAGE_SIZE);\n return safeRequestEntitiesPromise(searchProvider.requestEntities(max, offset))\n .then((entities) => {\n if (!entities) {\n return;\n }\n if (entities.length) {\n const newUris = getNewUris(entities, cache);\n if (newUris.length > 0) {\n updateNavigationData({\n cache: newUris.concat(cache),\n uri: newUris[newUris.length - 1],\n index: newIndex - (entities.length - newUris.length)\n });\n openEntity(newUris[newUris.length - 1]);\n return;\n } else if (index - entities.length > 0) {\n return requestPrevPage(cache, index - entities.length);\n }\n }\n updateNavigationData({\n index: 0\n });\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [searchProvider, updateNavigationData, openEntity]\n );\n\n const stepForwardWithCheck = useCallback(\n (cache: string[], cacheIndex: number, total: number, index: number): Promise<void> | void => {\n if (cacheIndex < cache.length) {\n const uri = cache[cacheIndex];\n setLoading(true);\n return safeCheckEntityPromise(searchProvider.checkEntity(uri))\n .then((isExists) => {\n if (isExists) {\n updateNavigationData({\n index: index + 1,\n uri,\n cache,\n total\n });\n openEntity(uri);\n } else {\n const clearedCache = [...cache];\n clearedCache.splice(cacheIndex, 1);\n return stepForwardWithCheck(clearedCache, cacheIndex, total - 1, index);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (index >= total - 1) {\n updateNavigationData({\n cache,\n total,\n index: total - 1\n });\n } else {\n return requestNextPage(cache, total, index);\n }\n },\n [searchProvider, updateNavigationData, openEntity, requestNextPage]\n );\n\n const stepBackWithCheck = useCallback(\n (cache: string[], cacheIndex: number, total: number, index: number): Promise<void> | void => {\n if (cacheIndex > -1) {\n const uri = cache[cacheIndex];\n setLoading(true);\n return safeCheckEntityPromise(searchProvider.checkEntity(uri))\n .then((isExists) => {\n if (isExists) {\n updateNavigationData({\n index: index - 1,\n uri,\n cache,\n total\n });\n openEntity(uri);\n } else {\n const clearedCache = [...cache];\n clearedCache.splice(cacheIndex, 1);\n return stepBackWithCheck(clearedCache, cacheIndex - 1, total - 1, index - 1);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (index <= 0) {\n updateNavigationData({\n index: 0,\n cache,\n total\n });\n } else {\n return requestPrevPage(cache, index);\n }\n },\n [searchProvider, updateNavigationData, openEntity, requestPrevPage]\n );\n\n const onPrev = useCallback(() => {\n if (cache && uri) {\n const cacheIndex = cache.indexOf(uri) - 1;\n stepBackWithCheck(cache, cacheIndex, total, index);\n }\n }, [stepBackWithCheck, cache, uri, total, index]);\n\n const onNext = useCallback(() => {\n if (cache && uri) {\n const cacheIndex = cache.indexOf(uri) + 1;\n stepForwardWithCheck(cache, cacheIndex, total, index);\n }\n }, [stepForwardWithCheck, cache, uri, total, index]);\n\n useEffect(() => {\n updateEntitiesNavigationLoadingState(loading);\n }, [updateEntitiesNavigationLoadingState, loading]);\n\n useEffect(() => {\n return () => updateEntitiesNavigationLoadingState(false);\n }, []);\n\n const isPrevDisabled = loading || index <= 0;\n const isNextDisabled = loading || index >= total - 1;\n return {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled};\n};\n\nexport {useSearchNavigation};\n","import React from 'react';\n\nimport {ProfileBandNavigationWidget} from './ProfileBandNavigationWidget';\nimport {useSearchNavigation} from './hooks/useSearchNavigation';\nimport {useSearchNavigationVisibility} from './hooks/useSearchNavigationVisibility';\n\ntype Props = {\n className?: string;\n};\n\nconst ProfileBandNavigation = ({className}: Props) => {\n const {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled} = useSearchNavigation();\n const isVisible = useSearchNavigationVisibility();\n return isVisible ? (\n <ProfileBandNavigationWidget\n className={className}\n total={total}\n onPrev={onPrev}\n onNext={onNext}\n onSearchResultsClick={onSearchResultsClick}\n isPrevDisabled={isPrevDisabled}\n isNextDisabled={isNextDisabled}\n />\n ) : null;\n};\n\nexport {ProfileBandNavigation};\n","import {isViewMode} from '@reltio/mdm-sdk';\nimport {useMdmEntity, useMdmMode, useMdmSearchNavigationData} from '../../../contexts';\n\nconst useSearchNavigationVisibility = () => {\n const {cache} = useMdmSearchNavigationData() || {};\n const mode = useMdmMode();\n const entity = useMdmEntity();\n\n return isViewMode(mode) && cache?.includes(entity?.uri);\n};\n\nexport {useSearchNavigationVisibility};\n","import {makeStyles} from '@mui/styles';\n\nconst useStyles = makeStyles(() => ({\n container: {\n position: 'relative',\n '& .Resizer': {\n zIndex: 1,\n boxSizing: 'border-box',\n backgroundClip: 'padding-box',\n '&.disabled': {\n cursor: 'initial',\n height: 0,\n margin: 0\n },\n '&.horizontal': {\n height: '11px',\n backgroundImage: 'linear-gradient(rgba(0,0,0,0.33), rgba(0,0,0,0.33))',\n backgroundRepeat: 'no-repeat',\n backgroundSize: '100% 1px',\n backgroundPosition: 'top',\n width: '100%',\n marginBottom: '-10px',\n '&:not(.disabled):hover': {\n cursor: 'row-resize',\n backgroundImage:\n 'linear-gradient(rgba(0, 114, 206, 0), rgba(0, 114, 206, 0.35), rgba(0, 114, 206, 1))',\n backgroundSize: '100% 3px'\n }\n },\n '&.vertical': {\n width: '11px',\n backgroundImage: 'linear-gradient(rgba(0,0,0,0.33), rgba(0,0,0,0.33))',\n backgroundRepeat: 'no-repeat',\n backgroundSize: '1px 100%',\n backgroundPosition: 'left',\n height: '100%',\n marginRight: '-10px',\n '&:not(.disabled):hover': {\n cursor: 'col-resize',\n backgroundImage:\n 'linear-gradient(to left, rgba(0, 114, 206, 0.35), rgba(0, 114, 206, 1), rgba(0, 114, 206, 0.35))',\n backgroundSize: '3px 100%'\n }\n }\n }\n }\n}));\n\nexport {useStyles};\n","import React, {useCallback, useMemo, useState} from 'react';\nimport classnames from 'classnames';\nimport SplitPane from 'react-split-pane';\nimport {useTheme} from '@mui/material/styles';\nimport {debounce} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst HANDLE_CHANGE_DEBOUNCE_INTERVAL = 250;\n\nconst isHorizontal = (orientation) => orientation === 'horizontal';\n\nexport type Size = string | number;\ntype OnChange = {\n size: number;\n percentageSize: string;\n isMaxSize: boolean;\n isMinSize: boolean;\n};\n\ntype Props = {\n className?: string;\n children: React.ReactElement[];\n allowResize?: boolean;\n primary?: 'first' | 'second';\n minSize?: Size;\n maxSize?: Size;\n defaultSize?: Size;\n debounceInterval?: number;\n size?: Size;\n orientation?: 'vertical' | 'horizontal';\n onChange?: ({size, percentageSize, isMaxSize, isMinSize}: OnChange) => void;\n};\n\nexport const ResizablePanes = ({\n className,\n children,\n orientation,\n primary,\n defaultSize,\n size,\n minSize,\n maxSize,\n allowResize,\n debounceInterval = HANDLE_CHANGE_DEBOUNCE_INTERVAL,\n onChange\n}: Props) => {\n const styles = useStyles();\n const theme = useTheme();\n const [containerEl, setContainerEl] = useState(null);\n const [isPaneAnimationEnabled, setIsPaneAnimationEnabled] = useState(true);\n\n const enableAnimation = useCallback(() => setIsPaneAnimationEnabled(true), []);\n const disableAnimation = useCallback(() => setIsPaneAnimationEnabled(false), []);\n const getContainerSize = () => (isHorizontal(orientation) ? containerEl?.clientHeight : containerEl?.clientWidth);\n\n const handleChange = useCallback(\n debounce((size) => {\n const containerSize = getContainerSize();\n onChange({\n percentageSize: `${(size / containerSize) * 100}%`,\n isMaxSize: +maxSize > 0 ? size === maxSize : size === containerSize + maxSize,\n isMinSize: size === minSize,\n size\n });\n }, debounceInterval),\n [onChange, orientation, maxSize, containerEl]\n );\n\n const paneAnimationStyle = useMemo(\n () => ({\n transition: theme.transitions.create(isHorizontal(orientation) ? 'height' : 'width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen\n })\n }),\n [orientation, theme]\n );\n\n if (typeof size === 'number' && size < 0) {\n size = (getContainerSize() || 0) + size;\n }\n\n return (\n <div ref={setContainerEl} className={classnames(styles.container, className)}>\n <SplitPane\n split={orientation}\n size={size}\n primary={primary}\n allowResize={allowResize}\n onChange={handleChange}\n defaultSize={defaultSize}\n minSize={minSize}\n maxSize={maxSize}\n onDragStarted={disableAnimation}\n onDragFinished={enableAnimation}\n pane1Style={isPaneAnimationEnabled ? paneAnimationStyle : undefined}\n >\n {children}\n </SplitPane>\n </div>\n );\n};\n\nResizablePanes.displayName = 'ResizablePanes';\n","import React from 'react';\nimport {findSourceSystemByUri, getAbsoluteImageUrl, getSourceSystemLabel, Source} from '@reltio/mdm-sdk';\nimport AvatarWithFallback from '../AvatarWithFallback/AvatarWithFallback';\nimport {useMdmMetadata} from '../../contexts';\n\ntype Props = {\n sourceType: string;\n className?: string;\n classes?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\n\nconst SOURCE_URL = 'https://s3.amazonaws.com/reltio.images/api';\n\nconst SourceIcon = ({sourceType, className, classes}: Props) => {\n const metadata = useMdmMetadata();\n const {uri, icon}: Source = findSourceSystemByUri(metadata, sourceType) || {};\n const avatarText = uri ? getSourceSystemLabel(metadata, uri)[0] : '';\n const sourceIcon = icon ? getAbsoluteImageUrl(SOURCE_URL, icon) : null;\n\n return (\n <AvatarWithFallback\n className={className}\n avatarText={avatarText}\n icon={sourceIcon}\n variant=\"square\"\n rootClasses={classes}\n />\n );\n};\n\nexport default SourceIcon;\n","import React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'flex-start'\n },\n slice: {\n fontWeight: 500\n },\n cancelButton: {\n width: '88px',\n flexShrink: 0,\n marginLeft: '15px'\n }\n});\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport Button from '@mui/material/Button';\nimport Typography from '@mui/material/Typography';\nimport {useMdmAction, useMdmHistoryEvent} from '../../../contexts';\nimport {useStyles} from './styles';\n\nconst ProfileBandHistory = () => {\n const styles = useStyles();\n const clearHistoryEvent = useMdmAction('clearHistoryEvent');\n const historyEvent = useMdmHistoryEvent();\n\n return historyEvent ? (\n <div className={styles.root}>\n <Typography component={'div'}>\n {i18n.text('You are viewing a historic slice:')}{' '}\n <span className={styles.slice}>{i18n.date(historyEvent.aStamp, 'llll')}</span>\n </Typography>\n <Button className={styles.cancelButton} variant=\"contained\" color=\"primary\" onClick={clearHistoryEvent}>\n {i18n.text('Cancel')}\n </Button>\n </div>\n ) : null;\n};\n\nexport default ProfileBandHistory;\n","import React, {createContext, useContext} from 'react';\n\ntype AnyAction = {\n type: string;\n [key: string]: any;\n};\n\ntype ActionsHook = (listener: (action: AnyAction, state: any) => void) => () => void;\n\nconst ActionsHookContext = createContext<ActionsHook | null>(null);\nActionsHookContext.displayName = 'ActionsHookContext';\n\ntype ProviderProps = {\n hook: ActionsHook;\n children: React.ReactNode;\n};\n\nexport const ActionsHookProvider = ({children, hook}: ProviderProps) => {\n return <ActionsHookContext.Provider value={hook}>{children}</ActionsHookContext.Provider>;\n};\n\nexport const useActionsHook = () => {\n const listenToActions = useContext(ActionsHookContext);\n if (!listenToActions) {\n throw new Error('ActionsHookContext must be provided');\n }\n return listenToActions;\n};\n","import React, {createContext, useCallback, useContext} from 'react';\nimport {CrosswalkBase, getCrosswalkColor, getCrosswalkId} from '@reltio/mdm-sdk';\nimport {pipe, eqBy} from 'ramda';\nimport {noop} from '../../core';\n\nconst CrosswalksDisplayContext = createContext(null);\n\ntype ProviderProps = {\n children: React.ReactNode;\n getCrosswalkColor?: (crosswalk: CrosswalkBase) => string;\n focusedCrosswalks?: CrosswalkBase[];\n highlightedCrosswalks?: CrosswalkBase[];\n toggleCrosswalkFocus?: (crosswalk: CrosswalkBase) => void;\n setCrosswalkHighlighted?: (crosswalk: CrosswalkBase, highlighted: boolean) => void;\n};\n\nexport const CrosswalksDisplayProvider = ({children, ...props}: ProviderProps) => {\n return <CrosswalksDisplayContext.Provider value={props}>{children}</CrosswalksDisplayContext.Provider>;\n};\n\nexport const useCrosswalkColor = (crosswalk?: CrosswalkBase) => {\n const {getCrosswalkColor: getColor = pipe(getCrosswalkId, getCrosswalkColor)} =\n useContext(CrosswalksDisplayContext) || {};\n return crosswalk ? getColor(crosswalk) : '';\n};\n\nexport const useHighlightedCrosswalks = () => {\n const {highlightedCrosswalks = []} = useContext(CrosswalksDisplayContext) || {};\n return highlightedCrosswalks;\n};\n\nexport const useCrosswalkHighlight = (crosswalk?: CrosswalkBase) => {\n const {highlightedCrosswalks = [], setCrosswalkHighlighted = noop} = useContext(CrosswalksDisplayContext) || {};\n const isHighlighted = !!crosswalk && !!highlightedCrosswalks.find(eqBy(getCrosswalkId, crosswalk));\n return {\n isHighlighted,\n isDimmed: highlightedCrosswalks.length > 0 && !isHighlighted,\n highlightCrosswalk: useCallback(\n () => setCrosswalkHighlighted(crosswalk, true),\n [crosswalk, setCrosswalkHighlighted]\n ),\n removeHighlight: useCallback(\n () => setCrosswalkHighlighted(crosswalk, false),\n [crosswalk, setCrosswalkHighlighted]\n )\n };\n};\n\nexport const useCrosswalkFocus = (crosswalk?: CrosswalkBase) => {\n const {toggleCrosswalkFocus = noop, focusedCrosswalks = []} = useContext(CrosswalksDisplayContext) || {};\n const isFocused = !!crosswalk && focusedCrosswalks.some(eqBy(getCrosswalkId, crosswalk));\n return {\n isFocused,\n toggleCrosswalkFocus: useCallback(() => toggleCrosswalkFocus(crosswalk), [crosswalk, toggleCrosswalkFocus])\n };\n};\n","import React, {useState, useCallback, useContext} from 'react';\nimport {noop} from '../../core/utils';\n\ntype LoadingState = {\n entitiesNavigation: boolean;\n entity: boolean;\n};\n\ntype ContextValue = {\n isLoading: boolean;\n updateEntityLoadingState: (loading: boolean) => void;\n updateEntitiesNavigationLoadingState: (loading: boolean) => void;\n resetLoadingState: () => void;\n};\n\nconst EntityLoadingIndicationContext = React.createContext<ContextValue>({\n isLoading: false,\n updateEntityLoadingState: noop,\n updateEntitiesNavigationLoadingState: noop,\n resetLoadingState: noop\n});\n\nconst defaultLoadingState: LoadingState = {entitiesNavigation: false, entity: false};\n\nconst useEntityLoadingIndicationHook = () => {\n const [loadingState, setLoadingState] = useState(defaultLoadingState);\n\n const updateEntityLoadingState = useCallback((loading: boolean) => {\n setLoadingState((prevLoadingState) => ({...prevLoadingState, entity: loading}));\n }, []);\n\n const updateEntitiesNavigationLoadingState = useCallback((loading: boolean) => {\n setLoadingState((prevLoadingState) => ({...prevLoadingState, entitiesNavigation: loading}));\n }, []);\n\n const resetLoadingState = useCallback(() => {\n setLoadingState(defaultLoadingState);\n }, []);\n\n const isLoading = Object.values(loadingState).includes(true);\n\n return {isLoading, updateEntityLoadingState, updateEntitiesNavigationLoadingState, resetLoadingState};\n};\n\ntype Props = {\n children: React.ReactNode;\n};\n\nexport const EntityLoadingIndicationProvider = ({children}: Props) => {\n const value = useEntityLoadingIndicationHook();\n return <EntityLoadingIndicationContext.Provider value={value}>{children}</EntityLoadingIndicationContext.Provider>;\n};\n\nexport const useEntityLoadingIndication = () => {\n return useContext(EntityLoadingIndicationContext);\n};\n","import React from 'react';\n\ntype Labels = {\n profileBand: {\n OPEN_RESULTS?: string;\n SEARCH_RESULT?: string;\n SEARCH_RESULTS?: string;\n NEXT_PROFILE?: string;\n PREVIOUS_PROFILE?: string;\n };\n};\nexport const LabelsContext = React.createContext<Labels>({\n profileBand: {}\n});\n\nLabelsContext.displayName = 'LabelsContext';\n","import {useCallback, useEffect, useState} from 'react';\nimport {\n andThen,\n fromPairs,\n map,\n otherwise,\n pipe,\n props,\n uniqBy,\n prop,\n propEq,\n when,\n always,\n assocPath,\n dissocPath,\n path,\n pathOr,\n mergeRight\n} from 'ramda';\nimport {\n CollaborationObjectTypes,\n Comment,\n CommentsMap,\n createComment as createCommentRequest,\n createReply as createReplyRequest,\n getComment as getCommentRequest,\n getCommentsCount as getCommentsCountRequest,\n Reply,\n updateComment as updateCommentRequest,\n updateReply as updateReplyRequest,\n deleteComment as deleteCommentRequest,\n deleteReply as deleteReplyRequest,\n getComments as getCommentsRequest,\n isTempUri,\n CollaborationStateMap,\n CommentState\n} from '@reltio/mdm-sdk';\nimport {useMdmCollaborationPath, useMdmEntity, useMdmIsCollaborationEnabled, useMdmTenant} from '../contexts';\n\ntype Props = {\n objectIds?: string[];\n objectTypes?: CollaborationObjectTypes[];\n enabled?: boolean;\n};\n\nconst filterReplies = (replyId: string, replies: Reply[]) => replies.filter((reply) => reply.replyId !== replyId);\n\nconst getUpdatedReplies = (comment: Comment, reply: Reply) => {\n const changedReplyIndex = comment.replies.findIndex(({replyId}) => replyId === reply.replyId);\n const newReplies = [...comment.replies];\n newReplies[changedReplyIndex] = reply;\n return newReplies;\n};\n\nconst defaultObjectIds = [];\nconst catchErrorInRequest = (e) => console.error('Collaboration error', e);\nexport const useCollaboration = ({objectIds = defaultObjectIds, objectTypes, enabled = true}: Props) => {\n const entity = useMdmEntity();\n const tenant = useMdmTenant();\n const collaborationPath = useMdmCollaborationPath();\n const isCollaborationEnabled = useMdmIsCollaborationEnabled() && enabled;\n\n const [pageToken, setPageToken] = useState<string | null>(null);\n const [comments, setComments] = useState<Comment[]>([]);\n const [commentsMap, setCommentsMap] = useState<CommentsMap>(null);\n const [currentComment, setCurrentComment] = useState<Comment | null>(null);\n const [sending, setSending] = useState(false);\n const [loading, setLoading] = useState(false);\n const [collaborationStateMap, setCollaborationStateMap] = useState<CollaborationStateMap>({});\n\n const addCommentsToCommentsMap = useCallback((commentsMap: CommentsMap) => {\n setCommentsMap((currentCommentsMap) => ({\n ...currentCommentsMap,\n ...commentsMap\n }));\n }, []);\n const entityUri = entity?.uri;\n const getCommentsCount = useCallback(\n (objectIds: string[], shouldResetCommentsMap = false) => {\n if (isCollaborationEnabled && entityUri && !isTempUri(entityUri)) {\n const onError = (e) => {\n console.warn('Collaboration error', e);\n setCommentsMap(null);\n };\n pipe(\n getCommentsCountRequest,\n andThen(map(props(['objectId', 'comments']))),\n andThen(fromPairs),\n andThen(shouldResetCommentsMap ? setCommentsMap : addCommentsToCommentsMap),\n otherwise(onError)\n )({uris: objectIds, tenant, collaborationPath});\n } else {\n setCommentsMap(null);\n }\n },\n [addCommentsToCommentsMap, collaborationPath, entityUri, isCollaborationEnabled, tenant]\n );\n\n useEffect(() => {\n getCommentsCount(objectIds, true);\n }, [objectIds, getCommentsCount]);\n\n const getComments = useCallback(\n (relatedObjectUri: string, pageToken?: string) => {\n getCommentsRequest({collaborationPath, tenant, relatedObjectUri, pageToken})\n .then(({items, nextPageToken}) => {\n setComments((prevComments) => {\n if (!pageToken) {\n return items;\n }\n return uniqBy(prop('commentId'), [...prevComments, ...items]);\n });\n setPageToken(nextPageToken);\n })\n .catch(catchErrorInRequest);\n },\n [collaborationPath, tenant]\n );\n\n const getComment = useCallback(\n (commentId: string) => {\n setLoading(true);\n\n getCommentRequest({collaborationPath, tenant, commentId})\n .then(setCurrentComment)\n .catch(catchErrorInRequest)\n .finally(() => setLoading(false));\n },\n [collaborationPath, tenant]\n );\n\n const addCommentToState = (comment: Comment, uri: string) => {\n setCurrentComment(comment);\n setCommentsMap((prevCommentsMap) => {\n return {\n ...prevCommentsMap,\n [uri]: [...(prevCommentsMap[uri] || []), {commentId: comment.commentId, replies: 0, status: 'open'}]\n };\n });\n setComments((prevComments) => [comment, ...prevComments]);\n };\n const updateCommentInState = (comment: Comment) => {\n setCurrentComment(comment);\n setComments(map(when(propEq('commentId', comment.commentId), always(comment))));\n };\n const deleteCommentFromState = (commentId: string, uri: string) => {\n setCurrentComment(null);\n setCommentsMap((prevCommentsMap) => {\n const comments = prevCommentsMap[uri] || [];\n return {\n ...prevCommentsMap,\n [uri]: comments.filter((c) => c.commentId !== commentId)\n };\n });\n setComments((prevComments) => {\n return prevComments.filter((comment) => comment.commentId !== commentId);\n });\n };\n const createComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n permanentLink: `${window.location.href}&commentId=${encodeURIComponent('{commentId}')}`\n };\n\n return createCommentRequest({collaborationPath, tenant, data})\n .then(([comment]) => addCommentToState(comment, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const editComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris, commentId, replies}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n commentId,\n replies\n };\n\n return updateCommentRequest({collaborationPath, tenant, data})\n .then((comment) => updateCommentInState({...comment, replies}))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const deleteComment = useCallback(\n ({uri, commentId}) => {\n setSending(true);\n\n deleteCommentRequest({collaborationPath, tenant, commentId})\n .then(() => deleteCommentFromState(commentId, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const updateReplyInState = useCallback((reply: Reply, uri: string, commentId: string, isDeleteReply?: boolean) => {\n const newStatus = reply.action === 'resolve' ? 'resolved' : 'open';\n const {replyId} = reply;\n if (newStatus === 'resolved') {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return null;\n }\n });\n } else {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: isDeleteReply\n ? filterReplies(replyId, prevCurrentComment.replies)\n : [...prevCurrentComment.replies, reply]\n };\n }\n });\n }\n\n setCommentsMap((prevCommentsMap) => ({\n ...prevCommentsMap,\n [uri]: (prevCommentsMap[uri] || []).map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply ? comment.replies - 1 : comment.replies + 1\n };\n }\n\n return comment;\n })\n }));\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply\n ? filterReplies(reply.replyId, comment.replies)\n : [...comment.replies, reply]\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const deleteReply = useCallback(\n ({uri, commentId, reply}) => {\n setSending(true);\n\n deleteReplyRequest({collaborationPath, tenant, commentId, replyId: reply.replyId})\n .then(() => updateReplyInState(reply, uri, commentId, true))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, updateReplyInState, tenant]\n );\n\n const editReplyInState = useCallback((reply: Reply, commentId: string) => {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: getUpdatedReplies(prevCurrentComment, reply)\n };\n }\n });\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n replies: getUpdatedReplies(comment, reply)\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const editReply = useCallback(\n ({content, namedUsers, commentId, replyId}) => {\n setSending(true);\n const data = {\n content,\n namedUsers\n };\n return updateReplyRequest({collaborationPath, tenant, commentId, replyId, data})\n .then((reply) => editReplyInState(reply, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, editReplyInState]\n );\n\n const createReply = useCallback(\n ({content, namedUsers, commentId, action, uri}) => {\n setSending(true);\n\n const data = {\n content,\n action,\n namedUsers\n };\n\n return createReplyRequest({collaborationPath, tenant, commentId, data})\n .then(([reply]) => updateReplyInState(reply, uri, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, updateReplyInState]\n );\n\n const resolveThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'resolve', uri});\n },\n [createReply]\n );\n\n const reOpenThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'reopen', uri});\n },\n [createReply]\n );\n\n const clearCurrentComment = useCallback(() => {\n setCurrentComment(null);\n }, []);\n\n const getCommentState = (uri: string, commentUri: string) => pathOr({}, [uri, commentUri], collaborationStateMap);\n\n const clearCommentState = (uri: string, commentUri: string) =>\n setCollaborationStateMap(dissocPath([uri, commentUri]));\n\n const updateCommentState = (uri: string, commentUri: string, newState: CommentState) => {\n setCollaborationStateMap((prevCollaborationStateMap) => {\n const pathToCommentState = [uri, commentUri];\n const prevCommentState = path(pathToCommentState, prevCollaborationStateMap);\n return assocPath(pathToCommentState, mergeRight(prevCommentState, newState), prevCollaborationStateMap);\n });\n };\n\n return {\n clearCurrentComment,\n comments,\n commentsMap,\n getCommentState,\n updateCommentState,\n clearCommentState,\n createComment,\n createReply,\n currentComment,\n deleteComment,\n editComment,\n getComment,\n getComments,\n getCommentsCount,\n loading,\n objectTypes,\n pageToken,\n reOpenThread,\n resolveThread,\n sending,\n deleteReply,\n editReply\n };\n};\n"],"names":["AvatarStates","className","icon","avatarText","rootClasses","otherProps","state","setState","useState","useEffect","ICON_MODE","TEXT_MODE","onImageLoadFail","ERROR_MODE","classnames","iconRoot","src","onError","textRoot","contextSelector","CellRenderer","withContext","TableContext","props","width","height","viewBox","xmlns","d","fill","fillRule","stroke","strokeWidth","opacity","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","title","tooltipTitle","anchorEl","setAnchorEl","handleColumnClick","useCallback","column","changedColumns","pipe","getChildColumns","pluck","wasSelected","isColumnSelected","difference","uniq","concat","SmallIconButton","i18n","size","TableIcon","onClick","event","currentTarget","ColumnsSettingsPopup","onColumnClick","onClose","propTypes","ColumnsDataType","PropTypes","useStyles","makeStyles","popup","minWidth","groupItem","backgroundColor","ColumnListItem","item","checked","level","style","isFocused","isGroupItem","hideCheckBox","styles","AttributeListItem","key","id","data","label","Highlighter","text","highlight","filterText","labelInText","hideIcon","setFilterText","groupedItems","useMemo","buildColumnItems","items","flattenGroupedItemsData","containerWidth","getMaxItemWidth","handleSearchOnEnter","focusIndex","handleKeyDown","useKeyboardNavigation","open","onSelectFocusedItem","selectedItems","handleClose","listHeight","Math","min","length","containerHeight","max","SelectionPopup","onSearch","searchInputOnKeyDown","VirtualGroupedList","fixedTitle","renderItem","index","isGroupColumn","getItemSize","groupId","isParentToColumn","curry","parent","startsWith","isGroupToColumn","group","isHideableColumn","propOr","addColumn","columns","root","find","either","getColumnRoot","children","filterColumnsByLabel","utils","some","buildColumnsTrees","reduce","acc","columnData","attrType","dataTypeDefinition","buildFilteredColumnItems","filter","chain","isGroupedColumnsData","has","flattenGroupedColumnsData","map","assoc","when","childColumns","includes","every","textOverflow","overflow","whiteSpace","padding","fontSize","lineHeight","marginRight","borderRadius","flexShrink","fontWeight","entity","metadata","useMdmMetadata","entityType","getEntityType","type","entityTypeColor","getPropWithInheritance","theme","entityTypeLabel","getEntityTypeLabel","ExpandedValueTooltip","value","placement","Typography","color","component","profileBandWrapper","profileBand","display","alignItems","boxShadow","marginBottom","content","minHeight","inactive","background","inactiveBackground","profileIcon","imageProfileIcon","profileInfo","flexDirection","flex","badge","letterSpacing","palette","primary","wordBreak","marginTop","secondaryLabel","marginLeft","businessCard","secondary","specialInfo","justifyContent","flexWrap","entityId","cursor","textDecoration","classes","renderLabel","identity","showEntityId","useMdmShowEntityId","handleCopyEntityIdToClipboard","navigator","clipboard","writeText","getEntityId","isNil","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","EntityAvatar","avatarClassName","imageClassName","variant","EntityTypeBadge","isTempUri","Tooltip","container","link","LinkWithTooltip","withTooltip","Link","ProfileBandNavigationWidget","total","onPrev","onNext","onSearchResultsClick","isPrevDisabled","isNextDisabled","labels","useContext","LabelsContext","OPEN_RESULTS","SEARCH_RESULT","SEARCH_RESULTS","NEXT_PROFILE","PREVIOUS_PROFILE","mergeRight","underline","formatNumberAsMetric","KeyboardArrowLeft","disabled","showForDisabled","KeyboardArrowRight","MainSearchProvider","constructor","query","sortField","sortOrder","tenant","searchTenant","apiPath","dtssPath","globalSearchRequestOptions","isDT","this","getQueryFilter","rawFilter","getEntities","filters","options","requestFilters","requestOptions","sort","order","select","scoreEnabled","getFilteredEntitiesFromDataTenant","customerTenant","dataTenant","getFilteredEntities","checkEntity","fieldName","values","offset","then","entities","requestEntities","requestTotal","getTotalFromDataTenant","getTotals","json","GraphSearchProvider","searchBody","allFilters","getGraphSearchEntities","buildFilterQueryString","from","getGraphSearchCount","count","getNewUris","cache","prop","reject","ProfileBandNavigation","safeCheckEntityPromise","useSafePromise","safeRequestTotalPromise","safeRequestEntitiesPromise","viewId","ViewIdContext","searchNavigationListener","useMdmListener","updateSearchNavigationDataFields","useMdmAction","mdmOpenEntity","openPerspective","useMdmSearchNavigationData","useMdmSearchProviderData","useMdmTenant","useMdmApiPath","useMdmDtssPath","useMdmGlobalSearchRequestOptions","updateEntitiesNavigationLoadingState","useEntityLoadingIndication","loading","setLoading","searchProvider","getSearchProvider","updateNavigationData","openEntity","preparedUri","getEntityUriForLink","source","perspectiveId","listenToActions","useActionsHook","stopListeningActions","requestNextPage","newIndex","newUris","finally","requestPrevPage","stepForwardWithCheck","cacheIndex","isExists","clearedCache","splice","stepBackWithCheck","indexOf","useSearchNavigation","mode","useMdmMode","useMdmEntity","isViewMode","useSearchNavigationVisibility","position","zIndex","boxSizing","backgroundClip","margin","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","HANDLE_CHANGE_DEBOUNCE_INTERVAL","isHorizontal","orientation","ResizablePanes","defaultSize","minSize","maxSize","allowResize","debounceInterval","onChange","useTheme","containerEl","setContainerEl","isPaneAnimationEnabled","setIsPaneAnimationEnabled","enableAnimation","disableAnimation","getContainerSize","clientHeight","clientWidth","handleChange","debounce","containerSize","percentageSize","isMaxSize","isMinSize","paneAnimationStyle","transition","transitions","create","easing","sharp","duration","leavingScreen","ref","split","onDragStarted","onDragFinished","pane1Style","undefined","displayName","sourceType","findSourceSystemByUri","getSourceSystemLabel","sourceIcon","getAbsoluteImageUrl","slice","cancelButton","clearHistoryEvent","historyEvent","useMdmHistoryEvent","aStamp","Button","ActionsHookContext","createContext","ActionsHookProvider","hook","Provider","Error","CrosswalksDisplayContext","CrosswalksDisplayProvider","useCrosswalkColor","crosswalk","getCrosswalkColor","getColor","getCrosswalkId","useHighlightedCrosswalks","highlightedCrosswalks","useCrosswalkHighlight","setCrosswalkHighlighted","noop","isHighlighted","eqBy","isDimmed","highlightCrosswalk","removeHighlight","useCrosswalkFocus","toggleCrosswalkFocus","focusedCrosswalks","EntityLoadingIndicationContext","React","isLoading","updateEntityLoadingState","resetLoadingState","defaultLoadingState","entitiesNavigation","EntityLoadingIndicationProvider","loadingState","setLoadingState","prevLoadingState","Object","useEntityLoadingIndicationHook","filterReplies","replyId","replies","reply","getUpdatedReplies","comment","changedReplyIndex","findIndex","newReplies","defaultObjectIds","catchErrorInRequest","e","console","error","useCollaboration","objectIds","objectTypes","enabled","collaborationPath","useMdmCollaborationPath","isCollaborationEnabled","useMdmIsCollaborationEnabled","pageToken","setPageToken","comments","setComments","commentsMap","setCommentsMap","currentComment","setCurrentComment","sending","setSending","collaborationStateMap","setCollaborationStateMap","addCommentsToCommentsMap","currentCommentsMap","getCommentsCount","shouldResetCommentsMap","warn","getCommentsCountRequest","andThen","fromPairs","otherwise","uris","getComments","relatedObjectUri","getCommentsRequest","nextPageToken","prevComments","uniqBy","catch","getComment","commentId","getCommentRequest","createComment","namedUsers","objectType","relatedObjectUris","objectId","visibility","permanentLink","window","location","href","encodeURIComponent","createCommentRequest","prevCommentsMap","status","addCommentToState","editComment","updateCommentRequest","propEq","always","updateCommentInState","deleteComment","deleteCommentRequest","c","deleteCommentFromState","updateReplyInState","isDeleteReply","newStatus","action","prevCurrentComment","deleteReply","deleteReplyRequest","editReplyInState","editReply","updateReplyRequest","createReply","createReplyRequest","resolveThread","reOpenThread","clearCurrentComment","getCommentState","commentUri","pathOr","updateCommentState","newState","prevCollaborationStateMap","pathToCommentState","prevCommentState","path","assocPath","clearCommentState","dissocPath"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"4609.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/icons/Table.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettings.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnListItem.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettingsPopup.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/columnHelpers.js","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/EntityTypeBadge.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBand/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBand/ProfileBand.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/ProfileBandNavigationWidget.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/MainSearchProvider.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/GraphSearchProvider.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/searchProviders/SearchProviderFactory.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/hooks/useSearchNavigation.ts","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/ProfileBandNavigation.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBandNavigation/hooks/useSearchNavigationVisibility.ts","webpack://@reltio/remotes/../components/src/components/ResizablePanes/styles.ts","webpack://@reltio/remotes/../components/src/components/ResizablePanes/ResizablePanes.tsx","webpack://@reltio/remotes/../components/src/components/SourceIcon/SourceIcon.tsx","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../components/src/components/history/ProfileBandHistory/styles.ts","webpack://@reltio/remotes/../components/src/components/history/ProfileBandHistory/ProfileBandHistory.tsx","webpack://@reltio/remotes/../components/src/contexts/ActionsHookContext/index.tsx","webpack://@reltio/remotes/../components/src/contexts/CrosswalksDisplayContext/index.tsx","webpack://@reltio/remotes/../components/src/contexts/EntityLoadingIndicationContext/index.tsx","webpack://@reltio/remotes/../components/src/contexts/LabelsContext/index.ts","webpack://@reltio/remotes/../components/src/hooks/useCollaboration.ts"],"sourcesContent":["import Avatar from '@mui/material/Avatar';\nimport classnames from 'classnames';\nimport React, {useEffect, useState} from 'react';\n\nenum AvatarStates {\n ICON_MODE,\n TEXT_MODE,\n ERROR_MODE\n}\ntype Props = {\n className?: string;\n icon?: string;\n avatarText?: string;\n variant?: 'circular' | 'rounded' | 'square';\n rootClasses?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst AvatarWithFallback = ({className, icon, avatarText, rootClasses, ...otherProps}: Props) => {\n const [state, setState] = useState<AvatarStates>(null);\n useEffect(() => {\n if (icon) {\n setState(AvatarStates.ICON_MODE);\n } else {\n setState(AvatarStates.TEXT_MODE);\n }\n }, [icon, avatarText]);\n const onImageLoadFail = () => {\n setState(AvatarStates.ERROR_MODE);\n };\n\n switch (state) {\n case AvatarStates.ICON_MODE:\n return (\n <Avatar\n className={classnames(className, rootClasses?.iconRoot)}\n src={icon}\n onError={onImageLoadFail}\n {...otherProps}\n />\n );\n case AvatarStates.TEXT_MODE:\n case AvatarStates.ERROR_MODE:\n return (\n <Avatar className={classnames(className, rootClasses?.textRoot)} {...otherProps}>\n {avatarText}\n </Avatar>\n );\n default:\n return null;\n }\n};\n\nexport default AvatarWithFallback;\n","import {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import React from 'react';\n\nconst SvgTable: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={20} height={18} viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16 7.24V6h-4v1.24a8.417 8.417 0 00-2 .768V6H6v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM4 12V6H2v6h2zm0-8V2H2v2h2zm6 0V2H6v2h4zm6 0V2h-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 0014 9zm0 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 stroke=\"none\"\n strokeWidth={1}\n opacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgTable;\n","import React, {useCallback, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {ColumnsDataType} from '../../../../constants';\nimport TableIcon from '../../../../icons/Table';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport {pipe, uniq, pluck, difference, concat} from 'ramda';\n\nimport {ColumnsSettingsPopup} from './ColumnsSettingsPopup';\n\nimport i18n from 'ui-i18n';\nimport {getChildColumns, isColumnSelected} from './columnHelpers';\n\nconst ColumnsSettings = ({columnsData, selectedColumns, onChangeColumns, title, tooltipTitle}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const openPopup = (event) => setAnchorEl(event.currentTarget);\n const closePopup = () => setAnchorEl(null);\n const handleColumnClick = useCallback(\n (column) => {\n const changedColumns = pipe(getChildColumns, pluck('id'))(column);\n const wasSelected = isColumnSelected(selectedColumns, column);\n onChangeColumns(\n wasSelected\n ? difference(selectedColumns, changedColumns)\n : uniq(concat(selectedColumns, changedColumns))\n );\n },\n [selectedColumns, onChangeColumns]\n );\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={tooltipTitle || i18n.text('Show/hide columns')}\n size=\"L\"\n icon={TableIcon}\n onClick={openPopup}\n />\n <ColumnsSettingsPopup\n onColumnClick={handleColumnClick}\n anchorEl={anchorEl}\n columnsData={columnsData}\n onClose={closePopup}\n title={title}\n selectedColumns={selectedColumns}\n />\n </>\n );\n};\n\nColumnsSettings.propTypes = {\n columnsData: ColumnsDataType,\n selectedColumns: PropTypes.arrayOf(PropTypes.string),\n onChangeColumns: PropTypes.func,\n title: PropTypes.string,\n tooltipTitle: PropTypes.string\n};\n\nexport default ColumnsSettings;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n popup: {\n minWidth: '200px'\n },\n groupItem: {\n backgroundColor: 'rgba(0,0,0,0.04)'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AttributeListItem from '../../../AttributeListItem/AttributeListItem';\nimport Highlighter from '../../../Highlighter/Highlighter';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ColumnListItem = ({item, onClick, checked, level, style, isFocused, isGroupItem, hideCheckBox}) => {\n const styles = useStyles();\n return (\n <AttributeListItem\n hideCheckBox={hideCheckBox}\n key={item.id}\n onClick={onClick}\n checked={checked}\n level={level}\n data={item}\n label={<Highlighter text={item.label} highlight={item.filterText} />}\n labelInText={item.label}\n style={style}\n isFocused={isFocused}\n hideIcon={isGroupItem}\n className={classnames({[styles.groupItem]: isGroupItem})}\n />\n );\n};\n\nColumnListItem.propTypes = {\n item: PropTypes.shape({\n label: PropTypes.string,\n filterText: PropTypes.string\n }),\n level: PropTypes.number,\n onClick: PropTypes.func,\n checked: PropTypes.bool,\n style: PropTypes.object,\n isGroupItem: PropTypes.bool,\n isFocused: PropTypes.bool,\n hideCheckBox: PropTypes.bool\n};\n\nexport default ColumnListItem;\n","import React, {useState, useMemo, useCallback} from 'react';\nimport i18n from 'ui-i18n';\nimport {pipe} from 'ramda';\n\nimport {getMaxItemWidth, DataTypeDefinition} from '@reltio/mdm-sdk';\n\nimport VirtualGroupedList from '../../../VirtualGroupedList/VirtualGroupedList';\nimport SelectionPopup from '../../../SelectionPopup/SelectionPopup';\nimport {buildColumnItems, isColumnSelected, isGroupColumn} from './columnHelpers';\nimport {flattenGroupedItemsData} from '../../../VirtualGroupedList/helpers';\nimport {useKeyboardNavigation} from '../../../SelectionPopup/helpers';\nimport ColumnListItem from './ColumnListItem';\n\nimport {useStyles} from './styles';\nimport {ListItemProps} from '@mui/material/ListItem';\n\ntype Column = {\n id: string;\n label: string;\n};\n\ntype GroupedColumnData =\n | {\n id: string;\n label: string;\n columns: Column[];\n }\n | Column;\n\ntype GroupedColumnList = {\n id: string;\n groupId: string;\n label: string;\n attrType: DataTypeDefinition;\n};\n\ntype Props = {\n anchorEl: HTMLElement;\n onClose: () => void;\n title?: string;\n columnsData: GroupedColumnData[];\n onColumnClick: (column: {id: string}) => void;\n selectedColumns: string[];\n hideCheckBox?: boolean;\n};\n\nconst ITEM_HEIGHT = 32;\nconst MAX_LIST_CONTAINER_HEIGHT = 300;\nconst DEFAULT_MIN_CONTAINER_WIDTH = 308;\nconst CONTAINER_HEADER_HEIGHT = 108;\nconst MIN_CONTAINER_HEIGHT = 140;\n\nexport const ColumnsSettingsPopup = ({\n anchorEl,\n onClose,\n title,\n columnsData,\n onColumnClick,\n selectedColumns,\n hideCheckBox\n}: Props) => {\n const styles = useStyles();\n const [filterText, setFilterText] = useState('');\n const clearFilter = () => setFilterText('');\n const groupedItems = useMemo(() => buildColumnItems(columnsData, filterText), [columnsData, filterText]);\n\n const items = useMemo(() => flattenGroupedItemsData(groupedItems), [groupedItems]);\n const containerWidth: number = getMaxItemWidth('label')(groupedItems) || DEFAULT_MIN_CONTAINER_WIDTH;\n\n const handleSearchOnEnter = useCallback(\n ({item}: {item: {id: string}; groupData: {item: {id: string}}}) => onColumnClick(item),\n [onColumnClick]\n );\n\n const {focusIndex, handleKeyDown} = useKeyboardNavigation({\n items,\n open: true,\n onSelectFocusedItem: handleSearchOnEnter,\n selectedItems: selectedColumns,\n onClose\n });\n const handleClose = useCallback(pipe(onClose, clearFilter), [onClose]);\n\n const renderColumnItem = (\n style: ListItemProps['style'],\n {item, level = 0}: {item: GroupedColumnList; level?: number},\n index: number\n ) => {\n return (\n <ColumnListItem\n hideCheckBox={hideCheckBox}\n style={style}\n item={item}\n level={level}\n isFocused={focusIndex === index}\n checked={isColumnSelected(selectedColumns, item)}\n isGroupItem={isGroupColumn(item)}\n onClick={hideCheckBox ? pipe(onColumnClick, handleClose) : onColumnClick}\n />\n );\n };\n\n const listHeight = Math.min(MAX_LIST_CONTAINER_HEIGHT, ITEM_HEIGHT * items.length);\n const containerHeight = Math.max(MIN_CONTAINER_HEIGHT, listHeight + CONTAINER_HEADER_HEIGHT);\n\n return (\n <SelectionPopup\n className={styles.popup}\n open={!!anchorEl}\n anchorEl={anchorEl}\n onClose={handleClose}\n onSearch={setFilterText}\n title={title || i18n.text('Show/hide columns')}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n searchInputOnKeyDown={handleKeyDown}\n >\n <VirtualGroupedList\n fixedTitle={false}\n height={listHeight}\n renderItem={renderColumnItem}\n items={items}\n getItemSize={() => ITEM_HEIGHT}\n focusIndex={focusIndex}\n />\n </SelectionPopup>\n );\n};\n","import {assoc, chain, curry, either, filter, has, pipe, propOr, reduce, when} from 'ramda';\nimport {utils} from '@reltio/mdm-sdk';\n\nconst isGroupColumn = (column) => column.id === column.groupId;\nconst isParentToColumn = curry(\n ({id, groupId}, parent) => parent.groupId === groupId && (id === parent.id || id.startsWith(`${parent.id}.`))\n);\nconst isGroupToColumn = curry(({groupId}, group) => groupId === group.id);\nconst isHideableColumn = propOr(true, 'hideable');\n\nconst getColumnRoot = (columns, column) => columns.find(either(isGroupToColumn(column), isParentToColumn(column)));\n\nconst addColumn = (columns, column) => {\n const root = getColumnRoot(columns, column);\n if (root) {\n root.children = addColumn(root.children || [], column);\n return columns;\n } else {\n return columns.concat(column);\n }\n};\n\nconst filterColumnsByLabel = curry(\n (filterText, column) =>\n utils.strings.search(column.label, filterText) || (column.children || []).some(filterColumnsByLabel(filterText))\n);\n\nconst buildColumnsTrees = reduce(\n (acc, columnData) =>\n addColumn(acc, {\n id: columnData.id,\n groupId: columnData.groupId,\n label: columnData.label,\n attrType: columnData.dataTypeDefinition\n }),\n []\n);\n\nconst buildFilteredColumnItems = curry((filterText, columns, level = 0) =>\n pipe(\n filter(filterColumnsByLabel(filterText)),\n chain((column) => {\n const item = {\n item: {...column, filterText},\n level\n };\n const childrenItems = column.children\n ? buildFilteredColumnItems(filterText, column.children, level + 1)\n : [];\n return [item, ...childrenItems];\n })\n )(columns)\n);\n\nconst isGroupedColumnsData = has('columns');\nconst flattenGroupedColumnsData = ({id, label, columns}) => [\n {id, groupId: id, label},\n ...columns.map(assoc('groupId', id))\n];\n\nconst buildColumnItems = (columnsData, filterText) => {\n return pipe(\n chain(when(isGroupedColumnsData, flattenGroupedColumnsData)),\n filter(either(isGroupColumn, isHideableColumn)),\n buildColumnsTrees,\n buildFilteredColumnItems(filterText)\n )(columnsData);\n};\n\nconst getChildColumns = (column) => (column.children ? chain(getChildColumns, column.children) : [column]);\n\nconst isColumnSelected = (selectedColumns, column) => {\n const childColumns = getChildColumns(column);\n const isColumnSelected = (column) => selectedColumns.includes(column.id);\n return isGroupColumn(column) ? childColumns.every(isColumnSelected) : childColumns.some(isColumnSelected);\n};\n\nexport {buildColumnItems, getChildColumns, isGroupColumn, isColumnSelected};\n","import {makeStyles} from '@mui/styles';\n\nconst useStyles = makeStyles({\n 'entityType-overflow': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n\n 'entityType-small': {\n padding: '1px 4px',\n fontSize: '10px',\n lineHeight: 'normal',\n marginRight: '12px',\n borderRadius: '2px',\n flexShrink: 0\n },\n 'entityType-medium': {\n padding: '2px 8px 3px',\n borderRadius: '2px',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '15px',\n marginRight: '16px',\n flexShrink: 0\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {getEntityType, getEntityTypeLabel, getPropWithInheritance, theme, utils, Entity} from '@reltio/mdm-sdk';\nimport Typography from '@mui/material/Typography';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {useMdmMetadata} from '../../contexts';\nimport useStyles from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n size?: 'small' | 'medium';\n};\n\nconst EntityTypeBadge = ({entity, className, size = 'small'}: Props) => {\n const styles = useStyles();\n const metadata = useMdmMetadata();\n const entityType = getEntityType(metadata, entity.type);\n const color = entityType ? getPropWithInheritance(metadata, entityType, 'typeColor') : null;\n const entityTypeColor = color || theme.palette.primary.main;\n const entityTypeLabel = getEntityTypeLabel(metadata, entity);\n\n return (\n <ExpandedValueTooltip value={entityTypeLabel} placement=\"top\">\n <Typography\n style={{\n backgroundColor: entityTypeColor,\n color: utils.Colors.getColor(entityTypeColor) ? '#FFFFFF' : '#212121'\n }}\n className={classnames(styles[`entityType-${size}`], styles['entityType-overflow'], className)}\n component=\"div\"\n >\n {entityTypeLabel}\n </Typography>\n </ExpandedValueTooltip>\n );\n};\n\nexport default EntityTypeBadge;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n profileBandWrapper: {\n // especially for IE (overflow fix)\n flexShrink: 0\n },\n profileBand: {\n display: 'flex',\n padding: '16px 12px 16px 16px',\n alignItems: 'flex-start',\n backgroundColor: '#fff',\n boxShadow: '0px 1px 0px rgba(0, 0, 0, 0.12)',\n marginBottom: '1px',\n '&:after': {\n // IE workaround for minHeight and centering items\n content: '\"\"',\n minHeight: 'inherit',\n fontSize: 0\n }\n },\n inactive: {\n background: theme.inactiveBackground\n },\n profileIcon: {\n marginRight: '12px'\n },\n imageProfileIcon: {\n width: '48px',\n height: '48px'\n },\n profileInfo: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 1 50%'\n },\n badge: {},\n label: {\n lineHeight: '1.2',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n\n '&+ $specialInfo': {\n marginTop: '4px'\n }\n },\n secondaryLabel: {\n display: 'inline-flex',\n color: theme.palette.text.primary,\n marginTop: '2px',\n lineHeight: '16px',\n fontSize: '14px',\n fontWeight: 400,\n\n '&+ $businessCard': {\n marginLeft: '12px'\n }\n },\n businessCard: {\n color: theme.palette.text.secondary,\n display: 'inline-flex',\n fontSize: '14px',\n marginTop: '4px',\n lineHeight: '1.2'\n },\n specialInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n marginTop: '8px'\n },\n entityType: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n entityId: {\n fontSize: '13px',\n color: theme.palette.text.secondary,\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n}));\n\nexport default useStyles;\n","import React, {ReactNode, useCallback} from 'react';\nimport classnames from 'classnames';\nimport {isNil, identity} from 'ramda';\nimport Typography from '@mui/material/Typography';\nimport Tooltip from '@mui/material/Tooltip';\nimport i18n from 'ui-i18n';\nimport {getLabel, isActiveObject, getBusinessCardAttributesText, getEntityId, isTempUri, Entity} from '@reltio/mdm-sdk';\nimport EntityAvatar from '../EntityAvatar/EntityAvatar';\nimport EntityTypeBadge from '../EntityTypeBadge/EntityTypeBadge';\nimport {useMdmMetadata, useMdmShowEntityId} from '../../contexts';\nimport useStyles from './styles';\n\ntype Props = {\n className?: string;\n entity?: Entity;\n children?: ReactNode;\n classes?: Partial<ReturnType<typeof useStyles>>;\n renderLabel?: (label: string) => React.ReactNode;\n};\n\nconst ProfileBand = ({className, entity, children, classes, renderLabel = identity}: Props) => {\n const styles = useStyles({classes});\n\n const metadata = useMdmMetadata();\n const showEntityId = useMdmShowEntityId();\n\n const handleCopyEntityIdToClipboard = useCallback(() => {\n navigator.clipboard.writeText(getEntityId(entity));\n }, [entity]);\n\n if (isNil(entity)) {\n return null;\n }\n\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 entityId = getEntityId(entity);\n return (\n <div className={classnames(styles.profileBandWrapper, className)}>\n <div\n className={classnames(styles.profileBand, {\n [styles.inactive]: !isActive\n })}\n data-entity-uri={entityUri}\n >\n <EntityAvatar\n key={entity.uri}\n entity={entity}\n avatarClassName={styles.profileIcon}\n imageClassName={styles.imageProfileIcon}\n />\n <div className={styles.profileInfo}>\n <div>\n <Typography variant=\"h6\" className={styles.label}>\n {renderLabel(label)}\n </Typography>\n {secondaryLabel && (\n <Typography variant=\"subtitle2\" className={styles.secondaryLabel}>\n {secondaryLabel}\n </Typography>\n )}\n {businessCardText && (\n <Typography variant=\"subtitle1\" className={styles.businessCard}>\n {businessCardText}\n </Typography>\n )}\n </div>\n <div className={styles.specialInfo}>\n <div className={styles.entityType}>\n <EntityTypeBadge entity={entity} size=\"medium\" className={styles.badge} />\n {!isTempUri(entityUri) && showEntityId && (\n <Tooltip title={i18n.text('Copy to clipboard')}>\n <Typography\n display=\"inline\"\n variant=\"body2\"\n className={styles.entityId}\n onClick={handleCopyEntityIdToClipboard}\n >\n {i18n.text('Entity ID')}: {entityId}\n </Typography>\n </Tooltip>\n )}\n </div>\n </div>\n </div>\n {children && <div>{children}</div>}\n </div>\n </div>\n );\n};\n\nexport default ProfileBand;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n container: {\n display: 'flex',\n alignItems: 'center'\n },\n link: {\n whiteSpace: 'nowrap',\n marginRight: '9px'\n }\n});\n","import React, {useContext} from 'react';\nimport Link from '@mui/material/Link';\nimport KeyboardArrowLeft from '@mui/icons-material/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';\nimport {formatNumberAsMetric} from '@reltio/mdm-sdk';\nimport classnames from 'classnames';\nimport {mergeRight} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {LabelsContext} from '../../contexts/LabelsContext';\nimport {withTooltip} from '../../HOCs';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport {useStyles} from './styles';\n// NEED TO MIGRATE\nconst LinkWithTooltip = withTooltip<typeof Link, {component: string}>(Link);\n\ntype Props = {\n className?: string;\n total?: number;\n onPrev?: () => void;\n onNext?: () => void;\n onSearchResultsClick?: () => void;\n isPrevDisabled?: boolean;\n isNextDisabled?: boolean;\n};\n\nconst ProfileBandNavigationWidget = ({\n className,\n total = 0,\n onPrev,\n onNext,\n onSearchResultsClick,\n isPrevDisabled,\n isNextDisabled\n}: Props) => {\n const styles = useStyles();\n const labels = useContext(LabelsContext);\n const {OPEN_RESULTS, SEARCH_RESULT, SEARCH_RESULTS, NEXT_PROFILE, PREVIOUS_PROFILE} = mergeRight(\n {\n OPEN_RESULTS: i18n.text('Go to search results'),\n SEARCH_RESULT: i18n.text('Search result'),\n SEARCH_RESULTS: i18n.text('Search results'),\n PREVIOUS_PROFILE: i18n.text('Go to previous profile'),\n NEXT_PROFILE: i18n.text('Go to next profile')\n },\n labels?.profileBand ?? {}\n );\n return (\n <div className={classnames(styles.container, className)}>\n <LinkWithTooltip\n className={styles.link}\n component=\"button\"\n variant=\"caption\"\n onClick={onSearchResultsClick}\n underline=\"none\"\n tooltipTitle={OPEN_RESULTS}\n >\n {formatNumberAsMetric(total, 1000000)} {total === 1 ? SEARCH_RESULT : SEARCH_RESULTS}\n </LinkWithTooltip>\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={KeyboardArrowLeft}\n data-reltio-id=\"reltio-previous-profile-button\"\n tooltipTitle={PREVIOUS_PROFILE}\n onClick={onPrev}\n disabled={isPrevDisabled}\n showForDisabled\n />\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={KeyboardArrowRight}\n data-reltio-id=\"reltio-next-profile-button\"\n tooltipTitle={NEXT_PROFILE}\n onClick={onNext}\n disabled={isNextDisabled}\n showForDisabled\n />\n </div>\n );\n};\n\nexport {ProfileBandNavigationWidget, LinkWithTooltip};\n","import {\n Entity,\n getFilteredEntities,\n getFilteredEntitiesFromDataTenant,\n getTotals,\n getTotalFromDataTenant,\n TotalResponse\n} from '@reltio/mdm-sdk';\n\nimport {SearchProvider} from './SearchProvider';\n\nexport class MainSearchProvider implements SearchProvider {\n private readonly query;\n private readonly sortField;\n private readonly sortOrder;\n private readonly tenant;\n private readonly searchTenant;\n private readonly apiPath;\n private readonly dtssPath;\n private readonly globalSearchRequestOptions;\n\n constructor({\n data: {query, sortField, sortOrder},\n tenant,\n searchTenant,\n apiPath,\n dtssPath,\n globalSearchRequestOptions\n }) {\n this.query = query;\n this.sortField = sortField;\n this.sortOrder = sortOrder;\n this.tenant = tenant;\n this.searchTenant = searchTenant;\n this.apiPath = apiPath;\n this.dtssPath = dtssPath;\n this.globalSearchRequestOptions = globalSearchRequestOptions;\n }\n\n private isDT = () => this.tenant !== this.searchTenant;\n\n private getQueryFilter = () => ({rawFilter: this.query});\n\n private getEntities = (filters = [], options = {}): Promise<Entity[]> => {\n const requestFilters = [this.getQueryFilter(), ...filters];\n const requestOptions = {\n ...this.globalSearchRequestOptions,\n sort: this.sortField,\n order: this.sortOrder,\n select: 'uri,label,type',\n scoreEnabled: false,\n ...options\n };\n return this.isDT()\n ? getFilteredEntitiesFromDataTenant({\n filters: requestFilters,\n options: requestOptions,\n customerTenant: this.tenant,\n dataTenant: this.searchTenant,\n dtssPath: this.dtssPath\n })\n : getFilteredEntities(requestFilters, requestOptions);\n };\n\n checkEntity = (uri): Promise<boolean> => {\n return this.getEntities(\n [\n {\n filter: 'equals',\n fieldName: 'uri',\n values: [uri]\n }\n ],\n {offset: 0, max: 1}\n ).then((entities) => {\n return entities && entities.length > 0 && entities[0].uri === uri;\n });\n };\n\n requestEntities = (max, offset): Promise<Entity[]> => {\n return this.getEntities([], {offset, max});\n };\n\n requestTotal = (): Promise<number> => {\n const filters = [this.getQueryFilter()];\n const options = this.globalSearchRequestOptions;\n return (\n this.isDT()\n ? getTotalFromDataTenant({\n filters,\n options,\n customerTenant: this.tenant,\n dataTenant: this.searchTenant,\n dtssPath: this.dtssPath\n })\n : getTotals(filters, options)\n ).then((json) => (json as TotalResponse).total);\n };\n}\n","import {\n Entity,\n getGraphSearchCount,\n getGraphSearchEntities,\n getEntityId,\n buildFilterQueryString\n} from '@reltio/mdm-sdk';\n\nimport {SearchProvider} from './SearchProvider';\n\nexport class GraphSearchProvider implements SearchProvider {\n private readonly searchBody;\n private readonly tenant;\n private readonly apiPath;\n\n constructor({data, tenant, apiPath}) {\n this.searchBody = data;\n this.tenant = tenant;\n this.apiPath = apiPath;\n }\n\n private getEntities = (filters = [], options = {}): Promise<Entity[]> => {\n const allFilters = [\n {\n rawFilter: this.searchBody.filter\n },\n ...filters\n ];\n return getGraphSearchEntities({\n apiPath: this.apiPath,\n tenant: this.tenant,\n searchBody: {\n ...this.searchBody,\n filter: filters.length ? buildFilterQueryString()(allFilters) : this.searchBody.filter\n },\n options\n });\n };\n\n checkEntity = (uri): Promise<boolean> => {\n return this.getEntities(\n [\n {\n filter: 'equals',\n fieldName: 'id',\n values: [getEntityId({uri})]\n }\n ],\n {from: 0, max: 1}\n ).then((entities) => {\n return entities && entities.length > 0 && entities[0].uri === uri;\n });\n };\n\n requestEntities = (max, from): Promise<Entity[]> => {\n return this.getEntities([], {from, max});\n };\n\n requestTotal = (): Promise<number> => {\n return getGraphSearchCount({\n apiPath: this.apiPath,\n tenant: this.tenant,\n searchBody: this.searchBody\n }).then((json) => json.count);\n };\n}\n","import {MainSearchProvider} from './MainSearchProvider';\nimport {GraphSearchProvider} from './GraphSearchProvider';\n\nexport const getSearchProvider = (type: string, options) => {\n switch (type) {\n case 'search':\n return new MainSearchProvider(options);\n case 'graphsearch':\n return new GraphSearchProvider(options);\n }\n};\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react';\nimport {getEntityUriForLink, SearchNavigationData} from '@reltio/mdm-sdk';\nimport {map, pipe, prop, reject} from 'ramda';\nimport {\n useEntityLoadingIndication,\n useActionsHook,\n ViewIdContext,\n useMdmApiPath,\n useMdmDtssPath,\n useMdmGlobalSearchRequestOptions,\n useMdmSearchNavigationData,\n useMdmSearchProviderData,\n useMdmTenant,\n useMdmAction,\n useMdmListener\n} from '../../../contexts';\nimport {useSafePromise} from '../../../hooks';\nimport {getSearchProvider} from '../searchProviders/SearchProviderFactory';\n\nexport const REQUEST_PAGE_SIZE = 15;\n\nconst getNewUris = (entities, cache) =>\n pipe(\n map(prop('uri')),\n reject((uri) => cache.includes(uri))\n )(entities);\n\nconst useSearchNavigation = () => {\n const safeCheckEntityPromise = useSafePromise();\n const safeRequestTotalPromise = useSafePromise();\n const safeRequestEntitiesPromise = useSafePromise();\n\n const viewId = useContext(ViewIdContext);\n\n const searchNavigationListener = useMdmListener('searchNavigationListener');\n const updateSearchNavigationDataFields = useMdmAction('updateSearchNavigationDataFields');\n const mdmOpenEntity = useMdmAction('openEntity');\n const openPerspective = useMdmAction('openPerspective');\n const {uri, index, total, tenant: searchTenant, cache} = useMdmSearchNavigationData() || {};\n const {type, data} = useMdmSearchProviderData() || {};\n const tenant = useMdmTenant();\n const apiPath = useMdmApiPath();\n const dtssPath = useMdmDtssPath();\n const globalSearchRequestOptions = useMdmGlobalSearchRequestOptions(['ovOnly']);\n\n const {updateEntitiesNavigationLoadingState} = useEntityLoadingIndication();\n const [loading, setLoading] = useState<boolean>(false);\n\n const searchProvider = useMemo(\n () => getSearchProvider(type, {data, tenant, searchTenant, apiPath, dtssPath, globalSearchRequestOptions}),\n [type, data, tenant, searchTenant, apiPath, dtssPath, globalSearchRequestOptions]\n );\n\n const updateNavigationData = useCallback(\n (data: Partial<SearchNavigationData>) => {\n updateSearchNavigationDataFields(data);\n },\n [updateSearchNavigationDataFields]\n );\n\n const openEntity = useCallback(\n (uri: string) => {\n const preparedUri = tenant !== searchTenant ? getEntityUriForLink({uri, dataTenant: searchTenant}) : uri;\n mdmOpenEntity({uri: preparedUri, viewId, source: 'navigation'});\n },\n [mdmOpenEntity, viewId, tenant, searchTenant]\n );\n\n const onSearchResultsClick = useCallback(() => {\n openPerspective({perspectiveId: type, viewId});\n }, [openPerspective, type, viewId]);\n\n useEffect(() => {\n if (index >= total) {\n updateNavigationData({\n index: total - 1\n });\n } else if (index < 0) {\n updateNavigationData({\n index: 0\n });\n }\n }, [total, index, updateNavigationData]);\n\n const listenToActions = useActionsHook();\n\n useEffect(() => {\n const stopListeningActions = listenToActions(searchNavigationListener);\n return () => stopListeningActions();\n }, [listenToActions, updateNavigationData, searchNavigationListener]);\n\n const requestNextPage = useCallback(\n (cache: string[], total: number, index: number): Promise<void> => {\n setLoading(true);\n safeRequestTotalPromise(searchProvider.requestTotal()).then((total) => updateNavigationData({total}));\n\n const newIndex = index + 1;\n return safeRequestEntitiesPromise(searchProvider.requestEntities(REQUEST_PAGE_SIZE, newIndex))\n .then((entities) => {\n if (!entities) {\n return;\n }\n if (entities.length) {\n const newUris = getNewUris(entities, cache);\n if (newUris.length > 0) {\n updateNavigationData({\n cache: cache.concat(newUris),\n uri: newUris[0],\n index: newIndex + entities.length - newUris.length\n });\n openEntity(newUris[0]);\n return;\n } else if (index + entities.length < total - 1) {\n return requestNextPage(cache, total - entities.length, index + entities.length);\n }\n }\n updateNavigationData({\n index: newIndex\n });\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [searchProvider, updateNavigationData, openEntity]\n );\n\n const requestPrevPage = useCallback(\n (cache: string[], index: number): Promise<void> => {\n setLoading(true);\n safeRequestTotalPromise(searchProvider.requestTotal()).then((total) => updateNavigationData({total}));\n\n const newIndex = index - 1;\n const offset = Math.max(0, index - REQUEST_PAGE_SIZE);\n const max = REQUEST_PAGE_SIZE + Math.min(0, index - REQUEST_PAGE_SIZE);\n return safeRequestEntitiesPromise(searchProvider.requestEntities(max, offset))\n .then((entities) => {\n if (!entities) {\n return;\n }\n if (entities.length) {\n const newUris = getNewUris(entities, cache);\n if (newUris.length > 0) {\n updateNavigationData({\n cache: newUris.concat(cache),\n uri: newUris[newUris.length - 1],\n index: newIndex - (entities.length - newUris.length)\n });\n openEntity(newUris[newUris.length - 1]);\n return;\n } else if (index - entities.length > 0) {\n return requestPrevPage(cache, index - entities.length);\n }\n }\n updateNavigationData({\n index: 0\n });\n })\n .finally(() => {\n setLoading(false);\n });\n },\n [searchProvider, updateNavigationData, openEntity]\n );\n\n const stepForwardWithCheck = useCallback(\n (cache: string[], cacheIndex: number, total: number, index: number): Promise<void> | void => {\n if (cacheIndex < cache.length) {\n const uri = cache[cacheIndex];\n setLoading(true);\n return safeCheckEntityPromise(searchProvider.checkEntity(uri))\n .then((isExists) => {\n if (isExists) {\n updateNavigationData({\n index: index + 1,\n uri,\n cache,\n total\n });\n openEntity(uri);\n } else {\n const clearedCache = [...cache];\n clearedCache.splice(cacheIndex, 1);\n return stepForwardWithCheck(clearedCache, cacheIndex, total - 1, index);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (index >= total - 1) {\n updateNavigationData({\n cache,\n total,\n index: total - 1\n });\n } else {\n return requestNextPage(cache, total, index);\n }\n },\n [searchProvider, updateNavigationData, openEntity, requestNextPage]\n );\n\n const stepBackWithCheck = useCallback(\n (cache: string[], cacheIndex: number, total: number, index: number): Promise<void> | void => {\n if (cacheIndex > -1) {\n const uri = cache[cacheIndex];\n setLoading(true);\n return safeCheckEntityPromise(searchProvider.checkEntity(uri))\n .then((isExists) => {\n if (isExists) {\n updateNavigationData({\n index: index - 1,\n uri,\n cache,\n total\n });\n openEntity(uri);\n } else {\n const clearedCache = [...cache];\n clearedCache.splice(cacheIndex, 1);\n return stepBackWithCheck(clearedCache, cacheIndex - 1, total - 1, index - 1);\n }\n })\n .finally(() => {\n setLoading(false);\n });\n } else if (index <= 0) {\n updateNavigationData({\n index: 0,\n cache,\n total\n });\n } else {\n return requestPrevPage(cache, index);\n }\n },\n [searchProvider, updateNavigationData, openEntity, requestPrevPage]\n );\n\n const onPrev = useCallback(() => {\n if (cache && uri) {\n const cacheIndex = cache.indexOf(uri) - 1;\n stepBackWithCheck(cache, cacheIndex, total, index);\n }\n }, [stepBackWithCheck, cache, uri, total, index]);\n\n const onNext = useCallback(() => {\n if (cache && uri) {\n const cacheIndex = cache.indexOf(uri) + 1;\n stepForwardWithCheck(cache, cacheIndex, total, index);\n }\n }, [stepForwardWithCheck, cache, uri, total, index]);\n\n useEffect(() => {\n updateEntitiesNavigationLoadingState(loading);\n }, [updateEntitiesNavigationLoadingState, loading]);\n\n useEffect(() => {\n return () => updateEntitiesNavigationLoadingState(false);\n }, []);\n\n const isPrevDisabled = loading || index <= 0;\n const isNextDisabled = loading || index >= total - 1;\n return {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled};\n};\n\nexport {useSearchNavigation};\n","import React from 'react';\n\nimport {ProfileBandNavigationWidget} from './ProfileBandNavigationWidget';\nimport {useSearchNavigation} from './hooks/useSearchNavigation';\nimport {useSearchNavigationVisibility} from './hooks/useSearchNavigationVisibility';\n\ntype Props = {\n className?: string;\n};\n\nconst ProfileBandNavigation = ({className}: Props) => {\n const {total, onPrev, onNext, onSearchResultsClick, isPrevDisabled, isNextDisabled} = useSearchNavigation();\n const isVisible = useSearchNavigationVisibility();\n return isVisible ? (\n <ProfileBandNavigationWidget\n className={className}\n total={total}\n onPrev={onPrev}\n onNext={onNext}\n onSearchResultsClick={onSearchResultsClick}\n isPrevDisabled={isPrevDisabled}\n isNextDisabled={isNextDisabled}\n />\n ) : null;\n};\n\nexport {ProfileBandNavigation};\n","import {isViewMode} from '@reltio/mdm-sdk';\nimport {useMdmEntity, useMdmMode, useMdmSearchNavigationData} from '../../../contexts';\n\nconst useSearchNavigationVisibility = () => {\n const {cache} = useMdmSearchNavigationData() || {};\n const mode = useMdmMode();\n const entity = useMdmEntity();\n\n return isViewMode(mode) && cache?.includes(entity?.uri);\n};\n\nexport {useSearchNavigationVisibility};\n","import {makeStyles} from '@mui/styles';\n\nconst useStyles = makeStyles(() => ({\n container: {\n position: 'relative',\n '& .Resizer': {\n zIndex: 1,\n boxSizing: 'border-box',\n backgroundClip: 'padding-box',\n '&.disabled': {\n cursor: 'initial',\n height: 0,\n margin: 0\n },\n '&.horizontal': {\n height: '11px',\n backgroundImage: 'linear-gradient(rgba(0,0,0,0.33), rgba(0,0,0,0.33))',\n backgroundRepeat: 'no-repeat',\n backgroundSize: '100% 1px',\n backgroundPosition: 'top',\n width: '100%',\n marginBottom: '-10px',\n '&:not(.disabled):hover': {\n cursor: 'row-resize',\n backgroundImage:\n 'linear-gradient(rgba(0, 114, 206, 0), rgba(0, 114, 206, 0.35), rgba(0, 114, 206, 1))',\n backgroundSize: '100% 3px'\n }\n },\n '&.vertical': {\n width: '11px',\n backgroundImage: 'linear-gradient(rgba(0,0,0,0.33), rgba(0,0,0,0.33))',\n backgroundRepeat: 'no-repeat',\n backgroundSize: '1px 100%',\n backgroundPosition: 'left',\n height: '100%',\n marginRight: '-10px',\n '&:not(.disabled):hover': {\n cursor: 'col-resize',\n backgroundImage:\n 'linear-gradient(to left, rgba(0, 114, 206, 0.35), rgba(0, 114, 206, 1), rgba(0, 114, 206, 0.35))',\n backgroundSize: '3px 100%'\n }\n }\n }\n }\n}));\n\nexport {useStyles};\n","import React, {useCallback, useMemo, useState} from 'react';\nimport classnames from 'classnames';\nimport SplitPane from 'react-split-pane';\nimport {useTheme} from '@mui/material/styles';\nimport {debounce} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst HANDLE_CHANGE_DEBOUNCE_INTERVAL = 250;\n\nconst isHorizontal = (orientation) => orientation === 'horizontal';\n\nexport type Size = string | number;\ntype OnChange = {\n size: number;\n percentageSize: string;\n isMaxSize: boolean;\n isMinSize: boolean;\n};\n\ntype Props = {\n className?: string;\n children: React.ReactElement[];\n allowResize?: boolean;\n primary?: 'first' | 'second';\n minSize?: Size;\n maxSize?: Size;\n defaultSize?: Size;\n debounceInterval?: number;\n size?: Size;\n orientation?: 'vertical' | 'horizontal';\n onChange?: ({size, percentageSize, isMaxSize, isMinSize}: OnChange) => void;\n};\n\nexport const ResizablePanes = ({\n className,\n children,\n orientation,\n primary,\n defaultSize,\n size,\n minSize,\n maxSize,\n allowResize,\n debounceInterval = HANDLE_CHANGE_DEBOUNCE_INTERVAL,\n onChange\n}: Props) => {\n const styles = useStyles();\n const theme = useTheme();\n const [containerEl, setContainerEl] = useState(null);\n const [isPaneAnimationEnabled, setIsPaneAnimationEnabled] = useState(true);\n\n const enableAnimation = useCallback(() => setIsPaneAnimationEnabled(true), []);\n const disableAnimation = useCallback(() => setIsPaneAnimationEnabled(false), []);\n const getContainerSize = () => (isHorizontal(orientation) ? containerEl?.clientHeight : containerEl?.clientWidth);\n\n const handleChange = useCallback(\n debounce((size) => {\n const containerSize = getContainerSize();\n onChange({\n percentageSize: `${(size / containerSize) * 100}%`,\n isMaxSize: +maxSize > 0 ? size === maxSize : size === containerSize + maxSize,\n isMinSize: size === minSize,\n size\n });\n }, debounceInterval),\n [onChange, orientation, maxSize, containerEl]\n );\n\n const paneAnimationStyle = useMemo(\n () => ({\n transition: theme.transitions.create(isHorizontal(orientation) ? 'height' : 'width', {\n easing: theme.transitions.easing.sharp,\n duration: theme.transitions.duration.leavingScreen\n })\n }),\n [orientation, theme]\n );\n\n if (typeof size === 'number' && size < 0) {\n size = (getContainerSize() || 0) + size;\n }\n\n return (\n <div ref={setContainerEl} className={classnames(styles.container, className)}>\n <SplitPane\n split={orientation}\n size={size}\n primary={primary}\n allowResize={allowResize}\n onChange={handleChange}\n defaultSize={defaultSize}\n minSize={minSize}\n maxSize={maxSize}\n onDragStarted={disableAnimation}\n onDragFinished={enableAnimation}\n pane1Style={isPaneAnimationEnabled ? paneAnimationStyle : undefined}\n >\n {children}\n </SplitPane>\n </div>\n );\n};\n\nResizablePanes.displayName = 'ResizablePanes';\n","import React from 'react';\nimport {findSourceSystemByUri, getAbsoluteImageUrl, getSourceSystemLabel, Source} from '@reltio/mdm-sdk';\nimport AvatarWithFallback from '../AvatarWithFallback/AvatarWithFallback';\nimport {useMdmMetadata} from '../../contexts';\n\ntype Props = {\n sourceType: string;\n className?: string;\n classes?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\n\nconst SOURCE_URL = 'https://s3.amazonaws.com/reltio.images/api';\n\nconst SourceIcon = ({sourceType, className, classes}: Props) => {\n const metadata = useMdmMetadata();\n const {uri, icon}: Source = findSourceSystemByUri(metadata, sourceType) || {};\n const avatarText = uri ? getSourceSystemLabel(metadata, uri)[0] : '';\n const sourceIcon = icon ? getAbsoluteImageUrl(SOURCE_URL, icon) : null;\n\n return (\n <AvatarWithFallback\n className={className}\n avatarText={avatarText}\n icon={sourceIcon}\n variant=\"square\"\n rootClasses={classes}\n />\n );\n};\n\nexport default SourceIcon;\n","import React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'flex-start'\n },\n slice: {\n fontWeight: 500\n },\n cancelButton: {\n width: '88px',\n flexShrink: 0,\n marginLeft: '15px'\n }\n});\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport Button from '@mui/material/Button';\nimport Typography from '@mui/material/Typography';\nimport {useMdmAction, useMdmHistoryEvent} from '../../../contexts';\nimport {useStyles} from './styles';\n\nconst ProfileBandHistory = () => {\n const styles = useStyles();\n const clearHistoryEvent = useMdmAction('clearHistoryEvent');\n const historyEvent = useMdmHistoryEvent();\n\n return historyEvent ? (\n <div className={styles.root}>\n <Typography component={'div'}>\n {i18n.text('You are viewing a historic slice:')}{' '}\n <span className={styles.slice}>{i18n.date(historyEvent.aStamp, 'llll')}</span>\n </Typography>\n <Button className={styles.cancelButton} variant=\"contained\" color=\"primary\" onClick={clearHistoryEvent}>\n {i18n.text('Cancel')}\n </Button>\n </div>\n ) : null;\n};\n\nexport default ProfileBandHistory;\n","import React, {createContext, useContext} from 'react';\nimport {AnyAction} from '../../types';\n\ntype ActionsHook = (\n listener: (action: AnyAction, state: any, dispatch: (action: AnyAction) => void) => void\n) => () => void;\n\nconst ActionsHookContext = createContext<ActionsHook | null>(null);\nActionsHookContext.displayName = 'ActionsHookContext';\n\ntype ProviderProps = {\n hook: ActionsHook;\n children: React.ReactNode;\n};\n\nexport const ActionsHookProvider = ({children, hook}: ProviderProps) => {\n return <ActionsHookContext.Provider value={hook}>{children}</ActionsHookContext.Provider>;\n};\n\nexport const useActionsHook = () => {\n const listenToActions = useContext(ActionsHookContext);\n if (!listenToActions) {\n throw new Error('ActionsHookContext must be provided');\n }\n return listenToActions;\n};\n","import React, {createContext, useCallback, useContext} from 'react';\nimport {CrosswalkBase, getCrosswalkColor, getCrosswalkId} from '@reltio/mdm-sdk';\nimport {pipe, eqBy} from 'ramda';\nimport {noop} from '../../core';\n\nconst CrosswalksDisplayContext = createContext(null);\n\ntype ProviderProps = {\n children: React.ReactNode;\n getCrosswalkColor?: (crosswalk: CrosswalkBase) => string;\n focusedCrosswalks?: CrosswalkBase[];\n highlightedCrosswalks?: CrosswalkBase[];\n toggleCrosswalkFocus?: (crosswalk: CrosswalkBase) => void;\n setCrosswalkHighlighted?: (crosswalk: CrosswalkBase, highlighted: boolean) => void;\n};\n\nexport const CrosswalksDisplayProvider = ({children, ...props}: ProviderProps) => {\n return <CrosswalksDisplayContext.Provider value={props}>{children}</CrosswalksDisplayContext.Provider>;\n};\n\nexport const useCrosswalkColor = (crosswalk?: CrosswalkBase) => {\n const {getCrosswalkColor: getColor = pipe(getCrosswalkId, getCrosswalkColor)} =\n useContext(CrosswalksDisplayContext) || {};\n return crosswalk ? getColor(crosswalk) : '';\n};\n\nexport const useHighlightedCrosswalks = () => {\n const {highlightedCrosswalks = []} = useContext(CrosswalksDisplayContext) || {};\n return highlightedCrosswalks;\n};\n\nexport const useCrosswalkHighlight = (crosswalk?: CrosswalkBase) => {\n const {highlightedCrosswalks = [], setCrosswalkHighlighted = noop} = useContext(CrosswalksDisplayContext) || {};\n const isHighlighted = !!crosswalk && !!highlightedCrosswalks.find(eqBy(getCrosswalkId, crosswalk));\n return {\n isHighlighted,\n isDimmed: highlightedCrosswalks.length > 0 && !isHighlighted,\n highlightCrosswalk: useCallback(\n () => setCrosswalkHighlighted(crosswalk, true),\n [crosswalk, setCrosswalkHighlighted]\n ),\n removeHighlight: useCallback(\n () => setCrosswalkHighlighted(crosswalk, false),\n [crosswalk, setCrosswalkHighlighted]\n )\n };\n};\n\nexport const useCrosswalkFocus = (crosswalk?: CrosswalkBase) => {\n const {toggleCrosswalkFocus = noop, focusedCrosswalks = []} = useContext(CrosswalksDisplayContext) || {};\n const isFocused = !!crosswalk && focusedCrosswalks.some(eqBy(getCrosswalkId, crosswalk));\n return {\n isFocused,\n toggleCrosswalkFocus: useCallback(() => toggleCrosswalkFocus(crosswalk), [crosswalk, toggleCrosswalkFocus])\n };\n};\n","import React, {useState, useCallback, useContext} from 'react';\nimport {noop} from '../../core/utils';\n\ntype LoadingState = {\n entitiesNavigation: boolean;\n entity: boolean;\n};\n\ntype ContextValue = {\n isLoading: boolean;\n updateEntityLoadingState: (loading: boolean) => void;\n updateEntitiesNavigationLoadingState: (loading: boolean) => void;\n resetLoadingState: () => void;\n};\n\nconst EntityLoadingIndicationContext = React.createContext<ContextValue>({\n isLoading: false,\n updateEntityLoadingState: noop,\n updateEntitiesNavigationLoadingState: noop,\n resetLoadingState: noop\n});\n\nconst defaultLoadingState: LoadingState = {entitiesNavigation: false, entity: false};\n\nconst useEntityLoadingIndicationHook = () => {\n const [loadingState, setLoadingState] = useState(defaultLoadingState);\n\n const updateEntityLoadingState = useCallback((loading: boolean) => {\n setLoadingState((prevLoadingState) => ({...prevLoadingState, entity: loading}));\n }, []);\n\n const updateEntitiesNavigationLoadingState = useCallback((loading: boolean) => {\n setLoadingState((prevLoadingState) => ({...prevLoadingState, entitiesNavigation: loading}));\n }, []);\n\n const resetLoadingState = useCallback(() => {\n setLoadingState(defaultLoadingState);\n }, []);\n\n const isLoading = Object.values(loadingState).includes(true);\n\n return {isLoading, updateEntityLoadingState, updateEntitiesNavigationLoadingState, resetLoadingState};\n};\n\ntype Props = {\n children: React.ReactNode;\n};\n\nexport const EntityLoadingIndicationProvider = ({children}: Props) => {\n const value = useEntityLoadingIndicationHook();\n return <EntityLoadingIndicationContext.Provider value={value}>{children}</EntityLoadingIndicationContext.Provider>;\n};\n\nexport const useEntityLoadingIndication = () => {\n return useContext(EntityLoadingIndicationContext);\n};\n","import React from 'react';\n\ntype Labels = {\n profileBand: {\n OPEN_RESULTS?: string;\n SEARCH_RESULT?: string;\n SEARCH_RESULTS?: string;\n NEXT_PROFILE?: string;\n PREVIOUS_PROFILE?: string;\n };\n};\nexport const LabelsContext = React.createContext<Labels>({\n profileBand: {}\n});\n\nLabelsContext.displayName = 'LabelsContext';\n","import {useCallback, useEffect, useState} from 'react';\nimport {\n andThen,\n fromPairs,\n map,\n otherwise,\n pipe,\n props,\n uniqBy,\n prop,\n propEq,\n when,\n always,\n assocPath,\n dissocPath,\n path,\n pathOr,\n mergeRight\n} from 'ramda';\nimport {\n CollaborationObjectTypes,\n Comment,\n CommentsMap,\n createComment as createCommentRequest,\n createReply as createReplyRequest,\n getComment as getCommentRequest,\n getCommentsCount as getCommentsCountRequest,\n Reply,\n updateComment as updateCommentRequest,\n updateReply as updateReplyRequest,\n deleteComment as deleteCommentRequest,\n deleteReply as deleteReplyRequest,\n getComments as getCommentsRequest,\n isTempUri,\n CollaborationStateMap,\n CommentState\n} from '@reltio/mdm-sdk';\nimport {useMdmCollaborationPath, useMdmEntity, useMdmIsCollaborationEnabled, useMdmTenant} from '../contexts';\n\ntype Props = {\n objectIds?: string[];\n objectTypes?: CollaborationObjectTypes[];\n enabled?: boolean;\n};\n\nconst filterReplies = (replyId: string, replies: Reply[]) => replies.filter((reply) => reply.replyId !== replyId);\n\nconst getUpdatedReplies = (comment: Comment, reply: Reply) => {\n const changedReplyIndex = comment.replies.findIndex(({replyId}) => replyId === reply.replyId);\n const newReplies = [...comment.replies];\n newReplies[changedReplyIndex] = reply;\n return newReplies;\n};\n\nconst defaultObjectIds = [];\nconst catchErrorInRequest = (e) => console.error('Collaboration error', e);\nexport const useCollaboration = ({objectIds = defaultObjectIds, objectTypes, enabled = true}: Props) => {\n const entity = useMdmEntity();\n const tenant = useMdmTenant();\n const collaborationPath = useMdmCollaborationPath();\n const isCollaborationEnabled = useMdmIsCollaborationEnabled() && enabled;\n\n const [pageToken, setPageToken] = useState<string | null>(null);\n const [comments, setComments] = useState<Comment[]>([]);\n const [commentsMap, setCommentsMap] = useState<CommentsMap>(null);\n const [currentComment, setCurrentComment] = useState<Comment | null>(null);\n const [sending, setSending] = useState(false);\n const [loading, setLoading] = useState(false);\n const [collaborationStateMap, setCollaborationStateMap] = useState<CollaborationStateMap>({});\n\n const addCommentsToCommentsMap = useCallback((commentsMap: CommentsMap) => {\n setCommentsMap((currentCommentsMap) => ({\n ...currentCommentsMap,\n ...commentsMap\n }));\n }, []);\n const entityUri = entity?.uri;\n const getCommentsCount = useCallback(\n (objectIds: string[], shouldResetCommentsMap = false) => {\n if (isCollaborationEnabled && entityUri && !isTempUri(entityUri)) {\n const onError = (e) => {\n console.warn('Collaboration error', e);\n setCommentsMap(null);\n };\n pipe(\n getCommentsCountRequest,\n andThen(map(props(['objectId', 'comments']))),\n andThen(fromPairs),\n andThen(shouldResetCommentsMap ? setCommentsMap : addCommentsToCommentsMap),\n otherwise(onError)\n )({uris: objectIds, tenant, collaborationPath});\n } else {\n setCommentsMap(null);\n }\n },\n [addCommentsToCommentsMap, collaborationPath, entityUri, isCollaborationEnabled, tenant]\n );\n\n useEffect(() => {\n getCommentsCount(objectIds, true);\n }, [objectIds, getCommentsCount]);\n\n const getComments = useCallback(\n (relatedObjectUri: string, pageToken?: string) => {\n getCommentsRequest({collaborationPath, tenant, relatedObjectUri, pageToken})\n .then(({items, nextPageToken}) => {\n setComments((prevComments) => {\n if (!pageToken) {\n return items;\n }\n return uniqBy(prop('commentId'), [...prevComments, ...items]);\n });\n setPageToken(nextPageToken);\n })\n .catch(catchErrorInRequest);\n },\n [collaborationPath, tenant]\n );\n\n const getComment = useCallback(\n (commentId: string) => {\n setLoading(true);\n\n getCommentRequest({collaborationPath, tenant, commentId})\n .then(setCurrentComment)\n .catch(catchErrorInRequest)\n .finally(() => setLoading(false));\n },\n [collaborationPath, tenant]\n );\n\n const addCommentToState = (comment: Comment, uri: string) => {\n setCurrentComment(comment);\n setCommentsMap((prevCommentsMap) => {\n return {\n ...prevCommentsMap,\n [uri]: [...(prevCommentsMap[uri] || []), {commentId: comment.commentId, replies: 0, status: 'open'}]\n };\n });\n setComments((prevComments) => [comment, ...prevComments]);\n };\n const updateCommentInState = (comment: Comment) => {\n setCurrentComment(comment);\n setComments(map(when(propEq('commentId', comment.commentId), always(comment))));\n };\n const deleteCommentFromState = (commentId: string, uri: string) => {\n setCurrentComment(null);\n setCommentsMap((prevCommentsMap) => {\n const comments = prevCommentsMap[uri] || [];\n return {\n ...prevCommentsMap,\n [uri]: comments.filter((c) => c.commentId !== commentId)\n };\n });\n setComments((prevComments) => {\n return prevComments.filter((comment) => comment.commentId !== commentId);\n });\n };\n const createComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n permanentLink: `${window.location.href}&commentId=${encodeURIComponent('{commentId}')}`\n };\n\n return createCommentRequest({collaborationPath, tenant, data})\n .then(([comment]) => addCommentToState(comment, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const editComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris, commentId, replies}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n commentId,\n replies\n };\n\n return updateCommentRequest({collaborationPath, tenant, data})\n .then((comment) => updateCommentInState({...comment, replies}))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const deleteComment = useCallback(\n ({uri, commentId}) => {\n setSending(true);\n\n deleteCommentRequest({collaborationPath, tenant, commentId})\n .then(() => deleteCommentFromState(commentId, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const updateReplyInState = useCallback((reply: Reply, uri: string, commentId: string, isDeleteReply?: boolean) => {\n const newStatus = reply.action === 'resolve' ? 'resolved' : 'open';\n const {replyId} = reply;\n if (newStatus === 'resolved') {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return null;\n }\n });\n } else {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: isDeleteReply\n ? filterReplies(replyId, prevCurrentComment.replies)\n : [...prevCurrentComment.replies, reply]\n };\n }\n });\n }\n\n setCommentsMap((prevCommentsMap) => ({\n ...prevCommentsMap,\n [uri]: (prevCommentsMap[uri] || []).map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply ? comment.replies - 1 : comment.replies + 1\n };\n }\n\n return comment;\n })\n }));\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply\n ? filterReplies(reply.replyId, comment.replies)\n : [...comment.replies, reply]\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const deleteReply = useCallback(\n ({uri, commentId, reply}) => {\n setSending(true);\n\n deleteReplyRequest({collaborationPath, tenant, commentId, replyId: reply.replyId})\n .then(() => updateReplyInState(reply, uri, commentId, true))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, updateReplyInState, tenant]\n );\n\n const editReplyInState = useCallback((reply: Reply, commentId: string) => {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: getUpdatedReplies(prevCurrentComment, reply)\n };\n }\n });\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n replies: getUpdatedReplies(comment, reply)\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const editReply = useCallback(\n ({content, namedUsers, commentId, replyId}) => {\n setSending(true);\n const data = {\n content,\n namedUsers\n };\n return updateReplyRequest({collaborationPath, tenant, commentId, replyId, data})\n .then((reply) => editReplyInState(reply, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, editReplyInState]\n );\n\n const createReply = useCallback(\n ({content, namedUsers, commentId, action, uri}) => {\n setSending(true);\n\n const data = {\n content,\n action,\n namedUsers\n };\n\n return createReplyRequest({collaborationPath, tenant, commentId, data})\n .then(([reply]) => updateReplyInState(reply, uri, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, updateReplyInState]\n );\n\n const resolveThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'resolve', uri});\n },\n [createReply]\n );\n\n const reOpenThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'reopen', uri});\n },\n [createReply]\n );\n\n const clearCurrentComment = useCallback(() => {\n setCurrentComment(null);\n }, []);\n\n const getCommentState = (uri: string, commentUri: string) => pathOr({}, [uri, commentUri], collaborationStateMap);\n\n const clearCommentState = (uri: string, commentUri: string) =>\n setCollaborationStateMap(dissocPath([uri, commentUri]));\n\n const updateCommentState = (uri: string, commentUri: string, newState: CommentState) => {\n setCollaborationStateMap((prevCollaborationStateMap) => {\n const pathToCommentState = [uri, commentUri];\n const prevCommentState = path(pathToCommentState, prevCollaborationStateMap);\n return assocPath(pathToCommentState, mergeRight(prevCommentState, newState), prevCollaborationStateMap);\n });\n };\n\n return {\n clearCurrentComment,\n comments,\n commentsMap,\n getCommentState,\n updateCommentState,\n clearCommentState,\n createComment,\n createReply,\n currentComment,\n deleteComment,\n editComment,\n getComment,\n getComments,\n getCommentsCount,\n loading,\n objectTypes,\n pageToken,\n reOpenThread,\n resolveThread,\n sending,\n deleteReply,\n editReply\n };\n};\n"],"names":["AvatarStates","className","icon","avatarText","rootClasses","otherProps","state","setState","useState","useEffect","ICON_MODE","TEXT_MODE","onImageLoadFail","ERROR_MODE","classnames","iconRoot","src","onError","textRoot","contextSelector","CellRenderer","withContext","TableContext","props","width","height","viewBox","xmlns","d","fill","fillRule","stroke","strokeWidth","opacity","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","title","tooltipTitle","anchorEl","setAnchorEl","handleColumnClick","useCallback","column","changedColumns","pipe","getChildColumns","pluck","wasSelected","isColumnSelected","difference","uniq","concat","SmallIconButton","i18n","size","TableIcon","onClick","event","currentTarget","ColumnsSettingsPopup","onColumnClick","onClose","propTypes","ColumnsDataType","PropTypes","useStyles","makeStyles","popup","minWidth","groupItem","backgroundColor","ColumnListItem","item","checked","level","style","isFocused","isGroupItem","hideCheckBox","styles","AttributeListItem","key","id","data","label","Highlighter","text","highlight","filterText","labelInText","hideIcon","setFilterText","groupedItems","useMemo","buildColumnItems","items","flattenGroupedItemsData","containerWidth","getMaxItemWidth","handleSearchOnEnter","focusIndex","handleKeyDown","useKeyboardNavigation","open","onSelectFocusedItem","selectedItems","handleClose","listHeight","Math","min","length","containerHeight","max","SelectionPopup","onSearch","searchInputOnKeyDown","VirtualGroupedList","fixedTitle","renderItem","index","isGroupColumn","getItemSize","groupId","isParentToColumn","curry","parent","startsWith","isGroupToColumn","group","isHideableColumn","propOr","addColumn","columns","root","find","either","getColumnRoot","children","filterColumnsByLabel","utils","some","buildColumnsTrees","reduce","acc","columnData","attrType","dataTypeDefinition","buildFilteredColumnItems","filter","chain","isGroupedColumnsData","has","flattenGroupedColumnsData","map","assoc","when","childColumns","includes","every","textOverflow","overflow","whiteSpace","padding","fontSize","lineHeight","marginRight","borderRadius","flexShrink","fontWeight","entity","metadata","useMdmMetadata","entityType","getEntityType","type","entityTypeColor","getPropWithInheritance","theme","entityTypeLabel","getEntityTypeLabel","ExpandedValueTooltip","value","placement","Typography","color","component","profileBandWrapper","profileBand","display","alignItems","boxShadow","marginBottom","content","minHeight","inactive","background","inactiveBackground","profileIcon","imageProfileIcon","profileInfo","flexDirection","flex","badge","letterSpacing","palette","primary","wordBreak","marginTop","secondaryLabel","marginLeft","businessCard","secondary","specialInfo","justifyContent","flexWrap","entityId","cursor","textDecoration","classes","renderLabel","identity","showEntityId","useMdmShowEntityId","handleCopyEntityIdToClipboard","navigator","clipboard","writeText","getEntityId","isNil","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","EntityAvatar","avatarClassName","imageClassName","variant","EntityTypeBadge","isTempUri","Tooltip","container","link","LinkWithTooltip","withTooltip","Link","ProfileBandNavigationWidget","total","onPrev","onNext","onSearchResultsClick","isPrevDisabled","isNextDisabled","labels","useContext","LabelsContext","OPEN_RESULTS","SEARCH_RESULT","SEARCH_RESULTS","NEXT_PROFILE","PREVIOUS_PROFILE","mergeRight","underline","formatNumberAsMetric","KeyboardArrowLeft","disabled","showForDisabled","KeyboardArrowRight","MainSearchProvider","constructor","query","sortField","sortOrder","tenant","searchTenant","apiPath","dtssPath","globalSearchRequestOptions","isDT","this","getQueryFilter","rawFilter","getEntities","filters","options","requestFilters","requestOptions","sort","order","select","scoreEnabled","getFilteredEntitiesFromDataTenant","customerTenant","dataTenant","getFilteredEntities","checkEntity","fieldName","values","offset","then","entities","requestEntities","requestTotal","getTotalFromDataTenant","getTotals","json","GraphSearchProvider","searchBody","allFilters","getGraphSearchEntities","buildFilterQueryString","from","getGraphSearchCount","count","getNewUris","cache","prop","reject","ProfileBandNavigation","safeCheckEntityPromise","useSafePromise","safeRequestTotalPromise","safeRequestEntitiesPromise","viewId","ViewIdContext","searchNavigationListener","useMdmListener","updateSearchNavigationDataFields","useMdmAction","mdmOpenEntity","openPerspective","useMdmSearchNavigationData","useMdmSearchProviderData","useMdmTenant","useMdmApiPath","useMdmDtssPath","useMdmGlobalSearchRequestOptions","updateEntitiesNavigationLoadingState","useEntityLoadingIndication","loading","setLoading","searchProvider","getSearchProvider","updateNavigationData","openEntity","preparedUri","getEntityUriForLink","source","perspectiveId","listenToActions","useActionsHook","stopListeningActions","requestNextPage","newIndex","newUris","finally","requestPrevPage","stepForwardWithCheck","cacheIndex","isExists","clearedCache","splice","stepBackWithCheck","indexOf","useSearchNavigation","mode","useMdmMode","useMdmEntity","isViewMode","useSearchNavigationVisibility","position","zIndex","boxSizing","backgroundClip","margin","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","HANDLE_CHANGE_DEBOUNCE_INTERVAL","isHorizontal","orientation","ResizablePanes","defaultSize","minSize","maxSize","allowResize","debounceInterval","onChange","useTheme","containerEl","setContainerEl","isPaneAnimationEnabled","setIsPaneAnimationEnabled","enableAnimation","disableAnimation","getContainerSize","clientHeight","clientWidth","handleChange","debounce","containerSize","percentageSize","isMaxSize","isMinSize","paneAnimationStyle","transition","transitions","create","easing","sharp","duration","leavingScreen","ref","split","onDragStarted","onDragFinished","pane1Style","undefined","displayName","sourceType","findSourceSystemByUri","getSourceSystemLabel","sourceIcon","getAbsoluteImageUrl","slice","cancelButton","clearHistoryEvent","historyEvent","useMdmHistoryEvent","aStamp","Button","ActionsHookContext","createContext","ActionsHookProvider","hook","Provider","Error","CrosswalksDisplayContext","CrosswalksDisplayProvider","useCrosswalkColor","crosswalk","getCrosswalkColor","getColor","getCrosswalkId","useHighlightedCrosswalks","highlightedCrosswalks","useCrosswalkHighlight","setCrosswalkHighlighted","noop","isHighlighted","eqBy","isDimmed","highlightCrosswalk","removeHighlight","useCrosswalkFocus","toggleCrosswalkFocus","focusedCrosswalks","EntityLoadingIndicationContext","React","isLoading","updateEntityLoadingState","resetLoadingState","defaultLoadingState","entitiesNavigation","EntityLoadingIndicationProvider","loadingState","setLoadingState","prevLoadingState","Object","useEntityLoadingIndicationHook","filterReplies","replyId","replies","reply","getUpdatedReplies","comment","changedReplyIndex","findIndex","newReplies","defaultObjectIds","catchErrorInRequest","e","console","error","useCollaboration","objectIds","objectTypes","enabled","collaborationPath","useMdmCollaborationPath","isCollaborationEnabled","useMdmIsCollaborationEnabled","pageToken","setPageToken","comments","setComments","commentsMap","setCommentsMap","currentComment","setCurrentComment","sending","setSending","collaborationStateMap","setCollaborationStateMap","addCommentsToCommentsMap","currentCommentsMap","getCommentsCount","shouldResetCommentsMap","warn","getCommentsCountRequest","andThen","fromPairs","otherwise","uris","getComments","relatedObjectUri","getCommentsRequest","nextPageToken","prevComments","uniqBy","catch","getComment","commentId","getCommentRequest","createComment","namedUsers","objectType","relatedObjectUris","objectId","visibility","permanentLink","window","location","href","encodeURIComponent","createCommentRequest","prevCommentsMap","status","addCommentToState","editComment","updateCommentRequest","propEq","always","updateCommentInState","deleteComment","deleteCommentRequest","c","deleteCommentFromState","updateReplyInState","isDeleteReply","newStatus","action","prevCurrentComment","deleteReply","deleteReplyRequest","editReplyInState","editReply","updateReplyRequest","createReply","createReplyRequest","resolveThread","reOpenThread","clearCurrentComment","getCommentState","commentUri","pathOr","updateCommentState","newState","prevCollaborationStateMap","pathToCommentState","prevCommentState","path","assocPath","clearCommentState","dissocPath"],"sourceRoot":""}
|