@reltio/remotes 1.4.1545 → 1.4.1547
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/122.js +2 -0
- package/122.js.map +1 -0
- package/1268.js +1 -1
- package/1852.js +2 -0
- package/1852.js.map +1 -0
- package/2125.js +1 -1
- package/2125.js.map +1 -1
- package/2890.js +1 -1
- package/2890.js.map +1 -1
- package/3346.js +2 -0
- package/3346.js.map +1 -0
- package/3396.js +1 -1
- package/3396.js.map +1 -1
- package/3468.js +2 -0
- package/3468.js.map +1 -0
- package/{574.css → 3515.css} +1 -1
- package/3515.css.map +1 -0
- package/{574.js → 3515.js} +2 -2
- package/3515.js.map +1 -0
- package/3540.js +1 -1
- package/3540.js.map +1 -1
- package/3726.js +2 -0
- package/3726.js.map +1 -0
- package/4120.js +1 -1
- package/4120.js.map +1 -1
- package/4183.js +1 -1
- package/4183.js.map +1 -1
- package/4469.js +1 -1
- package/4469.js.map +1 -1
- package/4571.js +1 -1
- package/4701.js +2 -0
- package/4701.js.map +1 -0
- package/4806.js +3 -0
- package/4806.js.map +1 -0
- package/6396.js +2 -0
- package/6396.js.map +1 -0
- package/705.js +2 -0
- package/705.js.map +1 -0
- package/7416.js +1 -1
- package/7416.js.map +1 -1
- package/7594.js +2 -0
- package/7594.js.map +1 -0
- package/769.js +1 -1
- package/769.js.map +1 -1
- package/8061.js +2 -0
- package/8061.js.map +1 -0
- package/8340.js +1 -1
- package/8340.js.map +1 -1
- package/8684.js +1 -1
- package/package.json +1 -1
- package/remoteEntry.js +1 -1
- package/remoteEntry.js.map +1 -1
- package/1308.js +0 -2
- package/1308.js.map +0 -1
- package/2663.js +0 -2
- package/2663.js.map +0 -1
- package/2899.js +0 -3
- package/2899.js.map +0 -1
- package/316.js +0 -2
- package/316.js.map +0 -1
- package/385.js +0 -2
- package/385.js.map +0 -1
- package/566.js +0 -2
- package/566.js.map +0 -1
- package/574.css.map +0 -1
- package/574.js.map +0 -1
- package/6233.js +0 -2
- package/6233.js.map +0 -1
- package/6299.js +0 -2
- package/6299.js.map +0 -1
- package/6578.js +0 -2
- package/6578.js.map +0 -1
- package/7198.js +0 -2
- package/7198.js.map +0 -1
- package/8051.js +0 -2
- package/8051.js.map +0 -1
- package/8594.js +0 -2
- package/8594.js.map +0 -1
- /package/{2899.js.LICENSE.txt → 4806.js.LICENSE.txt} +0 -0
package/4120.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"4120.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AvatarWithFallback/AvatarWithFallback.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/hooks/useDynamicRowCellHeight.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/RowCellAutoSizer/RowCellAutoSizer.js","webpack://@reltio/remotes/../components/src/components/ConfirmDeleteDialog/ConfirmDeleteDialog.tsx","webpack://@reltio/remotes/../components/src/components/LightArrowTooltip/styles.ts","webpack://@reltio/remotes/../components/src/components/LightArrowTooltip/LightArrowTooltip.tsx","webpack://@reltio/remotes/../components/src/components/ScreenProfileBand/styles.ts","webpack://@reltio/remotes/../components/src/components/ScreenProfileBand/ScreenProfileBand.tsx","webpack://@reltio/remotes/../components/src/components/SourceIcon/SourceIcon.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttributeEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttributeEditor/SimpleAttributeEditor.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttribute/CrosswalkMenuItem/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttribute/CrosswalkMenuItem/CrosswalkMenuItem.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttribute/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttribute/SimpleAttribute.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttributesBlock/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttributesBlock/SimpleAttributesBlock.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/NestedAttributesBlock/NestedAttributesBlock.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/ReferenceAttributesBlock/ReferenceAttributesBlock.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/ImageAttributesBlock/ImageAttributesBlock.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/AttributesPager/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/AttributesPager/AttributesPager.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/CrosswalkIcon.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/AttributesList/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/AttributesList/AttributesList.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/DeleteButton.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/ComplexAttribute/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/ComplexAttribute/ComplexAttribute.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/ImageAttribute/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/ImageAttribute/ImageAttribute.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/NestedAttribute/NestedAttribute.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/ReferenceAttribute/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/ReferenceAttribute/ReferenceAttribute.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/ComplexAttributeLabel.tsx","webpack://@reltio/remotes/../components/src/icons/Ignored.tsx","webpack://@reltio/remotes/../components/src/icons/IgnoredOutlined.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/IgnoreButton.tsx","webpack://@reltio/remotes/../components/src/icons/Pin.tsx","webpack://@reltio/remotes/../components/src/icons/PinOutlined.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/PinButton.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/SourceItem.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/hooks/useAttributeState.ts","webpack://@reltio/remotes/../components/src/components/attributes/readMode/AttributeValuesBlock/AttributeValuesBlock.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/HeadCellRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/AddAttributesButton/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/AddAttributesButton/AddAttributesButton.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/AttributesHeadCellRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/DefaultCellValueRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/SimpleAttributesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/NestedAttributesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/ReferenceAttributesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/ImageAttributesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/AttributeValuesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/AttributesFactory.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/OvValuesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/CountRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/RuleTypeInfoButton.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/RuleTypeRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/WinnerSourcesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/helpers.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/RowCellRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/AttributesTable.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/ColoredBlock/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/ColoredBlock/ColoredBlock.tsx","webpack://@reltio/remotes/../components/src/icons/Copy.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CopyableValueField/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CopyableValueField/CopyableValueField.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkDateEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkDateEditor/CrosswalkDateEditor.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkAttributes/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkAttributes/CrosswalkAttributes.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkDragLayer/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkDragLayer/CrosswalkDragPreview.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkEditor/CrosswalkEditor.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/DummyCrosswalkRow/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/DummyCrosswalkRow/DummyCrosswalkRow.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkRow/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkRow/CrosswalkRow.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/ShowDependentLink/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/ShowDependentLink/ShowDependentLink.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/SourceCrosswalksRow/SourceCrosswalksRow.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/hooks/useCrosswalkActions.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/hooks/useModifiedEntity.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/hooks/useAttributeActions.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/types/CrosswalkType.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/utils/legend.ts","webpack://@reltio/remotes/../components/src/contexts/CrosswalksDisplayContext/index.tsx","webpack://@reltio/remotes/../components/src/contexts/ExpandedAttributesContext/index.tsx"],"sourcesContent":["import {Avatar as Avatar} from '@material-ui/core';\nimport classnames from 'classnames';\nimport React, {useEffect, useState} from 'react';\n\nenum AvatarStates {\n ICON_MODE,\n TEXT_MODE,\n ERROR_MODE\n}\ntype Props = {\n className?: string;\n icon?: string;\n avatarText?: string;\n variant?: 'circle' | 'circular' | 'rounded' | 'square';\n rootClasses?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst AvatarWithFallback = ({className, icon, avatarText, rootClasses, ...otherProps}: Props) => {\n const [state, setState] = useState<AvatarStates>(null);\n useEffect(() => {\n if (icon) {\n setState(AvatarStates.ICON_MODE);\n } else {\n setState(AvatarStates.TEXT_MODE);\n }\n }, [icon, avatarText]);\n const onImageLoadFail = () => {\n setState(AvatarStates.ERROR_MODE);\n };\n\n switch (state) {\n case AvatarStates.ICON_MODE:\n return (\n <Avatar\n className={classnames(className, rootClasses?.iconRoot)}\n src={icon}\n onError={onImageLoadFail}\n {...otherProps}\n />\n );\n case AvatarStates.TEXT_MODE:\n case AvatarStates.ERROR_MODE:\n return (\n <Avatar className={classnames(className, rootClasses?.textRoot)} {...otherProps}>\n {avatarText}\n </Avatar>\n );\n default:\n return null;\n }\n};\n\nexport default AvatarWithFallback;\n","import {useCallback, useRef, useState} from 'react';\nimport {__, curry, identity, pipe, prop, useWith} from 'ramda';\nimport {debounce} from '@reltio/mdm-sdk';\n\nconst getRowCellKey = ({rowIndex, columnData: {id}, cellIndex}) => `${id}[${rowIndex}][${cellIndex}]`;\n\nconst useDynamicRowCellHeight = () => {\n const [rowCellHeightsMap, setRowCellHeightsMap] = useState({});\n const rowCellHeightsMapCache = useRef({});\n const batchHeightUpdate = (key, value) => {\n rowCellHeightsMapCache.current[key] = value;\n };\n const flushHeightUpdates = useCallback(\n debounce(() => {\n setRowCellHeightsMap({...rowCellHeightsMapCache.current});\n }),\n []\n );\n const clearHeightsCache = useCallback(() => {\n rowCellHeightsMapCache.current = {};\n }, []);\n\n const getDynamicRowCellHeight = useCallback(pipe(getRowCellKey, prop(__, rowCellHeightsMap)), [rowCellHeightsMap]);\n\n const changeRowCellHeight = useCallback(\n curry(useWith(pipe(batchHeightUpdate, flushHeightUpdates), [getRowCellKey, identity])),\n []\n );\n\n return {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache};\n};\n\nexport default useDynamicRowCellHeight;\n","import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ReactResizeDetector from 'react-resize-detector';\nimport {RootRef as RootRef} from '@material-ui/core';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst RowCellAutoSizer = ({onChangeHeight, children: cell, ...cellProps}) => {\n const cellRef = useRef(null);\n\n const {rowValue, rowIndex, columnData, cellIndex} = cellProps;\n const changeCellHeight = onChangeHeight({rowIndex, cellIndex, columnData});\n\n const adjustCellHeight = () => cellRef.current && changeCellHeight(cellRef.current.clientHeight);\n\n useDidUpdateEffect(adjustCellHeight, [rowValue.rawValue]);\n\n return (\n <div>\n <ReactResizeDetector handleHeight={true} onResize={adjustCellHeight} />\n <RootRef rootRef={cellRef}>{cell}</RootRef>\n </div>\n );\n};\n\nRowCellAutoSizer.propTypes = {\n onChangeHeight: PropTypes.func,\n children: PropTypes.node\n};\n\nexport default RowCellAutoSizer;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Button as Button} from '@material-ui/core';\nimport {Dialog as Dialog} from '@material-ui/core';\nimport {DialogActions as DialogActions} from '@material-ui/core';\nimport {DialogContent as DialogContent} from '@material-ui/core';\nimport {DialogContentText as DialogContentText} from '@material-ui/core';\n\ntype Props = {\n open: boolean;\n onClose: () => void;\n onConfirm: () => void;\n};\n\nconst ConfirmDeleteDialog = ({open, onClose, onConfirm}: Props) => {\n const handleConfirm = () => {\n onConfirm();\n onClose();\n };\n return (\n <Dialog open={open}>\n <DialogContent>\n <DialogContentText>{i18n.text('Are you sure you want to delete this?')}</DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose} color=\"primary\">\n {i18n.text('No')}\n </Button>\n <Button onClick={handleConfirm} color=\"primary\">\n {i18n.text('Yes')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default ConfirmDeleteDialog;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n tooltip: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n filter:\n 'drop-shadow(0px 1px 5px #00000033) drop-shadow(0px 3px 1px #0000001F) drop-shadow(0px 2px 2px #00000024)',\n padding: '10px',\n maxWidth: 'none'\n },\n arrow: {\n color: theme.palette.background.paper\n }\n}));\n","import React from 'react';\nimport Tooltip, {TooltipProps} from '@material-ui/core/Tooltip';\n\nimport {useStyles} from './styles';\n\nconst LightArrowTooltip = (props: TooltipProps) => {\n const styles = useStyles();\n return <Tooltip {...props} classes={styles} arrow />;\n};\n\nexport default LightArrowTooltip;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n profileBandNavigation: {\n marginBottom: '10px'\n },\n comments: {\n display: 'flex',\n justifyContent: 'flex-end'\n }\n});\n","import React, {memo, useMemo} from 'react';\nimport classnames from 'classnames';\nimport {\n CollaborationObjectTypes,\n createRelatedObjectUris,\n Entity,\n getEntityUriForLink,\n getProfileBandObjectIdsForCollaboration\n} from '@reltio/mdm-sdk';\nimport {HistorySlice} from '@reltio/mdm-module';\n\nimport ProfileBand from '../ProfileBand/ProfileBand';\nimport {ProfileBandNavigation} from '../ProfileBandNavigation';\nimport CommentsContainer from '../CommentsContainer/CommentsContainer';\nimport {CollaborationContextProvider} from '../../contexts';\nimport {COMMENTS_CONTAINER_VISIBILITY_AREA} from '../../constants';\nimport {useCollaboration} from '../../hooks';\nimport {ProfileBandHistory} from '../history';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n historySlice?: HistorySlice;\n};\n\nexport const ScreenProfileBand = memo(({entity, className, historySlice}: Props) => {\n const styles = useStyles();\n const objectIds = useMemo(() => getProfileBandObjectIdsForCollaboration(entity), [entity]);\n const collaboration = useCollaboration({objectIds});\n const entityUri = getEntityUriForLink(entity);\n\n return (\n <CollaborationContextProvider collaboration={collaboration}>\n <ProfileBand\n className={classnames(className, COMMENTS_CONTAINER_VISIBILITY_AREA)}\n entity={historySlice?.aEntity || entity}\n >\n {historySlice ? (\n <ProfileBandHistory />\n ) : (\n <>\n <ProfileBandNavigation className={styles.profileBandNavigation} />\n <CommentsContainer\n className={styles.comments}\n uri={entityUri}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.ENTITY, {\n entityUri\n })}\n objectType={CollaborationObjectTypes.ENTITY}\n />\n </>\n )}\n </ProfileBand>\n </CollaborationContextProvider>\n );\n});\n\nScreenProfileBand.displayName = 'ScreenProfileBand';\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {findSourceSystemByUri, getAbsoluteImageUrl, getSourceSystemLabel, Source} from '@reltio/mdm-sdk';\nimport AvatarWithFallback from '../AvatarWithFallback/AvatarWithFallback';\n\ntype Props = {\n sourceType: string;\n className?: string;\n classes?: {\n iconRoot?: string;\n textRoot?: string;\n };\n};\nconst SOURCE_URL = 'https://s3.amazonaws.com/reltio.images/api';\nconst SourceIcon = ({sourceType, className, classes}: Props) => {\n const metadata = useSelector(mdmModule.selectors.getMetadata);\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 {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color: string;\n containerWidth: number;\n};\n\nexport const useStyles = makeStyles(() => ({\n textField: {\n margin: 0\n },\n input: {\n borderRadius: 0\n },\n inputMultiline: {\n '&$input': {\n paddingTop: 0,\n paddingBottom: 0\n }\n },\n booleanEditor: {\n paddingLeft: '10px'\n },\n timestampEditor: {\n '&$paper': {\n minWidth: '255px'\n }\n },\n paper: ({color, containerWidth}: StylesProps) => ({\n border: `3px solid ${color}`,\n borderRadius: '4px',\n width: containerWidth,\n minWidth: '160px'\n }),\n popoverRoot: {\n zIndex: '10!important' as any\n }\n}));\n","import React, {KeyboardEvent, useState} from 'react';\nimport {Popover as Popover} from '@material-ui/core';\nimport {\n AttributeType,\n attributeUriToSearchUri,\n DataTypes,\n getAttrDataTypeDefinition,\n isBooleanType,\n isLookupAttrType,\n isNumericType,\n isTimestampBasedType,\n SimpleAttributeValue\n} from '@reltio/mdm-sdk';\nimport classnames from 'classnames';\nimport {equals, isNil} from 'ramda';\nimport {DataTypeValueEditor} from '../../../editors';\nimport {attributeValueToEditorValue, editorValueToAttributeValue} from '../../editMode/SimpleAttributeEditor/utils';\nimport {useStyles} from './styles';\n\nconst DATA_TYPES_WITH_MULTILINE_EDITOR = [DataTypes.TYPE_TEXT, DataTypes.TYPE_BLOB];\n\ntype Props = {\n attributeType: AttributeType;\n attributeValue: SimpleAttributeValue;\n color: string;\n onClose: () => void;\n onEdit: (attributeValue: SimpleAttributeValue) => void;\n containerRef: React.RefObject<HTMLDivElement>;\n};\n\nexport const SimpleAttributeEditor = ({attributeType, attributeValue, color, containerRef, onClose, onEdit}: Props) => {\n const styles = useStyles({\n color,\n containerWidth: containerRef.current ? containerRef.current.getBoundingClientRect().width : 0\n });\n\n const dataTypeDefinition = getAttrDataTypeDefinition(attributeType);\n const initEditorValue = attributeValueToEditorValue(attributeValue, dataTypeDefinition);\n const [editorValue, changeEditorValue] = useState(initEditorValue);\n\n const TextFieldProps = {\n className: styles.textField,\n InputProps: {\n disableUnderline: true,\n classes: {\n root: styles.input,\n multiline: styles.inputMultiline\n }\n }\n };\n\n const applyChangesAndClose = () => {\n const editedValue = editorValueToAttributeValue(attributeType, editorValue);\n if (!isNil(editorValue) && !equals(editorValue, initEditorValue)) {\n const editedAttributeValue = isLookupAttrType(attributeType)\n ? {\n value: editedValue.value,\n lookupCode: editedValue.lookupCode\n }\n : {\n value: editorValue === '' && isNumericType(dataTypeDefinition.type) ? null : editedValue\n };\n onEdit({\n ...attributeValue,\n ...editedAttributeValue\n });\n }\n onClose();\n };\n\n const onKeyUp = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' && !DATA_TYPES_WITH_MULTILINE_EDITOR.includes(dataTypeDefinition.type)) {\n applyChangesAndClose();\n } else if (event.key === 'Escape') onClose();\n };\n\n return (\n <Popover\n open={!!containerRef}\n anchorEl={containerRef.current}\n anchorOrigin={{vertical: 'top', horizontal: 'left'}}\n transformOrigin={{vertical: 'top', horizontal: 'left'}}\n classes={{\n paper: classnames(styles.paper, {\n [styles.booleanEditor]: isBooleanType(dataTypeDefinition.type),\n [styles.timestampEditor]: isTimestampBasedType(dataTypeDefinition.type)\n }),\n root: styles.popoverRoot\n }}\n onKeyUp={onKeyUp}\n onBackdropClick={applyChangesAndClose}\n >\n <DataTypeValueEditor\n autoFocus\n dataTypeDefinition={dataTypeDefinition}\n fieldName={attributeUriToSearchUri(attributeType.uri)}\n onChange={changeEditorValue}\n TextFieldProps={TextFieldProps}\n value={editorValue}\n fullWidth\n />\n </Popover>\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n menuItem: {\n minHeight: '32px',\n color: theme.palette.text.secondary\n },\n menuText: {\n color: theme.palette.text.primary,\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 0,\n marginLeft: '16px'\n },\n sourceItem: {\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)',\n paddingBottom: '8px',\n paddingLeft: '16px',\n maxWidth: '200px'\n }\n}));\n","import {MenuItem as MenuItem} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Crosswalk} from '@reltio/mdm-sdk';\nimport React, {forwardRef, ReactNode} from 'react';\nimport withTooltip from '../../../../../HOCs/withTooltip/withTooltip';\nimport SourceItem from '../../common/SourceItem';\nimport {useStyles} from './styles';\n\nconst MenuItemWithTooltip = withTooltip(MenuItem);\n\nexport type Item = {\n text?: string;\n disabled?: boolean;\n tooltip?: string;\n icon?: ReactNode;\n crosswalk?: Crosswalk;\n color?: string;\n id?: string;\n onClick?: (e) => void;\n};\n\ntype Props = {\n item: Item;\n onMenuClose?: (e) => void;\n};\n\nconst MenuItemContent = ({styles, icon, text}: Item & {styles: Record<string, string>}) => {\n return (\n <>\n {icon}\n <Typography classes={{root: styles.menuText}}>{text}</Typography>\n </>\n );\n};\n\nconst CrosswalkMenuItem = forwardRef(({item, onMenuClose = () => {}}: Props, ref: React.Ref<HTMLLIElement>) => {\n const styles = useStyles();\n const {disabled, text, tooltip, onClick, id = '', icon, crosswalk, color} = item;\n const handleClick = (e) => {\n onMenuClose(e);\n onClick(e);\n };\n return crosswalk ? (\n <SourceItem className={styles.sourceItem} color={color} crosswalk={crosswalk} focusable />\n ) : (\n <MenuItemWithTooltip\n tooltipTitle={tooltip}\n showForDisabled={true}\n classes={{root: styles.menuItem}}\n onClick={handleClick}\n disabled={disabled}\n ref={ref}\n data-reltio-id={`crosswalk-menu-item${id}`}\n >\n <MenuItemContent icon={icon} text={text} styles={styles} />\n </MenuItemWithTooltip>\n );\n});\n\nCrosswalkMenuItem.displayName = 'CrosswalkMenuItem';\n\nexport default CrosswalkMenuItem;\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n variant: 'filled' | 'outlined';\n fullyColored: boolean;\n opaque: boolean;\n color: string;\n};\n\nexport const useStyles = makeStyles(() => ({\n root: ({fullyColored, opaque, color, variant}: StylesProps) => ({\n minHeight: '28px',\n wordBreak: 'break-word',\n ...(variant === 'filled' && {\n borderRadius: '4px',\n background: fullyColored ? color : `linear-gradient(to right, ${color} 8px, rgba(0,0,0,0.05) 8px)`\n }),\n ...(variant === 'outlined' && {\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n background: color,\n borderRadius: '4px 0px 0px 4px',\n width: '8px',\n height: '100%',\n pointerEvents: 'none'\n },\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n boxSizing: 'border-box',\n borderRadius: '4px',\n border: fullyColored ? `${color} solid 2px` : 'rgba(0,0,0,0.12) solid 1px',\n width: '100%',\n height: '100%',\n pointerEvents: 'none'\n }\n }),\n display: 'flex',\n alignItems: 'center',\n opacity: opaque ? 1 : 0.38,\n transition: 'opacity 0.3s',\n position: 'relative'\n }),\n attributeValue: {\n marginLeft: '16px',\n padding: '6px 0',\n lineHeight: '14px',\n width: 'calc(100% - 71px)'\n },\n actions: {\n display: 'flex',\n width: '71px',\n justifyContent: 'flex-end',\n marginRight: '4px'\n }\n}));\n","import React, {useRef} from 'react';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {\n AttributeType,\n checkMetadataForDelete,\n checkMetadataForUpdate,\n Crosswalk,\n getAttrDataTypeDefinition,\n getAttributeValue,\n getLastUriPart,\n isCrosswalkDisabled,\n isTempUri,\n ModeTypes,\n RelationCrosswalk,\n SimpleAttributeValue\n} from '@reltio/mdm-sdk';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport DataTypeValue from '../../../DataTypeValue/DataTypeValue';\nimport DropDownMenuButton from '../../../DropDownMenuButton/DropDownMenuButton';\nimport {SimpleAttributeEditor} from '../SimpleAttributeEditor/SimpleAttributeEditor';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport IgnoreButton from '../common/IgnoreButton';\nimport PinButton from '../common/PinButton';\nimport CrosswalkMenuItem from './CrosswalkMenuItem/CrosswalkMenuItem';\nimport {useAttributeState} from '../hooks/useAttributeState';\nimport {useCrosswalkColor, useCrosswalkHighlight} from '../../../../contexts';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n dataReltioId?: string;\n attributeValue: SimpleAttributeValue;\n attributeType: AttributeType;\n crosswalk: Crosswalk | RelationCrosswalk;\n disableEdit?: boolean;\n disableDelete?: boolean;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n};\n\nconst SimpleAttribute = ({\n className,\n dataReltioId,\n attributeType = null,\n attributeValue,\n crosswalk,\n disableEdit,\n disableDelete,\n onIgnore,\n onEdit,\n onPin,\n onDelete\n}: Props) => {\n const {isReadingMode, isEditingMode, isHovered, onMouseEnter, onMouseLeave, setReadingMode, setEditingMode} =\n useAttributeState();\n\n const containerRef = useRef<HTMLDivElement>();\n\n const id = getLastUriPart(attributeValue.uri);\n const crosswalkDisabled = isCrosswalkDisabled(crosswalk);\n const canModifyAttribute = !attributeType.system && !crosswalkDisabled;\n const canEdit = canModifyAttribute && !disableEdit && checkMetadataForUpdate(ModeTypes.EDITING, attributeType);\n const canDelete = canModifyAttribute && !disableDelete && checkMetadataForDelete(ModeTypes.EDITING, attributeType);\n const isTemporary = isTempUri(attributeValue.uri);\n const showPin = !isTemporary && ((!isReadingMode && canEdit) || attributeValue.pin);\n const showIgnore = !isTemporary && ((!isReadingMode && canEdit) || attributeValue.ignored);\n\n const color = useCrosswalkColor(crosswalk);\n const {isHighlighted, isDimmed, highlightCrosswalk, removeHighlight} = useCrosswalkHighlight(crosswalk);\n const styles = useStyles({\n variant: crosswalkDisabled ? 'outlined' : 'filled',\n opaque: !isDimmed,\n fullyColored: isHighlighted,\n color: isDimmed ? 'rgba(0, 0, 0, 0.12)' : color\n });\n const actions = [\n {\n crosswalk,\n color\n },\n {\n disabled: !canEdit,\n text: i18n.text('Edit'),\n icon: <EditIcon />,\n tooltip: canEdit ? null : i18n.text(\"You don't have permissions to edit\"),\n onClick: () => setEditingMode(),\n id: 'edit'\n },\n {\n disabled: !canDelete,\n text: i18n.text('Delete'),\n icon: <DeleteIcon />,\n tooltip: canDelete ? null : i18n.text(\"You don't have permissions to delete\"),\n onClick: () =>\n onDelete({\n attributeType,\n attributeValue,\n crosswalks: [crosswalk]\n }),\n id: 'delete'\n }\n ];\n\n const onClose = () => {\n removeHighlight();\n setReadingMode();\n };\n\n return (\n <div\n ref={containerRef}\n className={classnames(className, styles.root)}\n onMouseEnter={() => {\n highlightCrosswalk();\n onMouseEnter();\n }}\n onMouseLeave={() => {\n removeHighlight();\n onMouseLeave();\n }}\n data-reltio-id={dataReltioId}\n >\n <div className={styles.attributeValue}>\n <DataTypeValue\n value={getAttributeValue(attributeValue)}\n dataTypeDefinition={getAttrDataTypeDefinition(attributeType)}\n />\n </div>\n <div className={styles.actions}>\n {showPin && (\n <PinButton\n isPinned={attributeValue.pin}\n onClick={() => onPin({attributeValue})}\n disabled={!canEdit}\n />\n )}\n {showIgnore && (\n <IgnoreButton\n isIgnored={attributeValue.ignored}\n onClick={() => onIgnore({attributeValue})}\n disabled={!canEdit}\n />\n )}\n {isHovered && (\n <DropDownMenuButton\n MenuItemRenderer={CrosswalkMenuItem}\n menuId={`simple-attribute-additional-actions-${id}`}\n buttonComponent={SmallIconButtonWithTooltip}\n buttonProps={{\n icon: MoreVertIcon,\n size: 'XS',\n tooltipTitle: i18n.text('More actions')\n }}\n onMenuClose={onClose}\n menuItems={actions}\n />\n )}\n </div>\n {isEditingMode && (\n <SimpleAttributeEditor\n attributeType={attributeType}\n attributeValue={attributeValue}\n color={color}\n onClose={onClose}\n onEdit={(value) => onEdit({attributeType, attributeValue: value, crosswalk})}\n containerRef={containerRef}\n />\n )}\n </div>\n );\n};\nexport default SimpleAttribute;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n simpleAttributesWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px',\n width: '100%',\n minHeight: '28px'\n },\n dropIndicator: {\n height: '28px',\n color: '#828282',\n fontSize: '13px',\n lineHeight: '28px',\n background: 'rgba(0, 0, 0, 0.04)',\n border: '1px dashed #828282',\n borderRadius: '4px',\n boxSizing: 'border-box',\n padding: '0 12px'\n }\n}));\n","import React from 'react';\nimport SimpleAttribute from '../SimpleAttribute';\nimport {\n AttributeType,\n checkMetadataForCreate,\n Crosswalk,\n isEntityTypeUri,\n isEntityUri,\n isRelationTypeUri,\n isRelationUri,\n ModeTypes,\n RelationCrosswalk,\n SimpleAttributeValue\n} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\nimport {useDrop} from 'react-dnd';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeType: AttributeType;\n attributeValues: SimpleAttributeValue[];\n crosswalksMap: CrosswalksMap;\n parentUri: string;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst SimpleAttributesBlock = ({\n attributeValues,\n attributeType,\n parentUri,\n disableEdit,\n crosswalksMap,\n onAdd,\n ...props\n}: Props) => {\n const styles = useStyles();\n const [{isDragItemOver}, drop] = useDrop<\n {crosswalk: Crosswalk | RelationCrosswalk; type: 'Crosswalk'},\n unknown,\n {isDragItemOver: boolean}\n >({\n accept: 'Crosswalk',\n canDrop: ({crosswalk}) => {\n const isRelationCrosswalk = isRelationUri(crosswalk.uri) || crosswalk.ownerType === 'relation';\n const isEntityCrosswalk = isEntityUri(crosswalk.uri) && crosswalk.ownerType === 'entity';\n return (\n checkMetadataForCreate(ModeTypes.EDITING, attributeType) &&\n !disableEdit &&\n ((isRelationCrosswalk && isRelationTypeUri(attributeType.uri)) ||\n (isEntityCrosswalk && isEntityTypeUri(attributeType.uri)))\n );\n },\n collect: (monitor) => ({\n isDragItemOver: monitor.isOver() && monitor.canDrop()\n }),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n drop: ({crosswalk}, monitor) => {\n onAdd({attributeType, crosswalk, parentUri, index: attributeValues.length});\n }\n });\n let attributeIndex = 0;\n return (\n <div ref={drop} className={styles.simpleAttributesWrapper}>\n {attributeValues.map((value) =>\n crosswalksMap[value.uri]?.map((crosswalk) => (\n <SimpleAttribute\n key={value.uri + crosswalk.uri}\n attributeType={attributeType}\n attributeValue={value}\n crosswalk={crosswalk}\n disableEdit={disableEdit}\n dataReltioId={`value-index-${attributeIndex++}`}\n {...props}\n />\n ))\n )}\n {isDragItemOver && <div className={styles.dropIndicator}>{i18n.text('Drop here')}</div>}\n </div>\n );\n};\n\nexport default SimpleAttributesBlock;\n","import React from 'react';\nimport {AttributeType, checkMetadataForCreate, ModeTypes, NestedAttributeValue} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport NestedAttribute from '../NestedAttribute/NestedAttribute';\nimport {Button as Button} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\ntype Props = {\n className?: string;\n attributeType: AttributeType;\n attributeValues: NestedAttributeValue[];\n crosswalksMap: CrosswalksMap;\n parentUri: string;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst NestedAttributesBlock = ({\n className,\n attributeValues,\n attributeType,\n onAdd,\n parentUri,\n disableEdit,\n ...props\n}: Props) => {\n const canCreate = !disableEdit && checkMetadataForCreate(ModeTypes.EDITING, attributeType);\n return attributeValues.length === 0 && canCreate ? (\n <Button\n variant=\"text\"\n color=\"primary\"\n onClick={() =>\n onAdd({\n parentUri,\n attributeType,\n index: 0\n })\n }\n >\n {i18n.text('Create attribute')}\n </Button>\n ) : (\n <div className={className}>\n {attributeValues.map((value) => (\n <NestedAttribute\n key={value.uri}\n attributeValue={value}\n attributeType={attributeType}\n onAdd={onAdd}\n disableEdit={disableEdit}\n {...props}\n />\n ))}\n </div>\n );\n};\n\nexport default NestedAttributesBlock;\n","import React from 'react';\nimport {AttributeType, ReferenceAttributeValue} from '@reltio/mdm-sdk';\nimport {RelationCrosswalksMap} from '../types';\nimport ReferenceAttribute from '../ReferenceAttribute/ReferenceAttribute';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\ntype Props = {\n className?: string;\n attributeType: AttributeType;\n attributeValues: ReferenceAttributeValue[];\n crosswalksMap: RelationCrosswalksMap;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst ReferenceAttributesBlock = ({className, attributeValues, ...props}: Props) => {\n return (\n <div className={className}>\n {attributeValues.map((value) => (\n <ReferenceAttribute key={value.uri} attributeValue={value} {...props} />\n ))}\n </div>\n );\n};\n\nexport default ReferenceAttributesBlock;\n","import React from 'react';\nimport {AttributeType, ImageAttributeValue} from '@reltio/mdm-sdk';\nimport ImageAttribute from '../ImageAttribute/ImageAttribute';\nimport {CrosswalksMap} from '../types';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\ntype Props = {\n className?: string;\n attributeType: AttributeType;\n attributeValues: ImageAttributeValue[];\n crosswalksMap: CrosswalksMap;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst ImageAttributesBlock = ({className, attributeValues, ...props}: Props) => {\n return (\n <div className={className}>\n {attributeValues.map((value) => (\n <ImageAttribute key={value.uri} attributeValue={value} {...props} />\n ))}\n </div>\n );\n};\n\nexport default ImageAttributesBlock;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start'\n },\n complexAttributesWrapper: {\n width: '100%'\n }\n}));\n","import React, {useState} from 'react';\nimport {AttributeType, AttributeValue, DataTypes, Paging} from '@reltio/mdm-sdk';\nimport {CrosswalksMap, RelationCrosswalksMap} from '../types';\nimport ShowMore from '../../pagersCommon/ShowMore';\nimport ShowLess from '../../pagersCommon/ShowLess';\nimport SimpleAttributesBlock from '../SimpleAttributesBlock/SimpleAttributesBlock';\nimport NestedAttributesBlock from '../NestedAttributesBlock/NestedAttributesBlock';\nimport ReferenceAttributesBlock from '../ReferenceAttributesBlock/ReferenceAttributesBlock';\nimport ImageAttributesBlock from '../ImageAttributesBlock/ImageAttributesBlock';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\nimport {propOr} from 'ramda';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeType: AttributeType;\n attributeValues: AttributeValue[];\n parentUri: string;\n paging?: Paging;\n max?: number;\n crosswalksMap: CrosswalksMap;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n requestNextPage?: () => void;\n};\n\nconst AttributesPager = ({\n attributeType,\n attributeValues = [],\n paging = {},\n max = Infinity,\n requestNextPage,\n ...props\n}: Props) => {\n const styles = useStyles();\n\n const [visibleValuesCount, setVisibleValuesCount] = useState(max);\n\n const totalValues = propOr(attributeValues.length, 'totalValues', paging);\n\n const hasPaging = max < totalValues;\n const showMore = hasPaging && visibleValuesCount < totalValues;\n const showLess = hasPaging && visibleValuesCount >= totalValues;\n const onShowMore = () => {\n if (attributeValues.length < totalValues) {\n requestNextPage(); // TODO: implement\n }\n setVisibleValuesCount(visibleValuesCount + max);\n };\n const onShowLess = () => {\n setVisibleValuesCount(max);\n };\n\n const shownValues = attributeValues.slice(0, visibleValuesCount);\n const hiddenValuesCount = totalValues - visibleValuesCount;\n\n const renderValues = (values) => {\n switch (attributeType.type) {\n case DataTypes.TYPE_NESTED:\n return (\n <NestedAttributesBlock\n className={styles.complexAttributesWrapper}\n attributeValues={values}\n attributeType={attributeType}\n {...props}\n />\n );\n case DataTypes.TYPE_REFERENCE: {\n const {crosswalksMap, ...other} = props;\n return (\n <ReferenceAttributesBlock\n className={styles.complexAttributesWrapper}\n attributeValues={values}\n attributeType={attributeType}\n crosswalksMap={crosswalksMap as RelationCrosswalksMap}\n {...other}\n />\n );\n }\n case DataTypes.TYPE_IMAGE: {\n return (\n <ImageAttributesBlock\n className={styles.complexAttributesWrapper}\n attributeValues={values}\n attributeType={attributeType}\n {...props}\n />\n );\n }\n default:\n return <SimpleAttributesBlock attributeValues={values} attributeType={attributeType} {...props} />;\n }\n };\n\n return (\n <div className={styles.wrapper}>\n {renderValues(shownValues)}\n {showMore && (\n <ShowMore\n moreNumber={Math.min(max, hiddenValuesCount)}\n valueNumber={hiddenValuesCount}\n onClick={onShowMore}\n />\n )}\n {showLess && <ShowLess onClick={onShowLess} />}\n </div>\n );\n};\n\nexport default AttributesPager;\n","import React from 'react';\nimport {Crosswalk, isCrosswalkDisabled} from '@reltio/mdm-sdk';\nimport {useCrosswalkColor, useCrosswalkHighlight} from '../../../../contexts';\nimport SourceItem from './SourceItem';\nimport LightArrowTooltip from '../../../LightArrowTooltip/LightArrowTooltip';\nimport classnames from 'classnames';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: Crosswalk;\n className?: string;\n};\n\nconst CrosswalkIcon = ({crosswalk, className}: Props) => {\n const color = useCrosswalkColor(crosswalk);\n const isDisabled = isCrosswalkDisabled(crosswalk);\n const {isDimmed, highlightCrosswalk, removeHighlight} = useCrosswalkHighlight(crosswalk);\n const styles = useStyles({isOpaque: !isDimmed, color: isDimmed ? 'rgba(0, 0, 0, 0.12)' : color, isDisabled});\n return (\n <LightArrowTooltip title={<SourceItem crosswalk={crosswalk} color={color} />} placement={'top'}>\n <div\n data-reltio-id=\"crosswalk-icon\"\n className={classnames(styles.crosswalkIcon, className)}\n onMouseEnter={() => highlightCrosswalk()}\n onMouseLeave={() => removeHighlight()}\n />\n </LightArrowTooltip>\n );\n};\n\nexport default CrosswalkIcon;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n title: {\n fontSize: '12px',\n lineHeight: '14px',\n paddingBottom: '4px',\n display: 'inline-block',\n color: theme.palette.text.secondary\n }\n}));\n","import React from 'react';\nimport {AttributeType, AttributeValue, isReadableAttribute, RecordAttributesType} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport AttributesPager from '../AttributesPager/AttributesPager';\nimport {path} from 'ramda';\nimport Title from '../../../Title/Title';\nimport BranchDecorator from '../../BranchDecorator/BranchDecorator';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeTypes: AttributeType[];\n attributes: RecordAttributesType;\n parentUri: string;\n crosswalksMap: CrosswalksMap;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst AttributesList = ({attributeTypes, attributes, ...props}: Props) => {\n const styles = useStyles();\n\n return (\n <>\n {attributeTypes.filter(isReadableAttribute).map((attributeType) => (\n <BranchDecorator key={attributeType.uri} enabled={true}>\n <Title className={styles.title} label={attributeType.label} />\n <AttributesPager\n attributeType={attributeType}\n attributeValues={attributes[attributeType.name] as AttributeValue[]}\n paging={path(['paging', attributeType.uri], attributes)}\n {...props}\n />\n </BranchDecorator>\n ))}\n </>\n );\n};\n\nexport default AttributesList;\n","import React from 'react';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport i18n from 'ui-i18n';\n\ntype Props = {\n onClick: () => void;\n};\n\nconst DeleteButton = ({onClick}: Props) => {\n return (\n <SmallIconButtonWithTooltip\n icon={DeleteIcon}\n tooltipTitle={i18n.text('Delete')}\n onClick={onClick}\n size=\"XS\"\n disableRipple\n />\n );\n};\n\nexport default DeleteButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n root: {\n display: 'flex',\n minHeight: '20px'\n },\n actions: {\n display: 'flex',\n width: '65px',\n justifyContent: 'flex-end',\n flexShrink: 0,\n alignSelf: 'center'\n },\n crosswalkIcon: {\n display: 'inline-block',\n verticalAlign: 'middle',\n '& + &': {\n marginLeft: '4px'\n }\n }\n}));\n","import React, {useState} from 'react';\nimport {\n areOneHierarchyUris,\n AttributeType,\n checkMetadataForDelete,\n checkMetadataForUpdate,\n ComplexAttributeValue,\n Crosswalk,\n isTempUri,\n getCrosswalkId,\n ModeTypes\n} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport {useAttributeState} from '../hooks/useAttributeState';\nimport {Spacer} from '../../../index';\nimport CrosswalkIcon from '../common/CrosswalkIcon';\nimport {flatten, pickBy, pipe, prop, uniqBy, values} from 'ramda';\nimport ArrowExpandButton from '../../../ArrowExpandButton/ArrowExpandButton';\nimport AttributesList from '../AttributesList/AttributesList';\nimport PinButton from '../common/PinButton';\nimport IgnoreButton from '../common/IgnoreButton';\nimport DeleteButton from '../common/DeleteButton';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\nimport {useDidUpdateEffect} from '../../../../hooks';\nimport {useAttributeExpanded} from '../../../../contexts';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeValue: ComplexAttributeValue;\n attributeType: AttributeType;\n label: React.ReactNode;\n lazy?: boolean;\n attributeTypesList: AttributeType[];\n crosswalksMap: CrosswalksMap;\n disableEdit?: boolean;\n disableDelete?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst ComplexAttribute = ({\n attributeType,\n attributeValue,\n attributeTypesList,\n label,\n crosswalksMap,\n disableEdit,\n disableDelete,\n onPin,\n onIgnore,\n onDelete,\n onEdit,\n onAdd\n}: Props) => {\n const styles = useStyles();\n\n const {isReadingMode, onMouseEnter, onMouseLeave} = useAttributeState();\n const canEdit = !disableEdit && checkMetadataForUpdate(ModeTypes.EDITING, attributeType);\n const canDelete = !disableDelete && checkMetadataForDelete(ModeTypes.EDITING, attributeType);\n const isTemporary = isTempUri(attributeValue.uri);\n const showPin = !isTemporary && ((!isReadingMode && canEdit) || attributeValue.pin);\n const showIgnore = !isTemporary && ((!isReadingMode && canEdit) || attributeValue.ignored);\n const showDelete = !isReadingMode && canDelete;\n const expandedFromContext = useAttributeExpanded(attributeValue.uri);\n const [expanded, setExpanded] = useState(expandedFromContext || isTemporary);\n useDidUpdateEffect(() => {\n if (expandedFromContext) setExpanded(expandedFromContext);\n }, [expandedFromContext]);\n\n const crosswalks: Crosswalk[] = pipe(\n pickBy((val, attrUri) => areOneHierarchyUris(attrUri, attributeValue?.uri)),\n values,\n flatten,\n uniqBy(prop('uri'))\n )(crosswalksMap);\n\n return (\n <>\n <div className={styles.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <ArrowExpandButton onClick={() => setExpanded((value) => !value)} expanded={expanded} />\n <span>\n {label}\n {crosswalks.map((crosswalk) => (\n <CrosswalkIcon\n key={getCrosswalkId(crosswalk)}\n crosswalk={crosswalk}\n className={styles.crosswalkIcon}\n />\n ))}\n </span>\n <Spacer />\n <div className={styles.actions}>\n {showPin && (\n <PinButton\n disabled={!canEdit}\n isPinned={attributeValue.pin}\n onClick={() => onPin({attributeValue})}\n />\n )}\n {showIgnore && (\n <IgnoreButton\n disabled={!canEdit}\n isIgnored={attributeValue.ignored}\n onClick={() => onIgnore({attributeValue})}\n />\n )}\n {showDelete && (\n <DeleteButton\n onClick={() =>\n onDelete({\n attributeType,\n attributeValue,\n crosswalks: crosswalksMap[attributeValue.uri]\n })\n }\n />\n )}\n </div>\n </div>\n {expanded && (\n <AttributesList\n attributeTypes={attributeTypesList}\n attributes={attributeValue.value}\n parentUri={attributeValue.uri}\n crosswalksMap={crosswalksMap}\n disableEdit={!canEdit}\n disableDelete={!canDelete}\n onPin={onPin}\n onIgnore={onIgnore}\n onDelete={onDelete}\n onEdit={onEdit}\n onAdd={onAdd}\n />\n )}\n </>\n );\n};\n\nexport default ComplexAttribute;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n image: {\n borderRadius: '4px',\n background: 'white',\n display: 'inline-block',\n verticalAlign: 'middle'\n },\n imageContainer: {\n display: 'inline',\n lineHeight: '45px',\n paddingRight: '8px'\n }\n}));\n","import React from 'react';\nimport {AttributeType, getImageAttributeThumbnailUrl, ImageAttributeValue} from '@reltio/mdm-sdk';\nimport Image from '../../../Image/Image';\nimport ComplexAttribute from '../ComplexAttribute/ComplexAttribute';\nimport {CrosswalksMap} from '../types';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {useStyles} from './styles';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\nconst IMAGE_SIZE = {imageWidth: 55, imageHeight: 45};\n\ntype Props = {\n attributeValue: ImageAttributeValue;\n attributeType: AttributeType;\n crosswalksMap: CrosswalksMap;\n disableEdit?: boolean;\n disableDelete?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst ImageAttribute = ({attributeValue, attributeType, ...other}: Props) => {\n const styles = useStyles();\n\n return (\n <ComplexAttribute\n attributeValue={attributeValue}\n attributeType={attributeType}\n attributeTypesList={attributeType.attributes}\n label={\n <Image\n containerClassName={styles.imageContainer}\n className={styles.image}\n src={getImageAttributeThumbnailUrl(attributeValue)}\n size={IMAGE_SIZE}\n />\n }\n {...other}\n />\n );\n};\n\nexport default ImageAttribute;\n","import React from 'react';\nimport {AttributeType, getLabel, NestedAttributeValue} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport ComplexAttribute from '../ComplexAttribute/ComplexAttribute';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {ComplexAttributeLabel} from '../common/ComplexAttributeLabel';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\ntype Props = {\n attributeValue: NestedAttributeValue;\n attributeType: AttributeType;\n crosswalksMap: CrosswalksMap;\n disableEdit?: boolean;\n disableDelete?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst NestedAttribute = ({attributeValue, attributeType, ...other}: Props) => {\n const label = <ComplexAttributeLabel>{getLabel(attributeValue?.label)}</ComplexAttributeLabel>;\n return (\n <ComplexAttribute\n attributeValue={attributeValue}\n attributeType={attributeType}\n attributeTypesList={attributeType.attributes}\n label={label}\n {...other}\n />\n );\n};\n\nexport default NestedAttribute;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n relationshipLabel: {\n marginLeft: '4px',\n color: theme.palette.text.primary\n }\n}));\n","import React, {useContext} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n AttributeType,\n findAttributeTypeByUri,\n getLabel,\n getReferencedEntityUriFromAttrValue,\n getReferencedRelationAttrTypesUris,\n ReferenceAttributeValue\n} from '@reltio/mdm-sdk';\nimport {RelationCrosswalksMap} from '../types';\nimport ComplexAttribute from '../ComplexAttribute/ComplexAttribute';\nimport {isNil, map, pipe, reject} from 'ramda';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\nimport {ComplexAttributeLabel} from '../common/ComplexAttributeLabel';\nimport InternalLink from '../../../InternalLink/InternalLink';\nimport {UrlGeneratorsContext} from '../../../../contexts';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeValue: ReferenceAttributeValue;\n attributeType: AttributeType;\n crosswalksMap: RelationCrosswalksMap;\n disableEdit?: boolean;\n disableDelete?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst ReferenceAttribute = ({attributeValue, attributeType, ...other}: Props) => {\n const styles = useStyles();\n const {generateEntityUrl} = useContext(UrlGeneratorsContext);\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const uiPath = useSelector(mdmModule.selectors.getUIPath);\n\n const entityLabel = (\n <ComplexAttributeLabel>\n <InternalLink href={generateEntityUrl({uiPath, uri: getReferencedEntityUriFromAttrValue(attributeValue)})}>\n {getLabel(attributeValue.label)}\n {attributeValue.relationshipLabel && (\n <span className={styles.relationshipLabel}>{attributeValue.relationshipLabel}</span>\n )}\n </InternalLink>\n </ComplexAttributeLabel>\n );\n\n const attributeTypesList = pipe(\n getReferencedRelationAttrTypesUris,\n map((attrTypeUri) => findAttributeTypeByUri(metadata, attrTypeUri)),\n reject(isNil)\n )(attributeType);\n\n return (\n <ComplexAttribute\n attributeValue={attributeValue}\n attributeType={attributeType}\n attributeTypesList={attributeTypesList}\n label={entityLabel}\n {...other}\n />\n );\n};\n\nexport default ReferenceAttribute;\n","import React from 'react';\nimport {Typography as Typography} from '@material-ui/core';\nimport {useComplexAttributeLabelStyles} from './styles';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nexport const ComplexAttributeLabel = ({children}: Props) => {\n const styles = useComplexAttributeLabelStyles();\n\n return (\n <Typography component=\"span\" variant=\"body2\" classes={{body2: styles.label}}>\n {children}\n </Typography>\n );\n};\n","import React from 'react';\n\nconst SvgIgnored: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 3.5A8.503 8.503 0 003.5 12c0 4.692 3.808 8.5 8.5 8.5s8.5-3.808 8.5-8.5-3.808-8.5-8.5-8.5zM6.1 12c0-3.26 2.64-5.9 5.9-5.9 1.161 0 2.24.336 3.149.917L7.017 15.15A5.821 5.821 0 016.101 12zm5.9 5.9c-1.16 0-2.24-.336-3.148-.917l8.131-8.131c.581.908.917 1.987.917 3.148 0 3.26-2.64 5.9-5.9 5.9z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgIgnored;\n","import React from 'react';\n\nconst SvgIgnoredOutlined: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.847 9.402a6.34 6.34 0 00-.8-1.322L8.08 17.048A6.34 6.34 0 0012 18.4a6.398 6.398 0 005.847-8.998zm-7.283 7.283l6.121-6.121a4.898 4.898 0 01-6.121 6.121zm1.437-11.084a6.334 6.334 0 013.92 1.352L6.953 15.92A6.334 6.334 0 015.6 12c0-3.536 2.864-6.4 6.4-6.4zm0 1.5c.5 0 .982.075 1.436.215l-6.121 6.12A4.898 4.898 0 0112 7.1zM6.6 17.903A7.967 7.967 0 0012 20c4.417-.001 8.001-3.585 8.001-8.001a7.967 7.967 0 00-2.601-5.902A7.988 7.988 0 0012 4c-4.416 0-8 3.584-8 8a7.967 7.967 0 002.602 5.902zM12 2.5c-5.244 0-9.5 4.256-9.5 9.5s4.256 9.5 9.5 9.5 9.5-4.256 9.5-9.5-4.256-9.5-9.5-9.5z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgIgnoredOutlined;\n","import React from 'react';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport IgnoredIcon from '../../../../icons/Ignored';\nimport IgnoredOutlinedIcon from '../../../../icons/IgnoredOutlined';\nimport i18n from 'ui-i18n';\n\ntype Props = {\n isIgnored: boolean;\n onClick: () => void;\n disabled?: boolean;\n};\n\nconst IgnoreButton = ({isIgnored, onClick, disabled}: Props) => {\n return (\n <SmallIconButtonWithTooltip\n disabled={disabled}\n showForDisabled={true}\n icon={isIgnored ? IgnoredIcon : IgnoredOutlinedIcon}\n tooltipTitle={disabled ? i18n.text(\"You don't have permissions to ignore\") : i18n.text('Ignore')}\n onClick={onClick}\n size=\"XS\"\n disableRipple\n />\n );\n};\n\nexport default IgnoreButton;\n","import React from 'react';\n\nconst SvgPin: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16 4v6l2 2v2h-5v7l-.992 1L11 21v-7H6v-2l2-2V4H7V2h10v2h-1z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgPin;\n","import React from 'react';\n\nconst SvgPinOutlined: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16 10V4h1V2H7v2h1v6l-2 2v2h5v7l1.008 1L13 21v-7h5v-2l-2-2zm-6-6h4v7l1 1H9l1-1V4z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgPinOutlined;\n","import React from 'react';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport PinIcon from '../../../../icons/Pin';\nimport PinOutlinedIcon from '../../../../icons/PinOutlined';\nimport i18n from 'ui-i18n';\n\ntype Props = {\n isPinned: boolean;\n onClick: () => void;\n disabled?: boolean;\n};\n\nconst PinButton = ({isPinned, onClick, disabled}: Props) => {\n return (\n <SmallIconButtonWithTooltip\n disabled={disabled}\n showForDisabled={true}\n onClick={onClick}\n icon={isPinned ? PinIcon : PinOutlinedIcon}\n tooltipTitle={disabled ? \"You don't have permissions to pin\" : i18n.text('Pin')}\n size=\"XS\"\n disableRipple\n />\n );\n};\n\nexport default PinButton;\n","import React from 'react';\nimport i18n from 'ui-i18n';\n\nimport mdmModule from '@reltio/mdm-module';\nimport {Crosswalk, findSourceSystemByUri, Source} from '@reltio/mdm-sdk';\nimport {useSelector} from 'react-redux';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport classnames from 'classnames';\n\nimport {useCrosswalkFocus} from '../../../../contexts';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: Crosswalk;\n color: string;\n focusable?: boolean;\n className?: string;\n};\n\nconst SourceItem = ({crosswalk, color, className, focusable = false}: Props) => {\n const {toggleCrosswalkFocus, isFocused} = useCrosswalkFocus(crosswalk);\n const styles = useStyles({color, isFocused});\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const {label} = findSourceSystemByUri(metadata, crosswalk.type) as Source;\n return (\n <div className={classnames(styles.sourceItem, className)}>\n <SourceIcon className={styles.sourceIcon} sourceType={crosswalk.type} />\n <div className={styles.sourceInfo}>\n <div>\n <span className={styles.label}>{label}</span>\n {focusable && (\n <SmallIconButtonWithTooltip\n icon={VisibilityIcon}\n className={styles.eyeIcon}\n size={'XXS'}\n tooltipTitle={i18n.text('Focus')}\n onClick={() => toggleCrosswalkFocus()}\n />\n )}\n </div>\n <div className={styles.crosswalkValue}>{crosswalk.value}</div>\n </div>\n </div>\n );\n};\n\nexport default SourceItem;\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color: string;\n isOpaque?: boolean;\n isFocused?: boolean;\n isDisabled?: boolean;\n};\n\nexport const useStyles = makeStyles({\n sourceItem: {\n display: 'flex',\n overflow: 'hidden'\n },\n eyeIcon: ({isFocused}: StylesProps) => ({\n marginLeft: '10px',\n color: isFocused ? '#000' : 'rgba(0, 0, 0, 0.54)'\n }),\n label: {\n color: 'rgba(0, 0, 0, 0.87)',\n verticalAlign: 'top',\n fontSize: '13px',\n lineHeight: '16px'\n },\n sourceInfo: {\n overflow: 'hidden'\n },\n crosswalkValue: {\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: '12px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n sourceIcon: ({color}: StylesProps) => ({\n height: '16px',\n width: '16px',\n marginRight: '9px',\n fontSize: '14px',\n backgroundColor: color\n }),\n crosswalkIcon: ({color, isOpaque, isDisabled}: StylesProps) => ({\n backgroundColor: isDisabled ? '#fff' : color,\n border: isDisabled ? `2px solid ${color}` : null,\n height: '12px',\n width: '12px',\n boxSizing: 'border-box',\n borderRadius: '30px',\n opacity: isOpaque ? 1 : 0.38,\n transition: 'opacity 0.3s'\n })\n});\n\nexport const useComplexAttributeLabelStyles = makeStyles(() => ({\n label: {\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 'normal',\n marginLeft: '2px',\n marginRight: '8px'\n }\n}));\n","import {debounce} from '@reltio/mdm-sdk';\nimport {useCallback, useEffect, useState} from 'react';\n\nenum AttributeStates {\n READING = 'READING',\n HOVERED = 'HOVERED',\n EDITING = 'EDITING'\n}\n\nconst HIDE_INTERVAL = 50;\n\nexport const useAttributeState = () => {\n const [attributeState, setAttributeState] = useState<AttributeStates>(null);\n const isReadingMode = attributeState === AttributeStates.READING;\n const isEditingMode = attributeState === AttributeStates.EDITING;\n const isHovered = attributeState === AttributeStates.HOVERED;\n\n useEffect(() => {\n setAttributeState(AttributeStates.READING);\n }, []);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const setAttributeStateDebounced = useCallback(debounce(setAttributeState, HIDE_INTERVAL), []);\n\n const onMouseEnter = useCallback(() => {\n if (!isEditingMode) setAttributeStateDebounced(AttributeStates.HOVERED);\n }, [setAttributeStateDebounced, isEditingMode]);\n\n const onMouseLeave = useCallback(() => {\n if (!isEditingMode) setAttributeStateDebounced(AttributeStates.READING);\n }, [setAttributeStateDebounced, isEditingMode]);\n\n const setReadingMode = useCallback(() => setAttributeState(AttributeStates.READING), [setAttributeState]);\n const setEditingMode = useCallback(() => setAttributeState(AttributeStates.EDITING), [setAttributeState]);\n\n return {\n setReadingMode,\n setEditingMode,\n onMouseLeave,\n onMouseEnter,\n isReadingMode,\n isEditingMode,\n isHovered\n };\n};\n","import {AttributeType, AttributeValue, DataTypes, ImageAttributeValue} from '@reltio/mdm-sdk';\nimport React, {memo} from 'react';\nimport {ReadOnlyAttribute} from '../../..';\nimport ImageAttributesLine from '../ImageAttributesLine';\n\ntype SlotParams<T> = {\n attributeType?: AttributeType;\n attributeValue: T;\n};\ntype Props = {\n values: AttributeValue[];\n attributeType: AttributeType;\n expanded?: boolean;\n valueContainerClassName?: string;\n LabelRenderer?: ({attributeType, attributeValue}: SlotParams<AttributeValue>) => JSX.Element;\n RightSlot?: ({attributeType, attributeValue}: SlotParams<AttributeValue>) => JSX.Element;\n showNonOv?: boolean;\n};\n\nconst renderAttributesList = ({values, valueContainerClassName, ...props}: Props) => {\n return (\n <>\n {(values || []).map((attributeValue) => (\n <div key={attributeValue.uri} className={valueContainerClassName}>\n <ReadOnlyAttribute attributeValue={attributeValue} {...props} />\n </div>\n ))}\n </>\n );\n};\n\nconst AttributeValuesBlock = ({expanded, LabelRenderer, RightSlot, ...props}: Props) => {\n const {attributeType, values, valueContainerClassName} = props;\n switch (attributeType.type) {\n case DataTypes.TYPE_NESTED:\n case DataTypes.TYPE_REFERENCE: {\n return renderAttributesList({expanded, LabelRenderer, RightSlot, ...props});\n }\n case DataTypes.TYPE_IMAGE: {\n return (\n <div className={valueContainerClassName}>\n <ImageAttributesLine\n attributeType={attributeType}\n attributeValues={values as ImageAttributeValue[]}\n imageSize={{imageHeight: 40, imageWidth: 40, imageMargin: 2}}\n />\n </div>\n );\n }\n default: {\n return renderAttributesList({...props});\n }\n }\n};\n\nexport default memo(AttributeValuesBlock);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n coloredCell: {\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n height: '100%',\n background: 'rgba(0,0,0,0.06)',\n pointerEvents: 'none'\n }\n },\n headCell: {\n display: 'flex',\n alignItems: 'center',\n fontSize: '12px',\n height: '100%',\n color: theme.palette.text.secondary\n },\n rowCell: {\n fontSize: '13px',\n overflow: 'hidden'\n },\n cellValueWrapper: {\n padding: '15px 15px 0 15px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n },\n attributeTitle: {\n display: 'block',\n marginLeft: '3px',\n '&:not(:last-child)': {\n marginBottom: '5px'\n }\n },\n ovValue: {\n '& + &': {\n marginTop: '4px'\n }\n },\n count: {\n textAlign: 'center'\n },\n ruleType: {\n display: 'flex',\n alignItems: 'center'\n },\n ruleTypeLabel: {\n marginRight: '5px'\n },\n rulePopup: {\n width: '270px',\n overflowY: 'hidden'\n },\n popupItem: {\n paddingBottom: '5px',\n paddingTop: '5px'\n },\n sourceIcon: {\n height: '16px',\n width: '16px',\n marginRight: '9px',\n fontSize: '14px'\n },\n closeButton: {\n height: 24,\n width: 24\n },\n popupTitle: {\n fontWeight: 500,\n marginLeft: '12px'\n },\n popupTitleWrapper: {\n display: 'flex',\n paddingLeft: 16,\n paddingTop: 16\n },\n popupItemsWrapper: {\n overflowY: 'auto',\n maxHeight: '280px'\n },\n winnerSourceItemWrapper: {\n paddingBottom: '2px',\n paddingTop: '2px'\n },\n winnerSourceItem: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n paddingLeft: '8px'\n },\n winnerSourceItemLabel: {\n fontSize: 13\n }\n}));\n","import React from 'react';\n\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst HeadCellRenderer = (props: React.PropsWithChildren<Record<string, unknown>>) => {\n const styles = useStyles();\n return (\n <div className={classnames(styles.headCell, styles.coloredCell)}>\n <DefaultHeadCellRenderer {...props} />\n {props.children}\n </div>\n );\n};\n\nexport default HeadCellRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n marginBottom: '-6px'\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport {AddInlineAttributeEvent} from '../../../attributes/inline';\nimport MoreAttributesButton from '../../../attributes/editMode/MoreAttributesButton/MoreAttributesButton';\nimport {withTableContext} from '../../../BasicTableView';\nimport i18n from 'ui-i18n';\nimport {both, either, filter, pick, pipe, propEq, propOr, reject} from 'ramda';\nimport {\n AttributeType,\n checkCanCreateAttribute,\n isImage,\n isNested,\n isReadableAttribute,\n isReference,\n ModeTypes\n} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n parentUri: string;\n parentTypeUri: string;\n selectedAttributeTypes?: AttributeType[];\n onSelectAttributeTypes: (selected: AttributeType[]) => void;\n onAdd: (event: AddInlineAttributeEvent) => void;\n};\n\nexport const AddAttributesButton = ({\n parentTypeUri,\n parentUri,\n selectedAttributeTypes,\n onSelectAttributeTypes,\n onAdd\n}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const parentType = [...metadata.entityTypes, ...(metadata.relationTypes || [])].find(propEq('uri', parentTypeUri));\n const isNotSelected = (attrType: AttributeType) => !selectedAttributeTypes?.find(propEq('uri', attrType.uri));\n const canCreate = (attributeType) => checkCanCreateAttribute({attributeType, mode: ModeTypes.EDITING});\n\n const data = pipe(\n propOr([], 'attributes'),\n reject(either(isReference, isImage)),\n filter(either(isNested, isNotSelected)),\n filter(both(isReadableAttribute, canCreate))\n )(parentType);\n\n const handleAdd = (addedTypes: AttributeType[]) => {\n const typesToSelect = addedTypes.filter(isNotSelected);\n if (typesToSelect.length > 0) {\n onSelectAttributeTypes([...typesToSelect, ...selectedAttributeTypes]);\n }\n addedTypes.filter(isNested).forEach((attributeType) => {\n onAdd({attributeType, parentUri});\n });\n };\n\n return (\n <div className={styles.root}>\n <MoreAttributesButton\n label={i18n.text('Attribute')}\n popupTitle={i18n.text('Add attributes')}\n data={data}\n onApply={handleAdd}\n />\n </div>\n );\n};\n\nexport default withTableContext(\n pick(['parentUri', 'parentTypeUri', 'onAdd', 'selectedAttributeTypes', 'onSelectAttributeTypes'])\n)(AddAttributesButton);\n","import React from 'react';\nimport HeadCellRenderer from './HeadCellRenderer';\nimport AddAttributesButton from '../AddAttributesButton/AddAttributesButton';\nimport Spacer from '../../../Spacer/Spacer';\nimport {withTableContext} from '../../../BasicTableView';\nimport {pick} from 'ramda';\n\ntype Props = {\n readOnly?: boolean;\n headCellData: {\n label: string;\n };\n};\n\nexport const AttributesHeadCellRenderer = ({readOnly, ...props}: Props) => {\n return readOnly ? (\n <HeadCellRenderer {...props} />\n ) : (\n <HeadCellRenderer {...props}>\n <Spacer />\n <AddAttributesButton />\n </HeadCellRenderer>\n );\n};\n\nexport default withTableContext(pick(['readOnly']))(AttributesHeadCellRenderer);\n","import React from 'react';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n value: unknown;\n};\n\nconst DefaultCellValueRenderer = ({value}: Props) => {\n const styles = useStyles();\n return <div className={styles.cellValueWrapper}>{value}</div>;\n};\n\nexport default DefaultCellValueRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n simpleAttributeWrapper: {\n padding: '15px'\n },\n complexAttributeWrapper: {\n padding: '15px',\n '& + &': {\n borderTop: '1px solid rgba(0,0,0,.1)'\n }\n }\n}));\n","import React from 'react';\nimport {InlineAttributesPager} from '../../../../attributes/inline';\nimport {AttributesRendererProps} from './AttributesFactory';\nimport {SimpleAttributeValue} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\nconst SimpleAttributesRenderer = ({attributeValues, ...props}: AttributesRendererProps) => {\n const styles = useStyles();\n return (\n <div className={styles.simpleAttributeWrapper}>\n <InlineAttributesPager attributeValues={attributeValues as SimpleAttributeValue[]} {...props} />\n </div>\n );\n};\n\nexport default SimpleAttributesRenderer;\n","import React from 'react';\nimport {AttributesRendererProps} from './AttributesFactory';\nimport {InlineNestedAttribute} from '../../../../attributes/inline';\nimport {NestedAttributeValue} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst NestedAttributesRenderer = ({attributeValues, ...props}: AttributesRendererProps) => {\n const styles = useStyles();\n const nestedValues = attributeValues?.map((attributeValue, i) => {\n return (\n <div\n key={attributeValue?.uri}\n className={styles.complexAttributeWrapper}\n data-reltio-id={`value-index-${i}`}\n >\n <InlineNestedAttribute attributeValue={attributeValue as NestedAttributeValue} {...props} />\n </div>\n );\n });\n return <>{nestedValues}</>;\n};\n\nexport default NestedAttributesRenderer;\n","import React from 'react';\nimport {AttributesRendererProps} from './AttributesFactory';\nimport {InlineReferenceAttribute, RelationCrosswalksMap} from '../../../../attributes/inline';\nimport {ReferenceAttributeValue} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst ReferenceAttributesRenderer = ({attributeValues, crosswalksMap, ...props}: AttributesRendererProps) => {\n const styles = useStyles();\n const referenceValues = attributeValues?.map((attributeValue, i) => {\n return (\n <div\n key={attributeValue?.uri}\n className={styles.complexAttributeWrapper}\n data-reltio-id={`value-index-${i}`}\n >\n <InlineReferenceAttribute\n attributeValue={attributeValue as ReferenceAttributeValue}\n crosswalksMap={crosswalksMap as RelationCrosswalksMap}\n {...props}\n />\n </div>\n );\n });\n return <>{referenceValues}</>;\n};\n\nexport default ReferenceAttributesRenderer;\n","import React from 'react';\nimport {AttributesRendererProps} from './AttributesFactory';\nimport {InlineImageAttribute} from '../../../../attributes/inline';\nimport {ImageAttributeValue} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst ImageAttributesRenderer = ({attributeValues, ...props}: AttributesRendererProps) => {\n const styles = useStyles();\n\n return (\n <>\n {attributeValues?.map((attributeValue, i) => (\n <div\n key={attributeValue?.uri}\n className={styles.complexAttributeWrapper}\n data-reltio-id={`value-index-${i}`}\n >\n <InlineImageAttribute attributeValue={attributeValue as ImageAttributeValue} {...props} />\n </div>\n ))}\n </>\n );\n};\n\nexport default ImageAttributesRenderer;\n","import {AttributeType, AttributeValue} from '@reltio/mdm-sdk';\nimport AttributesFactory from './attribute-renderers/AttributesFactory';\nimport {\n AddInlineAttributeEvent,\n CrosswalksMap,\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent,\n IgnoreInlineAttributeEvent,\n PinInlineAttributeEvent\n} from '../../../attributes/inline';\nimport {withTableContext} from '../../../BasicTableView';\nimport {pick} from 'ramda';\n\ntype Props = {\n value: {\n attributeValues?: AttributeValue[];\n attributeType: AttributeType;\n crosswalksMap: CrosswalksMap;\n };\n onDelete: (event: DeleteInlineAttributeEvent) => void;\n onEdit: (event: EditInlineAttributeEvent) => void;\n onPin: (event: PinInlineAttributeEvent) => void;\n onIgnore: (event: IgnoreInlineAttributeEvent) => void;\n onAdd: (event: AddInlineAttributeEvent) => void;\n parentUri: string;\n readOnly?: boolean;\n};\n\nexport const AttributeValuesRenderer = ({\n value,\n onDelete,\n onEdit,\n onPin,\n onIgnore,\n onAdd,\n parentUri,\n readOnly\n}: Props) => {\n return AttributesFactory.build(value.attributeType.type, {\n ...value,\n parentUri,\n onDelete,\n onEdit,\n onPin,\n onIgnore,\n onAdd,\n disableEdit: readOnly,\n disableDelete: readOnly\n });\n};\n\nexport default withTableContext(pick(['onDelete', 'onPin', 'onIgnore', 'onEdit', 'onAdd', 'parentUri', 'readOnly']))(\n AttributeValuesRenderer\n);\n","import React from 'react';\nimport {AttributeType, AttributeValue, DataTypes} from '@reltio/mdm-sdk';\nimport SimpleAttributesRenderer from './SimpleAttributesRenderer';\nimport NestedAttributesRenderer from './NestedAttributesRenderer';\nimport ReferenceAttributesRenderer from './ReferenceAttributesRenderer';\nimport ImageAttributesRenderer from './ImageAttributesRenderer';\nimport {\n AddInlineAttributeEvent,\n CrosswalksMap,\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent,\n IgnoreInlineAttributeEvent,\n PinInlineAttributeEvent\n} from '../../../../attributes/inline';\n\nexport type AttributesRendererProps = {\n attributeValues?: AttributeValue[];\n attributeType: AttributeType;\n crosswalksMap: CrosswalksMap;\n parentUri: string;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onDelete: (event: DeleteInlineAttributeEvent) => void;\n onEdit: (event: EditInlineAttributeEvent) => void;\n onPin: (event: PinInlineAttributeEvent) => void;\n onIgnore: (event: IgnoreInlineAttributeEvent) => void;\n onAdd: (event: AddInlineAttributeEvent) => void;\n};\n\nexport default class AttributesFactory {\n static build(type: string, props: AttributesRendererProps) {\n switch (type) {\n case DataTypes.TYPE_NESTED:\n return <NestedAttributesRenderer {...props} />;\n case DataTypes.TYPE_REFERENCE:\n return <ReferenceAttributesRenderer {...props} />;\n case DataTypes.TYPE_IMAGE:\n return <ImageAttributesRenderer {...props} />;\n default:\n return <SimpleAttributesRenderer {...props} />;\n }\n }\n}\n","import React from 'react';\nimport AttributeTitle from '../../../Title/Title';\nimport ReadOnlyAttributeValuesBlock from '../../../attributes/readMode/AttributeValuesBlock/AttributeValuesBlock';\nimport {AttributeType, AttributeValue} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n values?: AttributeValue[];\n attributeType: AttributeType;\n };\n};\n\nconst OvValuesRenderer = ({value: {values, attributeType}}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.cellValueWrapper}>\n <AttributeTitle className={styles.attributeTitle} label={attributeType.label} />\n <ReadOnlyAttributeValuesBlock\n values={values}\n attributeType={attributeType}\n valueContainerClassName={styles.ovValue}\n />\n </div>\n );\n};\n\nexport default OvValuesRenderer;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: number;\n};\n\nconst CountRenderer = ({value}: Props) => {\n const styles = useStyles();\n return <div className={classnames(styles.cellValueWrapper, styles.count)}>{value}</div>;\n};\n\nexport default CountRenderer;\n","import React, {useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {cond, prop} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {IconButton as IconButton} from '@material-ui/core';\nimport {List as List} from '@material-ui/core';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport {Popover as Popover} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport InfoIcon from '@material-ui/icons/Info';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport mdmModule from '@reltio/mdm-module';\nimport {findAttributeTypeByUri, getLabel, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\nconst SourcesRenderer = ({sourcesUriOrder}: {sourcesUriOrder: string[]}) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n return (\n <>\n {sourcesUriOrder.map((sourceUri) => (\n <ListItem key={sourceUri} className={styles.popupItem}>\n <SourceIcon className={styles.sourceIcon} sourceType={sourceUri} />\n <ListItemText\n primary={getSourceSystemLabel(metadata, sourceUri)}\n primaryTypographyProps={{variant: 'body2'}}\n />\n </ListItem>\n ))}\n </>\n );\n};\n\nconst AttributeRenderer = ({attributeUri}: {attributeUri: string}) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const attributeType = findAttributeTypeByUri(metadata, attributeUri);\n return (\n <ListItem key={attributeType.uri} className={styles.popupItem}>\n <ListItemText primary={getLabel(attributeType.label)} primaryTypographyProps={{variant: 'body2'}} />\n </ListItem>\n );\n};\n\nconst getInfoTitle = cond([\n [prop('sourcesUriOrder'), () => i18n.text('Source sequence')],\n [prop('primaryAttributeUri'), () => i18n.text('Attribute winner')],\n [prop('comparisonAttributeUri'), () => i18n.text('Comparison attribute')]\n]);\n\nconst getInfoContent = cond([\n // eslint-disable-next-line react/display-name\n [prop('sourcesUriOrder'), ({sourcesUriOrder}) => <SourcesRenderer sourcesUriOrder={sourcesUriOrder} />],\n // eslint-disable-next-line react/display-name\n [prop('primaryAttributeUri'), ({primaryAttributeUri}) => <AttributeRenderer attributeUri={primaryAttributeUri} />],\n [\n prop('comparisonAttributeUri'),\n // eslint-disable-next-line react/display-name\n ({comparisonAttributeUri}) => <AttributeRenderer attributeUri={comparisonAttributeUri} />\n ]\n]);\n\ntype Props = {\n info: {\n sourcesUriOrder?: string[];\n primaryAttributeUri?: string;\n comparisonAttributeUri?: string;\n };\n};\n\nconst RuleTypeInfoButton = ({info}: Props) => {\n const styles = useStyles();\n const [anchorEl, setAnchorEl] = useState(null);\n const openPopup = (event) => setAnchorEl(event.currentTarget);\n const closePopup = () => setAnchorEl(null);\n\n return (\n <>\n <SmallIconButtonWithTooltip\n icon={InfoIcon}\n tooltipTitle={i18n.text('View details')}\n size={'XS'}\n onClick={openPopup}\n />\n <Popover\n classes={{paper: styles.rulePopup}}\n open={!!anchorEl}\n anchorEl={anchorEl}\n onClose={closePopup}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n <div className={styles.popupTitleWrapper}>\n <IconButton className={styles.closeButton} onClick={closePopup}>\n <CloseIcon />\n </IconButton>\n <Typography variant={'subtitle1'} className={styles.popupTitle}>\n {getInfoTitle(info)}\n </Typography>\n </div>\n <List component=\"div\" className={styles.popupItemsWrapper}>\n {getInfoContent(info)}\n </List>\n </Popover>\n </>\n );\n};\n\nexport default RuleTypeInfoButton;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {SurvivorStrategy} from '@reltio/mdm-sdk';\nimport RuleTypeInfoButton from './RuleTypeInfoButton';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n ruleType: SurvivorStrategy;\n sourcesUriOrder?: string[];\n primaryAttributeUri?: string;\n comparisonAttributeUri?: string;\n };\n};\n\nconst RuleTypeRenderer = ({value: {ruleType, sourcesUriOrder, primaryAttributeUri, comparisonAttributeUri}}: Props) => {\n const styles = useStyles();\n const showInfoIcon = sourcesUriOrder || primaryAttributeUri || comparisonAttributeUri;\n\n return (\n <div className={classnames(styles.cellValueWrapper, styles.ruleType)}>\n <div className={styles.ruleTypeLabel}>{ruleType.label}</div>\n {showInfoIcon && (\n <RuleTypeInfoButton\n info={{\n sourcesUriOrder,\n primaryAttributeUri,\n comparisonAttributeUri\n }}\n />\n )}\n </div>\n );\n};\n\nexport default RuleTypeRenderer;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport {List as List} from '@material-ui/core';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport {CrosswalkBase, getCrosswalkColor, getCrosswalkId, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport {useCrosswalkHighlight} from '../../../../contexts';\nimport mdmModule from '@reltio/mdm-module';\nimport ColoredBlock from '../../ColoredBlock/ColoredBlock';\nimport {useStyles} from './styles';\n\nconst WinnerSource = ({crosswalk}: {crosswalk: CrosswalkBase}) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const {isDimmed, highlightCrosswalk, removeHighlight} = useCrosswalkHighlight(crosswalk);\n\n return (\n <ColoredBlock\n className={styles.winnerSourceItem}\n color={isDimmed ? 'rgba(0, 0, 0, 0.12)' : getCrosswalkColor(getCrosswalkId(crosswalk))}\n opacity={isDimmed ? 0.38 : 1}\n onMouseEnter={() => highlightCrosswalk()}\n onMouseLeave={() => removeHighlight()}\n >\n <SourceIcon className={styles.sourceIcon} sourceType={crosswalk.type} />\n <ListItemText\n primary={getSourceSystemLabel(metadata, crosswalk.type)}\n primaryTypographyProps={{variant: 'body2'}}\n classes={{primary: styles.winnerSourceItemLabel}}\n />\n </ColoredBlock>\n );\n};\n\ntype Props = {\n value: {\n crosswalks: CrosswalkBase[];\n };\n};\n\nconst WinnerSourcesRenderer = ({value: {crosswalks}}: Props) => {\n const styles = useStyles();\n return (\n <List component=\"div\">\n {crosswalks.map((crosswalk) => (\n <ListItem key={crosswalk.uri} className={styles.winnerSourceItemWrapper}>\n <WinnerSource crosswalk={crosswalk} />\n </ListItem>\n ))}\n </List>\n );\n};\n\nexport default WinnerSourcesRenderer;\n","import i18n from 'ui-i18n';\nimport {\n assoc,\n chain,\n curry,\n descend,\n filter,\n find,\n flatten,\n map,\n pickBy,\n pipe,\n prop,\n propEq,\n propOr,\n reduce,\n sortWith,\n uniq,\n uniqBy,\n values\n} from 'ramda';\n\nimport HeadCellRenderer from './cell-renderers/HeadCellRenderer';\nimport AttributesHeadCellRenderer from './cell-renderers/AttributesHeadCellRenderer';\nimport DefaultCellValueRenderer from './cell-renderers/DefaultCellValueRenderer';\nimport AttributeValuesRenderer from './cell-renderers/AttributeValuesRenderer';\nimport OvValuesRenderer from './cell-renderers/OvValuesRenderer';\nimport CountRenderer from './cell-renderers/CountRenderer';\nimport RuleTypeRenderer from './cell-renderers/RuleTypeRenderer';\nimport WinnerSourcesRenderer from './cell-renderers/WinnerSourcesRenderer';\nimport {\n areOneHierarchyUris,\n AttributeType,\n AttributeValue,\n DataTypes,\n findValueInAttributesByUriSuffix,\n getBaseUri,\n getCrosswalksTypes,\n getDefaultSurvivorshipStrategy,\n getLastUriPart,\n getReferencedAttrTypeUrisFromAttrType,\n getSurvivorshipStrategy,\n isComplexAttribute,\n isOv,\n isReference,\n isTempUri,\n Metadata,\n RecordAttributesType,\n SurvivorStrategy\n} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../../attributes/inline';\nimport {CrosswalksByOwnerTypeMap} from '../types';\n\nexport const COLUMNS_DATA = [\n {\n id: 'ovValues',\n get label() {\n return i18n.text('Attributes & OV');\n },\n hideable: false,\n initialWidth: 360,\n minWidth: 250\n },\n {\n id: 'winnerSources',\n get label() {\n return i18n.text('Winner source systems');\n },\n initialWidth: 220\n },\n {\n id: 'ruleType',\n get label() {\n return i18n.text('Rule type');\n },\n initialWidth: 200\n },\n {\n id: 'count',\n get label() {\n return i18n.text('Count');\n },\n initialWidth: 80,\n minWidth: 80\n },\n {\n id: 'values',\n get label() {\n return i18n.text('Attribute values');\n },\n hideable: false\n }\n];\n\nconst isOvValue = (value: AttributeValue) => isOv(value) && !isTempUri(value.uri);\n\nexport const DEFAULT_VISIBLE_COLUMNS = ['ovValues', 'ruleType', 'values'];\n\nconst getCellValueRenderer = (columnId: string) => {\n switch (columnId) {\n case 'ovValues':\n return OvValuesRenderer;\n case 'values':\n return AttributeValuesRenderer;\n case 'count':\n return CountRenderer;\n case 'ruleType':\n return RuleTypeRenderer;\n case 'winnerSources':\n return WinnerSourcesRenderer;\n default:\n return DefaultCellValueRenderer;\n }\n};\n\nexport const countAttributeValues = (\n type: string,\n values: AttributeValue[] = [],\n crosswalksMap: CrosswalksMap\n): number => {\n switch (type) {\n case DataTypes.TYPE_REFERENCE:\n case DataTypes.TYPE_NESTED:\n case DataTypes.TYPE_IMAGE:\n return values.length;\n default:\n return values.reduce((acc, value) => acc + crosswalksMap[value.uri].length, 0);\n }\n};\n\nconst isSourceSystemRule = (ruleType: SurvivorStrategy) =>\n ruleType?.uri === 'configuration/survivorshipStrategies/SRC_SYS';\nconst isOtherAttributeWinnerRule = (ruleType: SurvivorStrategy) =>\n ruleType?.uri === 'configuration/survivorshipStrategies/OtherAttributeWinnerCrosswalk';\nconst isMinMaxValueRule = (ruleType: SurvivorStrategy) =>\n ruleType?.uri === 'configuration/survivorshipStrategies/MinValue' ||\n ruleType?.uri === 'configuration/survivorshipStrategies/MaxValue';\n\nconst getSourcesUriOrderFromMetadata = pipe(\n getCrosswalksTypes,\n sortWith([descend(propOr(-1, 'priority'))]),\n map(prop('uri'))\n);\n\nconst fixReferencedAttributeUri = curry((parentType: AttributeType, attrTypeUri: string) => {\n if (isReference(parentType) && attrTypeUri) {\n const referencedAttrUri = pipe(\n getReferencedAttrTypeUrisFromAttrType,\n find((uri) => uri.slice(getBaseUri(uri).length) === attrTypeUri.slice(parentType.uri.length))\n )(parentType);\n return referencedAttrUri || attrTypeUri;\n } else {\n return attrTypeUri;\n }\n});\n\nexport const getRuleTypeValues = (\n metadata: Metadata,\n attributeType: AttributeType,\n parentTypeUri: string,\n activeSurvivorshipGroupUri?: string\n) => {\n const parentType = [...metadata.entityTypes, ...(metadata.relationTypes || [])].find(propEq('uri', parentTypeUri));\n const survivorshipGroups = parentType?.survivorshipGroups ?? [];\n const currentSurvivorshipGroup =\n (activeSurvivorshipGroupUri && survivorshipGroups.find(propEq('uri', activeSurvivorshipGroupUri))) ||\n survivorshipGroups.find(propEq('default', true));\n const mapping = currentSurvivorshipGroup?.mapping?.find(propEq('attribute', attributeType.uri));\n const ruleType =\n getSurvivorshipStrategy(metadata, mapping?.survivorshipStrategy) || getDefaultSurvivorshipStrategy(metadata);\n const sourcesUriOrder = isSourceSystemRule(ruleType)\n ? uniq([\n ...(mapping?.sourcesUriOrder || []),\n ...(currentSurvivorshipGroup?.sourcesUriOrder || []),\n ...getSourcesUriOrderFromMetadata(metadata)\n ])\n : undefined;\n const fixUri = fixReferencedAttributeUri(attributeType);\n const primaryAttributeUri = isOtherAttributeWinnerRule(ruleType) ? fixUri(mapping?.primaryAttributeUri) : undefined;\n const comparisonAttributeUri =\n isComplexAttribute(attributeType) && isMinMaxValueRule(ruleType)\n ? fixUri(mapping?.comparisonAttributeUri)\n : undefined;\n return {\n ruleType,\n sourcesUriOrder,\n primaryAttributeUri,\n comparisonAttributeUri\n };\n};\n\nexport const getWinnerCrosswalks = (attributeValues: AttributeValue[] = [], crosswalksMap: CrosswalksMap) => {\n return pipe(\n filter(isOvValue),\n chain((value: AttributeValue) =>\n pipe(\n pickBy((_, attrUri) => {\n const isInHierarchy = areOneHierarchyUris(attrUri, value.uri);\n const subAttrUriSuffix = isInHierarchy ? attrUri.slice(value.uri.length + 1) : '';\n const subAttrValue =\n subAttrUriSuffix && findValueInAttributesByUriSuffix(value.value, subAttrUriSuffix);\n return isInHierarchy && (!subAttrValue || isOvValue(subAttrValue));\n }),\n values,\n flatten\n )(crosswalksMap)\n ),\n uniqBy(prop('uri'))\n )(attributeValues);\n};\n\nexport const getBasicTableColumnsData = map(({id, label, initialWidth, minWidth}) => ({\n id,\n label,\n initialWidth,\n minWidth,\n autoResize: !initialWidth,\n resizable: true,\n sortable: false,\n headCellRenderer: id === 'ovValues' ? AttributesHeadCellRenderer : HeadCellRenderer,\n rowCellValueRenderer: getCellValueRenderer(id)\n}));\n\nconst getRowValueForColumn = (\n columnId: string,\n metadata: Metadata,\n parentTypeUri: string,\n attributeType: AttributeType,\n crosswalksMap: CrosswalksMap,\n attributeValues: AttributeValue[],\n activeSurvivorshipGroupUri?: string\n) => {\n switch (columnId) {\n case 'ovValues':\n return {\n attributeType,\n values: attributeValues?.filter(isOvValue)\n };\n case 'values':\n return {\n attributeType,\n attributeValues,\n crosswalksMap\n };\n case 'count':\n return countAttributeValues(attributeType.type, attributeValues, crosswalksMap);\n case 'ruleType':\n return getRuleTypeValues(metadata, attributeType, parentTypeUri, activeSurvivorshipGroupUri);\n case 'winnerSources':\n return {crosswalks: getWinnerCrosswalks(attributeValues, crosswalksMap)};\n default:\n return null;\n }\n};\n\nexport const getBasicTableRowsData = (\n metadata: Metadata,\n parentTypeUri: string,\n attrTypes: AttributeType[] = [],\n columns: string[],\n crosswalksMap: CrosswalksByOwnerTypeMap,\n attributes: RecordAttributesType,\n activeSurvivorshipGroupUri?: string\n) => {\n return attrTypes.map((attributeType: AttributeType) => {\n const attrName = getLastUriPart(attributeType.uri);\n const attrValues = attributes[attrName] as AttributeValue[];\n const crosswalksMapForAttribute = isReference(attributeType) ? crosswalksMap.relation : crosswalksMap.entity;\n return pipe(\n reduce(\n (acc, columnId) =>\n assoc(\n columnId,\n getRowValueForColumn(\n columnId,\n metadata,\n parentTypeUri,\n attributeType,\n crosswalksMapForAttribute,\n attrValues,\n activeSurvivorshipGroupUri\n ),\n acc\n ),\n {}\n ),\n assoc('rawValue', attrValues)\n )(columns);\n });\n};\n","import React from 'react';\nimport classnames from 'classnames';\n// eslint-disable-next-line import/named\nimport {ColumnData} from '../../../BasicTableView';\nimport {useStyles} from './styles';\n\ntype Props = {\n cell: {\n values: unknown[];\n };\n columnData: ColumnData;\n CellValueRenderer: React.ElementType;\n columnIndex: number;\n};\n\nconst RowCellRenderer = ({cell, CellValueRenderer, columnIndex, columnData, ...otherProps}: Props) => {\n const styles = useStyles();\n const isFirstColumn = columnIndex === 0;\n return (\n <div\n className={classnames(styles.rowCell, isFirstColumn && styles.coloredCell)}\n data-reltio-id={`column-name-${columnData.id}`}\n >\n {cell.values.map((value, index) => (\n <CellValueRenderer key={index} value={value} {...otherProps} />\n ))}\n </div>\n );\n};\n\nexport default RowCellRenderer;\n","import React, {useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {Button as Button} from '@material-ui/core';\nimport {Dialog as Dialog} from '@material-ui/core';\nimport {DialogActions as DialogActions} from '@material-ui/core';\nimport {DialogContent as DialogContent} from '@material-ui/core';\nimport {DialogContentText as DialogContentText} from '@material-ui/core';\nimport {Radio as Radio} from '@material-ui/core';\nimport {RadioGroup as RadioGroup} from '@material-ui/core';\nimport {FormControlLabel as FormControlLabel} from '@material-ui/core';\nimport {FormControl as FormControl} from '@material-ui/core';\nimport {FormLabel as FormLabel} from '@material-ui/core';\nimport {getValue} from '../../../../core';\nimport {pipe} from 'ramda';\n\ntype Props = {\n open: boolean;\n onClose: () => void;\n onConfirmEditWithIgnore: () => void;\n onConfirmEditWithoutIgnore: () => void;\n};\n\nconst ConfirmEditIgnoredDialog = ({open, onClose, onConfirmEditWithoutIgnore, onConfirmEditWithIgnore}: Props) => {\n const [option, setOption] = useState<'with' | 'without'>('without');\n\n return (\n <Dialog open={open} onEnter={() => setOption('without')}>\n <DialogContent>\n <DialogContentText>\n {i18n.text('You are attempting to change a value that is presently ignored.')}\n </DialogContentText>\n <FormControl component=\"fieldset\">\n <FormLabel component=\"legend\">{i18n.text('Please choose an option:')}</FormLabel>\n <RadioGroup value={option} onChange={pipe(getValue, setOption)}>\n <FormControlLabel\n value=\"without\"\n control={<Radio />}\n label={i18n.text('Save without Ignore')}\n />\n <FormControlLabel\n value=\"with\"\n control={<Radio />}\n label={i18n.text('Save and apply Ignore to new value')}\n />\n </RadioGroup>\n </FormControl>\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose} color=\"primary\">\n {i18n.text('Cancel')}\n </Button>\n <Button\n onClick={() => {\n option === 'with' ? onConfirmEditWithIgnore() : onConfirmEditWithoutIgnore();\n onClose();\n }}\n color=\"primary\"\n >\n {i18n.text('Ok')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default ConfirmEditIgnoredDialog;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n tableContainer: {\n height: '100%',\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column'\n },\n tableHeader: {\n display: 'flex',\n flexDirection: 'row'\n },\n tableTitle: {\n marginRight: 'auto'\n },\n tableContent: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'hidden',\n position: 'relative'\n }\n});\n","import React, {memo, useCallback, useEffect, useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n AttributeType,\n Entity,\n findAttributeTypeByUri,\n isReadableAttribute,\n makeAttrTypeUri,\n Relation\n} from '@reltio/mdm-sdk';\nimport {\n AddInlineAttributeEvent,\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent,\n IgnoreInlineAttributeEvent,\n PinInlineAttributeEvent\n} from '../../attributes/inline';\nimport {BasicTable, ColumnsSettings, RowCellAutoSizer, useDynamicRowCellHeight} from '../../BasicTableView';\nimport BasicViewHeader from '../../BasicViewHeader/BasicViewHeader';\nimport {COLUMNS_DATA, DEFAULT_VISIBLE_COLUMNS, getBasicTableColumnsData, getBasicTableRowsData} from './helpers';\nimport {always, either, filter, isNil, keys, map, pipe, without, identity, both} from 'ramda';\nimport RowCellRenderer from './cell-renderers/RowCellRenderer';\nimport LinearLoadIndicator from '../../LinearLoadIndicator/LinearLoadIndicator';\nimport ConfirmDeleteDialog from '../../ConfirmDeleteDialog/ConfirmDeleteDialog';\nimport {CrosswalksByOwnerTypeMap} from '../types';\nimport ConfirmEditIgnoredDialog from './ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog';\nimport {noop} from '../../../core';\n\nimport {useStyles} from './styles';\n\nconst DEFAULT_ROW_HEIGHT = 68;\n\ntype Props = {\n entity?: Entity | Relation;\n isLoading?: boolean;\n crosswalksMap: CrosswalksByOwnerTypeMap;\n visibleColumns?: string[];\n onChangeVisibleColumns?: (visibleColumns: string[]) => void;\n readOnly?: boolean;\n onDelete?: (event: DeleteInlineAttributeEvent) => void;\n onPin?: (event: PinInlineAttributeEvent) => void;\n onIgnore?: (event: IgnoreInlineAttributeEvent) => void;\n onEdit?: (event: EditInlineAttributeEvent) => void;\n onAdd?: (event: AddInlineAttributeEvent) => void;\n selectedAttributeTypes?: AttributeType[];\n onSelectAttributeTypes?: (selected: AttributeType[]) => void;\n additionalHeaderItems?: React.ReactNode;\n className?: string;\n activeSurvivorshipGroupUri?: string;\n};\n\nconst AttributesTable = ({\n entity,\n isLoading,\n crosswalksMap,\n visibleColumns = DEFAULT_VISIBLE_COLUMNS,\n onChangeVisibleColumns,\n readOnly,\n onDelete = noop,\n onPin = noop,\n onIgnore = noop,\n onEdit = noop,\n onAdd = noop,\n selectedAttributeTypes,\n onSelectAttributeTypes = noop,\n additionalHeaderItems,\n className,\n activeSurvivorshipGroupUri\n}: Props) => {\n const styles = useStyles();\n\n const visibleColumnsData = useMemo(() => {\n return pipe(\n filter(({id}) => visibleColumns.includes(id)),\n getBasicTableColumnsData\n )(COLUMNS_DATA);\n }, [visibleColumns]);\n\n const {type: parentTypeUri, uri: parentUri, attributes = {}} = entity || {};\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n useEffect(() => {\n if (entity && isNil(selectedAttributeTypes)) {\n const initialAttrTypes = pipe(\n keys,\n without(['paging']),\n map(makeAttrTypeUri(parentTypeUri)),\n map((attrTypeUri: string) => findAttributeTypeByUri(metadata, attrTypeUri, parentTypeUri)),\n filter(both(identity, isReadableAttribute))\n )(attributes);\n onSelectAttributeTypes(initialAttrTypes);\n }\n }, [entity, selectedAttributeTypes]);\n\n const rowsData = useMemo(() => {\n return parentTypeUri\n ? getBasicTableRowsData(\n metadata,\n parentTypeUri,\n selectedAttributeTypes,\n visibleColumns,\n crosswalksMap,\n attributes,\n activeSurvivorshipGroupUri\n )\n : [];\n }, [\n metadata,\n parentTypeUri,\n selectedAttributeTypes,\n visibleColumns,\n attributes,\n crosswalksMap,\n activeSurvivorshipGroupUri\n ]);\n\n const {getDynamicRowCellHeight, changeRowCellHeight} = useDynamicRowCellHeight();\n\n const renderRowCell = useCallback(\n (props) => (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...props}>\n <RowCellRenderer {...props} />\n </RowCellAutoSizer>\n ),\n [changeRowCellHeight]\n );\n\n const getRowCellHeight = useCallback(either(getDynamicRowCellHeight, always(DEFAULT_ROW_HEIGHT)), [\n getDynamicRowCellHeight\n ]);\n\n const [pendingDeletion, setPendingDeletion] = useState<DeleteInlineAttributeEvent>(null);\n const [pendingIgnoredEditing, setPendingIgnoredEditing] = useState<EditInlineAttributeEvent>(null);\n\n const handleEdit = useCallback(\n (event: EditInlineAttributeEvent) => {\n event.attributeValue.ignored ? setPendingIgnoredEditing(event) : onEdit(event);\n },\n [onEdit, setPendingIgnoredEditing]\n );\n\n const tableContext = useMemo(\n () => ({\n onDelete: setPendingDeletion,\n onPin,\n onIgnore,\n onEdit: handleEdit,\n onAdd,\n parentUri,\n parentTypeUri,\n selectedAttributeTypes,\n onSelectAttributeTypes,\n readOnly\n }),\n [\n setPendingDeletion,\n onPin,\n onIgnore,\n handleEdit,\n onAdd,\n parentUri,\n parentTypeUri,\n selectedAttributeTypes,\n onSelectAttributeTypes,\n readOnly\n ]\n );\n\n return (\n <div className={classnames(styles.tableContainer, className)}>\n <BasicViewHeader\n classes={{root: styles.tableHeader, title: styles.tableTitle}}\n title={i18n.text('Sources')}\n >\n {additionalHeaderItems}\n <ColumnsSettings\n columnsData={COLUMNS_DATA}\n selectedColumns={visibleColumns}\n onChangeColumns={onChangeVisibleColumns}\n />\n </BasicViewHeader>\n <div className={styles.tableContent}>\n {isLoading && <LinearLoadIndicator />}\n <BasicTable\n fixFirstColumn\n headRowHeight={48}\n defaultColumnWidth={250}\n defaultColumnMinWidth={200}\n columnsData={visibleColumnsData}\n rowsData={rowsData}\n renderRowCell={renderRowCell}\n getRowCellHeight={getRowCellHeight}\n context={tableContext}\n />\n </div>\n <ConfirmDeleteDialog\n open={!!pendingDeletion}\n onClose={() => setPendingDeletion(null)}\n onConfirm={() => onDelete(pendingDeletion)}\n />\n <ConfirmEditIgnoredDialog\n open={!!pendingIgnoredEditing}\n onClose={() => setPendingIgnoredEditing(null)}\n onConfirmEditWithIgnore={() => onEdit(pendingIgnoredEditing)}\n onConfirmEditWithoutIgnore={() => {\n onIgnore({attributeValue: pendingIgnoredEditing.attributeValue});\n onEdit(pendingIgnoredEditing);\n }}\n />\n </div>\n );\n};\n\nexport default memo(AttributesTable);\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color?: string;\n opacity?: number;\n variant: 'standart' | 'disabled';\n};\n\nexport const useColoredItemStyles = makeStyles({\n item: ({color, opacity, variant}: StylesProps) => ({\n ...(variant === 'standart' && {backgroundColor: color, paddingRight: '29px'}),\n ...(variant === 'disabled' && {border: `${color} solid 2px`}),\n opacity,\n filter: opacity && opacity !== 1 ? 'saturate(20%)' : null,\n transition: 'opacity 0.3s',\n boxSizing: 'border-box'\n }),\n endDatedCrosswalkIcon: {\n margin: '0 4px',\n width: '20px',\n height: '20px',\n color: '#ff1744'\n }\n});\n","import React, {ForwardedRef, forwardRef} from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport EventBusyIcon from '@material-ui/icons/EventBusy';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport {useColoredItemStyles} from './styles';\n\ntype Props = React.HTMLAttributes<HTMLDivElement> & {\n color: string;\n opacity?: number;\n variant?: 'standart' | 'disabled';\n};\n\nconst ColoredBlock = forwardRef(\n (\n {color, opacity, variant = 'standart', children, className, ...props}: Props,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const styles = useColoredItemStyles({color, opacity, variant});\n return (\n <div ref={ref} data-reltio-id=\"cw-colored-block\" className={classnames(styles.item, className)} {...props}>\n {children}\n {variant === 'disabled' && (\n <Tooltip title={i18n.text('End-dated crosswalk')}>\n <EventBusyIcon className={styles.endDatedCrosswalkIcon} />\n </Tooltip>\n )}\n </div>\n );\n }\n);\n\nexport default ColoredBlock;\n","import React from 'react';\n\nconst SvgCopy: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg\n width={24}\n height={24}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}\n >\n <defs>\n <path\n d=\"M20.222 6C21.21 6 22 6.8 22 7.778v12.444C22 21.2 21.209 22 20.222 22H7.778C6.79 22 6 21.2 6 20.222V7.778C6 6.8 6.791 6 7.778 6h12.444zM20 8H8v12h12V8zM4 18H2V4c0-1.1.9-2 2-2h14v2H4v14z\"\n id=\"Copy_svg__a\"\n />\n </defs>\n <g stroke=\"none\" strokeWidth={1} fill=\"none\" fillRule=\"evenodd\">\n <mask id=\"Copy_svg__b\" fill=\"#fff\">\n <use xlinkHref=\"#Copy_svg__a\" />\n </mask>\n <path fillOpacity={0.54} fill=\"#000\" mask=\"url(#Copy_svg__b)\" d=\"M0 0h24v24H0z\" />\n </g>\n </svg>\n );\n};\n\nexport default SvgCopy;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n root: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n overflowWrap: 'anywhere'\n },\n text: {\n fontSize: 13\n },\n button: {\n flexShrink: 0,\n marginLeft: 8,\n padding: 0,\n textTransform: 'none'\n }\n}));\n","import React from 'react';\nimport SmallIconButton from '../../SmallIconButton/SmallIconButton';\nimport {Typography as Typography} from '@material-ui/core';\nimport CopyIcon from '../../../icons/Copy';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: string;\n};\n\nconst CopyableValueField = ({value}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.root}>\n <Typography className={styles.text} variant={'body2'}>\n {value}\n </Typography>\n <SmallIconButton\n size=\"XXS\"\n icon={CopyIcon}\n color=\"primary\"\n className={styles.button}\n onClick={() => navigator.clipboard.writeText(value)}\n />\n </div>\n );\n};\n\nexport default CopyableValueField;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n timestampEditorInput: {\n paddingTop: 15,\n paddingBottom: 15,\n fontSize: 13\n },\n timestampEditor: {\n height: 38\n }\n}));\n","import React, {useState} from 'react';\nimport {always, unless} from 'ramda';\nimport classnames from 'classnames';\nimport TimestampEditor from '../../editors/TimestampEditor/TimestampEditor';\nimport {useStyles} from './styles';\n\ntype Props = {\n value?: number;\n classes?: {\n root?: string;\n };\n disabled?: boolean;\n onChange: (value: number) => void;\n};\n\nconst CrosswalkDateEditor = ({value, classes = {}, disabled = false, onChange}: Props) => {\n const styles = useStyles();\n\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const handleChange = (date: Date) => onChange(date?.valueOf());\n\n return (\n <TimestampEditor\n variant=\"filled\"\n value={value || null}\n disabled={disabled}\n onChange={unless(always(isOpen), handleChange)}\n onAccept={handleChange}\n onOpen={() => setIsOpen(true)}\n onClose={() => setIsOpen(false)}\n InputProps={{\n disableUnderline: true,\n classes: {input: styles.timestampEditorInput, root: classnames(styles.timestampEditor, classes.root)}\n }}\n />\n );\n};\n\nexport default CrosswalkDateEditor;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n text: {\n fontSize: 13\n },\n attributeWrapper: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: 5,\n paddingBottom: 5,\n marginLeft: 12\n },\n attributeTitle: {\n fontSize: 13,\n width: 135,\n color: theme.palette.text.secondary\n },\n attributeValue: {\n paddingLeft: 10,\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1\n },\n input: {\n paddingTop: 14,\n paddingBottom: 14,\n fontSize: 13\n },\n editor: {\n flexGrow: 1\n },\n moreButton: {\n marginLeft: 24\n },\n sourceIcon: {\n height: '16px',\n width: '16px',\n marginRight: '9px',\n fontSize: '14px'\n }\n}));\n","import React, {useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\n\nimport ConfirmDeleteDialog from '../../ConfirmDeleteDialog/ConfirmDeleteDialog';\nimport MoreAttributesButton from '../../attributes/editMode/MoreAttributesButton';\nimport SimpleDropDownSelector from '../../SimpleDropDownSelector/SimpleDropDownSelector';\nimport {SmallIconButtonWithTooltip} from '../../SmallIconButton';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport {TextEditor} from '../../editors';\nimport {Typography as Typography} from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport {\n AttributeType,\n CrosswalkBase,\n CrosswalksAttrTypes,\n formatDateTime,\n getCrosswalksTypes,\n getSourceSystemLabel,\n parseTimestamp\n} from '@reltio/mdm-sdk';\nimport {ascend, filter, has, isNil, map, pipe, prop, propEq, without} from 'ramda';\nimport i18n from 'ui-i18n';\nimport mdmModule from '@reltio/mdm-module';\nimport CopyableValueField from '../CopyableValueField/CopyableValueField';\nimport CrosswalkDateEditor from '../CrosswalkDateEditor/CrosswalkDateEditor';\nimport moment from 'moment';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: CrosswalkBase | Omit<CrosswalkBase, 'uri'>;\n canEditAttribute?: boolean;\n onEditAttribute: (attributeName: string, value: any) => void;\n onDeleteAttribute: (attributeName: string) => void;\n};\n\nconst CrosswalkAttributes = ({crosswalk, canEditAttribute = true, onEditAttribute, onDeleteAttribute}: Props) => {\n const styles = useStyles();\n\n const isTempCrosswalk = !('uri' in crosswalk);\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const [addedAttributes, setAddedAttributes] = useState<string[]>([]);\n const [pendingDeletionAttrUri, setPendingDeletionAttrUri] = useState<string>(null);\n const addSelectedAttributes = (selectedAttributes: AttributeType[]) => {\n if (selectedAttributes.length > 0) {\n setAddedAttributes((addedAttributes) => addedAttributes.concat(map(prop('uri'), selectedAttributes)));\n }\n };\n const handleDeleteAttribute = (attributeName: string) => {\n setAddedAttributes((addedAttributes) => without([attributeName], addedAttributes));\n if (!isNil(crosswalk[attributeName])) {\n onDeleteAttribute(attributeName);\n }\n };\n\n const attributes = useMemo(\n () => [\n {\n label: CrosswalksAttrTypes.sourceSystems.label,\n uri: 'type'\n },\n {\n label: CrosswalksAttrTypes.value.label,\n uri: 'value'\n },\n {\n label: CrosswalksAttrTypes.sourceTable.label,\n uri: 'sourceTable',\n canBeAdded: isTempCrosswalk,\n canBeDeleted: isTempCrosswalk\n },\n {\n label: CrosswalksAttrTypes.createDate.label,\n uri: 'createDate'\n },\n {\n label: CrosswalksAttrTypes.updateDate.label,\n uri: 'updateDate'\n },\n {\n label: CrosswalksAttrTypes.deleteDate.label,\n uri: 'deleteDate',\n canBeAdded: true,\n canBeDeleted: true\n },\n {\n label: CrosswalksAttrTypes.reltioLoadDate.label,\n uri: 'reltioLoadDate'\n },\n {\n label: CrosswalksAttrTypes.publishDate.label,\n uri: 'sourcePublishDate'\n }\n ],\n []\n );\n\n const extraAttributes = pipe(\n filter(propEq('canBeAdded', true)),\n filter((item) => !has(item.uri, crosswalk)),\n filter((item) => !addedAttributes.includes(item.uri))\n )(attributes);\n\n const renderAttributeValue = (attributeName: string, attributeValue: string) => {\n switch (attributeName) {\n case 'type': {\n const sourceSystemLabel = getSourceSystemLabel(metadata, attributeValue);\n return isTempCrosswalk ? (\n <SimpleDropDownSelector\n label={''}\n placeholder={attributeValue}\n className={styles.editor}\n value={{value: attributeValue, label: sourceSystemLabel}}\n options={getCrosswalksTypes(metadata)\n .sort(ascend(prop('label')))\n .map(({uri, label}) => ({\n value: uri,\n label: label\n }))}\n onChange={({value}) => onEditAttribute(attributeName, value)}\n TextFieldProps={{\n InputProps: {\n disableUnderline: true\n }\n }}\n />\n ) : (\n <>\n <SourceIcon className={styles.sourceIcon} sourceType={attributeValue} />\n <Typography className={styles.text} variant={'body2'}>\n {sourceSystemLabel}\n </Typography>\n </>\n );\n }\n case 'sourceTable':\n return isTempCrosswalk ? (\n <TextEditor\n multiple={false}\n multiline={false}\n getValueLabel={undefined}\n classes={{root: styles.editor}}\n required\n variant=\"filled\"\n value={attributeValue}\n onInput={(e) => onEditAttribute(attributeName, e.target.value)}\n margin=\"dense\"\n InputProps={{\n disableUnderline: true,\n classes: {input: styles.input}\n }}\n />\n ) : (\n <Typography className={styles.text} variant={'body2'}>\n {attributeValue}\n </Typography>\n );\n case 'value':\n return isTempCrosswalk ? (\n <TextEditor\n multiple={false}\n multiline={false}\n getValueLabel={undefined}\n classes={{root: styles.editor}}\n required\n variant=\"filled\"\n value={attributeValue}\n onInput={(e) => onEditAttribute(attributeName, e.target.value)}\n margin=\"dense\"\n InputProps={{\n disableUnderline: true,\n classes: {input: styles.input}\n }}\n />\n ) : (\n <CopyableValueField value={attributeValue} />\n );\n case 'deleteDate':\n return (\n <CrosswalkDateEditor\n value={attributeValue && moment.utc(parseTimestamp(attributeValue)).valueOf()}\n onChange={(value) => onEditAttribute(attributeName, value?.toString())}\n classes={{root: styles.editor}}\n disabled={!canEditAttribute}\n />\n );\n case 'sourcePublishDate':\n case 'createDate':\n case 'updateDate':\n case 'reltioLoadDate':\n return (\n <Typography className={styles.text} variant={'body2'}>\n {formatDateTime(attributeValue)}\n </Typography>\n );\n default:\n return null;\n }\n };\n\n return (\n <>\n {extraAttributes.length > 0 && canEditAttribute && (\n <MoreAttributesButton\n label={i18n.text('Add attributes')}\n onApply={addSelectedAttributes}\n data={extraAttributes}\n />\n )}\n {attributes.map((attribute) =>\n attribute.uri in crosswalk || addedAttributes.includes(attribute.uri) ? (\n <div key={attribute.uri} className={styles.attributeWrapper}>\n <Typography variant={'body2'} className={styles.attributeTitle}>\n {`${attribute.label}:`}\n </Typography>\n <div className={styles.attributeValue}>\n {renderAttributeValue(attribute.uri, crosswalk[attribute.uri])}\n {attribute.canBeDeleted && (\n <SmallIconButtonWithTooltip\n icon={DeleteIcon}\n disabled={!canEditAttribute}\n onClick={() => setPendingDeletionAttrUri(attribute.uri)}\n size=\"XS\"\n tooltipTitle={i18n.text('Delete attribute')}\n showForDisabled={true}\n />\n )}\n </div>\n </div>\n ) : null\n )}\n <ConfirmDeleteDialog\n open={!!pendingDeletionAttrUri}\n onClose={() => setPendingDeletionAttrUri(null)}\n onConfirm={() => handleDeleteAttribute(pendingDeletionAttrUri)}\n />\n </>\n );\n};\n\nexport default CrosswalkAttributes;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n dragLayer: {\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n zIndex: 1300,\n pointerEvents: 'none'\n },\n crosswalkPreview: {\n height: '28px',\n maxWidth: '394px',\n display: 'flex',\n overflow: 'hidden',\n padding: '6px',\n alignItems: 'center',\n boxSizing: 'border-box'\n },\n sourceLabel: {\n fontSize: '13px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n },\n sourceIcon: {\n width: '16px',\n height: '16px',\n marginRight: '9px'\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport {CrosswalkBase, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport ColoredBlock from '../ColoredBlock/ColoredBlock';\nimport {useCrosswalkColor} from '../../../contexts/CrosswalksDisplayContext';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport {Typography as Typography} from '@material-ui/core';\nimport mdmModule from '@reltio/mdm-module';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: CrosswalkBase;\n};\n\nconst CrosswalkDragPreview = ({crosswalk}: Props) => {\n const styles = useStyles();\n const color = useCrosswalkColor(crosswalk);\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const sourceSystemLabel = getSourceSystemLabel(metadata, crosswalk.type);\n return (\n <ColoredBlock color={color} className={styles.crosswalkPreview}>\n <SourceIcon className={styles.sourceIcon} sourceType={crosswalk.type} />\n <Typography className={styles.sourceLabel} variant={'body2'}>\n {sourceSystemLabel}\n </Typography>\n </ColoredBlock>\n );\n};\n\nexport default CrosswalkDragPreview;\n","import React, {memo, useRef} from 'react';\nimport {useDragLayer} from 'react-dnd';\nimport CrosswalkDragPreview from './CrosswalkDragPreview';\nimport {CrosswalkBase} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst CrosswalkDragLayer = () => {\n const styles = useStyles();\n\n const {isDragging, clientOffset, item} = useDragLayer((monitor) => ({\n isDragging: monitor.isDragging(),\n clientOffset: monitor.getClientOffset(),\n item: monitor.getItem()\n }));\n const dragLayerRef = useRef<HTMLDivElement>();\n const dragLayerRect = dragLayerRef.current?.getBoundingClientRect() || {x: 0, y: 0};\n const dragItemX = clientOffset?.x - dragLayerRect?.x;\n const dragItemY = clientOffset?.y - dragLayerRect?.y;\n const dragItemTransform = `translate(${dragItemX}px, ${dragItemY}px`;\n\n return (\n isDragging && (\n <div ref={dragLayerRef} className={styles.dragLayer}>\n <div\n style={{\n display: 'flex',\n transform: dragItemTransform,\n WebkitTransform: dragItemTransform\n }}\n >\n {item.type === 'Crosswalk' && <CrosswalkDragPreview crosswalk={item.crosswalk as CrosswalkBase} />}\n </div>\n </div>\n )\n );\n};\n\nexport default memo(CrosswalkDragLayer);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n caption: {\n paddingLeft: 15,\n paddingTop: 16,\n paddingBottom: 8\n },\n controlButtons: {\n display: 'flex',\n justifyContent: 'flex-end',\n paddingBottom: 10,\n paddingTop: 20\n },\n cancelButton: {\n marginRight: 20\n }\n});\n","import React, {useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {Button as Button} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Crosswalk} from '@reltio/mdm-sdk';\nimport CrosswalkAttributes from '../CrosswalkAttributes/CrosswalkAttributes';\nimport {assoc, dissoc} from 'ramda';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n onAdd: (event: Omit<Crosswalk, 'uri'>) => void;\n onClose: () => void;\n};\n\nconst CrosswalkEditor = ({className, onAdd, onClose}: Props) => {\n const styles = useStyles();\n\n const [newCrosswalk, setNewCrosswalk] = useState<Omit<Crosswalk, 'uri'>>({type: '', value: ''});\n\n const handleAdd = () => {\n onAdd(newCrosswalk);\n onClose();\n };\n\n return (\n <div className={className}>\n <Typography variant={'body1'} className={styles.caption}>\n {i18n.text('Add crosswalk')}\n </Typography>\n <CrosswalkAttributes\n crosswalk={newCrosswalk}\n onDeleteAttribute={(attributeName: string) => {\n setNewCrosswalk(dissoc(attributeName));\n }}\n onEditAttribute={(attributeName: string, value: any) => {\n setNewCrosswalk(assoc(attributeName, value));\n }}\n />\n <div className={styles.controlButtons}>\n <Button className={styles.cancelButton} onClick={onClose}>\n {i18n.text('Cancel')}\n </Button>\n <Button color=\"primary\" onClick={handleAdd} disabled={!newCrosswalk.type || !newCrosswalk.value}>\n {i18n.text('Add')}\n </Button>\n </div>\n </div>\n );\n};\n\nexport default CrosswalkEditor;\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n isOpaque?: boolean;\n};\n\nexport const useStyles = makeStyles(() => ({\n root: ({isOpaque}: StylesProps) => ({\n display: 'flex',\n opacity: isOpaque ? 1 : 0.38,\n transition: 'opacity 0.3s'\n }),\n wrapper: ({isOpaque}: StylesProps) => ({\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n height: 28,\n filter: isOpaque ? null : 'saturate(0%)',\n backgroundImage:\n 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDcvMjYvMTMEw7WpAAAAeElEQVQ4ja3VuwrAIBBE0aup0uX/v9ImCCGSdIL4WF136+EwxcC6+3k/hAsxSREArvPAW2LAGFzFhqAG64JarAnuYBW4ixWgBZZBKwzAW2Ig7HAVCzHJ4AoGQsNVbAhqsC6oxZrgDlaBu1gBWmAZtMIA3MwLmMUAfmyqQ9/LD+oDAAAAAElFTkSuQmCC)'\n }),\n focusedIcon: {\n width: 28,\n height: 28,\n backgroundColor: 'rgba(0, 0, 0, 0.12)',\n borderRadius: 0,\n borderRight: '1px solid #fff'\n },\n sourceIcon: {\n height: '16px',\n width: '16px',\n marginLeft: '16px',\n marginRight: '9px',\n fontSize: '14px'\n }\n}));\n","import React, {memo} from 'react';\nimport {useSelector} from 'react-redux';\n\nimport {Typography as Typography} from '@material-ui/core';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport SmallIconButton from '../../SmallIconButton/SmallIconButton';\nimport {useCrosswalkHighlight} from '../../../contexts/CrosswalksDisplayContext';\nimport mdmModule from '@reltio/mdm-module';\nimport {getSourceSystemLabel} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalkType: string;\n focusable?: boolean;\n};\n\nconst DummyCrosswalkRow = ({crosswalkType, focusable = true}: Props) => {\n const {isDimmed} = useCrosswalkHighlight();\n const styles = useStyles({isOpaque: !isDimmed});\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const sourceSystemLabel = getSourceSystemLabel(metadata, crosswalkType);\n return (\n <div className={styles.root}>\n <SmallIconButton size=\"XXS\" className={styles.focusedIcon} icon={focusable && VisibilityIcon} disabled />\n <div className={styles.wrapper}>\n <SourceIcon className={styles.sourceIcon} sourceType={crosswalkType} />\n <Typography variant={'body2'}>{sourceSystemLabel}</Typography>\n </div>\n </div>\n );\n};\n\nexport default memo(DummyCrosswalkRow);\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color?: string;\n isOpaque?: boolean;\n isFocused?: boolean;\n};\n\nexport const useStyles = makeStyles({\n root: ({isOpaque}: StylesProps) => ({\n display: 'flex',\n opacity: isOpaque ? 1 : 0.19,\n transition: 'opacity 0.3s'\n }),\n header: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n height: '28px'\n },\n focusedIcon: ({isFocused}: StylesProps) => ({\n width: '26px',\n '&:not([disabled])': {\n border: '1px solid rgba(0, 0, 0, 0.12)'\n },\n height: '28px',\n color: isFocused ? '#000' : 'rgba(0, 0, 0, 0.54)',\n borderRadius: 0,\n margin: '0px 1px'\n }),\n crosswalkWrapper: {\n width: '100%',\n overflow: 'hidden'\n },\n sourceIcon: {\n height: '16px',\n width: '16px',\n marginRight: '9px',\n fontSize: '14px'\n },\n attributesWrapper: ({color}: StylesProps) => ({\n border: '1px solid',\n borderColor: color,\n position: 'relative'\n }),\n deleteCrosswalkButton: {\n position: 'absolute',\n top: 5,\n right: 5\n },\n labelValue: {\n marginLeft: 5\n },\n dependentIcon: {\n width: '16px',\n height: '16px',\n fillOpacity: 0.38\n }\n});\n","import React, {memo, useEffect, useRef, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {Typography as Typography} from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport {\n Crosswalk,\n eqCrosswalks,\n getLastUriPart,\n getSourceSystemLabel,\n isCrosswalkDisabled,\n RelationCrosswalk\n} from '@reltio/mdm-sdk';\nimport ArrowExpandButton from '../../ArrowExpandButton/ArrowExpandButton';\nimport ExpandedValueTooltip from '../../ExpandedValueTooltip/ExpandedValueTooltip';\nimport ColoredBlock from '../ColoredBlock/ColoredBlock';\nimport ConfirmDeleteDialog from '../../ConfirmDeleteDialog/ConfirmDeleteDialog';\nimport {SmallIconButtonWithTooltip} from '../../SmallIconButton';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport Spacer from '../../Spacer/Spacer';\nimport {\n useCrosswalkColor,\n useCrosswalkFocus,\n useCrosswalkHighlight,\n useHighlightedCrosswalks\n} from '../../../contexts/CrosswalksDisplayContext';\nimport mdmModule from '@reltio/mdm-module';\nimport DependentIcon from '../../../icons/NestedAttribute';\nimport {useDrag} from 'react-dnd';\nimport {getEmptyImage} from 'react-dnd-html5-backend';\nimport CrosswalkAttributes from '../CrosswalkAttributes/CrosswalkAttributes';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: Crosswalk | RelationCrosswalk;\n isDependent?: boolean;\n focusable?: boolean;\n isEmpty?: boolean;\n isColored?: boolean;\n disableEdit: boolean;\n disableDelete: boolean;\n onDelete: (crosswalkId: string) => void;\n onEdit: (event: {crosswalkId: string; attributeName: string; value?: string}) => void;\n};\n\nconst CrosswalkRow = ({\n crosswalk,\n isDependent,\n isEmpty = false,\n isColored = true,\n focusable = true,\n disableEdit,\n disableDelete,\n onDelete,\n onEdit\n}: Props) => {\n const ref = useRef(null);\n const crosswalkColor = useCrosswalkColor(crosswalk);\n const {toggleCrosswalkFocus, isFocused} = useCrosswalkFocus(crosswalk);\n const {isDimmed, highlightCrosswalk, removeHighlight} = useCrosswalkHighlight(crosswalk);\n const coloredCrosswalk = isDimmed ? 'rgba(0, 0, 0, 0.12)' : crosswalkColor;\n const color = isEmpty ? '#FFF' : isColored ? coloredCrosswalk : '#CACCD1';\n const [scrollToCrosswalk] = useHighlightedCrosswalks();\n const styles = useStyles({color, isOpaque: !isDimmed, isFocused});\n const [expanded, setExpanded] = useState(false);\n const [isDeleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const sourceSystemLabel = getSourceSystemLabel(metadata, crosswalk.type);\n const crosswalkId = getLastUriPart(crosswalk.uri);\n const crosswalkDisabled = isCrosswalkDisabled(crosswalk);\n\n const [, drag, preview] = useDrag({\n item: {\n type: 'Crosswalk',\n crosswalk\n },\n canDrag: !crosswalkDisabled\n });\n\n const canDelete = !crosswalkDisabled && crosswalk.ownerType !== 'relation';\n\n useEffect(() => {\n preview(getEmptyImage(), {captureDraggingState: true});\n }, []);\n\n useEffect(() => {\n if (\n focusable &&\n scrollToCrosswalk &&\n eqCrosswalks(scrollToCrosswalk, crosswalk) &&\n scrollToCrosswalk !== crosswalk\n ) {\n ref?.current?.scrollIntoView({behavior: 'smooth'});\n }\n }, [scrollToCrosswalk]);\n\n const handleDeleteCrosswalk = () => {\n if (isFocused) toggleCrosswalkFocus();\n onDelete(crosswalkId);\n };\n\n return (\n <div className={styles.root} ref={ref}>\n <SmallIconButtonWithTooltip\n size=\"XXS\"\n className={styles.focusedIcon}\n icon={focusable && VisibilityIcon}\n onClick={() => toggleCrosswalkFocus()}\n disabled={!focusable}\n tooltipTitle={focusable && i18n.text('Focus')}\n />\n <div className={styles.crosswalkWrapper}>\n <ColoredBlock\n ref={drag}\n className={styles.header}\n color={color}\n variant={crosswalkDisabled ? 'disabled' : 'standart'}\n onMouseEnter={() => highlightCrosswalk()}\n onMouseLeave={() => removeHighlight()}\n >\n {isDependent && <DependentIcon className={styles.dependentIcon} />}\n <ArrowExpandButton onClick={() => setExpanded((value) => !value)} expanded={expanded} />\n <SourceIcon className={styles.sourceIcon} sourceType={crosswalk.type} />\n <ExpandedValueTooltip value={sourceSystemLabel}>\n <Typography variant={'body2'} noWrap>\n {sourceSystemLabel}\n </Typography>\n </ExpandedValueTooltip>\n <Spacer />\n <ExpandedValueTooltip value={crosswalk.value}>\n <Typography variant={'body2'} className={styles.labelValue} noWrap>\n {crosswalk.value}\n </Typography>\n </ExpandedValueTooltip>\n </ColoredBlock>\n {expanded && (\n <div className={styles.attributesWrapper}>\n {canDelete && (\n <div className={styles.deleteCrosswalkButton}>\n <SmallIconButtonWithTooltip\n icon={DeleteIcon}\n disabled={disableDelete}\n onClick={() => setDeleteDialogOpen(true)}\n size=\"XS\"\n tooltipTitle={\n disableDelete\n ? i18n.text(\"You don't have permissions to delete\")\n : i18n.text('Delete crosswalk')\n }\n showForDisabled={true}\n />\n <ConfirmDeleteDialog\n open={isDeleteDialogOpen}\n onConfirm={handleDeleteCrosswalk}\n onClose={() => setDeleteDialogOpen(false)}\n />\n </div>\n )}\n <CrosswalkAttributes\n crosswalk={crosswalk}\n canEditAttribute={!disableEdit}\n onEditAttribute={(attributeName: string, value: any) => {\n onEdit({\n crosswalkId,\n attributeName,\n value\n });\n }}\n onDeleteAttribute={(attributeName: string) => {\n onEdit({\n crosswalkId,\n attributeName\n });\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default memo(CrosswalkRow);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n height: '28px',\n paddingLeft: '37px'\n }\n}));\n","import React from 'react';\nimport {Link as Link} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n showMore: boolean;\n onClick: () => void;\n};\n\nconst ShowDependentLink = ({showMore, onClick}: Props) => {\n const styles = useStyles();\n return (\n <Link className={styles.root} component=\"button\" variant=\"caption\" underline=\"none\" onClick={onClick}>\n <span>{showMore ? i18n.text('View dependent crosswalks') : i18n.text('Hide dependent crosswalks')}</span>\n </Link>\n );\n};\n\nexport default ShowDependentLink;\n","import React, {useEffect} from 'react';\nimport {useHighlightedCrosswalks} from '../../../contexts/CrosswalksDisplayContext';\nimport {CrosswalksByTypes, CrosswalkType} from '../types';\nimport {eqCrosswalks} from '@reltio/mdm-sdk';\nimport DummyCrosswalkRow from '../DummyCrosswalkRow/DummyCrosswalkRow';\nimport CrosswalkRow from '../CrosswalkRow/CrosswalkRow';\nimport ShowDependentLink from '../ShowDependentLink/ShowDependentLink';\n\ntype Props = {\n source: string;\n crosswalksByTypes: CrosswalksByTypes;\n showCrosswalkColors?: boolean;\n crosswalksFocusEnabled?: boolean;\n expanded?: boolean;\n disableEditCrosswalk: boolean;\n disableDeleteCrosswalk: boolean;\n onEdit: (event: {crosswalkId: string; attributeName: string; value?: string}) => void;\n onDelete: (crosswalkId: string) => void;\n onToggleExpanded: () => void;\n};\n\nconst SourceCrosswalksRow = ({\n source,\n crosswalksByTypes,\n showCrosswalkColors = true,\n crosswalksFocusEnabled = true,\n expanded,\n disableEditCrosswalk,\n disableDeleteCrosswalk,\n onEdit,\n onDelete,\n onToggleExpanded\n}: Props) => {\n const highlightedCrosswalks = useHighlightedCrosswalks();\n useEffect(() => {\n if (\n !expanded &&\n crosswalksFocusEnabled &&\n crosswalksByTypes[CrosswalkType.Dependent].some((dependentCrosswalk) =>\n highlightedCrosswalks.some(eqCrosswalks(dependentCrosswalk))\n )\n ) {\n onToggleExpanded();\n }\n }, [highlightedCrosswalks]);\n\n return (\n <>\n {crosswalksByTypes[CrosswalkType.Simple].length === 0 &&\n crosswalksByTypes[CrosswalkType.Empty].length === 0 && (\n <DummyCrosswalkRow crosswalkType={source} focusable={crosswalksFocusEnabled} />\n )}\n {crosswalksByTypes[CrosswalkType.Simple].map((crosswalk) => (\n <CrosswalkRow\n key={crosswalk.uri}\n crosswalk={crosswalk}\n focusable={crosswalksFocusEnabled}\n disableEdit={disableEditCrosswalk}\n disableDelete={disableDeleteCrosswalk}\n onDelete={onDelete}\n onEdit={onEdit}\n isColored={showCrosswalkColors}\n />\n ))}\n {crosswalksByTypes[CrosswalkType.Empty].map((crosswalk) => (\n <CrosswalkRow\n key={crosswalk.uri}\n crosswalk={crosswalk}\n focusable={crosswalksFocusEnabled}\n isEmpty={true}\n disableEdit={disableEditCrosswalk}\n disableDelete={disableDeleteCrosswalk}\n onDelete={onDelete}\n onEdit={onEdit}\n isColored={showCrosswalkColors}\n />\n ))}\n {expanded &&\n crosswalksByTypes[CrosswalkType.Dependent].map((crosswalk) => (\n <CrosswalkRow\n key={crosswalk.uri}\n crosswalk={crosswalk}\n isDependent={true}\n disableEdit={disableEditCrosswalk}\n disableDelete={disableDeleteCrosswalk}\n onDelete={onDelete}\n onEdit={onEdit}\n focusable={crosswalksFocusEnabled}\n isColored={showCrosswalkColors}\n />\n ))}\n {crosswalksByTypes[CrosswalkType.Dependent].length > 0 && (\n <ShowDependentLink showMore={!expanded} onClick={() => onToggleExpanded()} />\n )}\n </>\n );\n};\n\nexport default SourceCrosswalksRow;\n","import {useCallback} from 'react';\nimport {andThen, ifElse, isNil, pipe} from 'ramda';\nimport {\n addCrosswalk,\n addCrosswalkInContributor,\n deleteCrosswalk,\n deleteCrosswalkAttribute,\n editCrosswalkAttribute\n} from '@reltio/mdm-sdk';\nimport {AddCrosswalkEvent, DeleteCrosswalkEvent, EditCrosswalkEvent} from '../types';\nimport {noop} from '../../../core';\n\ntype Props = {\n onLoad?: () => void;\n onSuccess?: () => void;\n onError?: (error: unknown) => void;\n};\n\nexport const useCrosswalkActions = ({onLoad = noop, onSuccess = noop, onError = noop}: Props) => {\n const handleRequest = useCallback(\n (request: Promise<unknown>) => {\n onLoad();\n request\n .then(({errors}) => {\n if (errors) throw errors;\n onSuccess();\n })\n .catch(onError);\n },\n [onLoad, onError, onSuccess]\n );\n\n const addCrosswalkAction = useCallback(\n ({entity, contributorCrosswalk, crosswalk}: AddCrosswalkEvent) => {\n const addRequest = contributorCrosswalk\n ? addCrosswalkInContributor({\n entityTypeUri: entity.type,\n contributorCrosswalkType: contributorCrosswalk.type,\n contributorCrosswalkValue: contributorCrosswalk.value,\n contributorCrosswalkSourceTable: contributorCrosswalk.sourceTable,\n crosswalkType: crosswalk.type,\n crosswalkValue: crosswalk.value,\n crosswalkSourceTable: crosswalk.sourceTable,\n crosswalkDeleteDate: crosswalk.deleteDate\n })\n : addCrosswalk({entityUri: entity.uri, crosswalk});\n pipe(\n andThen(([response]) => response),\n handleRequest\n )(addRequest);\n },\n [handleRequest]\n );\n\n const editCrosswalkAction = useCallback(\n ({entityUri, crosswalkId, attributeName, value}: EditCrosswalkEvent) => {\n pipe(\n ifElse(({value}) => isNil(value), deleteCrosswalkAttribute, editCrosswalkAttribute),\n andThen(([response]) => response),\n handleRequest\n )({\n entityUri,\n crosswalkId,\n attributeName,\n value\n });\n },\n [handleRequest]\n );\n\n const deleteCrosswalkAction = useCallback(\n ({entityUri, crosswalkId}: DeleteCrosswalkEvent) => {\n pipe(\n deleteCrosswalk,\n handleRequest\n )({\n entityUri,\n crosswalkId\n });\n },\n [handleRequest]\n );\n\n return {\n addCrosswalk: addCrosswalkAction,\n editCrosswalk: editCrosswalkAction,\n deleteCrosswalk: deleteCrosswalkAction\n };\n};\n","import {useCallback, useEffect, useRef, useState} from 'react';\nimport {useAttributeActions} from './useAttributeActions';\nimport {\n addNewAttribute,\n areOneHierarchyUris,\n createNewAttribute,\n Crosswalk,\n CrosswalkBase,\n editAttribute,\n Entity,\n findAttributeValueByUri,\n findAttributeValues,\n getAttributeValue,\n getCrosswalkAttributes,\n getRelationCrosswalks,\n isTempUri,\n Relation,\n RelationCrosswalk,\n removeAttribute\n} from '@reltio/mdm-sdk';\nimport {\n AddInlineAttributeEvent,\n CrosswalksMap,\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent\n} from '../../attributes/inline';\nimport {CrosswalksByOwnerTypeMap} from '../types';\nimport {difference, dissoc, evolve, isNil, pipe, without} from 'ramda';\nimport {noop} from '../../../core';\n\ntype Props = {\n entity: Entity | Relation;\n onLoad?: () => void;\n onModify?: () => void;\n onError?: (error: unknown) => void;\n};\n\nconst emptyArray = [];\n\nexport const useModifiedEntity = ({entity, onLoad = noop, onModify = noop, onError = noop}: Props) => {\n const [modifiedEntity, setModifiedEntity] = useState<Entity | Relation>(null);\n const [crosswalksMap, setCrosswalksMap] = useState<CrosswalksByOwnerTypeMap>(null);\n const temporaryAttributes = useRef<string[]>([]);\n const crosswalkForNewAttributes = useRef<CrosswalkBase>(null);\n const resetCrosswalkForNewAttributes = useCallback(() => {\n crosswalkForNewAttributes.current = null;\n }, []);\n const [newlyCreatedAttributes, setNewlyCreatedAttributes] = useState<string[]>(emptyArray);\n\n const groupCrosswalksByAttrUri = (crosswalks: (Crosswalk | RelationCrosswalk)[] = []): CrosswalksMap =>\n crosswalks.reduce((acc, crosswalk: Crosswalk | RelationCrosswalk) => {\n getCrosswalkAttributes(crosswalk).forEach((uri: string) => {\n acc[uri] = [...(acc[uri] || []), crosswalk];\n });\n return acc;\n }, {});\n\n useEffect(() => {\n const newCrosswalksMap = {\n entity: groupCrosswalksByAttrUri(entity?.crosswalks),\n relation: pipe(getRelationCrosswalks, groupCrosswalksByAttrUri)(entity)\n };\n if (modifiedEntity?.uri === entity?.uri && crosswalkForNewAttributes.current) {\n const {ownerType} = crosswalkForNewAttributes.current;\n const newAttributes = Object.keys(newCrosswalksMap[ownerType]);\n const oldAttributes = Object.keys(crosswalksMap[ownerType]);\n setNewlyCreatedAttributes(difference(newAttributes, oldAttributes));\n } else {\n setNewlyCreatedAttributes(emptyArray);\n }\n resetCrosswalkForNewAttributes();\n setModifiedEntity(entity);\n setCrosswalksMap(newCrosswalksMap);\n temporaryAttributes.current = [];\n }, [entity]);\n\n const handleError = useCallback(pipe(onError, resetCrosswalkForNewAttributes), [\n onError,\n resetCrosswalkForNewAttributes\n ]);\n\n const {deleteAttribute, ignoreAttribute, pinAttribute, createAttribute, updateAttribute} = useAttributeActions({\n onLoad,\n onSuccess: onModify,\n onError: handleError\n });\n\n const onAddAttribute = useCallback(({attributeType, parentUri, crosswalk, index}: AddInlineAttributeEvent) => {\n const newAttribute = createNewAttribute({parentUri, attributeType});\n const {uri} = newAttribute;\n if (crosswalk) {\n const {ownerType} = crosswalk;\n setCrosswalksMap((crosswalksMap) => ({\n ...crosswalksMap,\n [ownerType]: {\n ...crosswalksMap[ownerType],\n [uri]: [crosswalk]\n }\n }));\n }\n setModifiedEntity((entity) => {\n if (isNil(index)) {\n index = findAttributeValues(entity, parentUri, attributeType.name)?.length;\n }\n return addNewAttribute({entity, attributeType, newAttribute, index});\n });\n if (!temporaryAttributes.current.some((tempUri) => areOneHierarchyUris(uri, tempUri))) {\n temporaryAttributes.current.push(uri);\n }\n }, []);\n\n const onDeleteAttribute = useCallback(\n (event: DeleteInlineAttributeEvent) => {\n const {\n attributeValue: {uri},\n attributeType\n } = event;\n if (isTempUri(uri)) {\n setModifiedEntity((entity) => removeAttribute({entity, attributeType, uri}));\n setCrosswalksMap(\n evolve({\n entity: dissoc(uri),\n relation: dissoc(uri)\n })\n );\n temporaryAttributes.current = without([uri], temporaryAttributes.current);\n } else {\n deleteAttribute(event);\n }\n },\n [deleteAttribute]\n );\n\n const onEditAttribute = useCallback(\n (event: EditInlineAttributeEvent) => {\n if (isTempUri(event.attributeValue.uri)) {\n const {attributeValue, attributeType, crosswalk} = event;\n if (!isNil(attributeValue.value)) {\n const {uri} = attributeValue;\n const tempAttributeUri = temporaryAttributes.current.find((tempUri) =>\n areOneHierarchyUris(uri, tempUri)\n );\n const editedEntity = editAttribute({\n entity: modifiedEntity,\n attributeType,\n uri,\n value: getAttributeValue(attributeValue)\n });\n createAttribute({\n attributeValue: findAttributeValueByUri(editedEntity, tempAttributeUri),\n crosswalk\n });\n crosswalkForNewAttributes.current = crosswalk;\n }\n } else {\n updateAttribute(event);\n }\n },\n [createAttribute, updateAttribute, modifiedEntity]\n );\n\n return {\n modifiedEntity,\n crosswalksMap,\n onAddAttribute,\n onDeleteAttribute,\n onPinAttribute: pinAttribute,\n onIgnoreAttribute: ignoreAttribute,\n onEditAttribute,\n newlyCreatedAttributes\n };\n};\n","import {useCallback} from 'react';\nimport {\n createAttribute,\n deleteAttribute,\n getReferencedRelationFromAttrValue,\n ignoreAttribute,\n isComplexAttribute,\n isImage,\n isLookupAttrType,\n isReference,\n pinAttribute,\n removeRelation,\n updateAttribute\n} from '@reltio/mdm-sdk';\nimport {\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent,\n IgnoreInlineAttributeEvent,\n PinInlineAttributeEvent\n} from '../../attributes/inline';\nimport {andThen, pipe, prop} from 'ramda';\nimport {CreateAttributeEvent} from '../types';\nimport {noop} from '../../../core';\n\ntype Props = {\n onLoad?: () => void;\n onSuccess?: () => void;\n onError?: (error: unknown) => void;\n};\n\nexport const useAttributeActions = ({onSuccess = noop, onError = noop, onLoad = noop}: Props) => {\n const handleAction = useCallback(\n (request: Promise<unknown>) => {\n onLoad();\n request\n .then(() => {\n onSuccess();\n })\n .catch(onError);\n },\n [onError, onSuccess, onLoad]\n );\n const handleErrorResponse = useCallback((request: Promise<{error?: unknown}>) => {\n return request.then((response) => {\n if ('error' in response) throw response.error;\n return response;\n });\n }, []);\n\n const deleteAttributeAction = useCallback(\n ({attributeValue, attributeType, crosswalks}: DeleteInlineAttributeEvent) => {\n const action = isReference(attributeType)\n ? pipe(\n getReferencedRelationFromAttrValue,\n prop('objectURI'),\n removeRelation,\n handleErrorResponse\n )(attributeValue)\n : Promise.all(\n (crosswalks || []).map(({type, value, sourceTable}) =>\n handleErrorResponse(\n deleteAttribute({\n attributeUri: attributeValue.uri,\n sourceUri: type,\n crosswalkValue: value,\n crosswalkSourceTable: sourceTable\n })\n )\n )\n );\n handleAction(action);\n },\n [handleAction, handleErrorResponse]\n );\n\n const pinAttributeAction = useCallback(\n ({attributeValue}: PinInlineAttributeEvent) => {\n pipe(\n pinAttribute,\n handleErrorResponse,\n handleAction\n )({\n attributeUri: attributeValue.uri,\n value: !attributeValue.pin\n });\n },\n [handleAction, handleErrorResponse]\n );\n\n const ignoreAttributeAction = useCallback(\n ({attributeValue}: IgnoreInlineAttributeEvent) => {\n pipe(\n ignoreAttribute,\n handleErrorResponse,\n handleAction\n )({\n attributeUri: attributeValue.uri,\n value: !attributeValue.ignored\n });\n },\n [handleAction, handleErrorResponse]\n );\n\n const updateAttributeAction = useCallback(\n ({attributeValue, attributeType, crosswalk}: EditInlineAttributeEvent) => {\n if (isComplexAttribute(attributeType) || isImage(attributeType)) return;\n pipe(\n updateAttribute,\n handleErrorResponse,\n handleAction\n )({\n attributeUri: attributeValue.uri,\n sourceUri: crosswalk.type,\n crosswalkValue: crosswalk.value,\n crosswalkSourceTable: crosswalk.sourceTable,\n value: isLookupAttrType(attributeType) ? attributeValue.lookupCode : attributeValue.value\n });\n },\n [handleAction, handleErrorResponse]\n );\n\n const createAttributeAction = useCallback(\n ({attributeValue, crosswalk}: CreateAttributeEvent) => {\n pipe(\n createAttribute,\n andThen(([{errors}]) => {\n if (errors) throw errors;\n }),\n handleAction\n )({\n attributeUri: attributeValue.uri,\n sourceUri: crosswalk.type,\n crosswalkValue: crosswalk.value,\n crosswalkSourceTable: crosswalk.sourceTable,\n value: attributeValue.value\n });\n },\n [handleAction]\n );\n\n return {\n deleteAttribute: deleteAttributeAction,\n pinAttribute: pinAttributeAction,\n ignoreAttribute: ignoreAttributeAction,\n updateAttribute: updateAttributeAction,\n createAttribute: createAttributeAction\n };\n};\n","export enum CrosswalkType {\n Simple = 'simple',\n Empty = 'empty',\n Dependent = 'dependent'\n}\n","import {\n AttributeType,\n Crosswalk,\n getAttributeTypeUriByValueUri,\n getCrosswalkAttributes,\n isComplexAttribute,\n RelationCrosswalk\n} from '@reltio/mdm-sdk';\nimport {curry, evolve, propEq, sort} from 'ramda';\nimport {CrosswalksByTypes, CrosswalkType} from '../types';\n\nconst isEmptyCrosswalk = (\n entityTypeUri: string,\n selectedAttributeTypes: AttributeType[],\n crosswalk: Crosswalk | RelationCrosswalk\n) => {\n const visibleAttributes = getCrosswalkAttributes(crosswalk).filter((attributeUri: string) => {\n const attributeTypeUri = getAttributeTypeUriByValueUri(attributeUri, entityTypeUri);\n return selectedAttributeTypes.some(propEq('uri', attributeTypeUri));\n });\n return visibleAttributes.length === 0;\n};\n\nconst isCrosswalkWithoutSimple = (\n entityTypeUri: string,\n selectedAttributeTypes: AttributeType[],\n crosswalk: Crosswalk | RelationCrosswalk\n) => {\n return !getCrosswalkAttributes(crosswalk).some((attributeUri) => {\n const attributeTypeUri = getAttributeTypeUriByValueUri(attributeUri, entityTypeUri);\n const attributeType = selectedAttributeTypes.find(propEq('uri', attributeTypeUri));\n return attributeType && !isComplexAttribute(attributeType);\n });\n};\n\nconst getCrosswalksWeight = (crosswalks: CrosswalksByTypes) => {\n if (crosswalks[CrosswalkType.Simple].length > 0) {\n return 1;\n }\n if (crosswalks[CrosswalkType.Dependent].length > 0) {\n return crosswalks[CrosswalkType.Empty].length > 0 ? 2 : 3;\n }\n return 4;\n};\n\nconst sortDependentCrosswalksBySourceTable = evolve({\n [CrosswalkType.Dependent]: sort((cwA, cwB) => {\n const sourceTableA = cwA.sourceTable || '';\n const sourceTableB = cwB.sourceTable || '';\n if (sourceTableA === sourceTableB) return 0;\n if (!sourceTableA) return 1;\n if (!sourceTableB) return -1;\n return sourceTableA < sourceTableB ? -1 : 1;\n })\n});\n\nexport const groupCrosswalksByTypesAndSources = curry(\n (entityTypeUri: string, selectedAttributeTypes: AttributeType[], crosswalks: (Crosswalk | RelationCrosswalk)[]) => {\n const crosswalksBySourcesMap = (crosswalks || []).reduce((acc, crosswalk: Crosswalk | RelationCrosswalk) => {\n if (!acc[crosswalk.type]) {\n acc[crosswalk.type] = {\n [CrosswalkType.Simple]: [],\n [CrosswalkType.Empty]: [],\n [CrosswalkType.Dependent]: []\n };\n }\n if (crosswalk.ownerType === 'relation') {\n acc[crosswalk.type][CrosswalkType.Dependent].push(crosswalk);\n } else if (isEmptyCrosswalk(entityTypeUri, selectedAttributeTypes, crosswalk)) {\n acc[crosswalk.type][CrosswalkType.Empty].push(crosswalk);\n } else if (isCrosswalkWithoutSimple(entityTypeUri, selectedAttributeTypes, crosswalk)) {\n acc[crosswalk.type][CrosswalkType.Dependent].push(crosswalk);\n } else {\n acc[crosswalk.type][CrosswalkType.Simple].push(crosswalk);\n }\n return acc;\n }, {});\n return Object.keys(crosswalksBySourcesMap)\n .sort((sourceA, sourceB) => {\n const weightA = getCrosswalksWeight(crosswalksBySourcesMap[sourceA]);\n const weightB = getCrosswalksWeight(crosswalksBySourcesMap[sourceB]);\n const weightDiff = weightA - weightB;\n return weightDiff || (sourceA < sourceB ? -1 : 1);\n })\n .map((source: string) => ({\n source,\n crosswalksByTypes: sortDependentCrosswalksBySourceTable(crosswalksBySourcesMap[source])\n }));\n }\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(() => setCrosswalkHighlighted(crosswalk, true), [\n crosswalk,\n setCrosswalkHighlighted\n ]),\n removeHighlight: useCallback(() => setCrosswalkHighlighted(crosswalk, false), [\n crosswalk,\n 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, {createContext, useContext} from 'react';\nimport {areOneHierarchyUris} from '@reltio/mdm-sdk';\n\nconst ExpandedAttributesContext = createContext(null);\n\ntype ProviderProps = {\n children: React.ReactNode;\n attributeUris: string[];\n};\n\nexport const ExpandedAttributesProvider = ({children, attributeUris}: ProviderProps) => {\n return <ExpandedAttributesContext.Provider value={attributeUris}>{children}</ExpandedAttributesContext.Provider>;\n};\n\nexport const useAttributeExpanded = (attributeUri: string) => {\n const expandedAttributes = useContext(ExpandedAttributesContext) || [];\n return expandedAttributes.some((uri) => areOneHierarchyUris(uri, attributeUri));\n};\n"],"names":["AvatarStates","className","icon","avatarText","rootClasses","otherProps","state","setState","useState","useEffect","ICON_MODE","TEXT_MODE","onImageLoadFail","ERROR_MODE","Avatar","classnames","iconRoot","src","onError","textRoot","getRowCellKey","rowIndex","columnData","id","cellIndex","rowCellHeightsMap","setRowCellHeightsMap","rowCellHeightsMapCache","useRef","flushHeightUpdates","useCallback","debounce","current","clearHeightsCache","getDynamicRowCellHeight","pipe","prop","__","changeRowCellHeight","curry","useWith","key","value","identity","RowCellAutoSizer","onChangeHeight","children","cell","cellProps","cellRef","rowValue","changeCellHeight","adjustCellHeight","clientHeight","useDidUpdateEffect","rawValue","handleHeight","onResize","RootRef","rootRef","propTypes","PropTypes","open","onClose","onConfirm","Dialog","DialogContent","DialogContentText","i18n","DialogActions","Button","onClick","color","useStyles","makeStyles","theme","tooltip","backgroundColor","palette","background","paper","text","primary","filter","padding","maxWidth","arrow","props","styles","Tooltip","classes","profileBandNavigation","marginBottom","comments","display","justifyContent","ScreenProfileBand","memo","entity","historySlice","objectIds","useMemo","getProfileBandObjectIdsForCollaboration","collaboration","useCollaboration","entityUri","getEntityUriForLink","CollaborationContext","ProfileBand","COMMENTS_CONTAINER_VISIBILITY_AREA","aEntity","ProfileBandHistory","ProfileBandNavigation","CommentsContainer","uri","relatedObjectUris","createRelatedObjectUris","CollaborationObjectTypes","objectType","displayName","sourceType","metadata","useSelector","mdmModule","findSourceSystemByUri","getSourceSystemLabel","sourceIcon","getAbsoluteImageUrl","variant","textField","margin","input","borderRadius","inputMultiline","paddingTop","paddingBottom","booleanEditor","paddingLeft","timestampEditor","minWidth","containerWidth","border","width","popoverRoot","zIndex","DATA_TYPES_WITH_MULTILINE_EDITOR","DataTypes","SimpleAttributeEditor","attributeType","attributeValue","containerRef","onEdit","getBoundingClientRect","dataTypeDefinition","getAttrDataTypeDefinition","initEditorValue","attributeValueToEditorValue","editorValue","changeEditorValue","TextFieldProps","InputProps","disableUnderline","root","multiline","applyChangesAndClose","editedValue","editorValueToAttributeValue","isNil","equals","editedAttributeValue","isLookupAttrType","lookupCode","isNumericType","type","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","isBooleanType","isTimestampBasedType","onKeyUp","event","includes","onBackdropClick","DataTypeValueEditor","autoFocus","fieldName","attributeUriToSearchUri","onChange","fullWidth","menuItem","minHeight","secondary","menuText","fontSize","lineHeight","letterSpacing","marginLeft","sourceItem","borderBottom","MenuItemWithTooltip","withTooltip","MenuItem","MenuItemContent","Typography","CrosswalkMenuItem","forwardRef","ref","item","onMenuClose","disabled","crosswalk","SourceItem","focusable","tooltipTitle","showForDisabled","e","fullyColored","opaque","wordBreak","content","position","height","pointerEvents","boxSizing","alignItems","opacity","transition","actions","marginRight","dataReltioId","disableEdit","disableDelete","onIgnore","onPin","onDelete","isReadingMode","isEditingMode","isHovered","onMouseEnter","onMouseLeave","setReadingMode","setEditingMode","useAttributeState","getLastUriPart","crosswalkDisabled","isCrosswalkDisabled","canModifyAttribute","system","canEdit","checkMetadataForUpdate","ModeTypes","canDelete","checkMetadataForDelete","isTemporary","isTempUri","showPin","pin","showIgnore","ignored","useCrosswalkColor","isHighlighted","isDimmed","highlightCrosswalk","removeHighlight","useCrosswalkHighlight","Edit","Delete","crosswalks","DataTypeValue","getAttributeValue","PinButton","isPinned","IgnoreButton","isIgnored","DropDownMenuButton","MenuItemRenderer","menuId","buttonComponent","SmallIconButtonWithTooltip","buttonProps","MoreVertIcon","size","menuItems","simpleAttributesWrapper","flexWrap","gap","dropIndicator","attributeValues","parentUri","crosswalksMap","onAdd","isDragItemOver","drop","useDrop","accept","canDrop","isRelationCrosswalk","isRelationUri","ownerType","isEntityCrosswalk","isEntityUri","checkMetadataForCreate","isRelationTypeUri","isEntityTypeUri","collect","monitor","isOver","index","length","attributeIndex","map","canCreate","NestedAttribute","ReferenceAttribute","ImageAttribute","wrapper","flexDirection","complexAttributesWrapper","paging","max","Infinity","requestNextPage","visibleValuesCount","setVisibleValuesCount","totalValues","propOr","hasPaging","showMore","showLess","shownValues","slice","hiddenValuesCount","values","other","renderValues","ShowMore","moreNumber","Math","min","valueNumber","ShowLess","isDisabled","isOpaque","LightArrowTooltip","title","placement","crosswalkIcon","attributeTypes","attributes","isReadableAttribute","BranchDecorator","enabled","Title","label","AttributesPager","name","path","SmallIconButton","DeleteIcon","disableRipple","flexShrink","alignSelf","verticalAlign","attributeTypesList","showDelete","expandedFromContext","useAttributeExpanded","expanded","setExpanded","pickBy","val","attrUri","areOneHierarchyUris","flatten","uniqBy","ArrowExpandButton","getCrosswalkId","Spacer","image","imageContainer","paddingRight","IMAGE_SIZE","imageWidth","imageHeight","ComplexAttribute","Image","containerClassName","getImageAttributeThumbnailUrl","getLabel","relationshipLabel","generateEntityUrl","useContext","UrlGeneratorsContext","uiPath","entityLabel","ComplexAttributeLabel","InternalLink","href","getReferencedEntityUriFromAttrValue","getReferencedRelationAttrTypesUris","attrTypeUri","findAttributeTypeByUri","reject","useComplexAttributeLabelStyles","component","body2","viewBox","fill","xmlns","fillRule","clipRule","d","fillOpacity","IgnoredIcon","IgnoredOutlinedIcon","PinIcon","PinOutlinedIcon","toggleCrosswalkFocus","isFocused","useCrosswalkFocus","sourceInfo","VisibilityIcon","eyeIcon","crosswalkValue","overflow","whiteSpace","textOverflow","AttributeStates","attributeState","setAttributeState","READING","EDITING","HOVERED","setAttributeStateDebounced","renderAttributesList","valueContainerClassName","LabelRenderer","RightSlot","imageSize","imageMargin","coloredCell","right","top","headCell","rowCell","cellValueWrapper","attributeTitle","ovValue","marginTop","count","textAlign","ruleType","ruleTypeLabel","rulePopup","overflowY","popupItem","closeButton","popupTitle","fontWeight","popupTitleWrapper","popupItemsWrapper","maxHeight","winnerSourceItemWrapper","winnerSourceItem","winnerSourceItemLabel","DefaultHeadCellRenderer","withTableContext","pick","parentTypeUri","selectedAttributeTypes","onSelectAttributeTypes","parentType","entityTypes","relationTypes","find","propEq","isNotSelected","attrType","data","either","isReference","isImage","isNested","both","checkCanCreateAttribute","mode","MoreAttributesButton","onApply","addedTypes","typesToSelect","forEach","readOnly","simpleAttributeWrapper","complexAttributeWrapper","borderTop","nestedValues","i","referenceValues","build","SourcesRenderer","sourcesUriOrder","sourceUri","ListItem","SourceIcon","ListItemText","primaryTypographyProps","AttributeRenderer","attributeUri","getInfoTitle","cond","getInfoContent","primaryAttributeUri","comparisonAttributeUri","info","setAnchorEl","closePopup","InfoIcon","currentTarget","IconButton","Close","List","showInfoIcon","WinnerSource","ColoredBlock","getCrosswalkColor","COLUMNS_DATA","hideable","initialWidth","isOvValue","isOv","DEFAULT_VISIBLE_COLUMNS","getCellValueRenderer","columnId","OvValuesRenderer","AttributeValuesRenderer","CountRenderer","RuleTypeRenderer","WinnerSourcesRenderer","DefaultCellValueRenderer","getSourcesUriOrderFromMetadata","getCrosswalksTypes","sortWith","descend","fixReferencedAttributeUri","getReferencedAttrTypeUrisFromAttrType","getBaseUri","getWinnerCrosswalks","chain","_","isInHierarchy","subAttrUriSuffix","subAttrValue","findValueInAttributesByUriSuffix","getBasicTableColumnsData","autoResize","resizable","sortable","headCellRenderer","AttributesHeadCellRenderer","HeadCellRenderer","rowCellValueRenderer","getRowValueForColumn","activeSurvivorshipGroupUri","reduce","acc","countAttributeValues","survivorshipGroups","currentSurvivorshipGroup","mapping","getSurvivorshipStrategy","survivorshipStrategy","getDefaultSurvivorshipStrategy","isSourceSystemRule","uniq","undefined","fixUri","isOtherAttributeWinnerRule","isComplexAttribute","isMinMaxValueRule","getRuleTypeValues","CellValueRenderer","columnIndex","isFirstColumn","onConfirmEditWithoutIgnore","onConfirmEditWithIgnore","option","setOption","onEnter","FormControl","FormLabel","RadioGroup","getValue","FormControlLabel","control","Radio","tableContainer","tableHeader","tableTitle","tableContent","flex","isLoading","visibleColumns","onChangeVisibleColumns","noop","additionalHeaderItems","visibleColumnsData","initialAttrTypes","keys","without","makeAttrTypeUri","rowsData","columns","attrName","attrValues","crosswalksMapForAttribute","relation","assoc","getBasicTableRowsData","useDynamicRowCellHeight","renderRowCell","getRowCellHeight","always","pendingDeletion","setPendingDeletion","pendingIgnoredEditing","setPendingIgnoredEditing","handleEdit","tableContext","BasicViewHeader","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","LinearLoadIndicator","BasicTable","fixFirstColumn","headRowHeight","defaultColumnWidth","defaultColumnMinWidth","context","ConfirmDeleteDialog","useColoredItemStyles","endDatedCrosswalkIcon","EventBusy","xmlnsXlink","stroke","strokeWidth","xlinkHref","mask","overflowWrap","button","textTransform","CopyIcon","navigator","clipboard","writeText","timestampEditorInput","isOpen","setIsOpen","handleChange","date","valueOf","TimestampEditor","unless","onAccept","onOpen","attributeWrapper","flexGrow","editor","moreButton","canEditAttribute","onEditAttribute","onDeleteAttribute","isTempCrosswalk","addedAttributes","setAddedAttributes","pendingDeletionAttrUri","setPendingDeletionAttrUri","CrosswalksAttrTypes","canBeAdded","canBeDeleted","extraAttributes","has","selectedAttributes","concat","attribute","attributeName","sourceSystemLabel","SimpleDropDownSelector","placeholder","options","sort","ascend","TextEditor","multiple","getValueLabel","required","onInput","target","moment","parseTimestamp","toString","formatDateTime","renderAttributeValue","handleDeleteAttribute","dragLayer","left","crosswalkPreview","sourceLabel","isDragging","clientOffset","useDragLayer","getClientOffset","getItem","dragLayerRef","dragLayerRect","x","y","dragItemTransform","style","transform","WebkitTransform","caption","controlButtons","cancelButton","newCrosswalk","setNewCrosswalk","CrosswalkAttributes","dissoc","backgroundImage","focusedIcon","borderRight","crosswalkType","header","crosswalkWrapper","attributesWrapper","borderColor","deleteCrosswalkButton","labelValue","dependentIcon","isDependent","isEmpty","isColored","crosswalkColor","scrollToCrosswalk","useHighlightedCrosswalks","isDeleteDialogOpen","setDeleteDialogOpen","crosswalkId","drag","preview","useDrag","canDrag","getEmptyImage","captureDraggingState","eqCrosswalks","scrollIntoView","behavior","ExpandedValueTooltip","noWrap","Link","underline","source","crosswalksByTypes","showCrosswalkColors","crosswalksFocusEnabled","disableEditCrosswalk","disableDeleteCrosswalk","onToggleExpanded","highlightedCrosswalks","CrosswalkType","some","dependentCrosswalk","useCrosswalkActions","onLoad","onSuccess","handleRequest","request","then","errors","catch","addCrosswalk","contributorCrosswalk","addRequest","addCrosswalkInContributor","entityTypeUri","contributorCrosswalkType","contributorCrosswalkValue","contributorCrosswalkSourceTable","sourceTable","crosswalkSourceTable","crosswalkDeleteDate","deleteDate","andThen","response","editCrosswalk","ifElse","deleteCrosswalkAttribute","editCrosswalkAttribute","deleteCrosswalk","emptyArray","useModifiedEntity","onModify","modifiedEntity","setModifiedEntity","setCrosswalksMap","temporaryAttributes","crosswalkForNewAttributes","resetCrosswalkForNewAttributes","newlyCreatedAttributes","setNewlyCreatedAttributes","groupCrosswalksByAttrUri","getCrosswalkAttributes","newCrosswalksMap","getRelationCrosswalks","newAttributes","Object","oldAttributes","difference","handleError","deleteAttribute","ignoreAttribute","pinAttribute","createAttribute","updateAttribute","handleAction","handleErrorResponse","error","action","getReferencedRelationFromAttrValue","removeRelation","Promise","all","useAttributeActions","onAddAttribute","newAttribute","createNewAttribute","findAttributeValues","addNewAttribute","tempUri","push","removeAttribute","evolve","tempAttributeUri","editedEntity","editAttribute","findAttributeValueByUri","onPinAttribute","onIgnoreAttribute","getCrosswalksWeight","sortDependentCrosswalksBySourceTable","cwA","cwB","sourceTableA","sourceTableB","groupCrosswalksByTypesAndSources","crosswalksBySourcesMap","attributeTypeUri","getAttributeTypeUriByValueUri","isEmptyCrosswalk","isCrosswalkWithoutSimple","sourceA","sourceB","CrosswalksDisplayContext","createContext","CrosswalksDisplayProvider","Provider","getColor","setCrosswalkHighlighted","eqBy","focusedCrosswalks","ExpandedAttributesContext","ExpandedAttributesProvider","attributeUris"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"4120.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/hooks/useDynamicRowCellHeight.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/RowCellAutoSizer/RowCellAutoSizer.js","webpack://@reltio/remotes/../components/src/components/ConfirmDeleteDialog/ConfirmDeleteDialog.tsx","webpack://@reltio/remotes/../components/src/components/LightArrowTooltip/styles.ts","webpack://@reltio/remotes/../components/src/components/LightArrowTooltip/LightArrowTooltip.tsx","webpack://@reltio/remotes/../components/src/components/ScreenProfileBand/styles.ts","webpack://@reltio/remotes/../components/src/components/ScreenProfileBand/ScreenProfileBand.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttributeEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttributeEditor/SimpleAttributeEditor.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttribute/CrosswalkMenuItem/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttribute/CrosswalkMenuItem/CrosswalkMenuItem.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttribute/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttribute/SimpleAttribute.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttributesBlock/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/SimpleAttributesBlock/SimpleAttributesBlock.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/NestedAttributesBlock/NestedAttributesBlock.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/ReferenceAttributesBlock/ReferenceAttributesBlock.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/ImageAttributesBlock/ImageAttributesBlock.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/AttributesPager/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/AttributesPager/AttributesPager.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/CrosswalkIcon.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/AttributesList/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/AttributesList/AttributesList.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/DeleteButton.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/ComplexAttribute/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/ComplexAttribute/ComplexAttribute.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/ImageAttribute/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/ImageAttribute/ImageAttribute.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/NestedAttribute/NestedAttribute.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/ReferenceAttribute/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/ReferenceAttribute/ReferenceAttribute.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/ComplexAttributeLabel.tsx","webpack://@reltio/remotes/../components/src/icons/Ignored.tsx","webpack://@reltio/remotes/../components/src/icons/IgnoredOutlined.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/IgnoreButton.tsx","webpack://@reltio/remotes/../components/src/icons/Pin.tsx","webpack://@reltio/remotes/../components/src/icons/PinOutlined.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/PinButton.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/SourceItem.tsx","webpack://@reltio/remotes/../components/src/components/attributes/inline/common/styles.ts","webpack://@reltio/remotes/../components/src/components/attributes/inline/hooks/useAttributeState.ts","webpack://@reltio/remotes/../components/src/components/attributes/readMode/AttributeValuesBlock/AttributeValuesBlock.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/HeadCellRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/AddAttributesButton/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/AddAttributesButton/AddAttributesButton.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/AttributesHeadCellRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/DefaultCellValueRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/SimpleAttributesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/NestedAttributesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/ReferenceAttributesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/ImageAttributesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/AttributeValuesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/attribute-renderers/AttributesFactory.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/OvValuesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/CountRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/RuleTypeInfoButton.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/RuleTypeRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/WinnerSourcesRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/helpers.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/RowCellRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/AttributesTable.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/ColoredBlock/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/ColoredBlock/ColoredBlock.tsx","webpack://@reltio/remotes/../components/src/icons/Copy.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CopyableValueField/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CopyableValueField/CopyableValueField.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkDateEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkDateEditor/CrosswalkDateEditor.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkAttributes/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkAttributes/CrosswalkAttributes.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkDragLayer/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkDragLayer/CrosswalkDragPreview.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkEditor/CrosswalkEditor.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/DummyCrosswalkRow/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/DummyCrosswalkRow/DummyCrosswalkRow.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkRow/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/CrosswalkRow/CrosswalkRow.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/ShowDependentLink/styles.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/ShowDependentLink/ShowDependentLink.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/SourceCrosswalksRow/SourceCrosswalksRow.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/hooks/useCrosswalkActions.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/hooks/useModifiedEntity.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/hooks/useAttributeActions.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/types/CrosswalkType.ts","webpack://@reltio/remotes/../components/src/components/crosswalks/utils/legend.ts","webpack://@reltio/remotes/../components/src/contexts/ExpandedAttributesContext/index.tsx"],"sourcesContent":["import {useCallback, useRef, useState} from 'react';\nimport {__, curry, identity, pipe, prop, useWith} from 'ramda';\nimport {debounce} from '@reltio/mdm-sdk';\n\nconst getRowCellKey = ({rowIndex, columnData: {id}, cellIndex}) => `${id}[${rowIndex}][${cellIndex}]`;\n\nconst useDynamicRowCellHeight = () => {\n const [rowCellHeightsMap, setRowCellHeightsMap] = useState({});\n const rowCellHeightsMapCache = useRef({});\n const batchHeightUpdate = (key, value) => {\n rowCellHeightsMapCache.current[key] = value;\n };\n const flushHeightUpdates = useCallback(\n debounce(() => {\n setRowCellHeightsMap({...rowCellHeightsMapCache.current});\n }),\n []\n );\n const clearHeightsCache = useCallback(() => {\n rowCellHeightsMapCache.current = {};\n }, []);\n\n const getDynamicRowCellHeight = useCallback(pipe(getRowCellKey, prop(__, rowCellHeightsMap)), [rowCellHeightsMap]);\n\n const changeRowCellHeight = useCallback(\n curry(useWith(pipe(batchHeightUpdate, flushHeightUpdates), [getRowCellKey, identity])),\n []\n );\n\n return {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache};\n};\n\nexport default useDynamicRowCellHeight;\n","import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ReactResizeDetector from 'react-resize-detector';\nimport {RootRef as RootRef} from '@material-ui/core';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst RowCellAutoSizer = ({onChangeHeight, children: cell, ...cellProps}) => {\n const cellRef = useRef(null);\n\n const {rowValue, rowIndex, columnData, cellIndex} = cellProps;\n const changeCellHeight = onChangeHeight({rowIndex, cellIndex, columnData});\n\n const adjustCellHeight = () => cellRef.current && changeCellHeight(cellRef.current.clientHeight);\n\n useDidUpdateEffect(adjustCellHeight, [rowValue.rawValue]);\n\n return (\n <div>\n <ReactResizeDetector handleHeight={true} onResize={adjustCellHeight} />\n <RootRef rootRef={cellRef}>{cell}</RootRef>\n </div>\n );\n};\n\nRowCellAutoSizer.propTypes = {\n onChangeHeight: PropTypes.func,\n children: PropTypes.node\n};\n\nexport default RowCellAutoSizer;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Button as Button} from '@material-ui/core';\nimport {Dialog as Dialog} from '@material-ui/core';\nimport {DialogActions as DialogActions} from '@material-ui/core';\nimport {DialogContent as DialogContent} from '@material-ui/core';\nimport {DialogContentText as DialogContentText} from '@material-ui/core';\n\ntype Props = {\n open: boolean;\n onClose: () => void;\n onConfirm: () => void;\n};\n\nconst ConfirmDeleteDialog = ({open, onClose, onConfirm}: Props) => {\n const handleConfirm = () => {\n onConfirm();\n onClose();\n };\n return (\n <Dialog open={open}>\n <DialogContent>\n <DialogContentText>{i18n.text('Are you sure you want to delete this?')}</DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose} color=\"primary\">\n {i18n.text('No')}\n </Button>\n <Button onClick={handleConfirm} color=\"primary\">\n {i18n.text('Yes')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default ConfirmDeleteDialog;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n tooltip: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n filter:\n 'drop-shadow(0px 1px 5px #00000033) drop-shadow(0px 3px 1px #0000001F) drop-shadow(0px 2px 2px #00000024)',\n padding: '10px',\n maxWidth: 'none'\n },\n arrow: {\n color: theme.palette.background.paper\n }\n}));\n","import React from 'react';\nimport Tooltip, {TooltipProps} from '@material-ui/core/Tooltip';\n\nimport {useStyles} from './styles';\n\nconst LightArrowTooltip = (props: TooltipProps) => {\n const styles = useStyles();\n return <Tooltip {...props} classes={styles} arrow />;\n};\n\nexport default LightArrowTooltip;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n profileBandNavigation: {\n marginBottom: '10px'\n },\n comments: {\n display: 'flex',\n justifyContent: 'flex-end'\n }\n});\n","import React, {memo, useMemo} from 'react';\nimport classnames from 'classnames';\nimport {\n CollaborationObjectTypes,\n createRelatedObjectUris,\n Entity,\n getEntityUriForLink,\n getProfileBandObjectIdsForCollaboration\n} from '@reltio/mdm-sdk';\nimport {HistorySlice} from '@reltio/mdm-module';\n\nimport ProfileBand from '../ProfileBand/ProfileBand';\nimport {ProfileBandNavigation} from '../ProfileBandNavigation';\nimport CommentsContainer from '../CommentsContainer/CommentsContainer';\nimport {CollaborationContextProvider} from '../../contexts';\nimport {COMMENTS_CONTAINER_VISIBILITY_AREA} from '../../constants';\nimport {useCollaboration} from '../../hooks';\nimport {ProfileBandHistory} from '../history';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n historySlice?: HistorySlice;\n};\n\nexport const ScreenProfileBand = memo(({entity, className, historySlice}: Props) => {\n const styles = useStyles();\n const objectIds = useMemo(() => getProfileBandObjectIdsForCollaboration(entity), [entity]);\n const collaboration = useCollaboration({objectIds});\n const entityUri = getEntityUriForLink(entity);\n\n return (\n <CollaborationContextProvider collaboration={collaboration}>\n <ProfileBand\n className={classnames(className, COMMENTS_CONTAINER_VISIBILITY_AREA)}\n entity={historySlice?.aEntity || entity}\n >\n {historySlice ? (\n <ProfileBandHistory />\n ) : (\n <>\n <ProfileBandNavigation className={styles.profileBandNavigation} />\n <CommentsContainer\n className={styles.comments}\n uri={entityUri}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.ENTITY, {\n entityUri\n })}\n objectType={CollaborationObjectTypes.ENTITY}\n />\n </>\n )}\n </ProfileBand>\n </CollaborationContextProvider>\n );\n});\n\nScreenProfileBand.displayName = 'ScreenProfileBand';\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color: string;\n containerWidth: number;\n};\n\nexport const useStyles = makeStyles(() => ({\n textField: {\n margin: 0\n },\n input: {\n borderRadius: 0\n },\n inputMultiline: {\n '&$input': {\n paddingTop: 0,\n paddingBottom: 0\n }\n },\n booleanEditor: {\n paddingLeft: '10px'\n },\n timestampEditor: {\n '&$paper': {\n minWidth: '255px'\n }\n },\n paper: ({color, containerWidth}: StylesProps) => ({\n border: `3px solid ${color}`,\n borderRadius: '4px',\n width: containerWidth,\n minWidth: '160px'\n }),\n popoverRoot: {\n zIndex: '10!important' as any\n }\n}));\n","import React, {KeyboardEvent, useState} from 'react';\nimport {Popover as Popover} from '@material-ui/core';\nimport {\n AttributeType,\n attributeUriToSearchUri,\n DataTypes,\n getAttrDataTypeDefinition,\n isBooleanType,\n isLookupAttrType,\n isNumericType,\n isTimestampBasedType,\n SimpleAttributeValue\n} from '@reltio/mdm-sdk';\nimport classnames from 'classnames';\nimport {equals, isNil} from 'ramda';\nimport {DataTypeValueEditor} from '../../../editors';\nimport {attributeValueToEditorValue, editorValueToAttributeValue} from '../../editMode/SimpleAttributeEditor/utils';\nimport {useStyles} from './styles';\n\nconst DATA_TYPES_WITH_MULTILINE_EDITOR = [DataTypes.TYPE_TEXT, DataTypes.TYPE_BLOB];\n\ntype Props = {\n attributeType: AttributeType;\n attributeValue: SimpleAttributeValue;\n color: string;\n onClose: () => void;\n onEdit: (attributeValue: SimpleAttributeValue) => void;\n containerRef: React.RefObject<HTMLDivElement>;\n};\n\nexport const SimpleAttributeEditor = ({attributeType, attributeValue, color, containerRef, onClose, onEdit}: Props) => {\n const styles = useStyles({\n color,\n containerWidth: containerRef.current ? containerRef.current.getBoundingClientRect().width : 0\n });\n\n const dataTypeDefinition = getAttrDataTypeDefinition(attributeType);\n const initEditorValue = attributeValueToEditorValue(attributeValue, dataTypeDefinition);\n const [editorValue, changeEditorValue] = useState(initEditorValue);\n\n const TextFieldProps = {\n className: styles.textField,\n InputProps: {\n disableUnderline: true,\n classes: {\n root: styles.input,\n multiline: styles.inputMultiline\n }\n }\n };\n\n const applyChangesAndClose = () => {\n const editedValue = editorValueToAttributeValue(attributeType, editorValue);\n if (!isNil(editorValue) && !equals(editorValue, initEditorValue)) {\n const editedAttributeValue = isLookupAttrType(attributeType)\n ? {\n value: editedValue.value,\n lookupCode: editedValue.lookupCode\n }\n : {\n value: editorValue === '' && isNumericType(dataTypeDefinition.type) ? null : editedValue\n };\n onEdit({\n ...attributeValue,\n ...editedAttributeValue\n });\n }\n onClose();\n };\n\n const onKeyUp = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' && !DATA_TYPES_WITH_MULTILINE_EDITOR.includes(dataTypeDefinition.type)) {\n applyChangesAndClose();\n } else if (event.key === 'Escape') onClose();\n };\n\n return (\n <Popover\n open={!!containerRef}\n anchorEl={containerRef.current}\n anchorOrigin={{vertical: 'top', horizontal: 'left'}}\n transformOrigin={{vertical: 'top', horizontal: 'left'}}\n classes={{\n paper: classnames(styles.paper, {\n [styles.booleanEditor]: isBooleanType(dataTypeDefinition.type),\n [styles.timestampEditor]: isTimestampBasedType(dataTypeDefinition.type)\n }),\n root: styles.popoverRoot\n }}\n onKeyUp={onKeyUp}\n onBackdropClick={applyChangesAndClose}\n >\n <DataTypeValueEditor\n autoFocus\n dataTypeDefinition={dataTypeDefinition}\n fieldName={attributeUriToSearchUri(attributeType.uri)}\n onChange={changeEditorValue}\n TextFieldProps={TextFieldProps}\n value={editorValue}\n fullWidth\n />\n </Popover>\n );\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n menuItem: {\n minHeight: '32px',\n color: theme.palette.text.secondary\n },\n menuText: {\n color: theme.palette.text.primary,\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 0,\n marginLeft: '16px'\n },\n sourceItem: {\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)',\n paddingBottom: '8px',\n paddingLeft: '16px',\n maxWidth: '200px'\n }\n}));\n","import {MenuItem as MenuItem} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Crosswalk} from '@reltio/mdm-sdk';\nimport React, {forwardRef, ReactNode} from 'react';\nimport withTooltip from '../../../../../HOCs/withTooltip/withTooltip';\nimport SourceItem from '../../common/SourceItem';\nimport {useStyles} from './styles';\n\nconst MenuItemWithTooltip = withTooltip(MenuItem);\n\nexport type Item = {\n text?: string;\n disabled?: boolean;\n tooltip?: string;\n icon?: ReactNode;\n crosswalk?: Crosswalk;\n color?: string;\n id?: string;\n onClick?: (e) => void;\n};\n\ntype Props = {\n item: Item;\n onMenuClose?: (e) => void;\n};\n\nconst MenuItemContent = ({styles, icon, text}: Item & {styles: Record<string, string>}) => {\n return (\n <>\n {icon}\n <Typography classes={{root: styles.menuText}}>{text}</Typography>\n </>\n );\n};\n\nconst CrosswalkMenuItem = forwardRef(({item, onMenuClose = () => {}}: Props, ref: React.Ref<HTMLLIElement>) => {\n const styles = useStyles();\n const {disabled, text, tooltip, onClick, id = '', icon, crosswalk, color} = item;\n const handleClick = (e) => {\n onMenuClose(e);\n onClick(e);\n };\n return crosswalk ? (\n <SourceItem className={styles.sourceItem} color={color} crosswalk={crosswalk} focusable />\n ) : (\n <MenuItemWithTooltip\n tooltipTitle={tooltip}\n showForDisabled={true}\n classes={{root: styles.menuItem}}\n onClick={handleClick}\n disabled={disabled}\n ref={ref}\n data-reltio-id={`crosswalk-menu-item${id}`}\n >\n <MenuItemContent icon={icon} text={text} styles={styles} />\n </MenuItemWithTooltip>\n );\n});\n\nCrosswalkMenuItem.displayName = 'CrosswalkMenuItem';\n\nexport default CrosswalkMenuItem;\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n variant: 'filled' | 'outlined';\n fullyColored: boolean;\n opaque: boolean;\n color: string;\n};\n\nexport const useStyles = makeStyles(() => ({\n root: ({fullyColored, opaque, color, variant}: StylesProps) => ({\n minHeight: '28px',\n wordBreak: 'break-word',\n ...(variant === 'filled' && {\n borderRadius: '4px',\n background: fullyColored ? color : `linear-gradient(to right, ${color} 8px, rgba(0,0,0,0.05) 8px)`\n }),\n ...(variant === 'outlined' && {\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n background: color,\n borderRadius: '4px 0px 0px 4px',\n width: '8px',\n height: '100%',\n pointerEvents: 'none'\n },\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n boxSizing: 'border-box',\n borderRadius: '4px',\n border: fullyColored ? `${color} solid 2px` : 'rgba(0,0,0,0.12) solid 1px',\n width: '100%',\n height: '100%',\n pointerEvents: 'none'\n }\n }),\n display: 'flex',\n alignItems: 'center',\n opacity: opaque ? 1 : 0.38,\n transition: 'opacity 0.3s',\n position: 'relative'\n }),\n attributeValue: {\n marginLeft: '16px',\n padding: '6px 0',\n lineHeight: '14px',\n width: 'calc(100% - 71px)'\n },\n actions: {\n display: 'flex',\n width: '71px',\n justifyContent: 'flex-end',\n marginRight: '4px'\n }\n}));\n","import React, {useRef} from 'react';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport EditIcon from '@material-ui/icons/Edit';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {\n AttributeType,\n checkMetadataForDelete,\n checkMetadataForUpdate,\n Crosswalk,\n getAttrDataTypeDefinition,\n getAttributeValue,\n getLastUriPart,\n isCrosswalkDisabled,\n isTempUri,\n ModeTypes,\n RelationCrosswalk,\n SimpleAttributeValue\n} from '@reltio/mdm-sdk';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport DataTypeValue from '../../../DataTypeValue/DataTypeValue';\nimport DropDownMenuButton from '../../../DropDownMenuButton/DropDownMenuButton';\nimport {SimpleAttributeEditor} from '../SimpleAttributeEditor/SimpleAttributeEditor';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport IgnoreButton from '../common/IgnoreButton';\nimport PinButton from '../common/PinButton';\nimport CrosswalkMenuItem from './CrosswalkMenuItem/CrosswalkMenuItem';\nimport {useAttributeState} from '../hooks/useAttributeState';\nimport {useCrosswalkColor, useCrosswalkHighlight} from '../../../../contexts';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n dataReltioId?: string;\n attributeValue: SimpleAttributeValue;\n attributeType: AttributeType;\n crosswalk: Crosswalk | RelationCrosswalk;\n disableEdit?: boolean;\n disableDelete?: boolean;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n};\n\nconst SimpleAttribute = ({\n className,\n dataReltioId,\n attributeType = null,\n attributeValue,\n crosswalk,\n disableEdit,\n disableDelete,\n onIgnore,\n onEdit,\n onPin,\n onDelete\n}: Props) => {\n const {isReadingMode, isEditingMode, isHovered, onMouseEnter, onMouseLeave, setReadingMode, setEditingMode} =\n useAttributeState();\n\n const containerRef = useRef<HTMLDivElement>();\n\n const id = getLastUriPart(attributeValue.uri);\n const crosswalkDisabled = isCrosswalkDisabled(crosswalk);\n const canModifyAttribute = !attributeType.system && !crosswalkDisabled;\n const canEdit = canModifyAttribute && !disableEdit && checkMetadataForUpdate(ModeTypes.EDITING, attributeType);\n const canDelete = canModifyAttribute && !disableDelete && checkMetadataForDelete(ModeTypes.EDITING, attributeType);\n const isTemporary = isTempUri(attributeValue.uri);\n const showPin = !isTemporary && ((!isReadingMode && canEdit) || attributeValue.pin);\n const showIgnore = !isTemporary && ((!isReadingMode && canEdit) || attributeValue.ignored);\n\n const color = useCrosswalkColor(crosswalk);\n const {isHighlighted, isDimmed, highlightCrosswalk, removeHighlight} = useCrosswalkHighlight(crosswalk);\n const styles = useStyles({\n variant: crosswalkDisabled ? 'outlined' : 'filled',\n opaque: !isDimmed,\n fullyColored: isHighlighted,\n color: isDimmed ? 'rgba(0, 0, 0, 0.12)' : color\n });\n const actions = [\n {\n crosswalk,\n color\n },\n {\n disabled: !canEdit,\n text: i18n.text('Edit'),\n icon: <EditIcon />,\n tooltip: canEdit ? null : i18n.text(\"You don't have permissions to edit\"),\n onClick: () => setEditingMode(),\n id: 'edit'\n },\n {\n disabled: !canDelete,\n text: i18n.text('Delete'),\n icon: <DeleteIcon />,\n tooltip: canDelete ? null : i18n.text(\"You don't have permissions to delete\"),\n onClick: () =>\n onDelete({\n attributeType,\n attributeValue,\n crosswalks: [crosswalk]\n }),\n id: 'delete'\n }\n ];\n\n const onClose = () => {\n removeHighlight();\n setReadingMode();\n };\n\n return (\n <div\n ref={containerRef}\n className={classnames(className, styles.root)}\n onMouseEnter={() => {\n highlightCrosswalk();\n onMouseEnter();\n }}\n onMouseLeave={() => {\n removeHighlight();\n onMouseLeave();\n }}\n data-reltio-id={dataReltioId}\n >\n <div className={styles.attributeValue}>\n <DataTypeValue\n value={getAttributeValue(attributeValue)}\n dataTypeDefinition={getAttrDataTypeDefinition(attributeType)}\n />\n </div>\n <div className={styles.actions}>\n {showPin && (\n <PinButton\n isPinned={attributeValue.pin}\n onClick={() => onPin({attributeValue})}\n disabled={!canEdit}\n />\n )}\n {showIgnore && (\n <IgnoreButton\n isIgnored={attributeValue.ignored}\n onClick={() => onIgnore({attributeValue})}\n disabled={!canEdit}\n />\n )}\n {isHovered && (\n <DropDownMenuButton\n MenuItemRenderer={CrosswalkMenuItem}\n menuId={`simple-attribute-additional-actions-${id}`}\n buttonComponent={SmallIconButtonWithTooltip}\n buttonProps={{\n icon: MoreVertIcon,\n size: 'XS',\n tooltipTitle: i18n.text('More actions')\n }}\n onMenuClose={onClose}\n menuItems={actions}\n />\n )}\n </div>\n {isEditingMode && (\n <SimpleAttributeEditor\n attributeType={attributeType}\n attributeValue={attributeValue}\n color={color}\n onClose={onClose}\n onEdit={(value) => onEdit({attributeType, attributeValue: value, crosswalk})}\n containerRef={containerRef}\n />\n )}\n </div>\n );\n};\nexport default SimpleAttribute;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n simpleAttributesWrapper: {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '4px',\n width: '100%',\n minHeight: '28px'\n },\n dropIndicator: {\n height: '28px',\n color: '#828282',\n fontSize: '13px',\n lineHeight: '28px',\n background: 'rgba(0, 0, 0, 0.04)',\n border: '1px dashed #828282',\n borderRadius: '4px',\n boxSizing: 'border-box',\n padding: '0 12px'\n }\n}));\n","import React from 'react';\nimport SimpleAttribute from '../SimpleAttribute';\nimport {\n AttributeType,\n checkMetadataForCreate,\n Crosswalk,\n isEntityTypeUri,\n isEntityUri,\n isRelationTypeUri,\n isRelationUri,\n ModeTypes,\n RelationCrosswalk,\n SimpleAttributeValue\n} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\nimport {useDrop} from 'react-dnd';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeType: AttributeType;\n attributeValues: SimpleAttributeValue[];\n crosswalksMap: CrosswalksMap;\n parentUri: string;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst SimpleAttributesBlock = ({\n attributeValues,\n attributeType,\n parentUri,\n disableEdit,\n crosswalksMap,\n onAdd,\n ...props\n}: Props) => {\n const styles = useStyles();\n const [{isDragItemOver}, drop] = useDrop<\n {crosswalk: Crosswalk | RelationCrosswalk; type: 'Crosswalk'},\n unknown,\n {isDragItemOver: boolean}\n >({\n accept: 'Crosswalk',\n canDrop: ({crosswalk}) => {\n const isRelationCrosswalk = isRelationUri(crosswalk.uri) || crosswalk.ownerType === 'relation';\n const isEntityCrosswalk = isEntityUri(crosswalk.uri) && crosswalk.ownerType === 'entity';\n return (\n checkMetadataForCreate(ModeTypes.EDITING, attributeType) &&\n !disableEdit &&\n ((isRelationCrosswalk && isRelationTypeUri(attributeType.uri)) ||\n (isEntityCrosswalk && isEntityTypeUri(attributeType.uri)))\n );\n },\n collect: (monitor) => ({\n isDragItemOver: monitor.isOver() && monitor.canDrop()\n }),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n drop: ({crosswalk}, monitor) => {\n onAdd({attributeType, crosswalk, parentUri, index: attributeValues.length});\n }\n });\n let attributeIndex = 0;\n return (\n <div ref={drop} className={styles.simpleAttributesWrapper}>\n {attributeValues.map((value) =>\n crosswalksMap[value.uri]?.map((crosswalk) => (\n <SimpleAttribute\n key={value.uri + crosswalk.uri}\n attributeType={attributeType}\n attributeValue={value}\n crosswalk={crosswalk}\n disableEdit={disableEdit}\n dataReltioId={`value-index-${attributeIndex++}`}\n {...props}\n />\n ))\n )}\n {isDragItemOver && <div className={styles.dropIndicator}>{i18n.text('Drop here')}</div>}\n </div>\n );\n};\n\nexport default SimpleAttributesBlock;\n","import React from 'react';\nimport {AttributeType, checkMetadataForCreate, ModeTypes, NestedAttributeValue} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport NestedAttribute from '../NestedAttribute/NestedAttribute';\nimport {Button as Button} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\ntype Props = {\n className?: string;\n attributeType: AttributeType;\n attributeValues: NestedAttributeValue[];\n crosswalksMap: CrosswalksMap;\n parentUri: string;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst NestedAttributesBlock = ({\n className,\n attributeValues,\n attributeType,\n onAdd,\n parentUri,\n disableEdit,\n ...props\n}: Props) => {\n const canCreate = !disableEdit && checkMetadataForCreate(ModeTypes.EDITING, attributeType);\n return attributeValues.length === 0 && canCreate ? (\n <Button\n variant=\"text\"\n color=\"primary\"\n onClick={() =>\n onAdd({\n parentUri,\n attributeType,\n index: 0\n })\n }\n >\n {i18n.text('Create attribute')}\n </Button>\n ) : (\n <div className={className}>\n {attributeValues.map((value) => (\n <NestedAttribute\n key={value.uri}\n attributeValue={value}\n attributeType={attributeType}\n onAdd={onAdd}\n disableEdit={disableEdit}\n {...props}\n />\n ))}\n </div>\n );\n};\n\nexport default NestedAttributesBlock;\n","import React from 'react';\nimport {AttributeType, ReferenceAttributeValue} from '@reltio/mdm-sdk';\nimport {RelationCrosswalksMap} from '../types';\nimport ReferenceAttribute from '../ReferenceAttribute/ReferenceAttribute';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\ntype Props = {\n className?: string;\n attributeType: AttributeType;\n attributeValues: ReferenceAttributeValue[];\n crosswalksMap: RelationCrosswalksMap;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst ReferenceAttributesBlock = ({className, attributeValues, ...props}: Props) => {\n return (\n <div className={className}>\n {attributeValues.map((value) => (\n <ReferenceAttribute key={value.uri} attributeValue={value} {...props} />\n ))}\n </div>\n );\n};\n\nexport default ReferenceAttributesBlock;\n","import React from 'react';\nimport {AttributeType, ImageAttributeValue} from '@reltio/mdm-sdk';\nimport ImageAttribute from '../ImageAttribute/ImageAttribute';\nimport {CrosswalksMap} from '../types';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\ntype Props = {\n className?: string;\n attributeType: AttributeType;\n attributeValues: ImageAttributeValue[];\n crosswalksMap: CrosswalksMap;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst ImageAttributesBlock = ({className, attributeValues, ...props}: Props) => {\n return (\n <div className={className}>\n {attributeValues.map((value) => (\n <ImageAttribute key={value.uri} attributeValue={value} {...props} />\n ))}\n </div>\n );\n};\n\nexport default ImageAttributesBlock;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n wrapper: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start'\n },\n complexAttributesWrapper: {\n width: '100%'\n }\n}));\n","import React, {useState} from 'react';\nimport {AttributeType, AttributeValue, DataTypes, Paging} from '@reltio/mdm-sdk';\nimport {CrosswalksMap, RelationCrosswalksMap} from '../types';\nimport ShowMore from '../../pagersCommon/ShowMore';\nimport ShowLess from '../../pagersCommon/ShowLess';\nimport SimpleAttributesBlock from '../SimpleAttributesBlock/SimpleAttributesBlock';\nimport NestedAttributesBlock from '../NestedAttributesBlock/NestedAttributesBlock';\nimport ReferenceAttributesBlock from '../ReferenceAttributesBlock/ReferenceAttributesBlock';\nimport ImageAttributesBlock from '../ImageAttributesBlock/ImageAttributesBlock';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\nimport {propOr} from 'ramda';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeType: AttributeType;\n attributeValues: AttributeValue[];\n parentUri: string;\n paging?: Paging;\n max?: number;\n crosswalksMap: CrosswalksMap;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n requestNextPage?: () => void;\n};\n\nconst AttributesPager = ({\n attributeType,\n attributeValues = [],\n paging = {},\n max = Infinity,\n requestNextPage,\n ...props\n}: Props) => {\n const styles = useStyles();\n\n const [visibleValuesCount, setVisibleValuesCount] = useState(max);\n\n const totalValues = propOr(attributeValues.length, 'totalValues', paging);\n\n const hasPaging = max < totalValues;\n const showMore = hasPaging && visibleValuesCount < totalValues;\n const showLess = hasPaging && visibleValuesCount >= totalValues;\n const onShowMore = () => {\n if (attributeValues.length < totalValues) {\n requestNextPage(); // TODO: implement\n }\n setVisibleValuesCount(visibleValuesCount + max);\n };\n const onShowLess = () => {\n setVisibleValuesCount(max);\n };\n\n const shownValues = attributeValues.slice(0, visibleValuesCount);\n const hiddenValuesCount = totalValues - visibleValuesCount;\n\n const renderValues = (values) => {\n switch (attributeType.type) {\n case DataTypes.TYPE_NESTED:\n return (\n <NestedAttributesBlock\n className={styles.complexAttributesWrapper}\n attributeValues={values}\n attributeType={attributeType}\n {...props}\n />\n );\n case DataTypes.TYPE_REFERENCE: {\n const {crosswalksMap, ...other} = props;\n return (\n <ReferenceAttributesBlock\n className={styles.complexAttributesWrapper}\n attributeValues={values}\n attributeType={attributeType}\n crosswalksMap={crosswalksMap as RelationCrosswalksMap}\n {...other}\n />\n );\n }\n case DataTypes.TYPE_IMAGE: {\n return (\n <ImageAttributesBlock\n className={styles.complexAttributesWrapper}\n attributeValues={values}\n attributeType={attributeType}\n {...props}\n />\n );\n }\n default:\n return <SimpleAttributesBlock attributeValues={values} attributeType={attributeType} {...props} />;\n }\n };\n\n return (\n <div className={styles.wrapper}>\n {renderValues(shownValues)}\n {showMore && (\n <ShowMore\n moreNumber={Math.min(max, hiddenValuesCount)}\n valueNumber={hiddenValuesCount}\n onClick={onShowMore}\n />\n )}\n {showLess && <ShowLess onClick={onShowLess} />}\n </div>\n );\n};\n\nexport default AttributesPager;\n","import React from 'react';\nimport {Crosswalk, isCrosswalkDisabled} from '@reltio/mdm-sdk';\nimport {useCrosswalkColor, useCrosswalkHighlight} from '../../../../contexts';\nimport SourceItem from './SourceItem';\nimport LightArrowTooltip from '../../../LightArrowTooltip/LightArrowTooltip';\nimport classnames from 'classnames';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: Crosswalk;\n className?: string;\n};\n\nconst CrosswalkIcon = ({crosswalk, className}: Props) => {\n const color = useCrosswalkColor(crosswalk);\n const isDisabled = isCrosswalkDisabled(crosswalk);\n const {isDimmed, highlightCrosswalk, removeHighlight} = useCrosswalkHighlight(crosswalk);\n const styles = useStyles({isOpaque: !isDimmed, color: isDimmed ? 'rgba(0, 0, 0, 0.12)' : color, isDisabled});\n return (\n <LightArrowTooltip title={<SourceItem crosswalk={crosswalk} color={color} />} placement={'top'}>\n <div\n data-reltio-id=\"crosswalk-icon\"\n className={classnames(styles.crosswalkIcon, className)}\n onMouseEnter={() => highlightCrosswalk()}\n onMouseLeave={() => removeHighlight()}\n />\n </LightArrowTooltip>\n );\n};\n\nexport default CrosswalkIcon;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n title: {\n fontSize: '12px',\n lineHeight: '14px',\n paddingBottom: '4px',\n display: 'inline-block',\n color: theme.palette.text.secondary\n }\n}));\n","import React from 'react';\nimport {AttributeType, AttributeValue, isReadableAttribute, RecordAttributesType} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport AttributesPager from '../AttributesPager/AttributesPager';\nimport {path} from 'ramda';\nimport Title from '../../../Title/Title';\nimport BranchDecorator from '../../BranchDecorator/BranchDecorator';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeTypes: AttributeType[];\n attributes: RecordAttributesType;\n parentUri: string;\n crosswalksMap: CrosswalksMap;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst AttributesList = ({attributeTypes, attributes, ...props}: Props) => {\n const styles = useStyles();\n\n return (\n <>\n {attributeTypes.filter(isReadableAttribute).map((attributeType) => (\n <BranchDecorator key={attributeType.uri} enabled={true}>\n <Title className={styles.title} label={attributeType.label} />\n <AttributesPager\n attributeType={attributeType}\n attributeValues={attributes[attributeType.name] as AttributeValue[]}\n paging={path(['paging', attributeType.uri], attributes)}\n {...props}\n />\n </BranchDecorator>\n ))}\n </>\n );\n};\n\nexport default AttributesList;\n","import React from 'react';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport i18n from 'ui-i18n';\n\ntype Props = {\n onClick: () => void;\n};\n\nconst DeleteButton = ({onClick}: Props) => {\n return (\n <SmallIconButtonWithTooltip\n icon={DeleteIcon}\n tooltipTitle={i18n.text('Delete')}\n onClick={onClick}\n size=\"XS\"\n disableRipple\n />\n );\n};\n\nexport default DeleteButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n root: {\n display: 'flex',\n minHeight: '20px'\n },\n actions: {\n display: 'flex',\n width: '65px',\n justifyContent: 'flex-end',\n flexShrink: 0,\n alignSelf: 'center'\n },\n crosswalkIcon: {\n display: 'inline-block',\n verticalAlign: 'middle',\n '& + &': {\n marginLeft: '4px'\n }\n }\n}));\n","import React, {useState} from 'react';\nimport {\n areOneHierarchyUris,\n AttributeType,\n checkMetadataForDelete,\n checkMetadataForUpdate,\n ComplexAttributeValue,\n Crosswalk,\n isTempUri,\n getCrosswalkId,\n ModeTypes\n} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport {useAttributeState} from '../hooks/useAttributeState';\nimport {Spacer} from '../../../index';\nimport CrosswalkIcon from '../common/CrosswalkIcon';\nimport {flatten, pickBy, pipe, prop, uniqBy, values} from 'ramda';\nimport ArrowExpandButton from '../../../ArrowExpandButton/ArrowExpandButton';\nimport AttributesList from '../AttributesList/AttributesList';\nimport PinButton from '../common/PinButton';\nimport IgnoreButton from '../common/IgnoreButton';\nimport DeleteButton from '../common/DeleteButton';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\nimport {useDidUpdateEffect} from '../../../../hooks';\nimport {useAttributeExpanded} from '../../../../contexts';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeValue: ComplexAttributeValue;\n attributeType: AttributeType;\n label: React.ReactNode;\n lazy?: boolean;\n attributeTypesList: AttributeType[];\n crosswalksMap: CrosswalksMap;\n disableEdit?: boolean;\n disableDelete?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst ComplexAttribute = ({\n attributeType,\n attributeValue,\n attributeTypesList,\n label,\n crosswalksMap,\n disableEdit,\n disableDelete,\n onPin,\n onIgnore,\n onDelete,\n onEdit,\n onAdd\n}: Props) => {\n const styles = useStyles();\n\n const {isReadingMode, onMouseEnter, onMouseLeave} = useAttributeState();\n const canEdit = !disableEdit && checkMetadataForUpdate(ModeTypes.EDITING, attributeType);\n const canDelete = !disableDelete && checkMetadataForDelete(ModeTypes.EDITING, attributeType);\n const isTemporary = isTempUri(attributeValue.uri);\n const showPin = !isTemporary && ((!isReadingMode && canEdit) || attributeValue.pin);\n const showIgnore = !isTemporary && ((!isReadingMode && canEdit) || attributeValue.ignored);\n const showDelete = !isReadingMode && canDelete;\n const expandedFromContext = useAttributeExpanded(attributeValue.uri);\n const [expanded, setExpanded] = useState(expandedFromContext || isTemporary);\n useDidUpdateEffect(() => {\n if (expandedFromContext) setExpanded(expandedFromContext);\n }, [expandedFromContext]);\n\n const crosswalks: Crosswalk[] = pipe(\n pickBy((val, attrUri) => areOneHierarchyUris(attrUri, attributeValue?.uri)),\n values,\n flatten,\n uniqBy(prop('uri'))\n )(crosswalksMap);\n\n return (\n <>\n <div className={styles.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <ArrowExpandButton onClick={() => setExpanded((value) => !value)} expanded={expanded} />\n <span>\n {label}\n {crosswalks.map((crosswalk) => (\n <CrosswalkIcon\n key={getCrosswalkId(crosswalk)}\n crosswalk={crosswalk}\n className={styles.crosswalkIcon}\n />\n ))}\n </span>\n <Spacer />\n <div className={styles.actions}>\n {showPin && (\n <PinButton\n disabled={!canEdit}\n isPinned={attributeValue.pin}\n onClick={() => onPin({attributeValue})}\n />\n )}\n {showIgnore && (\n <IgnoreButton\n disabled={!canEdit}\n isIgnored={attributeValue.ignored}\n onClick={() => onIgnore({attributeValue})}\n />\n )}\n {showDelete && (\n <DeleteButton\n onClick={() =>\n onDelete({\n attributeType,\n attributeValue,\n crosswalks: crosswalksMap[attributeValue.uri]\n })\n }\n />\n )}\n </div>\n </div>\n {expanded && (\n <AttributesList\n attributeTypes={attributeTypesList}\n attributes={attributeValue.value}\n parentUri={attributeValue.uri}\n crosswalksMap={crosswalksMap}\n disableEdit={!canEdit}\n disableDelete={!canDelete}\n onPin={onPin}\n onIgnore={onIgnore}\n onDelete={onDelete}\n onEdit={onEdit}\n onAdd={onAdd}\n />\n )}\n </>\n );\n};\n\nexport default ComplexAttribute;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n image: {\n borderRadius: '4px',\n background: 'white',\n display: 'inline-block',\n verticalAlign: 'middle'\n },\n imageContainer: {\n display: 'inline',\n lineHeight: '45px',\n paddingRight: '8px'\n }\n}));\n","import React from 'react';\nimport {AttributeType, getImageAttributeThumbnailUrl, ImageAttributeValue} from '@reltio/mdm-sdk';\nimport Image from '../../../Image/Image';\nimport ComplexAttribute from '../ComplexAttribute/ComplexAttribute';\nimport {CrosswalksMap} from '../types';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {useStyles} from './styles';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\nconst IMAGE_SIZE = {imageWidth: 55, imageHeight: 45};\n\ntype Props = {\n attributeValue: ImageAttributeValue;\n attributeType: AttributeType;\n crosswalksMap: CrosswalksMap;\n disableEdit?: boolean;\n disableDelete?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst ImageAttribute = ({attributeValue, attributeType, ...other}: Props) => {\n const styles = useStyles();\n\n return (\n <ComplexAttribute\n attributeValue={attributeValue}\n attributeType={attributeType}\n attributeTypesList={attributeType.attributes}\n label={\n <Image\n containerClassName={styles.imageContainer}\n className={styles.image}\n src={getImageAttributeThumbnailUrl(attributeValue)}\n size={IMAGE_SIZE}\n />\n }\n {...other}\n />\n );\n};\n\nexport default ImageAttribute;\n","import React from 'react';\nimport {AttributeType, getLabel, NestedAttributeValue} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport ComplexAttribute from '../ComplexAttribute/ComplexAttribute';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {ComplexAttributeLabel} from '../common/ComplexAttributeLabel';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\n\ntype Props = {\n attributeValue: NestedAttributeValue;\n attributeType: AttributeType;\n crosswalksMap: CrosswalksMap;\n disableEdit?: boolean;\n disableDelete?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst NestedAttribute = ({attributeValue, attributeType, ...other}: Props) => {\n const label = <ComplexAttributeLabel>{getLabel(attributeValue?.label)}</ComplexAttributeLabel>;\n return (\n <ComplexAttribute\n attributeValue={attributeValue}\n attributeType={attributeType}\n attributeTypesList={attributeType.attributes}\n label={label}\n {...other}\n />\n );\n};\n\nexport default NestedAttribute;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n relationshipLabel: {\n marginLeft: '4px',\n color: theme.palette.text.primary\n }\n}));\n","import React, {useContext} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n AttributeType,\n findAttributeTypeByUri,\n getLabel,\n getReferencedEntityUriFromAttrValue,\n getReferencedRelationAttrTypesUris,\n ReferenceAttributeValue\n} from '@reltio/mdm-sdk';\nimport {RelationCrosswalksMap} from '../types';\nimport ComplexAttribute from '../ComplexAttribute/ComplexAttribute';\nimport {isNil, map, pipe, reject} from 'ramda';\nimport {DeleteAttributeEvent} from '../types/DeleteAttributeEvent';\nimport {PinAttributeEvent} from '../types/PinAttributeEvent';\nimport {IgnoreAttributeEvent} from '../types/IgnoreAttributeEvent';\nimport {EditAttributeEvent} from '../types/EditAttributeEvent';\nimport {AddAttributeEvent} from '../types/AddAttributeEvent';\nimport {ComplexAttributeLabel} from '../common/ComplexAttributeLabel';\nimport InternalLink from '../../../InternalLink/InternalLink';\nimport {UrlGeneratorsContext} from '../../../../contexts';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n attributeValue: ReferenceAttributeValue;\n attributeType: AttributeType;\n crosswalksMap: RelationCrosswalksMap;\n disableEdit?: boolean;\n disableDelete?: boolean;\n onPin: (event: PinAttributeEvent) => void;\n onIgnore: (event: IgnoreAttributeEvent) => void;\n onDelete: (event: DeleteAttributeEvent) => void;\n onEdit: (event: EditAttributeEvent) => void;\n onAdd: (event: AddAttributeEvent) => void;\n};\n\nconst ReferenceAttribute = ({attributeValue, attributeType, ...other}: Props) => {\n const styles = useStyles();\n const {generateEntityUrl} = useContext(UrlGeneratorsContext);\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const uiPath = useSelector(mdmModule.selectors.getUIPath);\n\n const entityLabel = (\n <ComplexAttributeLabel>\n <InternalLink href={generateEntityUrl({uiPath, uri: getReferencedEntityUriFromAttrValue(attributeValue)})}>\n {getLabel(attributeValue.label)}\n {attributeValue.relationshipLabel && (\n <span className={styles.relationshipLabel}>{attributeValue.relationshipLabel}</span>\n )}\n </InternalLink>\n </ComplexAttributeLabel>\n );\n\n const attributeTypesList = pipe(\n getReferencedRelationAttrTypesUris,\n map((attrTypeUri) => findAttributeTypeByUri(metadata, attrTypeUri)),\n reject(isNil)\n )(attributeType);\n\n return (\n <ComplexAttribute\n attributeValue={attributeValue}\n attributeType={attributeType}\n attributeTypesList={attributeTypesList}\n label={entityLabel}\n {...other}\n />\n );\n};\n\nexport default ReferenceAttribute;\n","import React from 'react';\nimport {Typography as Typography} from '@material-ui/core';\nimport {useComplexAttributeLabelStyles} from './styles';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nexport const ComplexAttributeLabel = ({children}: Props) => {\n const styles = useComplexAttributeLabelStyles();\n\n return (\n <Typography component=\"span\" variant=\"body2\" classes={{body2: styles.label}}>\n {children}\n </Typography>\n );\n};\n","import React from 'react';\n\nconst SvgIgnored: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M12 3.5A8.503 8.503 0 003.5 12c0 4.692 3.808 8.5 8.5 8.5s8.5-3.808 8.5-8.5-3.808-8.5-8.5-8.5zM6.1 12c0-3.26 2.64-5.9 5.9-5.9 1.161 0 2.24.336 3.149.917L7.017 15.15A5.821 5.821 0 016.101 12zm5.9 5.9c-1.16 0-2.24-.336-3.148-.917l8.131-8.131c.581.908.917 1.987.917 3.148 0 3.26-2.64 5.9-5.9 5.9z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgIgnored;\n","import React from 'react';\n\nconst SvgIgnoredOutlined: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.847 9.402a6.34 6.34 0 00-.8-1.322L8.08 17.048A6.34 6.34 0 0012 18.4a6.398 6.398 0 005.847-8.998zm-7.283 7.283l6.121-6.121a4.898 4.898 0 01-6.121 6.121zm1.437-11.084a6.334 6.334 0 013.92 1.352L6.953 15.92A6.334 6.334 0 015.6 12c0-3.536 2.864-6.4 6.4-6.4zm0 1.5c.5 0 .982.075 1.436.215l-6.121 6.12A4.898 4.898 0 0112 7.1zM6.6 17.903A7.967 7.967 0 0012 20c4.417-.001 8.001-3.585 8.001-8.001a7.967 7.967 0 00-2.601-5.902A7.988 7.988 0 0012 4c-4.416 0-8 3.584-8 8a7.967 7.967 0 002.602 5.902zM12 2.5c-5.244 0-9.5 4.256-9.5 9.5s4.256 9.5 9.5 9.5 9.5-4.256 9.5-9.5-4.256-9.5-9.5-9.5z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgIgnoredOutlined;\n","import React from 'react';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport IgnoredIcon from '../../../../icons/Ignored';\nimport IgnoredOutlinedIcon from '../../../../icons/IgnoredOutlined';\nimport i18n from 'ui-i18n';\n\ntype Props = {\n isIgnored: boolean;\n onClick: () => void;\n disabled?: boolean;\n};\n\nconst IgnoreButton = ({isIgnored, onClick, disabled}: Props) => {\n return (\n <SmallIconButtonWithTooltip\n disabled={disabled}\n showForDisabled={true}\n icon={isIgnored ? IgnoredIcon : IgnoredOutlinedIcon}\n tooltipTitle={disabled ? i18n.text(\"You don't have permissions to ignore\") : i18n.text('Ignore')}\n onClick={onClick}\n size=\"XS\"\n disableRipple\n />\n );\n};\n\nexport default IgnoreButton;\n","import React from 'react';\n\nconst SvgPin: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16 4v6l2 2v2h-5v7l-.992 1L11 21v-7H6v-2l2-2V4H7V2h10v2h-1z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgPin;\n","import React from 'react';\n\nconst SvgPinOutlined: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16 10V4h1V2H7v2h1v6l-2 2v2h5v7l1.008 1L13 21v-7h5v-2l-2-2zm-6-6h4v7l1 1H9l1-1V4z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgPinOutlined;\n","import React from 'react';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport PinIcon from '../../../../icons/Pin';\nimport PinOutlinedIcon from '../../../../icons/PinOutlined';\nimport i18n from 'ui-i18n';\n\ntype Props = {\n isPinned: boolean;\n onClick: () => void;\n disabled?: boolean;\n};\n\nconst PinButton = ({isPinned, onClick, disabled}: Props) => {\n return (\n <SmallIconButtonWithTooltip\n disabled={disabled}\n showForDisabled={true}\n onClick={onClick}\n icon={isPinned ? PinIcon : PinOutlinedIcon}\n tooltipTitle={disabled ? \"You don't have permissions to pin\" : i18n.text('Pin')}\n size=\"XS\"\n disableRipple\n />\n );\n};\n\nexport default PinButton;\n","import React from 'react';\nimport i18n from 'ui-i18n';\n\nimport mdmModule from '@reltio/mdm-module';\nimport {Crosswalk, findSourceSystemByUri, Source} from '@reltio/mdm-sdk';\nimport {useSelector} from 'react-redux';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport classnames from 'classnames';\n\nimport {useCrosswalkFocus} from '../../../../contexts';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: Crosswalk;\n color: string;\n focusable?: boolean;\n className?: string;\n};\n\nconst SourceItem = ({crosswalk, color, className, focusable = false}: Props) => {\n const {toggleCrosswalkFocus, isFocused} = useCrosswalkFocus(crosswalk);\n const styles = useStyles({color, isFocused});\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const {label} = findSourceSystemByUri(metadata, crosswalk.type) as Source;\n return (\n <div className={classnames(styles.sourceItem, className)}>\n <SourceIcon className={styles.sourceIcon} sourceType={crosswalk.type} />\n <div className={styles.sourceInfo}>\n <div>\n <span className={styles.label}>{label}</span>\n {focusable && (\n <SmallIconButtonWithTooltip\n icon={VisibilityIcon}\n className={styles.eyeIcon}\n size={'XXS'}\n tooltipTitle={i18n.text('Focus')}\n onClick={() => toggleCrosswalkFocus()}\n />\n )}\n </div>\n <div className={styles.crosswalkValue}>{crosswalk.value}</div>\n </div>\n </div>\n );\n};\n\nexport default SourceItem;\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color: string;\n isOpaque?: boolean;\n isFocused?: boolean;\n isDisabled?: boolean;\n};\n\nexport const useStyles = makeStyles({\n sourceItem: {\n display: 'flex',\n overflow: 'hidden'\n },\n eyeIcon: ({isFocused}: StylesProps) => ({\n marginLeft: '10px',\n color: isFocused ? '#000' : 'rgba(0, 0, 0, 0.54)'\n }),\n label: {\n color: 'rgba(0, 0, 0, 0.87)',\n verticalAlign: 'top',\n fontSize: '13px',\n lineHeight: '16px'\n },\n sourceInfo: {\n overflow: 'hidden'\n },\n crosswalkValue: {\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: '12px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n sourceIcon: ({color}: StylesProps) => ({\n height: '16px',\n width: '16px',\n marginRight: '9px',\n fontSize: '14px',\n backgroundColor: color\n }),\n crosswalkIcon: ({color, isOpaque, isDisabled}: StylesProps) => ({\n backgroundColor: isDisabled ? '#fff' : color,\n border: isDisabled ? `2px solid ${color}` : null,\n height: '12px',\n width: '12px',\n boxSizing: 'border-box',\n borderRadius: '30px',\n opacity: isOpaque ? 1 : 0.38,\n transition: 'opacity 0.3s'\n })\n});\n\nexport const useComplexAttributeLabelStyles = makeStyles(() => ({\n label: {\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 'normal',\n marginLeft: '2px',\n marginRight: '8px'\n }\n}));\n","import {debounce} from '@reltio/mdm-sdk';\nimport {useCallback, useEffect, useState} from 'react';\n\nenum AttributeStates {\n READING = 'READING',\n HOVERED = 'HOVERED',\n EDITING = 'EDITING'\n}\n\nconst HIDE_INTERVAL = 50;\n\nexport const useAttributeState = () => {\n const [attributeState, setAttributeState] = useState<AttributeStates>(null);\n const isReadingMode = attributeState === AttributeStates.READING;\n const isEditingMode = attributeState === AttributeStates.EDITING;\n const isHovered = attributeState === AttributeStates.HOVERED;\n\n useEffect(() => {\n setAttributeState(AttributeStates.READING);\n }, []);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const setAttributeStateDebounced = useCallback(debounce(setAttributeState, HIDE_INTERVAL), []);\n\n const onMouseEnter = useCallback(() => {\n if (!isEditingMode) setAttributeStateDebounced(AttributeStates.HOVERED);\n }, [setAttributeStateDebounced, isEditingMode]);\n\n const onMouseLeave = useCallback(() => {\n if (!isEditingMode) setAttributeStateDebounced(AttributeStates.READING);\n }, [setAttributeStateDebounced, isEditingMode]);\n\n const setReadingMode = useCallback(() => setAttributeState(AttributeStates.READING), [setAttributeState]);\n const setEditingMode = useCallback(() => setAttributeState(AttributeStates.EDITING), [setAttributeState]);\n\n return {\n setReadingMode,\n setEditingMode,\n onMouseLeave,\n onMouseEnter,\n isReadingMode,\n isEditingMode,\n isHovered\n };\n};\n","import {AttributeType, AttributeValue, DataTypes, ImageAttributeValue} from '@reltio/mdm-sdk';\nimport React, {memo} from 'react';\nimport {ReadOnlyAttribute} from '../../..';\nimport ImageAttributesLine from '../ImageAttributesLine';\n\ntype SlotParams<T> = {\n attributeType?: AttributeType;\n attributeValue: T;\n};\ntype Props = {\n values: AttributeValue[];\n attributeType: AttributeType;\n expanded?: boolean;\n valueContainerClassName?: string;\n LabelRenderer?: ({attributeType, attributeValue}: SlotParams<AttributeValue>) => JSX.Element;\n RightSlot?: ({attributeType, attributeValue}: SlotParams<AttributeValue>) => JSX.Element;\n showNonOv?: boolean;\n};\n\nconst renderAttributesList = ({values, valueContainerClassName, ...props}: Props) => {\n return (\n <>\n {(values || []).map((attributeValue) => (\n <div key={attributeValue.uri} className={valueContainerClassName}>\n <ReadOnlyAttribute attributeValue={attributeValue} {...props} />\n </div>\n ))}\n </>\n );\n};\n\nconst AttributeValuesBlock = ({expanded, LabelRenderer, RightSlot, ...props}: Props) => {\n const {attributeType, values, valueContainerClassName} = props;\n switch (attributeType.type) {\n case DataTypes.TYPE_NESTED:\n case DataTypes.TYPE_REFERENCE: {\n return renderAttributesList({expanded, LabelRenderer, RightSlot, ...props});\n }\n case DataTypes.TYPE_IMAGE: {\n return (\n <div className={valueContainerClassName}>\n <ImageAttributesLine\n attributeType={attributeType}\n attributeValues={values as ImageAttributeValue[]}\n imageSize={{imageHeight: 40, imageWidth: 40, imageMargin: 2}}\n />\n </div>\n );\n }\n default: {\n return renderAttributesList({...props});\n }\n }\n};\n\nexport default memo(AttributeValuesBlock);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n coloredCell: {\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n height: '100%',\n background: 'rgba(0,0,0,0.06)',\n pointerEvents: 'none'\n }\n },\n headCell: {\n display: 'flex',\n alignItems: 'center',\n fontSize: '12px',\n height: '100%',\n color: theme.palette.text.secondary\n },\n rowCell: {\n fontSize: '13px',\n overflow: 'hidden'\n },\n cellValueWrapper: {\n padding: '15px 15px 0 15px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n },\n attributeTitle: {\n display: 'block',\n marginLeft: '3px',\n '&:not(:last-child)': {\n marginBottom: '5px'\n }\n },\n ovValue: {\n '& + &': {\n marginTop: '4px'\n }\n },\n count: {\n textAlign: 'center'\n },\n ruleType: {\n display: 'flex',\n alignItems: 'center'\n },\n ruleTypeLabel: {\n marginRight: '5px'\n },\n rulePopup: {\n width: '270px',\n overflowY: 'hidden'\n },\n popupItem: {\n paddingBottom: '5px',\n paddingTop: '5px'\n },\n sourceIcon: {\n height: '16px',\n width: '16px',\n marginRight: '9px',\n fontSize: '14px'\n },\n closeButton: {\n height: 24,\n width: 24\n },\n popupTitle: {\n fontWeight: 500,\n marginLeft: '12px'\n },\n popupTitleWrapper: {\n display: 'flex',\n paddingLeft: 16,\n paddingTop: 16\n },\n popupItemsWrapper: {\n overflowY: 'auto',\n maxHeight: '280px'\n },\n winnerSourceItemWrapper: {\n paddingBottom: '2px',\n paddingTop: '2px'\n },\n winnerSourceItem: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n paddingLeft: '8px'\n },\n winnerSourceItemLabel: {\n fontSize: 13\n }\n}));\n","import React from 'react';\n\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst HeadCellRenderer = (props: React.PropsWithChildren<Record<string, unknown>>) => {\n const styles = useStyles();\n return (\n <div className={classnames(styles.headCell, styles.coloredCell)}>\n <DefaultHeadCellRenderer {...props} />\n {props.children}\n </div>\n );\n};\n\nexport default HeadCellRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n marginBottom: '-6px'\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport {AddInlineAttributeEvent} from '../../../attributes/inline';\nimport MoreAttributesButton from '../../../attributes/editMode/MoreAttributesButton/MoreAttributesButton';\nimport {withTableContext} from '../../../BasicTableView';\nimport i18n from 'ui-i18n';\nimport {both, either, filter, pick, pipe, propEq, propOr, reject} from 'ramda';\nimport {\n AttributeType,\n checkCanCreateAttribute,\n isImage,\n isNested,\n isReadableAttribute,\n isReference,\n ModeTypes\n} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n parentUri: string;\n parentTypeUri: string;\n selectedAttributeTypes?: AttributeType[];\n onSelectAttributeTypes: (selected: AttributeType[]) => void;\n onAdd: (event: AddInlineAttributeEvent) => void;\n};\n\nexport const AddAttributesButton = ({\n parentTypeUri,\n parentUri,\n selectedAttributeTypes,\n onSelectAttributeTypes,\n onAdd\n}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const parentType = [...metadata.entityTypes, ...(metadata.relationTypes || [])].find(propEq('uri', parentTypeUri));\n const isNotSelected = (attrType: AttributeType) => !selectedAttributeTypes?.find(propEq('uri', attrType.uri));\n const canCreate = (attributeType) => checkCanCreateAttribute({attributeType, mode: ModeTypes.EDITING});\n\n const data = pipe(\n propOr([], 'attributes'),\n reject(either(isReference, isImage)),\n filter(either(isNested, isNotSelected)),\n filter(both(isReadableAttribute, canCreate))\n )(parentType);\n\n const handleAdd = (addedTypes: AttributeType[]) => {\n const typesToSelect = addedTypes.filter(isNotSelected);\n if (typesToSelect.length > 0) {\n onSelectAttributeTypes([...typesToSelect, ...selectedAttributeTypes]);\n }\n addedTypes.filter(isNested).forEach((attributeType) => {\n onAdd({attributeType, parentUri});\n });\n };\n\n return (\n <div className={styles.root}>\n <MoreAttributesButton\n label={i18n.text('Attribute')}\n popupTitle={i18n.text('Add attributes')}\n data={data}\n onApply={handleAdd}\n />\n </div>\n );\n};\n\nexport default withTableContext(\n pick(['parentUri', 'parentTypeUri', 'onAdd', 'selectedAttributeTypes', 'onSelectAttributeTypes'])\n)(AddAttributesButton);\n","import React from 'react';\nimport HeadCellRenderer from './HeadCellRenderer';\nimport AddAttributesButton from '../AddAttributesButton/AddAttributesButton';\nimport Spacer from '../../../Spacer/Spacer';\nimport {withTableContext} from '../../../BasicTableView';\nimport {pick} from 'ramda';\n\ntype Props = {\n readOnly?: boolean;\n headCellData: {\n label: string;\n };\n};\n\nexport const AttributesHeadCellRenderer = ({readOnly, ...props}: Props) => {\n return readOnly ? (\n <HeadCellRenderer {...props} />\n ) : (\n <HeadCellRenderer {...props}>\n <Spacer />\n <AddAttributesButton />\n </HeadCellRenderer>\n );\n};\n\nexport default withTableContext(pick(['readOnly']))(AttributesHeadCellRenderer);\n","import React from 'react';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n value: unknown;\n};\n\nconst DefaultCellValueRenderer = ({value}: Props) => {\n const styles = useStyles();\n return <div className={styles.cellValueWrapper}>{value}</div>;\n};\n\nexport default DefaultCellValueRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n simpleAttributeWrapper: {\n padding: '15px'\n },\n complexAttributeWrapper: {\n padding: '15px',\n '& + &': {\n borderTop: '1px solid rgba(0,0,0,.1)'\n }\n }\n}));\n","import React from 'react';\nimport {InlineAttributesPager} from '../../../../attributes/inline';\nimport {AttributesRendererProps} from './AttributesFactory';\nimport {SimpleAttributeValue} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\nconst SimpleAttributesRenderer = ({attributeValues, ...props}: AttributesRendererProps) => {\n const styles = useStyles();\n return (\n <div className={styles.simpleAttributeWrapper}>\n <InlineAttributesPager attributeValues={attributeValues as SimpleAttributeValue[]} {...props} />\n </div>\n );\n};\n\nexport default SimpleAttributesRenderer;\n","import React from 'react';\nimport {AttributesRendererProps} from './AttributesFactory';\nimport {InlineNestedAttribute} from '../../../../attributes/inline';\nimport {NestedAttributeValue} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst NestedAttributesRenderer = ({attributeValues, ...props}: AttributesRendererProps) => {\n const styles = useStyles();\n const nestedValues = attributeValues?.map((attributeValue, i) => {\n return (\n <div\n key={attributeValue?.uri}\n className={styles.complexAttributeWrapper}\n data-reltio-id={`value-index-${i}`}\n >\n <InlineNestedAttribute attributeValue={attributeValue as NestedAttributeValue} {...props} />\n </div>\n );\n });\n return <>{nestedValues}</>;\n};\n\nexport default NestedAttributesRenderer;\n","import React from 'react';\nimport {AttributesRendererProps} from './AttributesFactory';\nimport {InlineReferenceAttribute, RelationCrosswalksMap} from '../../../../attributes/inline';\nimport {ReferenceAttributeValue} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst ReferenceAttributesRenderer = ({attributeValues, crosswalksMap, ...props}: AttributesRendererProps) => {\n const styles = useStyles();\n const referenceValues = attributeValues?.map((attributeValue, i) => {\n return (\n <div\n key={attributeValue?.uri}\n className={styles.complexAttributeWrapper}\n data-reltio-id={`value-index-${i}`}\n >\n <InlineReferenceAttribute\n attributeValue={attributeValue as ReferenceAttributeValue}\n crosswalksMap={crosswalksMap as RelationCrosswalksMap}\n {...props}\n />\n </div>\n );\n });\n return <>{referenceValues}</>;\n};\n\nexport default ReferenceAttributesRenderer;\n","import React from 'react';\nimport {AttributesRendererProps} from './AttributesFactory';\nimport {InlineImageAttribute} from '../../../../attributes/inline';\nimport {ImageAttributeValue} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst ImageAttributesRenderer = ({attributeValues, ...props}: AttributesRendererProps) => {\n const styles = useStyles();\n\n return (\n <>\n {attributeValues?.map((attributeValue, i) => (\n <div\n key={attributeValue?.uri}\n className={styles.complexAttributeWrapper}\n data-reltio-id={`value-index-${i}`}\n >\n <InlineImageAttribute attributeValue={attributeValue as ImageAttributeValue} {...props} />\n </div>\n ))}\n </>\n );\n};\n\nexport default ImageAttributesRenderer;\n","import {AttributeType, AttributeValue} from '@reltio/mdm-sdk';\nimport AttributesFactory from './attribute-renderers/AttributesFactory';\nimport {\n AddInlineAttributeEvent,\n CrosswalksMap,\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent,\n IgnoreInlineAttributeEvent,\n PinInlineAttributeEvent\n} from '../../../attributes/inline';\nimport {withTableContext} from '../../../BasicTableView';\nimport {pick} from 'ramda';\n\ntype Props = {\n value: {\n attributeValues?: AttributeValue[];\n attributeType: AttributeType;\n crosswalksMap: CrosswalksMap;\n };\n onDelete: (event: DeleteInlineAttributeEvent) => void;\n onEdit: (event: EditInlineAttributeEvent) => void;\n onPin: (event: PinInlineAttributeEvent) => void;\n onIgnore: (event: IgnoreInlineAttributeEvent) => void;\n onAdd: (event: AddInlineAttributeEvent) => void;\n parentUri: string;\n readOnly?: boolean;\n};\n\nexport const AttributeValuesRenderer = ({\n value,\n onDelete,\n onEdit,\n onPin,\n onIgnore,\n onAdd,\n parentUri,\n readOnly\n}: Props) => {\n return AttributesFactory.build(value.attributeType.type, {\n ...value,\n parentUri,\n onDelete,\n onEdit,\n onPin,\n onIgnore,\n onAdd,\n disableEdit: readOnly,\n disableDelete: readOnly\n });\n};\n\nexport default withTableContext(pick(['onDelete', 'onPin', 'onIgnore', 'onEdit', 'onAdd', 'parentUri', 'readOnly']))(\n AttributeValuesRenderer\n);\n","import React from 'react';\nimport {AttributeType, AttributeValue, DataTypes} from '@reltio/mdm-sdk';\nimport SimpleAttributesRenderer from './SimpleAttributesRenderer';\nimport NestedAttributesRenderer from './NestedAttributesRenderer';\nimport ReferenceAttributesRenderer from './ReferenceAttributesRenderer';\nimport ImageAttributesRenderer from './ImageAttributesRenderer';\nimport {\n AddInlineAttributeEvent,\n CrosswalksMap,\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent,\n IgnoreInlineAttributeEvent,\n PinInlineAttributeEvent\n} from '../../../../attributes/inline';\n\nexport type AttributesRendererProps = {\n attributeValues?: AttributeValue[];\n attributeType: AttributeType;\n crosswalksMap: CrosswalksMap;\n parentUri: string;\n disableDelete?: boolean;\n disableEdit?: boolean;\n onDelete: (event: DeleteInlineAttributeEvent) => void;\n onEdit: (event: EditInlineAttributeEvent) => void;\n onPin: (event: PinInlineAttributeEvent) => void;\n onIgnore: (event: IgnoreInlineAttributeEvent) => void;\n onAdd: (event: AddInlineAttributeEvent) => void;\n};\n\nexport default class AttributesFactory {\n static build(type: string, props: AttributesRendererProps) {\n switch (type) {\n case DataTypes.TYPE_NESTED:\n return <NestedAttributesRenderer {...props} />;\n case DataTypes.TYPE_REFERENCE:\n return <ReferenceAttributesRenderer {...props} />;\n case DataTypes.TYPE_IMAGE:\n return <ImageAttributesRenderer {...props} />;\n default:\n return <SimpleAttributesRenderer {...props} />;\n }\n }\n}\n","import React from 'react';\nimport AttributeTitle from '../../../Title/Title';\nimport ReadOnlyAttributeValuesBlock from '../../../attributes/readMode/AttributeValuesBlock/AttributeValuesBlock';\nimport {AttributeType, AttributeValue} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n values?: AttributeValue[];\n attributeType: AttributeType;\n };\n};\n\nconst OvValuesRenderer = ({value: {values, attributeType}}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.cellValueWrapper}>\n <AttributeTitle className={styles.attributeTitle} label={attributeType.label} />\n <ReadOnlyAttributeValuesBlock\n values={values}\n attributeType={attributeType}\n valueContainerClassName={styles.ovValue}\n />\n </div>\n );\n};\n\nexport default OvValuesRenderer;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: number;\n};\n\nconst CountRenderer = ({value}: Props) => {\n const styles = useStyles();\n return <div className={classnames(styles.cellValueWrapper, styles.count)}>{value}</div>;\n};\n\nexport default CountRenderer;\n","import React, {useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {cond, prop} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {IconButton as IconButton} from '@material-ui/core';\nimport {List as List} from '@material-ui/core';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport {Popover as Popover} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport InfoIcon from '@material-ui/icons/Info';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport mdmModule from '@reltio/mdm-module';\nimport {findAttributeTypeByUri, getLabel, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\nconst SourcesRenderer = ({sourcesUriOrder}: {sourcesUriOrder: string[]}) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n return (\n <>\n {sourcesUriOrder.map((sourceUri) => (\n <ListItem key={sourceUri} className={styles.popupItem}>\n <SourceIcon className={styles.sourceIcon} sourceType={sourceUri} />\n <ListItemText\n primary={getSourceSystemLabel(metadata, sourceUri)}\n primaryTypographyProps={{variant: 'body2'}}\n />\n </ListItem>\n ))}\n </>\n );\n};\n\nconst AttributeRenderer = ({attributeUri}: {attributeUri: string}) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const attributeType = findAttributeTypeByUri(metadata, attributeUri);\n return (\n <ListItem key={attributeType.uri} className={styles.popupItem}>\n <ListItemText primary={getLabel(attributeType.label)} primaryTypographyProps={{variant: 'body2'}} />\n </ListItem>\n );\n};\n\nconst getInfoTitle = cond([\n [prop('sourcesUriOrder'), () => i18n.text('Source sequence')],\n [prop('primaryAttributeUri'), () => i18n.text('Attribute winner')],\n [prop('comparisonAttributeUri'), () => i18n.text('Comparison attribute')]\n]);\n\nconst getInfoContent = cond([\n // eslint-disable-next-line react/display-name\n [prop('sourcesUriOrder'), ({sourcesUriOrder}) => <SourcesRenderer sourcesUriOrder={sourcesUriOrder} />],\n // eslint-disable-next-line react/display-name\n [prop('primaryAttributeUri'), ({primaryAttributeUri}) => <AttributeRenderer attributeUri={primaryAttributeUri} />],\n [\n prop('comparisonAttributeUri'),\n // eslint-disable-next-line react/display-name\n ({comparisonAttributeUri}) => <AttributeRenderer attributeUri={comparisonAttributeUri} />\n ]\n]);\n\ntype Props = {\n info: {\n sourcesUriOrder?: string[];\n primaryAttributeUri?: string;\n comparisonAttributeUri?: string;\n };\n};\n\nconst RuleTypeInfoButton = ({info}: Props) => {\n const styles = useStyles();\n const [anchorEl, setAnchorEl] = useState(null);\n const openPopup = (event) => setAnchorEl(event.currentTarget);\n const closePopup = () => setAnchorEl(null);\n\n return (\n <>\n <SmallIconButtonWithTooltip\n icon={InfoIcon}\n tooltipTitle={i18n.text('View details')}\n size={'XS'}\n onClick={openPopup}\n />\n <Popover\n classes={{paper: styles.rulePopup}}\n open={!!anchorEl}\n anchorEl={anchorEl}\n onClose={closePopup}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n <div className={styles.popupTitleWrapper}>\n <IconButton className={styles.closeButton} onClick={closePopup}>\n <CloseIcon />\n </IconButton>\n <Typography variant={'subtitle1'} className={styles.popupTitle}>\n {getInfoTitle(info)}\n </Typography>\n </div>\n <List component=\"div\" className={styles.popupItemsWrapper}>\n {getInfoContent(info)}\n </List>\n </Popover>\n </>\n );\n};\n\nexport default RuleTypeInfoButton;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {SurvivorStrategy} from '@reltio/mdm-sdk';\nimport RuleTypeInfoButton from './RuleTypeInfoButton';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n ruleType: SurvivorStrategy;\n sourcesUriOrder?: string[];\n primaryAttributeUri?: string;\n comparisonAttributeUri?: string;\n };\n};\n\nconst RuleTypeRenderer = ({value: {ruleType, sourcesUriOrder, primaryAttributeUri, comparisonAttributeUri}}: Props) => {\n const styles = useStyles();\n const showInfoIcon = sourcesUriOrder || primaryAttributeUri || comparisonAttributeUri;\n\n return (\n <div className={classnames(styles.cellValueWrapper, styles.ruleType)}>\n <div className={styles.ruleTypeLabel}>{ruleType.label}</div>\n {showInfoIcon && (\n <RuleTypeInfoButton\n info={{\n sourcesUriOrder,\n primaryAttributeUri,\n comparisonAttributeUri\n }}\n />\n )}\n </div>\n );\n};\n\nexport default RuleTypeRenderer;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport {List as List} from '@material-ui/core';\nimport {ListItem as ListItem} from '@material-ui/core';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport {CrosswalkBase, getCrosswalkColor, getCrosswalkId, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport {useCrosswalkHighlight} from '../../../../contexts';\nimport mdmModule from '@reltio/mdm-module';\nimport ColoredBlock from '../../ColoredBlock/ColoredBlock';\nimport {useStyles} from './styles';\n\nconst WinnerSource = ({crosswalk}: {crosswalk: CrosswalkBase}) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const {isDimmed, highlightCrosswalk, removeHighlight} = useCrosswalkHighlight(crosswalk);\n\n return (\n <ColoredBlock\n className={styles.winnerSourceItem}\n color={isDimmed ? 'rgba(0, 0, 0, 0.12)' : getCrosswalkColor(getCrosswalkId(crosswalk))}\n opacity={isDimmed ? 0.38 : 1}\n onMouseEnter={() => highlightCrosswalk()}\n onMouseLeave={() => removeHighlight()}\n >\n <SourceIcon className={styles.sourceIcon} sourceType={crosswalk.type} />\n <ListItemText\n primary={getSourceSystemLabel(metadata, crosswalk.type)}\n primaryTypographyProps={{variant: 'body2'}}\n classes={{primary: styles.winnerSourceItemLabel}}\n />\n </ColoredBlock>\n );\n};\n\ntype Props = {\n value: {\n crosswalks: CrosswalkBase[];\n };\n};\n\nconst WinnerSourcesRenderer = ({value: {crosswalks}}: Props) => {\n const styles = useStyles();\n return (\n <List component=\"div\">\n {crosswalks.map((crosswalk) => (\n <ListItem key={crosswalk.uri} className={styles.winnerSourceItemWrapper}>\n <WinnerSource crosswalk={crosswalk} />\n </ListItem>\n ))}\n </List>\n );\n};\n\nexport default WinnerSourcesRenderer;\n","import i18n from 'ui-i18n';\nimport {\n assoc,\n chain,\n curry,\n descend,\n filter,\n find,\n flatten,\n map,\n pickBy,\n pipe,\n prop,\n propEq,\n propOr,\n reduce,\n sortWith,\n uniq,\n uniqBy,\n values\n} from 'ramda';\n\nimport HeadCellRenderer from './cell-renderers/HeadCellRenderer';\nimport AttributesHeadCellRenderer from './cell-renderers/AttributesHeadCellRenderer';\nimport DefaultCellValueRenderer from './cell-renderers/DefaultCellValueRenderer';\nimport AttributeValuesRenderer from './cell-renderers/AttributeValuesRenderer';\nimport OvValuesRenderer from './cell-renderers/OvValuesRenderer';\nimport CountRenderer from './cell-renderers/CountRenderer';\nimport RuleTypeRenderer from './cell-renderers/RuleTypeRenderer';\nimport WinnerSourcesRenderer from './cell-renderers/WinnerSourcesRenderer';\nimport {\n areOneHierarchyUris,\n AttributeType,\n AttributeValue,\n DataTypes,\n findValueInAttributesByUriSuffix,\n getBaseUri,\n getCrosswalksTypes,\n getDefaultSurvivorshipStrategy,\n getLastUriPart,\n getReferencedAttrTypeUrisFromAttrType,\n getSurvivorshipStrategy,\n isComplexAttribute,\n isOv,\n isReference,\n isTempUri,\n Metadata,\n RecordAttributesType,\n SurvivorStrategy\n} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../../attributes/inline';\nimport {CrosswalksByOwnerTypeMap} from '../types';\n\nexport const COLUMNS_DATA = [\n {\n id: 'ovValues',\n get label() {\n return i18n.text('Attributes & OV');\n },\n hideable: false,\n initialWidth: 360,\n minWidth: 250\n },\n {\n id: 'winnerSources',\n get label() {\n return i18n.text('Winner source systems');\n },\n initialWidth: 220\n },\n {\n id: 'ruleType',\n get label() {\n return i18n.text('Rule type');\n },\n initialWidth: 200\n },\n {\n id: 'count',\n get label() {\n return i18n.text('Count');\n },\n initialWidth: 80,\n minWidth: 80\n },\n {\n id: 'values',\n get label() {\n return i18n.text('Attribute values');\n },\n hideable: false\n }\n];\n\nconst isOvValue = (value: AttributeValue) => isOv(value) && !isTempUri(value.uri);\n\nexport const DEFAULT_VISIBLE_COLUMNS = ['ovValues', 'ruleType', 'values'];\n\nconst getCellValueRenderer = (columnId: string) => {\n switch (columnId) {\n case 'ovValues':\n return OvValuesRenderer;\n case 'values':\n return AttributeValuesRenderer;\n case 'count':\n return CountRenderer;\n case 'ruleType':\n return RuleTypeRenderer;\n case 'winnerSources':\n return WinnerSourcesRenderer;\n default:\n return DefaultCellValueRenderer;\n }\n};\n\nexport const countAttributeValues = (\n type: string,\n values: AttributeValue[] = [],\n crosswalksMap: CrosswalksMap\n): number => {\n switch (type) {\n case DataTypes.TYPE_REFERENCE:\n case DataTypes.TYPE_NESTED:\n case DataTypes.TYPE_IMAGE:\n return values.length;\n default:\n return values.reduce((acc, value) => acc + crosswalksMap[value.uri].length, 0);\n }\n};\n\nconst isSourceSystemRule = (ruleType: SurvivorStrategy) =>\n ruleType?.uri === 'configuration/survivorshipStrategies/SRC_SYS';\nconst isOtherAttributeWinnerRule = (ruleType: SurvivorStrategy) =>\n ruleType?.uri === 'configuration/survivorshipStrategies/OtherAttributeWinnerCrosswalk';\nconst isMinMaxValueRule = (ruleType: SurvivorStrategy) =>\n ruleType?.uri === 'configuration/survivorshipStrategies/MinValue' ||\n ruleType?.uri === 'configuration/survivorshipStrategies/MaxValue';\n\nconst getSourcesUriOrderFromMetadata = pipe(\n getCrosswalksTypes,\n sortWith([descend(propOr(-1, 'priority'))]),\n map(prop('uri'))\n);\n\nconst fixReferencedAttributeUri = curry((parentType: AttributeType, attrTypeUri: string) => {\n if (isReference(parentType) && attrTypeUri) {\n const referencedAttrUri = pipe(\n getReferencedAttrTypeUrisFromAttrType,\n find((uri) => uri.slice(getBaseUri(uri).length) === attrTypeUri.slice(parentType.uri.length))\n )(parentType);\n return referencedAttrUri || attrTypeUri;\n } else {\n return attrTypeUri;\n }\n});\n\nexport const getRuleTypeValues = (\n metadata: Metadata,\n attributeType: AttributeType,\n parentTypeUri: string,\n activeSurvivorshipGroupUri?: string\n) => {\n const parentType = [...metadata.entityTypes, ...(metadata.relationTypes || [])].find(propEq('uri', parentTypeUri));\n const survivorshipGroups = parentType?.survivorshipGroups ?? [];\n const currentSurvivorshipGroup =\n (activeSurvivorshipGroupUri && survivorshipGroups.find(propEq('uri', activeSurvivorshipGroupUri))) ||\n survivorshipGroups.find(propEq('default', true));\n const mapping = currentSurvivorshipGroup?.mapping?.find(propEq('attribute', attributeType.uri));\n const ruleType =\n getSurvivorshipStrategy(metadata, mapping?.survivorshipStrategy) || getDefaultSurvivorshipStrategy(metadata);\n const sourcesUriOrder = isSourceSystemRule(ruleType)\n ? uniq([\n ...(mapping?.sourcesUriOrder || []),\n ...(currentSurvivorshipGroup?.sourcesUriOrder || []),\n ...getSourcesUriOrderFromMetadata(metadata)\n ])\n : undefined;\n const fixUri = fixReferencedAttributeUri(attributeType);\n const primaryAttributeUri = isOtherAttributeWinnerRule(ruleType) ? fixUri(mapping?.primaryAttributeUri) : undefined;\n const comparisonAttributeUri =\n isComplexAttribute(attributeType) && isMinMaxValueRule(ruleType)\n ? fixUri(mapping?.comparisonAttributeUri)\n : undefined;\n return {\n ruleType,\n sourcesUriOrder,\n primaryAttributeUri,\n comparisonAttributeUri\n };\n};\n\nexport const getWinnerCrosswalks = (attributeValues: AttributeValue[] = [], crosswalksMap: CrosswalksMap) => {\n return pipe(\n filter(isOvValue),\n chain((value: AttributeValue) =>\n pipe(\n pickBy((_, attrUri) => {\n const isInHierarchy = areOneHierarchyUris(attrUri, value.uri);\n const subAttrUriSuffix = isInHierarchy ? attrUri.slice(value.uri.length + 1) : '';\n const subAttrValue =\n subAttrUriSuffix && findValueInAttributesByUriSuffix(value.value, subAttrUriSuffix);\n return isInHierarchy && (!subAttrValue || isOvValue(subAttrValue));\n }),\n values,\n flatten\n )(crosswalksMap)\n ),\n uniqBy(prop('uri'))\n )(attributeValues);\n};\n\nexport const getBasicTableColumnsData = map(({id, label, initialWidth, minWidth}) => ({\n id,\n label,\n initialWidth,\n minWidth,\n autoResize: !initialWidth,\n resizable: true,\n sortable: false,\n headCellRenderer: id === 'ovValues' ? AttributesHeadCellRenderer : HeadCellRenderer,\n rowCellValueRenderer: getCellValueRenderer(id)\n}));\n\nconst getRowValueForColumn = (\n columnId: string,\n metadata: Metadata,\n parentTypeUri: string,\n attributeType: AttributeType,\n crosswalksMap: CrosswalksMap,\n attributeValues: AttributeValue[],\n activeSurvivorshipGroupUri?: string\n) => {\n switch (columnId) {\n case 'ovValues':\n return {\n attributeType,\n values: attributeValues?.filter(isOvValue)\n };\n case 'values':\n return {\n attributeType,\n attributeValues,\n crosswalksMap\n };\n case 'count':\n return countAttributeValues(attributeType.type, attributeValues, crosswalksMap);\n case 'ruleType':\n return getRuleTypeValues(metadata, attributeType, parentTypeUri, activeSurvivorshipGroupUri);\n case 'winnerSources':\n return {crosswalks: getWinnerCrosswalks(attributeValues, crosswalksMap)};\n default:\n return null;\n }\n};\n\nexport const getBasicTableRowsData = (\n metadata: Metadata,\n parentTypeUri: string,\n attrTypes: AttributeType[] = [],\n columns: string[],\n crosswalksMap: CrosswalksByOwnerTypeMap,\n attributes: RecordAttributesType,\n activeSurvivorshipGroupUri?: string\n) => {\n return attrTypes.map((attributeType: AttributeType) => {\n const attrName = getLastUriPart(attributeType.uri);\n const attrValues = attributes[attrName] as AttributeValue[];\n const crosswalksMapForAttribute = isReference(attributeType) ? crosswalksMap.relation : crosswalksMap.entity;\n return pipe(\n reduce(\n (acc, columnId) =>\n assoc(\n columnId,\n getRowValueForColumn(\n columnId,\n metadata,\n parentTypeUri,\n attributeType,\n crosswalksMapForAttribute,\n attrValues,\n activeSurvivorshipGroupUri\n ),\n acc\n ),\n {}\n ),\n assoc('rawValue', attrValues)\n )(columns);\n });\n};\n","import React from 'react';\nimport classnames from 'classnames';\n// eslint-disable-next-line import/named\nimport {ColumnData} from '../../../BasicTableView';\nimport {useStyles} from './styles';\n\ntype Props = {\n cell: {\n values: unknown[];\n };\n columnData: ColumnData;\n CellValueRenderer: React.ElementType;\n columnIndex: number;\n};\n\nconst RowCellRenderer = ({cell, CellValueRenderer, columnIndex, columnData, ...otherProps}: Props) => {\n const styles = useStyles();\n const isFirstColumn = columnIndex === 0;\n return (\n <div\n className={classnames(styles.rowCell, isFirstColumn && styles.coloredCell)}\n data-reltio-id={`column-name-${columnData.id}`}\n >\n {cell.values.map((value, index) => (\n <CellValueRenderer key={index} value={value} {...otherProps} />\n ))}\n </div>\n );\n};\n\nexport default RowCellRenderer;\n","import React, {useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {Button as Button} from '@material-ui/core';\nimport {Dialog as Dialog} from '@material-ui/core';\nimport {DialogActions as DialogActions} from '@material-ui/core';\nimport {DialogContent as DialogContent} from '@material-ui/core';\nimport {DialogContentText as DialogContentText} from '@material-ui/core';\nimport {Radio as Radio} from '@material-ui/core';\nimport {RadioGroup as RadioGroup} from '@material-ui/core';\nimport {FormControlLabel as FormControlLabel} from '@material-ui/core';\nimport {FormControl as FormControl} from '@material-ui/core';\nimport {FormLabel as FormLabel} from '@material-ui/core';\nimport {getValue} from '../../../../core';\nimport {pipe} from 'ramda';\n\ntype Props = {\n open: boolean;\n onClose: () => void;\n onConfirmEditWithIgnore: () => void;\n onConfirmEditWithoutIgnore: () => void;\n};\n\nconst ConfirmEditIgnoredDialog = ({open, onClose, onConfirmEditWithoutIgnore, onConfirmEditWithIgnore}: Props) => {\n const [option, setOption] = useState<'with' | 'without'>('without');\n\n return (\n <Dialog open={open} onEnter={() => setOption('without')}>\n <DialogContent>\n <DialogContentText>\n {i18n.text('You are attempting to change a value that is presently ignored.')}\n </DialogContentText>\n <FormControl component=\"fieldset\">\n <FormLabel component=\"legend\">{i18n.text('Please choose an option:')}</FormLabel>\n <RadioGroup value={option} onChange={pipe(getValue, setOption)}>\n <FormControlLabel\n value=\"without\"\n control={<Radio />}\n label={i18n.text('Save without Ignore')}\n />\n <FormControlLabel\n value=\"with\"\n control={<Radio />}\n label={i18n.text('Save and apply Ignore to new value')}\n />\n </RadioGroup>\n </FormControl>\n </DialogContent>\n <DialogActions>\n <Button onClick={onClose} color=\"primary\">\n {i18n.text('Cancel')}\n </Button>\n <Button\n onClick={() => {\n option === 'with' ? onConfirmEditWithIgnore() : onConfirmEditWithoutIgnore();\n onClose();\n }}\n color=\"primary\"\n >\n {i18n.text('Ok')}\n </Button>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default ConfirmEditIgnoredDialog;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n tableContainer: {\n height: '100%',\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column'\n },\n tableHeader: {\n display: 'flex',\n flexDirection: 'row'\n },\n tableTitle: {\n marginRight: 'auto'\n },\n tableContent: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'hidden',\n position: 'relative'\n }\n});\n","import React, {memo, useCallback, useEffect, useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n AttributeType,\n Entity,\n findAttributeTypeByUri,\n isReadableAttribute,\n makeAttrTypeUri,\n Relation\n} from '@reltio/mdm-sdk';\nimport {\n AddInlineAttributeEvent,\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent,\n IgnoreInlineAttributeEvent,\n PinInlineAttributeEvent\n} from '../../attributes/inline';\nimport {BasicTable, ColumnsSettings, RowCellAutoSizer, useDynamicRowCellHeight} from '../../BasicTableView';\nimport BasicViewHeader from '../../BasicViewHeader/BasicViewHeader';\nimport {COLUMNS_DATA, DEFAULT_VISIBLE_COLUMNS, getBasicTableColumnsData, getBasicTableRowsData} from './helpers';\nimport {always, either, filter, isNil, keys, map, pipe, without, identity, both} from 'ramda';\nimport RowCellRenderer from './cell-renderers/RowCellRenderer';\nimport LinearLoadIndicator from '../../LinearLoadIndicator/LinearLoadIndicator';\nimport ConfirmDeleteDialog from '../../ConfirmDeleteDialog/ConfirmDeleteDialog';\nimport {CrosswalksByOwnerTypeMap} from '../types';\nimport ConfirmEditIgnoredDialog from './ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog';\nimport {noop} from '../../../core';\n\nimport {useStyles} from './styles';\n\nconst DEFAULT_ROW_HEIGHT = 68;\n\ntype Props = {\n entity?: Entity | Relation;\n isLoading?: boolean;\n crosswalksMap: CrosswalksByOwnerTypeMap;\n visibleColumns?: string[];\n onChangeVisibleColumns?: (visibleColumns: string[]) => void;\n readOnly?: boolean;\n onDelete?: (event: DeleteInlineAttributeEvent) => void;\n onPin?: (event: PinInlineAttributeEvent) => void;\n onIgnore?: (event: IgnoreInlineAttributeEvent) => void;\n onEdit?: (event: EditInlineAttributeEvent) => void;\n onAdd?: (event: AddInlineAttributeEvent) => void;\n selectedAttributeTypes?: AttributeType[];\n onSelectAttributeTypes?: (selected: AttributeType[]) => void;\n additionalHeaderItems?: React.ReactNode;\n className?: string;\n activeSurvivorshipGroupUri?: string;\n};\n\nconst AttributesTable = ({\n entity,\n isLoading,\n crosswalksMap,\n visibleColumns = DEFAULT_VISIBLE_COLUMNS,\n onChangeVisibleColumns,\n readOnly,\n onDelete = noop,\n onPin = noop,\n onIgnore = noop,\n onEdit = noop,\n onAdd = noop,\n selectedAttributeTypes,\n onSelectAttributeTypes = noop,\n additionalHeaderItems,\n className,\n activeSurvivorshipGroupUri\n}: Props) => {\n const styles = useStyles();\n\n const visibleColumnsData = useMemo(() => {\n return pipe(\n filter(({id}) => visibleColumns.includes(id)),\n getBasicTableColumnsData\n )(COLUMNS_DATA);\n }, [visibleColumns]);\n\n const {type: parentTypeUri, uri: parentUri, attributes = {}} = entity || {};\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n useEffect(() => {\n if (entity && isNil(selectedAttributeTypes)) {\n const initialAttrTypes = pipe(\n keys,\n without(['paging']),\n map(makeAttrTypeUri(parentTypeUri)),\n map((attrTypeUri: string) => findAttributeTypeByUri(metadata, attrTypeUri, parentTypeUri)),\n filter(both(identity, isReadableAttribute))\n )(attributes);\n onSelectAttributeTypes(initialAttrTypes);\n }\n }, [entity, selectedAttributeTypes]);\n\n const rowsData = useMemo(() => {\n return parentTypeUri\n ? getBasicTableRowsData(\n metadata,\n parentTypeUri,\n selectedAttributeTypes,\n visibleColumns,\n crosswalksMap,\n attributes,\n activeSurvivorshipGroupUri\n )\n : [];\n }, [\n metadata,\n parentTypeUri,\n selectedAttributeTypes,\n visibleColumns,\n attributes,\n crosswalksMap,\n activeSurvivorshipGroupUri\n ]);\n\n const {getDynamicRowCellHeight, changeRowCellHeight} = useDynamicRowCellHeight();\n\n const renderRowCell = useCallback(\n (props) => (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...props}>\n <RowCellRenderer {...props} />\n </RowCellAutoSizer>\n ),\n [changeRowCellHeight]\n );\n\n const getRowCellHeight = useCallback(either(getDynamicRowCellHeight, always(DEFAULT_ROW_HEIGHT)), [\n getDynamicRowCellHeight\n ]);\n\n const [pendingDeletion, setPendingDeletion] = useState<DeleteInlineAttributeEvent>(null);\n const [pendingIgnoredEditing, setPendingIgnoredEditing] = useState<EditInlineAttributeEvent>(null);\n\n const handleEdit = useCallback(\n (event: EditInlineAttributeEvent) => {\n event.attributeValue.ignored ? setPendingIgnoredEditing(event) : onEdit(event);\n },\n [onEdit, setPendingIgnoredEditing]\n );\n\n const tableContext = useMemo(\n () => ({\n onDelete: setPendingDeletion,\n onPin,\n onIgnore,\n onEdit: handleEdit,\n onAdd,\n parentUri,\n parentTypeUri,\n selectedAttributeTypes,\n onSelectAttributeTypes,\n readOnly\n }),\n [\n setPendingDeletion,\n onPin,\n onIgnore,\n handleEdit,\n onAdd,\n parentUri,\n parentTypeUri,\n selectedAttributeTypes,\n onSelectAttributeTypes,\n readOnly\n ]\n );\n\n return (\n <div className={classnames(styles.tableContainer, className)}>\n <BasicViewHeader\n classes={{root: styles.tableHeader, title: styles.tableTitle}}\n title={i18n.text('Sources')}\n >\n {additionalHeaderItems}\n <ColumnsSettings\n columnsData={COLUMNS_DATA}\n selectedColumns={visibleColumns}\n onChangeColumns={onChangeVisibleColumns}\n />\n </BasicViewHeader>\n <div className={styles.tableContent}>\n {isLoading && <LinearLoadIndicator />}\n <BasicTable\n fixFirstColumn\n headRowHeight={48}\n defaultColumnWidth={250}\n defaultColumnMinWidth={200}\n columnsData={visibleColumnsData}\n rowsData={rowsData}\n renderRowCell={renderRowCell}\n getRowCellHeight={getRowCellHeight}\n context={tableContext}\n />\n </div>\n <ConfirmDeleteDialog\n open={!!pendingDeletion}\n onClose={() => setPendingDeletion(null)}\n onConfirm={() => onDelete(pendingDeletion)}\n />\n <ConfirmEditIgnoredDialog\n open={!!pendingIgnoredEditing}\n onClose={() => setPendingIgnoredEditing(null)}\n onConfirmEditWithIgnore={() => onEdit(pendingIgnoredEditing)}\n onConfirmEditWithoutIgnore={() => {\n onIgnore({attributeValue: pendingIgnoredEditing.attributeValue});\n onEdit(pendingIgnoredEditing);\n }}\n />\n </div>\n );\n};\n\nexport default memo(AttributesTable);\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color?: string;\n opacity?: number;\n variant: 'standart' | 'disabled';\n};\n\nexport const useColoredItemStyles = makeStyles({\n item: ({color, opacity, variant}: StylesProps) => ({\n ...(variant === 'standart' && {backgroundColor: color, paddingRight: '29px'}),\n ...(variant === 'disabled' && {border: `${color} solid 2px`}),\n opacity,\n filter: opacity && opacity !== 1 ? 'saturate(20%)' : null,\n transition: 'opacity 0.3s',\n boxSizing: 'border-box'\n }),\n endDatedCrosswalkIcon: {\n margin: '0 4px',\n width: '20px',\n height: '20px',\n color: '#ff1744'\n }\n});\n","import React, {ForwardedRef, forwardRef} from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport EventBusyIcon from '@material-ui/icons/EventBusy';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport {useColoredItemStyles} from './styles';\n\ntype Props = React.HTMLAttributes<HTMLDivElement> & {\n color: string;\n opacity?: number;\n variant?: 'standart' | 'disabled';\n};\n\nconst ColoredBlock = forwardRef(\n (\n {color, opacity, variant = 'standart', children, className, ...props}: Props,\n ref: ForwardedRef<HTMLDivElement>\n ) => {\n const styles = useColoredItemStyles({color, opacity, variant});\n return (\n <div ref={ref} data-reltio-id=\"cw-colored-block\" className={classnames(styles.item, className)} {...props}>\n {children}\n {variant === 'disabled' && (\n <Tooltip title={i18n.text('End-dated crosswalk')}>\n <EventBusyIcon className={styles.endDatedCrosswalkIcon} />\n </Tooltip>\n )}\n </div>\n );\n }\n);\n\nexport default ColoredBlock;\n","import React from 'react';\n\nconst SvgCopy: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg\n width={24}\n height={24}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}\n >\n <defs>\n <path\n d=\"M20.222 6C21.21 6 22 6.8 22 7.778v12.444C22 21.2 21.209 22 20.222 22H7.778C6.79 22 6 21.2 6 20.222V7.778C6 6.8 6.791 6 7.778 6h12.444zM20 8H8v12h12V8zM4 18H2V4c0-1.1.9-2 2-2h14v2H4v14z\"\n id=\"Copy_svg__a\"\n />\n </defs>\n <g stroke=\"none\" strokeWidth={1} fill=\"none\" fillRule=\"evenodd\">\n <mask id=\"Copy_svg__b\" fill=\"#fff\">\n <use xlinkHref=\"#Copy_svg__a\" />\n </mask>\n <path fillOpacity={0.54} fill=\"#000\" mask=\"url(#Copy_svg__b)\" d=\"M0 0h24v24H0z\" />\n </g>\n </svg>\n );\n};\n\nexport default SvgCopy;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n root: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n overflowWrap: 'anywhere'\n },\n text: {\n fontSize: 13\n },\n button: {\n flexShrink: 0,\n marginLeft: 8,\n padding: 0,\n textTransform: 'none'\n }\n}));\n","import React from 'react';\nimport SmallIconButton from '../../SmallIconButton/SmallIconButton';\nimport {Typography as Typography} from '@material-ui/core';\nimport CopyIcon from '../../../icons/Copy';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: string;\n};\n\nconst CopyableValueField = ({value}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.root}>\n <Typography className={styles.text} variant={'body2'}>\n {value}\n </Typography>\n <SmallIconButton\n size=\"XXS\"\n icon={CopyIcon}\n color=\"primary\"\n className={styles.button}\n onClick={() => navigator.clipboard.writeText(value)}\n />\n </div>\n );\n};\n\nexport default CopyableValueField;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n timestampEditorInput: {\n paddingTop: 15,\n paddingBottom: 15,\n fontSize: 13\n },\n timestampEditor: {\n height: 38\n }\n}));\n","import React, {useState} from 'react';\nimport {always, unless} from 'ramda';\nimport classnames from 'classnames';\nimport TimestampEditor from '../../editors/TimestampEditor/TimestampEditor';\nimport {useStyles} from './styles';\n\ntype Props = {\n value?: number;\n classes?: {\n root?: string;\n };\n disabled?: boolean;\n onChange: (value: number) => void;\n};\n\nconst CrosswalkDateEditor = ({value, classes = {}, disabled = false, onChange}: Props) => {\n const styles = useStyles();\n\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const handleChange = (date: Date) => onChange(date?.valueOf());\n\n return (\n <TimestampEditor\n variant=\"filled\"\n value={value || null}\n disabled={disabled}\n onChange={unless(always(isOpen), handleChange)}\n onAccept={handleChange}\n onOpen={() => setIsOpen(true)}\n onClose={() => setIsOpen(false)}\n InputProps={{\n disableUnderline: true,\n classes: {input: styles.timestampEditorInput, root: classnames(styles.timestampEditor, classes.root)}\n }}\n />\n );\n};\n\nexport default CrosswalkDateEditor;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n text: {\n fontSize: 13\n },\n attributeWrapper: {\n display: 'flex',\n alignItems: 'center',\n paddingTop: 5,\n paddingBottom: 5,\n marginLeft: 12\n },\n attributeTitle: {\n fontSize: 13,\n width: 135,\n color: theme.palette.text.secondary\n },\n attributeValue: {\n paddingLeft: 10,\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1\n },\n input: {\n paddingTop: 14,\n paddingBottom: 14,\n fontSize: 13\n },\n editor: {\n flexGrow: 1\n },\n moreButton: {\n marginLeft: 24\n },\n sourceIcon: {\n height: '16px',\n width: '16px',\n marginRight: '9px',\n fontSize: '14px'\n }\n}));\n","import React, {useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\n\nimport ConfirmDeleteDialog from '../../ConfirmDeleteDialog/ConfirmDeleteDialog';\nimport MoreAttributesButton from '../../attributes/editMode/MoreAttributesButton';\nimport SimpleDropDownSelector from '../../SimpleDropDownSelector/SimpleDropDownSelector';\nimport {SmallIconButtonWithTooltip} from '../../SmallIconButton';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport {TextEditor} from '../../editors';\nimport {Typography as Typography} from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport {\n AttributeType,\n CrosswalkBase,\n CrosswalksAttrTypes,\n formatDateTime,\n getCrosswalksTypes,\n getSourceSystemLabel,\n parseTimestamp\n} from '@reltio/mdm-sdk';\nimport {ascend, filter, has, isNil, map, pipe, prop, propEq, without} from 'ramda';\nimport i18n from 'ui-i18n';\nimport mdmModule from '@reltio/mdm-module';\nimport CopyableValueField from '../CopyableValueField/CopyableValueField';\nimport CrosswalkDateEditor from '../CrosswalkDateEditor/CrosswalkDateEditor';\nimport moment from 'moment';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: CrosswalkBase | Omit<CrosswalkBase, 'uri'>;\n canEditAttribute?: boolean;\n onEditAttribute: (attributeName: string, value: any) => void;\n onDeleteAttribute: (attributeName: string) => void;\n};\n\nconst CrosswalkAttributes = ({crosswalk, canEditAttribute = true, onEditAttribute, onDeleteAttribute}: Props) => {\n const styles = useStyles();\n\n const isTempCrosswalk = !('uri' in crosswalk);\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const [addedAttributes, setAddedAttributes] = useState<string[]>([]);\n const [pendingDeletionAttrUri, setPendingDeletionAttrUri] = useState<string>(null);\n const addSelectedAttributes = (selectedAttributes: AttributeType[]) => {\n if (selectedAttributes.length > 0) {\n setAddedAttributes((addedAttributes) => addedAttributes.concat(map(prop('uri'), selectedAttributes)));\n }\n };\n const handleDeleteAttribute = (attributeName: string) => {\n setAddedAttributes((addedAttributes) => without([attributeName], addedAttributes));\n if (!isNil(crosswalk[attributeName])) {\n onDeleteAttribute(attributeName);\n }\n };\n\n const attributes = useMemo(\n () => [\n {\n label: CrosswalksAttrTypes.sourceSystems.label,\n uri: 'type'\n },\n {\n label: CrosswalksAttrTypes.value.label,\n uri: 'value'\n },\n {\n label: CrosswalksAttrTypes.sourceTable.label,\n uri: 'sourceTable',\n canBeAdded: isTempCrosswalk,\n canBeDeleted: isTempCrosswalk\n },\n {\n label: CrosswalksAttrTypes.createDate.label,\n uri: 'createDate'\n },\n {\n label: CrosswalksAttrTypes.updateDate.label,\n uri: 'updateDate'\n },\n {\n label: CrosswalksAttrTypes.deleteDate.label,\n uri: 'deleteDate',\n canBeAdded: true,\n canBeDeleted: true\n },\n {\n label: CrosswalksAttrTypes.reltioLoadDate.label,\n uri: 'reltioLoadDate'\n },\n {\n label: CrosswalksAttrTypes.publishDate.label,\n uri: 'sourcePublishDate'\n }\n ],\n []\n );\n\n const extraAttributes = pipe(\n filter(propEq('canBeAdded', true)),\n filter((item) => !has(item.uri, crosswalk)),\n filter((item) => !addedAttributes.includes(item.uri))\n )(attributes);\n\n const renderAttributeValue = (attributeName: string, attributeValue: string) => {\n switch (attributeName) {\n case 'type': {\n const sourceSystemLabel = getSourceSystemLabel(metadata, attributeValue);\n return isTempCrosswalk ? (\n <SimpleDropDownSelector\n label={''}\n placeholder={attributeValue}\n className={styles.editor}\n value={{value: attributeValue, label: sourceSystemLabel}}\n options={getCrosswalksTypes(metadata)\n .sort(ascend(prop('label')))\n .map(({uri, label}) => ({\n value: uri,\n label: label\n }))}\n onChange={({value}) => onEditAttribute(attributeName, value)}\n TextFieldProps={{\n InputProps: {\n disableUnderline: true\n }\n }}\n />\n ) : (\n <>\n <SourceIcon className={styles.sourceIcon} sourceType={attributeValue} />\n <Typography className={styles.text} variant={'body2'}>\n {sourceSystemLabel}\n </Typography>\n </>\n );\n }\n case 'sourceTable':\n return isTempCrosswalk ? (\n <TextEditor\n multiple={false}\n multiline={false}\n getValueLabel={undefined}\n classes={{root: styles.editor}}\n required\n variant=\"filled\"\n value={attributeValue}\n onInput={(e) => onEditAttribute(attributeName, e.target.value)}\n margin=\"dense\"\n InputProps={{\n disableUnderline: true,\n classes: {input: styles.input}\n }}\n />\n ) : (\n <Typography className={styles.text} variant={'body2'}>\n {attributeValue}\n </Typography>\n );\n case 'value':\n return isTempCrosswalk ? (\n <TextEditor\n multiple={false}\n multiline={false}\n getValueLabel={undefined}\n classes={{root: styles.editor}}\n required\n variant=\"filled\"\n value={attributeValue}\n onInput={(e) => onEditAttribute(attributeName, e.target.value)}\n margin=\"dense\"\n InputProps={{\n disableUnderline: true,\n classes: {input: styles.input}\n }}\n />\n ) : (\n <CopyableValueField value={attributeValue} />\n );\n case 'deleteDate':\n return (\n <CrosswalkDateEditor\n value={attributeValue && moment.utc(parseTimestamp(attributeValue)).valueOf()}\n onChange={(value) => onEditAttribute(attributeName, value?.toString())}\n classes={{root: styles.editor}}\n disabled={!canEditAttribute}\n />\n );\n case 'sourcePublishDate':\n case 'createDate':\n case 'updateDate':\n case 'reltioLoadDate':\n return (\n <Typography className={styles.text} variant={'body2'}>\n {formatDateTime(attributeValue)}\n </Typography>\n );\n default:\n return null;\n }\n };\n\n return (\n <>\n {extraAttributes.length > 0 && canEditAttribute && (\n <MoreAttributesButton\n label={i18n.text('Add attributes')}\n onApply={addSelectedAttributes}\n data={extraAttributes}\n />\n )}\n {attributes.map((attribute) =>\n attribute.uri in crosswalk || addedAttributes.includes(attribute.uri) ? (\n <div key={attribute.uri} className={styles.attributeWrapper}>\n <Typography variant={'body2'} className={styles.attributeTitle}>\n {`${attribute.label}:`}\n </Typography>\n <div className={styles.attributeValue}>\n {renderAttributeValue(attribute.uri, crosswalk[attribute.uri])}\n {attribute.canBeDeleted && (\n <SmallIconButtonWithTooltip\n icon={DeleteIcon}\n disabled={!canEditAttribute}\n onClick={() => setPendingDeletionAttrUri(attribute.uri)}\n size=\"XS\"\n tooltipTitle={i18n.text('Delete attribute')}\n showForDisabled={true}\n />\n )}\n </div>\n </div>\n ) : null\n )}\n <ConfirmDeleteDialog\n open={!!pendingDeletionAttrUri}\n onClose={() => setPendingDeletionAttrUri(null)}\n onConfirm={() => handleDeleteAttribute(pendingDeletionAttrUri)}\n />\n </>\n );\n};\n\nexport default CrosswalkAttributes;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n dragLayer: {\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n zIndex: 1300,\n pointerEvents: 'none'\n },\n crosswalkPreview: {\n height: '28px',\n maxWidth: '394px',\n display: 'flex',\n overflow: 'hidden',\n padding: '6px',\n alignItems: 'center',\n boxSizing: 'border-box'\n },\n sourceLabel: {\n fontSize: '13px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n },\n sourceIcon: {\n width: '16px',\n height: '16px',\n marginRight: '9px'\n }\n});\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport {CrosswalkBase, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport ColoredBlock from '../ColoredBlock/ColoredBlock';\nimport {useCrosswalkColor} from '../../../contexts/CrosswalksDisplayContext';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport {Typography as Typography} from '@material-ui/core';\nimport mdmModule from '@reltio/mdm-module';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: CrosswalkBase;\n};\n\nconst CrosswalkDragPreview = ({crosswalk}: Props) => {\n const styles = useStyles();\n const color = useCrosswalkColor(crosswalk);\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const sourceSystemLabel = getSourceSystemLabel(metadata, crosswalk.type);\n return (\n <ColoredBlock color={color} className={styles.crosswalkPreview}>\n <SourceIcon className={styles.sourceIcon} sourceType={crosswalk.type} />\n <Typography className={styles.sourceLabel} variant={'body2'}>\n {sourceSystemLabel}\n </Typography>\n </ColoredBlock>\n );\n};\n\nexport default CrosswalkDragPreview;\n","import React, {memo, useRef} from 'react';\nimport {useDragLayer} from 'react-dnd';\nimport CrosswalkDragPreview from './CrosswalkDragPreview';\nimport {CrosswalkBase} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\nconst CrosswalkDragLayer = () => {\n const styles = useStyles();\n\n const {isDragging, clientOffset, item} = useDragLayer((monitor) => ({\n isDragging: monitor.isDragging(),\n clientOffset: monitor.getClientOffset(),\n item: monitor.getItem()\n }));\n const dragLayerRef = useRef<HTMLDivElement>();\n const dragLayerRect = dragLayerRef.current?.getBoundingClientRect() || {x: 0, y: 0};\n const dragItemX = clientOffset?.x - dragLayerRect?.x;\n const dragItemY = clientOffset?.y - dragLayerRect?.y;\n const dragItemTransform = `translate(${dragItemX}px, ${dragItemY}px`;\n\n return (\n isDragging && (\n <div ref={dragLayerRef} className={styles.dragLayer}>\n <div\n style={{\n display: 'flex',\n transform: dragItemTransform,\n WebkitTransform: dragItemTransform\n }}\n >\n {item.type === 'Crosswalk' && <CrosswalkDragPreview crosswalk={item.crosswalk as CrosswalkBase} />}\n </div>\n </div>\n )\n );\n};\n\nexport default memo(CrosswalkDragLayer);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n caption: {\n paddingLeft: 15,\n paddingTop: 16,\n paddingBottom: 8\n },\n controlButtons: {\n display: 'flex',\n justifyContent: 'flex-end',\n paddingBottom: 10,\n paddingTop: 20\n },\n cancelButton: {\n marginRight: 20\n }\n});\n","import React, {useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {Button as Button} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Crosswalk} from '@reltio/mdm-sdk';\nimport CrosswalkAttributes from '../CrosswalkAttributes/CrosswalkAttributes';\nimport {assoc, dissoc} from 'ramda';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n onAdd: (event: Omit<Crosswalk, 'uri'>) => void;\n onClose: () => void;\n};\n\nconst CrosswalkEditor = ({className, onAdd, onClose}: Props) => {\n const styles = useStyles();\n\n const [newCrosswalk, setNewCrosswalk] = useState<Omit<Crosswalk, 'uri'>>({type: '', value: ''});\n\n const handleAdd = () => {\n onAdd(newCrosswalk);\n onClose();\n };\n\n return (\n <div className={className}>\n <Typography variant={'body1'} className={styles.caption}>\n {i18n.text('Add crosswalk')}\n </Typography>\n <CrosswalkAttributes\n crosswalk={newCrosswalk}\n onDeleteAttribute={(attributeName: string) => {\n setNewCrosswalk(dissoc(attributeName));\n }}\n onEditAttribute={(attributeName: string, value: any) => {\n setNewCrosswalk(assoc(attributeName, value));\n }}\n />\n <div className={styles.controlButtons}>\n <Button className={styles.cancelButton} onClick={onClose}>\n {i18n.text('Cancel')}\n </Button>\n <Button color=\"primary\" onClick={handleAdd} disabled={!newCrosswalk.type || !newCrosswalk.value}>\n {i18n.text('Add')}\n </Button>\n </div>\n </div>\n );\n};\n\nexport default CrosswalkEditor;\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n isOpaque?: boolean;\n};\n\nexport const useStyles = makeStyles(() => ({\n root: ({isOpaque}: StylesProps) => ({\n display: 'flex',\n opacity: isOpaque ? 1 : 0.38,\n transition: 'opacity 0.3s'\n }),\n wrapper: ({isOpaque}: StylesProps) => ({\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n height: 28,\n filter: isOpaque ? null : 'saturate(0%)',\n backgroundImage:\n 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNXG14zYAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDcvMjYvMTMEw7WpAAAAeElEQVQ4ja3VuwrAIBBE0aup0uX/v9ImCCGSdIL4WF136+EwxcC6+3k/hAsxSREArvPAW2LAGFzFhqAG64JarAnuYBW4ixWgBZZBKwzAW2Ig7HAVCzHJ4AoGQsNVbAhqsC6oxZrgDlaBu1gBWmAZtMIA3MwLmMUAfmyqQ9/LD+oDAAAAAElFTkSuQmCC)'\n }),\n focusedIcon: {\n width: 28,\n height: 28,\n backgroundColor: 'rgba(0, 0, 0, 0.12)',\n borderRadius: 0,\n borderRight: '1px solid #fff'\n },\n sourceIcon: {\n height: '16px',\n width: '16px',\n marginLeft: '16px',\n marginRight: '9px',\n fontSize: '14px'\n }\n}));\n","import React, {memo} from 'react';\nimport {useSelector} from 'react-redux';\n\nimport {Typography as Typography} from '@material-ui/core';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport SmallIconButton from '../../SmallIconButton/SmallIconButton';\nimport {useCrosswalkHighlight} from '../../../contexts/CrosswalksDisplayContext';\nimport mdmModule from '@reltio/mdm-module';\nimport {getSourceSystemLabel} from '@reltio/mdm-sdk';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalkType: string;\n focusable?: boolean;\n};\n\nconst DummyCrosswalkRow = ({crosswalkType, focusable = true}: Props) => {\n const {isDimmed} = useCrosswalkHighlight();\n const styles = useStyles({isOpaque: !isDimmed});\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const sourceSystemLabel = getSourceSystemLabel(metadata, crosswalkType);\n return (\n <div className={styles.root}>\n <SmallIconButton size=\"XXS\" className={styles.focusedIcon} icon={focusable && VisibilityIcon} disabled />\n <div className={styles.wrapper}>\n <SourceIcon className={styles.sourceIcon} sourceType={crosswalkType} />\n <Typography variant={'body2'}>{sourceSystemLabel}</Typography>\n </div>\n </div>\n );\n};\n\nexport default memo(DummyCrosswalkRow);\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype StylesProps = {\n color?: string;\n isOpaque?: boolean;\n isFocused?: boolean;\n};\n\nexport const useStyles = makeStyles({\n root: ({isOpaque}: StylesProps) => ({\n display: 'flex',\n opacity: isOpaque ? 1 : 0.19,\n transition: 'opacity 0.3s'\n }),\n header: {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n height: '28px'\n },\n focusedIcon: ({isFocused}: StylesProps) => ({\n width: '26px',\n '&:not([disabled])': {\n border: '1px solid rgba(0, 0, 0, 0.12)'\n },\n height: '28px',\n color: isFocused ? '#000' : 'rgba(0, 0, 0, 0.54)',\n borderRadius: 0,\n margin: '0px 1px'\n }),\n crosswalkWrapper: {\n width: '100%',\n overflow: 'hidden'\n },\n sourceIcon: {\n height: '16px',\n width: '16px',\n marginRight: '9px',\n fontSize: '14px'\n },\n attributesWrapper: ({color}: StylesProps) => ({\n border: '1px solid',\n borderColor: color,\n position: 'relative'\n }),\n deleteCrosswalkButton: {\n position: 'absolute',\n top: 5,\n right: 5\n },\n labelValue: {\n marginLeft: 5\n },\n dependentIcon: {\n width: '16px',\n height: '16px',\n fillOpacity: 0.38\n }\n});\n","import React, {memo, useEffect, useRef, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {Typography as Typography} from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport VisibilityIcon from '@material-ui/icons/Visibility';\nimport {\n Crosswalk,\n eqCrosswalks,\n getLastUriPart,\n getSourceSystemLabel,\n isCrosswalkDisabled,\n RelationCrosswalk\n} from '@reltio/mdm-sdk';\nimport ArrowExpandButton from '../../ArrowExpandButton/ArrowExpandButton';\nimport ExpandedValueTooltip from '../../ExpandedValueTooltip/ExpandedValueTooltip';\nimport ColoredBlock from '../ColoredBlock/ColoredBlock';\nimport ConfirmDeleteDialog from '../../ConfirmDeleteDialog/ConfirmDeleteDialog';\nimport {SmallIconButtonWithTooltip} from '../../SmallIconButton';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport Spacer from '../../Spacer/Spacer';\nimport {\n useCrosswalkColor,\n useCrosswalkFocus,\n useCrosswalkHighlight,\n useHighlightedCrosswalks\n} from '../../../contexts/CrosswalksDisplayContext';\nimport mdmModule from '@reltio/mdm-module';\nimport DependentIcon from '../../../icons/NestedAttribute';\nimport {useDrag} from 'react-dnd';\nimport {getEmptyImage} from 'react-dnd-html5-backend';\nimport CrosswalkAttributes from '../CrosswalkAttributes/CrosswalkAttributes';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: Crosswalk | RelationCrosswalk;\n isDependent?: boolean;\n focusable?: boolean;\n isEmpty?: boolean;\n isColored?: boolean;\n disableEdit: boolean;\n disableDelete: boolean;\n onDelete: (crosswalkId: string) => void;\n onEdit: (event: {crosswalkId: string; attributeName: string; value?: string}) => void;\n};\n\nconst CrosswalkRow = ({\n crosswalk,\n isDependent,\n isEmpty = false,\n isColored = true,\n focusable = true,\n disableEdit,\n disableDelete,\n onDelete,\n onEdit\n}: Props) => {\n const ref = useRef(null);\n const crosswalkColor = useCrosswalkColor(crosswalk);\n const {toggleCrosswalkFocus, isFocused} = useCrosswalkFocus(crosswalk);\n const {isDimmed, highlightCrosswalk, removeHighlight} = useCrosswalkHighlight(crosswalk);\n const coloredCrosswalk = isDimmed ? 'rgba(0, 0, 0, 0.12)' : crosswalkColor;\n const color = isEmpty ? '#FFF' : isColored ? coloredCrosswalk : '#CACCD1';\n const [scrollToCrosswalk] = useHighlightedCrosswalks();\n const styles = useStyles({color, isOpaque: !isDimmed, isFocused});\n const [expanded, setExpanded] = useState(false);\n const [isDeleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const sourceSystemLabel = getSourceSystemLabel(metadata, crosswalk.type);\n const crosswalkId = getLastUriPart(crosswalk.uri);\n const crosswalkDisabled = isCrosswalkDisabled(crosswalk);\n\n const [, drag, preview] = useDrag({\n item: {\n type: 'Crosswalk',\n crosswalk\n },\n canDrag: !crosswalkDisabled\n });\n\n const canDelete = !crosswalkDisabled && crosswalk.ownerType !== 'relation';\n\n useEffect(() => {\n preview(getEmptyImage(), {captureDraggingState: true});\n }, []);\n\n useEffect(() => {\n if (\n focusable &&\n scrollToCrosswalk &&\n eqCrosswalks(scrollToCrosswalk, crosswalk) &&\n scrollToCrosswalk !== crosswalk\n ) {\n ref?.current?.scrollIntoView({behavior: 'smooth'});\n }\n }, [scrollToCrosswalk]);\n\n const handleDeleteCrosswalk = () => {\n if (isFocused) toggleCrosswalkFocus();\n onDelete(crosswalkId);\n };\n\n return (\n <div className={styles.root} ref={ref}>\n <SmallIconButtonWithTooltip\n size=\"XXS\"\n className={styles.focusedIcon}\n icon={focusable && VisibilityIcon}\n onClick={() => toggleCrosswalkFocus()}\n disabled={!focusable}\n tooltipTitle={focusable && i18n.text('Focus')}\n />\n <div className={styles.crosswalkWrapper}>\n <ColoredBlock\n ref={drag}\n className={styles.header}\n color={color}\n variant={crosswalkDisabled ? 'disabled' : 'standart'}\n onMouseEnter={() => highlightCrosswalk()}\n onMouseLeave={() => removeHighlight()}\n >\n {isDependent && <DependentIcon className={styles.dependentIcon} />}\n <ArrowExpandButton onClick={() => setExpanded((value) => !value)} expanded={expanded} />\n <SourceIcon className={styles.sourceIcon} sourceType={crosswalk.type} />\n <ExpandedValueTooltip value={sourceSystemLabel}>\n <Typography variant={'body2'} noWrap>\n {sourceSystemLabel}\n </Typography>\n </ExpandedValueTooltip>\n <Spacer />\n <ExpandedValueTooltip value={crosswalk.value}>\n <Typography variant={'body2'} className={styles.labelValue} noWrap>\n {crosswalk.value}\n </Typography>\n </ExpandedValueTooltip>\n </ColoredBlock>\n {expanded && (\n <div className={styles.attributesWrapper}>\n {canDelete && (\n <div className={styles.deleteCrosswalkButton}>\n <SmallIconButtonWithTooltip\n icon={DeleteIcon}\n disabled={disableDelete}\n onClick={() => setDeleteDialogOpen(true)}\n size=\"XS\"\n tooltipTitle={\n disableDelete\n ? i18n.text(\"You don't have permissions to delete\")\n : i18n.text('Delete crosswalk')\n }\n showForDisabled={true}\n />\n <ConfirmDeleteDialog\n open={isDeleteDialogOpen}\n onConfirm={handleDeleteCrosswalk}\n onClose={() => setDeleteDialogOpen(false)}\n />\n </div>\n )}\n <CrosswalkAttributes\n crosswalk={crosswalk}\n canEditAttribute={!disableEdit}\n onEditAttribute={(attributeName: string, value: any) => {\n onEdit({\n crosswalkId,\n attributeName,\n value\n });\n }}\n onDeleteAttribute={(attributeName: string) => {\n onEdit({\n crosswalkId,\n attributeName\n });\n }}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default memo(CrosswalkRow);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n root: {\n display: 'flex',\n alignItems: 'center',\n height: '28px',\n paddingLeft: '37px'\n }\n}));\n","import React from 'react';\nimport {Link as Link} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n showMore: boolean;\n onClick: () => void;\n};\n\nconst ShowDependentLink = ({showMore, onClick}: Props) => {\n const styles = useStyles();\n return (\n <Link className={styles.root} component=\"button\" variant=\"caption\" underline=\"none\" onClick={onClick}>\n <span>{showMore ? i18n.text('View dependent crosswalks') : i18n.text('Hide dependent crosswalks')}</span>\n </Link>\n );\n};\n\nexport default ShowDependentLink;\n","import React, {useEffect} from 'react';\nimport {useHighlightedCrosswalks} from '../../../contexts/CrosswalksDisplayContext';\nimport {CrosswalksByTypes, CrosswalkType} from '../types';\nimport {eqCrosswalks} from '@reltio/mdm-sdk';\nimport DummyCrosswalkRow from '../DummyCrosswalkRow/DummyCrosswalkRow';\nimport CrosswalkRow from '../CrosswalkRow/CrosswalkRow';\nimport ShowDependentLink from '../ShowDependentLink/ShowDependentLink';\n\ntype Props = {\n source: string;\n crosswalksByTypes: CrosswalksByTypes;\n showCrosswalkColors?: boolean;\n crosswalksFocusEnabled?: boolean;\n expanded?: boolean;\n disableEditCrosswalk: boolean;\n disableDeleteCrosswalk: boolean;\n onEdit: (event: {crosswalkId: string; attributeName: string; value?: string}) => void;\n onDelete: (crosswalkId: string) => void;\n onToggleExpanded: () => void;\n};\n\nconst SourceCrosswalksRow = ({\n source,\n crosswalksByTypes,\n showCrosswalkColors = true,\n crosswalksFocusEnabled = true,\n expanded,\n disableEditCrosswalk,\n disableDeleteCrosswalk,\n onEdit,\n onDelete,\n onToggleExpanded\n}: Props) => {\n const highlightedCrosswalks = useHighlightedCrosswalks();\n useEffect(() => {\n if (\n !expanded &&\n crosswalksFocusEnabled &&\n crosswalksByTypes[CrosswalkType.Dependent].some((dependentCrosswalk) =>\n highlightedCrosswalks.some(eqCrosswalks(dependentCrosswalk))\n )\n ) {\n onToggleExpanded();\n }\n }, [highlightedCrosswalks]);\n\n return (\n <>\n {crosswalksByTypes[CrosswalkType.Simple].length === 0 &&\n crosswalksByTypes[CrosswalkType.Empty].length === 0 && (\n <DummyCrosswalkRow crosswalkType={source} focusable={crosswalksFocusEnabled} />\n )}\n {crosswalksByTypes[CrosswalkType.Simple].map((crosswalk) => (\n <CrosswalkRow\n key={crosswalk.uri}\n crosswalk={crosswalk}\n focusable={crosswalksFocusEnabled}\n disableEdit={disableEditCrosswalk}\n disableDelete={disableDeleteCrosswalk}\n onDelete={onDelete}\n onEdit={onEdit}\n isColored={showCrosswalkColors}\n />\n ))}\n {crosswalksByTypes[CrosswalkType.Empty].map((crosswalk) => (\n <CrosswalkRow\n key={crosswalk.uri}\n crosswalk={crosswalk}\n focusable={crosswalksFocusEnabled}\n isEmpty={true}\n disableEdit={disableEditCrosswalk}\n disableDelete={disableDeleteCrosswalk}\n onDelete={onDelete}\n onEdit={onEdit}\n isColored={showCrosswalkColors}\n />\n ))}\n {expanded &&\n crosswalksByTypes[CrosswalkType.Dependent].map((crosswalk) => (\n <CrosswalkRow\n key={crosswalk.uri}\n crosswalk={crosswalk}\n isDependent={true}\n disableEdit={disableEditCrosswalk}\n disableDelete={disableDeleteCrosswalk}\n onDelete={onDelete}\n onEdit={onEdit}\n focusable={crosswalksFocusEnabled}\n isColored={showCrosswalkColors}\n />\n ))}\n {crosswalksByTypes[CrosswalkType.Dependent].length > 0 && (\n <ShowDependentLink showMore={!expanded} onClick={() => onToggleExpanded()} />\n )}\n </>\n );\n};\n\nexport default SourceCrosswalksRow;\n","import {useCallback} from 'react';\nimport {andThen, ifElse, isNil, pipe} from 'ramda';\nimport {\n addCrosswalk,\n addCrosswalkInContributor,\n deleteCrosswalk,\n deleteCrosswalkAttribute,\n editCrosswalkAttribute\n} from '@reltio/mdm-sdk';\nimport {AddCrosswalkEvent, DeleteCrosswalkEvent, EditCrosswalkEvent} from '../types';\nimport {noop} from '../../../core';\n\ntype Props = {\n onLoad?: () => void;\n onSuccess?: () => void;\n onError?: (error: unknown) => void;\n};\n\nexport const useCrosswalkActions = ({onLoad = noop, onSuccess = noop, onError = noop}: Props) => {\n const handleRequest = useCallback(\n (request: Promise<unknown>) => {\n onLoad();\n request\n .then(({errors}) => {\n if (errors) throw errors;\n onSuccess();\n })\n .catch(onError);\n },\n [onLoad, onError, onSuccess]\n );\n\n const addCrosswalkAction = useCallback(\n ({entity, contributorCrosswalk, crosswalk}: AddCrosswalkEvent) => {\n const addRequest = contributorCrosswalk\n ? addCrosswalkInContributor({\n entityTypeUri: entity.type,\n contributorCrosswalkType: contributorCrosswalk.type,\n contributorCrosswalkValue: contributorCrosswalk.value,\n contributorCrosswalkSourceTable: contributorCrosswalk.sourceTable,\n crosswalkType: crosswalk.type,\n crosswalkValue: crosswalk.value,\n crosswalkSourceTable: crosswalk.sourceTable,\n crosswalkDeleteDate: crosswalk.deleteDate\n })\n : addCrosswalk({entityUri: entity.uri, crosswalk});\n pipe(\n andThen(([response]) => response),\n handleRequest\n )(addRequest);\n },\n [handleRequest]\n );\n\n const editCrosswalkAction = useCallback(\n ({entityUri, crosswalkId, attributeName, value}: EditCrosswalkEvent) => {\n pipe(\n ifElse(({value}) => isNil(value), deleteCrosswalkAttribute, editCrosswalkAttribute),\n andThen(([response]) => response),\n handleRequest\n )({\n entityUri,\n crosswalkId,\n attributeName,\n value\n });\n },\n [handleRequest]\n );\n\n const deleteCrosswalkAction = useCallback(\n ({entityUri, crosswalkId}: DeleteCrosswalkEvent) => {\n pipe(\n deleteCrosswalk,\n handleRequest\n )({\n entityUri,\n crosswalkId\n });\n },\n [handleRequest]\n );\n\n return {\n addCrosswalk: addCrosswalkAction,\n editCrosswalk: editCrosswalkAction,\n deleteCrosswalk: deleteCrosswalkAction\n };\n};\n","import {useCallback, useEffect, useRef, useState} from 'react';\nimport {useAttributeActions} from './useAttributeActions';\nimport {\n addNewAttribute,\n areOneHierarchyUris,\n createNewAttribute,\n Crosswalk,\n CrosswalkBase,\n editAttribute,\n Entity,\n findAttributeValueByUri,\n findAttributeValues,\n getAttributeValue,\n getCrosswalkAttributes,\n getRelationCrosswalks,\n isTempUri,\n Relation,\n RelationCrosswalk,\n removeAttribute\n} from '@reltio/mdm-sdk';\nimport {\n AddInlineAttributeEvent,\n CrosswalksMap,\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent\n} from '../../attributes/inline';\nimport {CrosswalksByOwnerTypeMap} from '../types';\nimport {difference, dissoc, evolve, isNil, pipe, without} from 'ramda';\nimport {noop} from '../../../core';\n\ntype Props = {\n entity: Entity | Relation;\n onLoad?: () => void;\n onModify?: () => void;\n onError?: (error: unknown) => void;\n};\n\nconst emptyArray = [];\n\nexport const useModifiedEntity = ({entity, onLoad = noop, onModify = noop, onError = noop}: Props) => {\n const [modifiedEntity, setModifiedEntity] = useState<Entity | Relation>(null);\n const [crosswalksMap, setCrosswalksMap] = useState<CrosswalksByOwnerTypeMap>(null);\n const temporaryAttributes = useRef<string[]>([]);\n const crosswalkForNewAttributes = useRef<CrosswalkBase>(null);\n const resetCrosswalkForNewAttributes = useCallback(() => {\n crosswalkForNewAttributes.current = null;\n }, []);\n const [newlyCreatedAttributes, setNewlyCreatedAttributes] = useState<string[]>(emptyArray);\n\n const groupCrosswalksByAttrUri = (crosswalks: (Crosswalk | RelationCrosswalk)[] = []): CrosswalksMap =>\n crosswalks.reduce((acc, crosswalk: Crosswalk | RelationCrosswalk) => {\n getCrosswalkAttributes(crosswalk).forEach((uri: string) => {\n acc[uri] = [...(acc[uri] || []), crosswalk];\n });\n return acc;\n }, {});\n\n useEffect(() => {\n const newCrosswalksMap = {\n entity: groupCrosswalksByAttrUri(entity?.crosswalks),\n relation: pipe(getRelationCrosswalks, groupCrosswalksByAttrUri)(entity)\n };\n if (modifiedEntity?.uri === entity?.uri && crosswalkForNewAttributes.current) {\n const {ownerType} = crosswalkForNewAttributes.current;\n const newAttributes = Object.keys(newCrosswalksMap[ownerType]);\n const oldAttributes = Object.keys(crosswalksMap[ownerType]);\n setNewlyCreatedAttributes(difference(newAttributes, oldAttributes));\n } else {\n setNewlyCreatedAttributes(emptyArray);\n }\n resetCrosswalkForNewAttributes();\n setModifiedEntity(entity);\n setCrosswalksMap(newCrosswalksMap);\n temporaryAttributes.current = [];\n }, [entity]);\n\n const handleError = useCallback(pipe(onError, resetCrosswalkForNewAttributes), [\n onError,\n resetCrosswalkForNewAttributes\n ]);\n\n const {deleteAttribute, ignoreAttribute, pinAttribute, createAttribute, updateAttribute} = useAttributeActions({\n onLoad,\n onSuccess: onModify,\n onError: handleError\n });\n\n const onAddAttribute = useCallback(({attributeType, parentUri, crosswalk, index}: AddInlineAttributeEvent) => {\n const newAttribute = createNewAttribute({parentUri, attributeType});\n const {uri} = newAttribute;\n if (crosswalk) {\n const {ownerType} = crosswalk;\n setCrosswalksMap((crosswalksMap) => ({\n ...crosswalksMap,\n [ownerType]: {\n ...crosswalksMap[ownerType],\n [uri]: [crosswalk]\n }\n }));\n }\n setModifiedEntity((entity) => {\n if (isNil(index)) {\n index = findAttributeValues(entity, parentUri, attributeType.name)?.length;\n }\n return addNewAttribute({entity, attributeType, newAttribute, index});\n });\n if (!temporaryAttributes.current.some((tempUri) => areOneHierarchyUris(uri, tempUri))) {\n temporaryAttributes.current.push(uri);\n }\n }, []);\n\n const onDeleteAttribute = useCallback(\n (event: DeleteInlineAttributeEvent) => {\n const {\n attributeValue: {uri},\n attributeType\n } = event;\n if (isTempUri(uri)) {\n setModifiedEntity((entity) => removeAttribute({entity, attributeType, uri}));\n setCrosswalksMap(\n evolve({\n entity: dissoc(uri),\n relation: dissoc(uri)\n })\n );\n temporaryAttributes.current = without([uri], temporaryAttributes.current);\n } else {\n deleteAttribute(event);\n }\n },\n [deleteAttribute]\n );\n\n const onEditAttribute = useCallback(\n (event: EditInlineAttributeEvent) => {\n if (isTempUri(event.attributeValue.uri)) {\n const {attributeValue, attributeType, crosswalk} = event;\n if (!isNil(attributeValue.value)) {\n const {uri} = attributeValue;\n const tempAttributeUri = temporaryAttributes.current.find((tempUri) =>\n areOneHierarchyUris(uri, tempUri)\n );\n const editedEntity = editAttribute({\n entity: modifiedEntity,\n attributeType,\n uri,\n value: getAttributeValue(attributeValue)\n });\n createAttribute({\n attributeValue: findAttributeValueByUri(editedEntity, tempAttributeUri),\n crosswalk\n });\n crosswalkForNewAttributes.current = crosswalk;\n }\n } else {\n updateAttribute(event);\n }\n },\n [createAttribute, updateAttribute, modifiedEntity]\n );\n\n return {\n modifiedEntity,\n crosswalksMap,\n onAddAttribute,\n onDeleteAttribute,\n onPinAttribute: pinAttribute,\n onIgnoreAttribute: ignoreAttribute,\n onEditAttribute,\n newlyCreatedAttributes\n };\n};\n","import {useCallback} from 'react';\nimport {\n createAttribute,\n deleteAttribute,\n getReferencedRelationFromAttrValue,\n ignoreAttribute,\n isComplexAttribute,\n isImage,\n isLookupAttrType,\n isReference,\n pinAttribute,\n removeRelation,\n updateAttribute\n} from '@reltio/mdm-sdk';\nimport {\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent,\n IgnoreInlineAttributeEvent,\n PinInlineAttributeEvent\n} from '../../attributes/inline';\nimport {andThen, pipe, prop} from 'ramda';\nimport {CreateAttributeEvent} from '../types';\nimport {noop} from '../../../core';\n\ntype Props = {\n onLoad?: () => void;\n onSuccess?: () => void;\n onError?: (error: unknown) => void;\n};\n\nexport const useAttributeActions = ({onSuccess = noop, onError = noop, onLoad = noop}: Props) => {\n const handleAction = useCallback(\n (request: Promise<unknown>) => {\n onLoad();\n request\n .then(() => {\n onSuccess();\n })\n .catch(onError);\n },\n [onError, onSuccess, onLoad]\n );\n const handleErrorResponse = useCallback((request: Promise<{error?: unknown}>) => {\n return request.then((response) => {\n if ('error' in response) throw response.error;\n return response;\n });\n }, []);\n\n const deleteAttributeAction = useCallback(\n ({attributeValue, attributeType, crosswalks}: DeleteInlineAttributeEvent) => {\n const action = isReference(attributeType)\n ? pipe(\n getReferencedRelationFromAttrValue,\n prop('objectURI'),\n removeRelation,\n handleErrorResponse\n )(attributeValue)\n : Promise.all(\n (crosswalks || []).map(({type, value, sourceTable}) =>\n handleErrorResponse(\n deleteAttribute({\n attributeUri: attributeValue.uri,\n sourceUri: type,\n crosswalkValue: value,\n crosswalkSourceTable: sourceTable\n })\n )\n )\n );\n handleAction(action);\n },\n [handleAction, handleErrorResponse]\n );\n\n const pinAttributeAction = useCallback(\n ({attributeValue}: PinInlineAttributeEvent) => {\n pipe(\n pinAttribute,\n handleErrorResponse,\n handleAction\n )({\n attributeUri: attributeValue.uri,\n value: !attributeValue.pin\n });\n },\n [handleAction, handleErrorResponse]\n );\n\n const ignoreAttributeAction = useCallback(\n ({attributeValue}: IgnoreInlineAttributeEvent) => {\n pipe(\n ignoreAttribute,\n handleErrorResponse,\n handleAction\n )({\n attributeUri: attributeValue.uri,\n value: !attributeValue.ignored\n });\n },\n [handleAction, handleErrorResponse]\n );\n\n const updateAttributeAction = useCallback(\n ({attributeValue, attributeType, crosswalk}: EditInlineAttributeEvent) => {\n if (isComplexAttribute(attributeType) || isImage(attributeType)) return;\n pipe(\n updateAttribute,\n handleErrorResponse,\n handleAction\n )({\n attributeUri: attributeValue.uri,\n sourceUri: crosswalk.type,\n crosswalkValue: crosswalk.value,\n crosswalkSourceTable: crosswalk.sourceTable,\n value: isLookupAttrType(attributeType) ? attributeValue.lookupCode : attributeValue.value\n });\n },\n [handleAction, handleErrorResponse]\n );\n\n const createAttributeAction = useCallback(\n ({attributeValue, crosswalk}: CreateAttributeEvent) => {\n pipe(\n createAttribute,\n andThen(([{errors}]) => {\n if (errors) throw errors;\n }),\n handleAction\n )({\n attributeUri: attributeValue.uri,\n sourceUri: crosswalk.type,\n crosswalkValue: crosswalk.value,\n crosswalkSourceTable: crosswalk.sourceTable,\n value: attributeValue.value\n });\n },\n [handleAction]\n );\n\n return {\n deleteAttribute: deleteAttributeAction,\n pinAttribute: pinAttributeAction,\n ignoreAttribute: ignoreAttributeAction,\n updateAttribute: updateAttributeAction,\n createAttribute: createAttributeAction\n };\n};\n","export enum CrosswalkType {\n Simple = 'simple',\n Empty = 'empty',\n Dependent = 'dependent'\n}\n","import {\n AttributeType,\n Crosswalk,\n getAttributeTypeUriByValueUri,\n getCrosswalkAttributes,\n isComplexAttribute,\n RelationCrosswalk\n} from '@reltio/mdm-sdk';\nimport {curry, evolve, propEq, sort} from 'ramda';\nimport {CrosswalksByTypes, CrosswalkType} from '../types';\n\nconst isEmptyCrosswalk = (\n entityTypeUri: string,\n selectedAttributeTypes: AttributeType[],\n crosswalk: Crosswalk | RelationCrosswalk\n) => {\n const visibleAttributes = getCrosswalkAttributes(crosswalk).filter((attributeUri: string) => {\n const attributeTypeUri = getAttributeTypeUriByValueUri(attributeUri, entityTypeUri);\n return selectedAttributeTypes.some(propEq('uri', attributeTypeUri));\n });\n return visibleAttributes.length === 0;\n};\n\nconst isCrosswalkWithoutSimple = (\n entityTypeUri: string,\n selectedAttributeTypes: AttributeType[],\n crosswalk: Crosswalk | RelationCrosswalk\n) => {\n return !getCrosswalkAttributes(crosswalk).some((attributeUri) => {\n const attributeTypeUri = getAttributeTypeUriByValueUri(attributeUri, entityTypeUri);\n const attributeType = selectedAttributeTypes.find(propEq('uri', attributeTypeUri));\n return attributeType && !isComplexAttribute(attributeType);\n });\n};\n\nconst getCrosswalksWeight = (crosswalks: CrosswalksByTypes) => {\n if (crosswalks[CrosswalkType.Simple].length > 0) {\n return 1;\n }\n if (crosswalks[CrosswalkType.Dependent].length > 0) {\n return crosswalks[CrosswalkType.Empty].length > 0 ? 2 : 3;\n }\n return 4;\n};\n\nconst sortDependentCrosswalksBySourceTable = evolve({\n [CrosswalkType.Dependent]: sort((cwA, cwB) => {\n const sourceTableA = cwA.sourceTable || '';\n const sourceTableB = cwB.sourceTable || '';\n if (sourceTableA === sourceTableB) return 0;\n if (!sourceTableA) return 1;\n if (!sourceTableB) return -1;\n return sourceTableA < sourceTableB ? -1 : 1;\n })\n});\n\nexport const groupCrosswalksByTypesAndSources = curry(\n (entityTypeUri: string, selectedAttributeTypes: AttributeType[], crosswalks: (Crosswalk | RelationCrosswalk)[]) => {\n const crosswalksBySourcesMap = (crosswalks || []).reduce((acc, crosswalk: Crosswalk | RelationCrosswalk) => {\n if (!acc[crosswalk.type]) {\n acc[crosswalk.type] = {\n [CrosswalkType.Simple]: [],\n [CrosswalkType.Empty]: [],\n [CrosswalkType.Dependent]: []\n };\n }\n if (crosswalk.ownerType === 'relation') {\n acc[crosswalk.type][CrosswalkType.Dependent].push(crosswalk);\n } else if (isEmptyCrosswalk(entityTypeUri, selectedAttributeTypes, crosswalk)) {\n acc[crosswalk.type][CrosswalkType.Empty].push(crosswalk);\n } else if (isCrosswalkWithoutSimple(entityTypeUri, selectedAttributeTypes, crosswalk)) {\n acc[crosswalk.type][CrosswalkType.Dependent].push(crosswalk);\n } else {\n acc[crosswalk.type][CrosswalkType.Simple].push(crosswalk);\n }\n return acc;\n }, {});\n return Object.keys(crosswalksBySourcesMap)\n .sort((sourceA, sourceB) => {\n const weightA = getCrosswalksWeight(crosswalksBySourcesMap[sourceA]);\n const weightB = getCrosswalksWeight(crosswalksBySourcesMap[sourceB]);\n const weightDiff = weightA - weightB;\n return weightDiff || (sourceA < sourceB ? -1 : 1);\n })\n .map((source: string) => ({\n source,\n crosswalksByTypes: sortDependentCrosswalksBySourceTable(crosswalksBySourcesMap[source])\n }));\n }\n);\n","import React, {createContext, useContext} from 'react';\nimport {areOneHierarchyUris} from '@reltio/mdm-sdk';\n\nconst ExpandedAttributesContext = createContext(null);\n\ntype ProviderProps = {\n children: React.ReactNode;\n attributeUris: string[];\n};\n\nexport const ExpandedAttributesProvider = ({children, attributeUris}: ProviderProps) => {\n return <ExpandedAttributesContext.Provider value={attributeUris}>{children}</ExpandedAttributesContext.Provider>;\n};\n\nexport const useAttributeExpanded = (attributeUri: string) => {\n const expandedAttributes = useContext(ExpandedAttributesContext) || [];\n return expandedAttributes.some((uri) => areOneHierarchyUris(uri, attributeUri));\n};\n"],"names":["getRowCellKey","rowIndex","columnData","id","cellIndex","rowCellHeightsMap","setRowCellHeightsMap","useState","rowCellHeightsMapCache","useRef","flushHeightUpdates","useCallback","debounce","current","clearHeightsCache","getDynamicRowCellHeight","pipe","prop","__","changeRowCellHeight","curry","useWith","key","value","identity","RowCellAutoSizer","onChangeHeight","children","cell","cellProps","cellRef","rowValue","changeCellHeight","adjustCellHeight","clientHeight","useDidUpdateEffect","rawValue","handleHeight","onResize","RootRef","rootRef","propTypes","PropTypes","open","onClose","onConfirm","Dialog","DialogContent","DialogContentText","i18n","DialogActions","Button","onClick","color","useStyles","makeStyles","theme","tooltip","backgroundColor","palette","background","paper","text","primary","filter","padding","maxWidth","arrow","props","styles","Tooltip","classes","profileBandNavigation","marginBottom","comments","display","justifyContent","ScreenProfileBand","memo","entity","className","historySlice","objectIds","useMemo","getProfileBandObjectIdsForCollaboration","collaboration","useCollaboration","entityUri","getEntityUriForLink","CollaborationContext","ProfileBand","classnames","COMMENTS_CONTAINER_VISIBILITY_AREA","aEntity","ProfileBandHistory","ProfileBandNavigation","CommentsContainer","uri","relatedObjectUris","createRelatedObjectUris","CollaborationObjectTypes","objectType","displayName","textField","margin","input","borderRadius","inputMultiline","paddingTop","paddingBottom","booleanEditor","paddingLeft","timestampEditor","minWidth","containerWidth","border","width","popoverRoot","zIndex","DATA_TYPES_WITH_MULTILINE_EDITOR","DataTypes","SimpleAttributeEditor","attributeType","attributeValue","containerRef","onEdit","getBoundingClientRect","dataTypeDefinition","getAttrDataTypeDefinition","initEditorValue","attributeValueToEditorValue","editorValue","changeEditorValue","TextFieldProps","InputProps","disableUnderline","root","multiline","applyChangesAndClose","editedValue","editorValueToAttributeValue","isNil","equals","editedAttributeValue","isLookupAttrType","lookupCode","isNumericType","type","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","isBooleanType","isTimestampBasedType","onKeyUp","event","includes","onBackdropClick","DataTypeValueEditor","autoFocus","fieldName","attributeUriToSearchUri","onChange","fullWidth","menuItem","minHeight","secondary","menuText","fontSize","lineHeight","letterSpacing","marginLeft","sourceItem","borderBottom","MenuItemWithTooltip","withTooltip","MenuItem","MenuItemContent","icon","Typography","CrosswalkMenuItem","forwardRef","ref","item","onMenuClose","disabled","crosswalk","SourceItem","focusable","tooltipTitle","showForDisabled","e","fullyColored","opaque","variant","wordBreak","content","position","height","pointerEvents","boxSizing","alignItems","opacity","transition","actions","marginRight","dataReltioId","disableEdit","disableDelete","onIgnore","onPin","onDelete","isReadingMode","isEditingMode","isHovered","onMouseEnter","onMouseLeave","setReadingMode","setEditingMode","useAttributeState","getLastUriPart","crosswalkDisabled","isCrosswalkDisabled","canModifyAttribute","system","canEdit","checkMetadataForUpdate","ModeTypes","canDelete","checkMetadataForDelete","isTemporary","isTempUri","showPin","pin","showIgnore","ignored","useCrosswalkColor","isHighlighted","isDimmed","highlightCrosswalk","removeHighlight","useCrosswalkHighlight","Edit","Delete","crosswalks","DataTypeValue","getAttributeValue","PinButton","isPinned","IgnoreButton","isIgnored","DropDownMenuButton","MenuItemRenderer","menuId","buttonComponent","SmallIconButtonWithTooltip","buttonProps","MoreVertIcon","size","menuItems","simpleAttributesWrapper","flexWrap","gap","dropIndicator","attributeValues","parentUri","crosswalksMap","onAdd","isDragItemOver","drop","useDrop","accept","canDrop","isRelationCrosswalk","isRelationUri","ownerType","isEntityCrosswalk","isEntityUri","checkMetadataForCreate","isRelationTypeUri","isEntityTypeUri","collect","monitor","isOver","index","length","attributeIndex","map","canCreate","NestedAttribute","ReferenceAttribute","ImageAttribute","wrapper","flexDirection","complexAttributesWrapper","paging","max","Infinity","requestNextPage","visibleValuesCount","setVisibleValuesCount","totalValues","propOr","hasPaging","showMore","showLess","shownValues","slice","hiddenValuesCount","values","other","renderValues","ShowMore","moreNumber","Math","min","valueNumber","ShowLess","isDisabled","isOpaque","LightArrowTooltip","title","placement","crosswalkIcon","attributeTypes","attributes","isReadableAttribute","BranchDecorator","enabled","Title","label","AttributesPager","name","path","SmallIconButton","DeleteIcon","disableRipple","flexShrink","alignSelf","verticalAlign","attributeTypesList","showDelete","expandedFromContext","useAttributeExpanded","expanded","setExpanded","pickBy","val","attrUri","areOneHierarchyUris","flatten","uniqBy","ArrowExpandButton","getCrosswalkId","Spacer","image","imageContainer","paddingRight","IMAGE_SIZE","imageWidth","imageHeight","ComplexAttribute","Image","containerClassName","src","getImageAttributeThumbnailUrl","getLabel","relationshipLabel","generateEntityUrl","useContext","UrlGeneratorsContext","metadata","useSelector","mdmModule","uiPath","entityLabel","ComplexAttributeLabel","InternalLink","href","getReferencedEntityUriFromAttrValue","getReferencedRelationAttrTypesUris","attrTypeUri","findAttributeTypeByUri","reject","useComplexAttributeLabelStyles","component","body2","viewBox","fill","xmlns","fillRule","clipRule","d","fillOpacity","IgnoredIcon","IgnoredOutlinedIcon","PinIcon","PinOutlinedIcon","toggleCrosswalkFocus","isFocused","useCrosswalkFocus","findSourceSystemByUri","sourceIcon","sourceType","sourceInfo","VisibilityIcon","eyeIcon","crosswalkValue","overflow","whiteSpace","textOverflow","AttributeStates","attributeState","setAttributeState","READING","EDITING","HOVERED","useEffect","setAttributeStateDebounced","renderAttributesList","valueContainerClassName","LabelRenderer","RightSlot","imageSize","imageMargin","coloredCell","right","top","headCell","rowCell","cellValueWrapper","attributeTitle","ovValue","marginTop","count","textAlign","ruleType","ruleTypeLabel","rulePopup","overflowY","popupItem","closeButton","popupTitle","fontWeight","popupTitleWrapper","popupItemsWrapper","maxHeight","winnerSourceItemWrapper","winnerSourceItem","winnerSourceItemLabel","DefaultHeadCellRenderer","withTableContext","pick","parentTypeUri","selectedAttributeTypes","onSelectAttributeTypes","parentType","entityTypes","relationTypes","find","propEq","isNotSelected","attrType","data","either","isReference","isImage","isNested","both","checkCanCreateAttribute","mode","MoreAttributesButton","onApply","addedTypes","typesToSelect","forEach","readOnly","simpleAttributeWrapper","complexAttributeWrapper","borderTop","nestedValues","i","referenceValues","build","SourcesRenderer","sourcesUriOrder","sourceUri","ListItem","SourceIcon","ListItemText","getSourceSystemLabel","primaryTypographyProps","AttributeRenderer","attributeUri","getInfoTitle","cond","getInfoContent","primaryAttributeUri","comparisonAttributeUri","info","setAnchorEl","closePopup","InfoIcon","currentTarget","IconButton","Close","List","showInfoIcon","WinnerSource","ColoredBlock","getCrosswalkColor","COLUMNS_DATA","hideable","initialWidth","isOvValue","isOv","DEFAULT_VISIBLE_COLUMNS","getCellValueRenderer","columnId","OvValuesRenderer","AttributeValuesRenderer","CountRenderer","RuleTypeRenderer","WinnerSourcesRenderer","DefaultCellValueRenderer","getSourcesUriOrderFromMetadata","getCrosswalksTypes","sortWith","descend","fixReferencedAttributeUri","getReferencedAttrTypeUrisFromAttrType","getBaseUri","getWinnerCrosswalks","chain","_","isInHierarchy","subAttrUriSuffix","subAttrValue","findValueInAttributesByUriSuffix","getBasicTableColumnsData","autoResize","resizable","sortable","headCellRenderer","AttributesHeadCellRenderer","HeadCellRenderer","rowCellValueRenderer","getRowValueForColumn","activeSurvivorshipGroupUri","reduce","acc","countAttributeValues","survivorshipGroups","currentSurvivorshipGroup","mapping","getSurvivorshipStrategy","survivorshipStrategy","getDefaultSurvivorshipStrategy","isSourceSystemRule","uniq","undefined","fixUri","isOtherAttributeWinnerRule","isComplexAttribute","isMinMaxValueRule","getRuleTypeValues","CellValueRenderer","columnIndex","otherProps","isFirstColumn","onConfirmEditWithoutIgnore","onConfirmEditWithIgnore","option","setOption","onEnter","FormControl","FormLabel","RadioGroup","getValue","FormControlLabel","control","Radio","tableContainer","tableHeader","tableTitle","tableContent","flex","isLoading","visibleColumns","onChangeVisibleColumns","noop","additionalHeaderItems","visibleColumnsData","initialAttrTypes","keys","without","makeAttrTypeUri","rowsData","columns","attrName","attrValues","crosswalksMapForAttribute","relation","assoc","getBasicTableRowsData","useDynamicRowCellHeight","renderRowCell","getRowCellHeight","always","pendingDeletion","setPendingDeletion","pendingIgnoredEditing","setPendingIgnoredEditing","handleEdit","tableContext","BasicViewHeader","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","LinearLoadIndicator","BasicTable","fixFirstColumn","headRowHeight","defaultColumnWidth","defaultColumnMinWidth","context","ConfirmDeleteDialog","useColoredItemStyles","endDatedCrosswalkIcon","EventBusy","xmlnsXlink","stroke","strokeWidth","xlinkHref","mask","overflowWrap","button","textTransform","CopyIcon","navigator","clipboard","writeText","timestampEditorInput","isOpen","setIsOpen","handleChange","date","valueOf","TimestampEditor","unless","onAccept","onOpen","attributeWrapper","flexGrow","editor","moreButton","canEditAttribute","onEditAttribute","onDeleteAttribute","isTempCrosswalk","addedAttributes","setAddedAttributes","pendingDeletionAttrUri","setPendingDeletionAttrUri","CrosswalksAttrTypes","canBeAdded","canBeDeleted","extraAttributes","has","selectedAttributes","concat","attribute","attributeName","sourceSystemLabel","SimpleDropDownSelector","placeholder","options","sort","ascend","TextEditor","multiple","getValueLabel","required","onInput","target","moment","parseTimestamp","toString","formatDateTime","renderAttributeValue","handleDeleteAttribute","dragLayer","left","crosswalkPreview","sourceLabel","isDragging","clientOffset","useDragLayer","getClientOffset","getItem","dragLayerRef","dragLayerRect","x","y","dragItemTransform","style","transform","WebkitTransform","caption","controlButtons","cancelButton","newCrosswalk","setNewCrosswalk","CrosswalkAttributes","dissoc","backgroundImage","focusedIcon","borderRight","crosswalkType","header","crosswalkWrapper","attributesWrapper","borderColor","deleteCrosswalkButton","labelValue","dependentIcon","isDependent","isEmpty","isColored","crosswalkColor","scrollToCrosswalk","useHighlightedCrosswalks","isDeleteDialogOpen","setDeleteDialogOpen","crosswalkId","drag","preview","useDrag","canDrag","getEmptyImage","captureDraggingState","eqCrosswalks","scrollIntoView","behavior","ExpandedValueTooltip","noWrap","Link","underline","source","crosswalksByTypes","showCrosswalkColors","crosswalksFocusEnabled","disableEditCrosswalk","disableDeleteCrosswalk","onToggleExpanded","highlightedCrosswalks","CrosswalkType","some","dependentCrosswalk","useCrosswalkActions","onLoad","onSuccess","onError","handleRequest","request","then","errors","catch","addCrosswalk","contributorCrosswalk","addRequest","addCrosswalkInContributor","entityTypeUri","contributorCrosswalkType","contributorCrosswalkValue","contributorCrosswalkSourceTable","sourceTable","crosswalkSourceTable","crosswalkDeleteDate","deleteDate","andThen","response","editCrosswalk","ifElse","deleteCrosswalkAttribute","editCrosswalkAttribute","deleteCrosswalk","emptyArray","useModifiedEntity","onModify","modifiedEntity","setModifiedEntity","setCrosswalksMap","temporaryAttributes","crosswalkForNewAttributes","resetCrosswalkForNewAttributes","newlyCreatedAttributes","setNewlyCreatedAttributes","groupCrosswalksByAttrUri","getCrosswalkAttributes","newCrosswalksMap","getRelationCrosswalks","newAttributes","Object","oldAttributes","difference","handleError","deleteAttribute","ignoreAttribute","pinAttribute","createAttribute","updateAttribute","handleAction","handleErrorResponse","error","action","getReferencedRelationFromAttrValue","removeRelation","Promise","all","useAttributeActions","onAddAttribute","newAttribute","createNewAttribute","findAttributeValues","addNewAttribute","tempUri","push","removeAttribute","evolve","tempAttributeUri","editedEntity","editAttribute","findAttributeValueByUri","onPinAttribute","onIgnoreAttribute","getCrosswalksWeight","sortDependentCrosswalksBySourceTable","cwA","cwB","sourceTableA","sourceTableB","groupCrosswalksByTypesAndSources","crosswalksBySourcesMap","attributeTypeUri","getAttributeTypeUriByValueUri","isEmptyCrosswalk","isCrosswalkWithoutSimple","sourceA","sourceB","ExpandedAttributesContext","createContext","ExpandedAttributesProvider","attributeUris","Provider"],"sourceRoot":""}
|