@reltio/remotes 1.4.1712 → 1.4.1713

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/1088.js +1 -1
  2. package/1148.js +1 -1
  3. package/1215.js +1 -1
  4. package/1334.js +1 -1
  5. package/1425.js +1 -1
  6. package/1550.js +1 -1
  7. package/1664.js +1 -1
  8. package/1707.js +1 -1
  9. package/1840.js +1 -1
  10. package/2066.js +1 -1
  11. package/2066.js.map +1 -1
  12. package/2345.js +1 -1
  13. package/2383.js +1 -1
  14. package/2400.js +1 -1
  15. package/2617.js +1 -1
  16. package/2857.js +1 -1
  17. package/2966.js +1 -1
  18. package/3004.js +1 -1
  19. package/3096.js +1 -1
  20. package/3144.js +1 -1
  21. package/3191.js +1 -1
  22. package/3209.js +1 -1
  23. package/3348.js +1 -1
  24. package/3381.js +1 -1
  25. package/3383.js +1 -1
  26. package/3463.js +1 -1
  27. package/3469.js +1 -1
  28. package/3538.js +1 -1
  29. package/3639.js +1 -1
  30. package/3785.js +1 -1
  31. package/393.js +1 -1
  32. package/4038.js +1 -1
  33. package/4143.js +1 -1
  34. package/415.js +1 -1
  35. package/4212.js +1 -1
  36. package/4444.js +1 -1
  37. package/4481.js +1 -1
  38. package/4787.js +1 -1
  39. package/4838.js +1 -1
  40. package/4969.js +1 -1
  41. package/50.js +1 -1
  42. package/5039.js +1 -1
  43. package/5177.js +1 -1
  44. package/5177.js.map +1 -1
  45. package/5201.js +1 -1
  46. package/5292.js +1 -1
  47. package/5383.js +1 -1
  48. package/5738.js +1 -1
  49. package/5769.js +1 -1
  50. package/6287.js +1 -1
  51. package/6422.js +1 -1
  52. package/6506.js +1 -1
  53. package/6578.js +1 -1
  54. package/658.js +1 -1
  55. package/6799.js +1 -1
  56. package/6844.js +1 -1
  57. package/6903.js +1 -1
  58. package/7074.js +1 -1
  59. package/7119.js +1 -1
  60. package/7237.js +1 -1
  61. package/7340.js +1 -1
  62. package/735.js +1 -1
  63. package/7407.js +1 -1
  64. package/7422.js +1 -1
  65. package/7468.js +1 -1
  66. package/7626.js +1 -1
  67. package/7719.js +1 -1
  68. package/7744.js +1 -1
  69. package/7802.js +1 -1
  70. package/7896.js +1 -1
  71. package/820.js +1 -1
  72. package/8207.js +1 -1
  73. package/8216.js +1 -1
  74. package/829.js +1 -1
  75. package/8741.js +1 -1
  76. package/8786.js +1 -1
  77. package/9016.js +1 -1
  78. package/9032.js +1 -1
  79. package/9050.js +1 -1
  80. package/9109.js +1 -1
  81. package/9283.js +1 -1
  82. package/9328.js +1 -1
  83. package/9387.js +1 -1
  84. package/9719.js +1 -1
  85. package/main.js +1 -1
  86. package/package.json +1 -1
  87. package/remoteEntry.js +1 -1
package/2066.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"2066.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/hooks/useDynamicRowCellHeight.ts","webpack://@reltio/remotes/../components/src/components/BasicTableView/RowCellAutoSizer/RowCellAutoSizer.tsx","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/RowCellRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/CommonRowCellRenderer.tsx","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/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} from 'ramda';\nimport {debounce} from '@reltio/mdm-sdk';\nimport {ColumnData, RowValue} from '../../types';\n\ntype GetRowCellKeyProps = {\n rowIndex: number;\n cellIndex: number;\n columnData: ColumnData;\n rowValue: RowValue;\n};\n\ntype RowCellHeightsMap = Record<string, number>;\n\nconst defaultGetRowCellKey = ({rowIndex, columnData, cellIndex}: GetRowCellKeyProps) =>\n `${columnData.id}[${rowIndex}][${cellIndex}]`;\n\nconst useDynamicRowCellHeight = (getRowCellKey = defaultGetRowCellKey) => {\n const [rowCellHeightsMap, setRowCellHeightsMap] = useState<RowCellHeightsMap>({});\n const rowCellHeightsMapCache = useRef<RowCellHeightsMap>({});\n\n const flushHeightUpdates = useCallback(\n debounce(() => setRowCellHeightsMap({...rowCellHeightsMapCache.current})),\n []\n );\n\n const clearHeightsCache = useCallback(() => {\n rowCellHeightsMapCache.current = {};\n }, []);\n\n const getDynamicRowCellHeight = useCallback(\n (cell: GetRowCellKeyProps) => {\n const key = getRowCellKey(cell);\n return rowCellHeightsMap[key];\n },\n [getRowCellKey, rowCellHeightsMap]\n );\n\n const changeRowCellHeight = useCallback(\n curry((cell: GetRowCellKeyProps, height: number) => {\n const key = getRowCellKey(cell);\n const currentHeight = rowCellHeightsMapCache.current[key];\n if (currentHeight !== height) {\n rowCellHeightsMapCache.current[key] = height;\n flushHeightUpdates();\n }\n }),\n [flushHeightUpdates, getRowCellKey]\n );\n\n return {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache};\n};\n\nexport default useDynamicRowCellHeight;\n","import React, {ReactNode, useRef} from 'react';\n\nimport ReactResizeDetector from 'react-resize-detector';\nimport {useDidUpdateEffect} from '../../../hooks';\nimport {ColumnData, RenderRowCellProps, RowValue} from '../types';\n\ntype OnChangeHeightProps = {\n rowIndex: number;\n cellIndex: number;\n columnData: ColumnData;\n rowValue: RowValue;\n};\n\ntype Props = {\n onChangeHeight: (props: OnChangeHeightProps) => (size: number) => void;\n children: ReactNode;\n} & RenderRowCellProps;\n\nconst RowCellAutoSizer = ({onChangeHeight, children: cell, ...cellProps}: Props) => {\n const cellRef = useRef<HTMLDivElement>();\n const {rowValue, rowIndex, columnData, cellIndex} = cellProps;\n const changeCellHeight = onChangeHeight({rowIndex, cellIndex, columnData, rowValue});\n\n const adjustCellHeight = () => cellRef.current && changeCellHeight(cellRef.current.clientHeight);\n\n useDidUpdateEffect(adjustCellHeight, [rowValue.rawValue]);\n\n return (\n <div ref={cellRef}>\n <ReactResizeDetector handleHeight onResize={adjustCellHeight} />\n {cell}\n </div>\n );\n};\n\nexport default RowCellAutoSizer;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\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 '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n tooltip: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n filter: '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 '@mui/material/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 '@mui/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 HistorySlice\n} from '@reltio/mdm-sdk';\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 '@mui/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 from '@mui/material/Popover';\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 isTemporary?: boolean;\n};\n\nexport const SimpleAttributeEditor = ({\n attributeType,\n attributeValue,\n color,\n containerRef,\n onClose,\n onEdit,\n isTemporary\n}: 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 const isTemporaryWithDefaultValue = !isNil(attributeType.defaultValue) && isTemporary;\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 fullWidth: true,\n autoFocus: true\n };\n\n const applyChangesAndClose = () => {\n const editedValue = !isNil(editorValue) && editorValueToAttributeValue(attributeType, editorValue);\n if ((!isNil(editorValue) && !equals(editorValue, initEditorValue)) || isTemporaryWithDefaultValue) {\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 dataTypeDefinition={dataTypeDefinition}\n fieldName={attributeUriToSearchUri(attributeType.uri)}\n onChange={changeEditorValue}\n TextFieldProps={TextFieldProps}\n value={editorValue}\n />\n </Popover>\n );\n};\n","import {makeStyles} from '@mui/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 from '@mui/material/MenuItem';\nimport Typography from '@mui/material/Typography';\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 '@mui/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, {useEffect, useRef} from 'react';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport EditIcon from '@mui/icons-material/Edit';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport {\n AttributeType,\n checkMetadataForDelete,\n checkMetadataForUpdate,\n Crosswalk,\n getAttrDataTypeDefinition,\n getAttributeValue,\n getLastUriPart,\n isAutoGeneratedAttribute,\n isCrosswalkDisabled,\n isTempUri,\n MetadataPermissions,\n Mode,\n RelationCrosswalk,\n SimpleAttributeValue,\n checkBasicMetadataPermission\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 isEmpty: boolean;\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 isEmpty\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(Mode.Editing, attributeType);\n const canDelete = canModifyAttribute && !disableDelete && checkMetadataForDelete(Mode.Editing, attributeType);\n const isTemporary = isTempUri(attributeValue.uri);\n const hasBasicPermission =\n checkBasicMetadataPermission(MetadataPermissions.UPDATE, attributeType) && !disableEdit && canModifyAttribute;\n const showPin = !isTemporary && ((!isReadingMode && hasBasicPermission) || attributeValue.pin);\n const showIgnore = !isTemporary && ((!isReadingMode && hasBasicPermission) || attributeValue.ignored);\n\n useEffect(() => {\n if (isTemporary && !isEmpty) {\n setEditingMode();\n }\n }, [isEmpty]);\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={!hasBasicPermission}\n />\n )}\n {showIgnore && (\n <IgnoreButton\n isIgnored={attributeValue.ignored}\n onClick={() => onIgnore({attributeValue})}\n disabled={!hasBasicPermission}\n />\n )}\n {isHovered && !isAutoGeneratedAttribute(attributeType) && (\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 isTemporary={isTemporary}\n />\n )}\n </div>\n );\n};\nexport default SimpleAttribute;\n","import {makeStyles} from '@mui/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 Mode,\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 emptyTempAttributeUris: string[];\n};\n\nconst SimpleAttributesBlock = ({\n attributeValues,\n attributeType,\n parentUri,\n disableEdit,\n crosswalksMap,\n onAdd,\n emptyTempAttributeUris,\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(Mode.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} data-reltio-id={'simple-attributes-wrapper'}>\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 isEmpty={emptyTempAttributeUris.includes(value.uri)}\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, Mode, NestedAttributeValue} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport NestedAttribute from '../NestedAttribute/NestedAttribute';\nimport Button from '@mui/material/Button';\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 emptyTempAttributeUris: string[];\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(Mode.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 emptyTempAttributeUris: string[];\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 emptyTempAttributeUris: string[];\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 '@mui/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 emptyTempAttributeUris: string[];\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 '@mui/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 emptyTempAttributeUris: string[];\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 '@mui/icons-material/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 '@mui/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 Mode\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 emptyTempAttributeUris: string[];\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 emptyTempAttributeUris\n}: Props) => {\n const styles = useStyles();\n\n const {isReadingMode, onMouseEnter, onMouseLeave} = useAttributeState();\n const canEdit = !disableEdit && checkMetadataForUpdate(Mode.Editing, attributeType);\n const canDelete = !disableDelete && checkMetadataForDelete(Mode.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 emptyTempAttributeUris={emptyTempAttributeUris}\n />\n )}\n </>\n );\n};\n\nexport default ComplexAttribute;\n","import {makeStyles} from '@mui/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 emptyTempAttributeUris: string[];\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 emptyTempAttributeUris: string[];\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 '@mui/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 {isNil, map, pipe, reject} from 'ramda';\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 {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, useMdmMetadata, useMdmUiPath} from '../../../../contexts';\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 emptyTempAttributeUris: string[];\n};\n\nconst ReferenceAttribute = ({attributeValue, attributeType, ...other}: Props) => {\n const styles = useStyles();\n const {generateEntityUrl} = useContext(UrlGeneratorsContext);\n const metadata = useMdmMetadata();\n const uiPath = useMdmUiPath();\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 from '@mui/material/Typography';\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';\nimport classnames from 'classnames';\nimport {Crosswalk, findSourceSystemByUri, Source} from '@reltio/mdm-sdk';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport {useCrosswalkFocus, useMdmMetadata} 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 = useMdmMetadata();\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 '@mui/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 '@mui/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 position: 'relative',\n padding: '15px 15px 0 15px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n // '&:hover $dragIndicator': {\n // display: 'block'\n // }\n },\n dragIndicator: {\n display: 'none',\n position: 'absolute',\n top: '15px',\n left: 0,\n cursor: 'grab'\n },\n dragIndicatorIcon: {\n fill: theme.palette.text.secondary,\n width: '14px',\n height: '14px'\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';\nimport classnames from 'classnames';\n// eslint-disable-next-line import/named\nimport {RowCellRendererProps} from '../../types';\nimport {useStyles} from './styles';\n\ntype Props = {\n someRowIsDragging?: boolean;\n dragRef?: boolean;\n isDragLayer?: boolean;\n} & RowCellRendererProps;\n\nconst RowCellRenderer = ({\n cell,\n CellValueRenderer,\n columnIndex,\n columnData,\n someRowIsDragging,\n ...otherProps\n}: Props) => {\n const styles = useStyles();\n const isFirstColumn = columnIndex === 0;\n const shouldRenderCell = !someRowIsDragging || isFirstColumn;\n return (\n <div\n className={classnames(styles.rowCell, isFirstColumn && styles.coloredCell)}\n data-reltio-id={`column-name-${columnData.id}`}\n >\n {shouldRenderCell && (\n <>\n {cell.values.map((value, index) => (\n <CellValueRenderer\n key={index}\n value={value}\n someRowIsDragging={someRowIsDragging}\n {...otherProps}\n />\n ))}\n </>\n )}\n </div>\n );\n};\n\nexport default RowCellRenderer;\n","import React from 'react';\nimport RowCellRenderer from './RowCellRenderer';\n// eslint-disable-next-line import/named\nimport {RowCellAutoSizer} from '../../../BasicTableView';\nimport {RowCellRendererProps} from '../../types';\n\ntype RowCellAutoSizerProps = React.ComponentProps<typeof RowCellAutoSizer>;\n\ntype Props = {\n changeRowCellHeight: RowCellAutoSizerProps['onChangeHeight'];\n someRowIsDragging?: boolean;\n dragRef?: boolean;\n isDragLayer?: boolean;\n} & RowCellRendererProps;\n\nexport const CommonRowCellRenderer = ({changeRowCellHeight, ...otherProps}: Props) => {\n if (otherProps.isDragLayer) {\n return <RowCellRenderer {...otherProps} someRowIsDragging={false} />;\n }\n\n return (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...otherProps}>\n <RowCellRenderer {...otherProps} />\n </RowCellAutoSizer>\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 '@mui/styles';\n\nexport const useStyles = makeStyles({\n root: {\n marginBottom: '-6px'\n }\n});\n","import React from 'react';\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 Mode\n} from '@reltio/mdm-sdk';\nimport {useMdmMetadata} from '../../../../contexts';\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 = useMdmMetadata();\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: Mode.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 '@mui/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 AttributesFactory from './attribute-renderers/AttributesFactory';\nimport {\n AddInlineAttributeEvent,\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent,\n IgnoreInlineAttributeEvent,\n PinInlineAttributeEvent\n} from '../../../attributes/inline';\nimport {withTableContext} from '../../../BasicTableView';\nimport {AttributeValues} from '../../types';\nimport {pick} from 'ramda';\n\ntype Props = {\n value: AttributeValues;\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 emptyTempAttributeUris: string[];\n parentUri: string;\n readOnly?: boolean;\n};\n\nexport const AttributeValuesRenderer = ({\n value,\n onDelete,\n onEdit,\n onPin,\n onIgnore,\n onAdd,\n emptyTempAttributeUris,\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 emptyTempAttributeUris,\n disableEdit: readOnly,\n disableDelete: readOnly\n });\n};\n\nexport default withTableContext(\n pick(['onDelete', 'onPin', 'onIgnore', 'onEdit', 'onAdd', 'parentUri', 'readOnly', 'emptyTempAttributeUris'])\n)(AttributeValuesRenderer);\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 emptyTempAttributeUris: string[];\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 DragIndicatorIcon from '@mui/icons-material/DragIndicator';\nimport ReadOnlyAttributeValuesBlock from '../../../attributes/readMode/AttributeValuesBlock/AttributeValuesBlock';\nimport AttributeTitle from '../../../Title/Title';\nimport {OvValues} from '../../types';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: OvValues;\n someRowIsDragging?: boolean;\n dragRef?: React.Ref<HTMLDivElement>;\n};\n\nconst OvValuesRenderer = ({value: {values, attributeType}, someRowIsDragging, dragRef}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.cellValueWrapper}>\n <div ref={dragRef} className={styles.dragIndicator}>\n <DragIndicatorIcon className={styles.dragIndicatorIcon} />\n </div>\n <AttributeTitle className={styles.attributeTitle} label={attributeType.label} />\n {!someRowIsDragging && (\n <ReadOnlyAttributeValuesBlock\n values={values}\n attributeType={attributeType}\n valueContainerClassName={styles.ovValue}\n />\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 {cond, prop} from 'ramda';\nimport i18n from 'ui-i18n';\nimport IconButton from '@mui/material/IconButton';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemText from '@mui/material/ListItemText';\nimport Popover from '@mui/material/Popover';\nimport Typography from '@mui/material/Typography';\nimport CloseIcon from '@mui/icons-material/Close';\nimport InfoIcon from '@mui/icons-material/Info';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport {Metadata, findAttributeTypeByUri, getLabel, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport {useMdmMetadata} from '../../../../contexts';\nimport {useStyles} from './styles';\n\ntype SourcesRendererProps = {\n sourcesUriOrder: string[];\n metadata: Metadata;\n};\n\nconst SourcesRenderer = ({sourcesUriOrder, metadata}: SourcesRendererProps) => {\n const styles = useStyles();\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\ntype AttributeRendererProps = {\n attributeUri: string;\n metadata: Metadata;\n};\n\nconst AttributeRenderer = ({attributeUri, metadata}: AttributeRendererProps) => {\n const styles = useStyles();\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 [\n prop('sourcesUriOrder'),\n // eslint-disable-next-line react/display-name\n ({sourcesUriOrder}, metadata) => <SourcesRenderer metadata={metadata} sourcesUriOrder={sourcesUriOrder} />\n ],\n [\n prop('primaryAttributeUri'),\n // eslint-disable-next-line react/display-name\n ({primaryAttributeUri}, metadata) => (\n <AttributeRenderer metadata={metadata} attributeUri={primaryAttributeUri} />\n )\n ],\n [\n prop('comparisonAttributeUri'),\n // eslint-disable-next-line react/display-name\n ({comparisonAttributeUri}, metadata) => (\n <AttributeRenderer metadata={metadata} attributeUri={comparisonAttributeUri} />\n )\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 metadata = useMdmMetadata();\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} size=\"large\">\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, metadata)}\n </List>\n </Popover>\n </>\n );\n};\n\nexport default RuleTypeInfoButton;\n","import React from 'react';\nimport classnames from 'classnames';\nimport RuleTypeInfoButton from './RuleTypeInfoButton';\nimport {RuleTypeValues} from '../../types';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n value: RuleTypeValues;\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 List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemText from '@mui/material/ListItemText';\nimport {CrosswalkBase, getCrosswalkColor, getCrosswalkId, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport {useCrosswalkHighlight, useMdmMetadata} from '../../../../contexts';\nimport ColoredBlock from '../../ColoredBlock/ColoredBlock';\nimport {WinnerSources} from '../../types';\nimport {useStyles} from './styles';\n\ntype WinnerSourceProps = {\n crosswalk: CrosswalkBase;\n};\n\nconst WinnerSource = ({crosswalk}: WinnerSourceProps) => {\n const styles = useStyles();\n const metadata = useMdmMetadata();\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: WinnerSources;\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 pathOr\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 ComplexAttributeValue,\n Crosswalk,\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, AttributesTableColumnData, AttributesTableRowValue, RuleTypeValues} 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 + pathOr(0, [value.uri, 'length'], crosswalksMap), 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): RuleTypeValues => {\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 = (\n attributeValues: AttributeValue[] = [],\n crosswalksMap: CrosswalksMap\n): Crosswalk[] => {\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 &&\n findValueInAttributesByUriSuffix((value as ComplexAttributeValue).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(\n ({id, label, initialWidth, minWidth}): AttributesTableColumnData => ({\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);\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): AttributesTableRowValue[] => {\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, {useState} from 'react';\nimport i18n from 'ui-i18n';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport Radio from '@mui/material/Radio';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport FormControl from '@mui/material/FormControl';\nimport FormLabel from '@mui/material/FormLabel';\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\n open={open}\n TransitionProps={{\n onEnter: () => setOption('without')\n }}\n >\n <DialogContent>\n <DialogContentText>\n {i18n.text('You are attempting to change a value that is presently ignored.')}\n </DialogContentText>\n <FormControl variant=\"standard\" 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 '@mui/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 classnames from 'classnames';\nimport i18n from 'ui-i18n';\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, useDynamicRowCellHeight} from '../../BasicTableView';\nimport BasicViewHeader from '../../BasicViewHeader/BasicViewHeader';\nimport {CommonRowCellRenderer} from './cell-renderers/CommonRowCellRenderer';\nimport {COLUMNS_DATA, DEFAULT_VISIBLE_COLUMNS, getBasicTableColumnsData, getBasicTableRowsData} from './helpers';\nimport {always, either, filter, isNil, keys, map, pipe, without, identity, both, move} from 'ramda';\nimport LinearLoadIndicator from '../../LinearLoadIndicator/LinearLoadIndicator';\nimport ConfirmDeleteDialog from '../../ConfirmDeleteDialog/ConfirmDeleteDialog';\nimport {CrosswalksByOwnerTypeMap, GetRowCellKeyProps, AttributesTableRowValue, RowCellRendererProps} from '../types';\nimport ConfirmEditIgnoredDialog from './ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog';\nimport {noop} from '../../../core';\nimport {useMdmMetadata} from '../../../contexts';\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 emptyTempAttributeUris: string[];\n selectedAttributeTypes?: AttributeType[];\n onSelectAttributeTypes?: (selected: AttributeType[]) => void;\n additionalHeaderItems?: React.ReactNode;\n className?: string;\n activeSurvivorshipGroupUri?: string;\n};\n\nconst getIdFromRowValue = (rowValue: AttributesTableRowValue) => rowValue.ovValues.attributeType.uri;\n\nconst getRowCellKey = ({columnData: {id}, cellIndex, rowValue}: GetRowCellKeyProps) =>\n `${id}[${getIdFromRowValue(rowValue)}][${cellIndex}]`;\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 emptyTempAttributeUris,\n selectedAttributeTypes,\n onSelectAttributeTypes = noop,\n additionalHeaderItems,\n className,\n activeSurvivorshipGroupUri\n}: Props) => {\n const styles = useStyles();\n const metadata = useMdmMetadata();\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 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(getRowCellKey);\n\n const renderRowCell = useCallback(\n (props: RowCellRendererProps) => <CommonRowCellRenderer changeRowCellHeight={changeRowCellHeight} {...props} />,\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 handleReorderAttributeTypes = useCallback(\n (oldPosition: number, newPosition: number) => {\n onSelectAttributeTypes(move(oldPosition, newPosition, selectedAttributeTypes));\n },\n [onSelectAttributeTypes, selectedAttributeTypes]\n );\n\n const handleDelete = useCallback(pendingDeletion ? () => onDelete(pendingDeletion) : noop, [\n pendingDeletion,\n onDelete\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 emptyTempAttributeUris,\n readOnly\n }),\n [\n setPendingDeletion,\n onPin,\n onIgnore,\n handleEdit,\n onAdd,\n parentUri,\n parentTypeUri,\n selectedAttributeTypes,\n onSelectAttributeTypes,\n emptyTempAttributeUris,\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 dndRowReorderingEnabled={false}\n dndRowReorderingHandler={handleReorderAttributeTypes}\n getIdFromRowValue={getIdFromRowValue}\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={handleDelete}\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 '@mui/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 '@mui/icons-material/EventBusy';\nimport Tooltip from '@mui/material/Tooltip';\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 '@mui/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 from '@mui/material/Typography';\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 '@mui/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, {useCallback, useEffect, useState} from 'react';\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: currentValue, classes = {}, disabled = false, onChange}: Props) => {\n const styles = useStyles();\n\n const [value, setValue] = useState<Date | number>(currentValue);\n\n useEffect(() => {\n setValue(currentValue);\n }, [currentValue]);\n\n const handleChange = useCallback(() => {\n const newValue = value?.valueOf();\n if (currentValue !== newValue) {\n onChange(newValue);\n }\n }, [onChange, value, currentValue]);\n\n return (\n <TimestampEditor\n slotProps={{\n textField: {\n variant: 'filled',\n InputProps: {\n disableUnderline: true,\n classes: {\n input: styles.timestampEditorInput,\n root: classnames(styles.timestampEditor, classes.root)\n },\n onBlur: handleChange\n }\n }\n }}\n value={value || null}\n disabled={disabled}\n onChange={setValue}\n onClose={handleChange}\n />\n );\n};\n\nexport default CrosswalkDateEditor;\n","import {makeStyles} from '@mui/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 {ascend, filter, has, isNil, map, pipe, prop, propEq, without} from 'ramda';\nimport i18n from 'ui-i18n';\nimport moment from 'moment';\nimport {\n AttributeType,\n CrosswalkBase,\n CrosswalksAttrTypes,\n formatDateTime,\n getCrosswalksTypes,\n getSourceSystemLabel,\n parseTimestamp\n} from '@reltio/mdm-sdk';\nimport Typography from '@mui/material/Typography';\nimport DeleteIcon from '@mui/icons-material/Delete';\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 CopyableValueField from '../CopyableValueField/CopyableValueField';\nimport CrosswalkDateEditor from '../CrosswalkDateEditor/CrosswalkDateEditor';\nimport {useMdmMetadata} from '../../../contexts';\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 [addedAttributes, setAddedAttributes] = useState<string[]>([]);\n const [pendingDeletionAttrUri, setPendingDeletionAttrUri] = useState<string>(null);\n const metadata = useMdmMetadata();\n const isTempCrosswalk = !('uri' in crosswalk);\n\n const addSelectedAttributes = (selectedAttributes: AttributeType[]) => {\n if (selectedAttributes.length > 0) {\n setAddedAttributes((addedAttributes) => addedAttributes.concat(map(prop('uri'), selectedAttributes)));\n }\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 size=\"small\"\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 size=\"small\"\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 '@mui/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 {CrosswalkBase, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport Typography from '@mui/material/Typography';\nimport ColoredBlock from '../ColoredBlock/ColoredBlock';\nimport {useCrosswalkColor} from '../../../contexts/CrosswalksDisplayContext';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport {useMdmMetadata} from '../../../contexts';\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: CrosswalkBase;\n};\n\nconst CrosswalkDragPreview = ({crosswalk}: Props) => {\n const styles = useStyles();\n const metadata = useMdmMetadata();\n const color = useCrosswalkColor(crosswalk);\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 '@mui/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 from '@mui/material/Button';\nimport Typography from '@mui/material/Typography';\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 '@mui/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 {getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport Typography from '@mui/material/Typography';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport SmallIconButton from '../../SmallIconButton/SmallIconButton';\nimport {useCrosswalkHighlight} from '../../../contexts/CrosswalksDisplayContext';\nimport {useMdmMetadata} from '../../../contexts';\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 = useMdmMetadata();\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 '@mui/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, {useEffect, useRef, useState, memo} from 'react';\nimport i18n from 'ui-i18n';\nimport {useDrag} from 'react-dnd';\nimport {getEmptyImage} from 'react-dnd-html5-backend';\nimport {\n Crosswalk,\n eqCrosswalks,\n getLastUriPart,\n getSourceSystemLabel,\n isCrosswalkDisabled,\n RelationCrosswalk\n} from '@reltio/mdm-sdk';\nimport Typography from '@mui/material/Typography';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\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 DependentIcon from '../../../icons/NestedAttribute';\nimport CrosswalkAttributes from '../CrosswalkAttributes/CrosswalkAttributes';\nimport {useMdmMetadata} from '../../../contexts';\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\n const [expanded, setExpanded] = useState(false);\n const [isDeleteDialogOpen, setDeleteDialogOpen] = useState(false);\n\n const metadata = useMdmMetadata();\n\n const crosswalkColor = useCrosswalkColor(crosswalk);\n const {toggleCrosswalkFocus, isFocused} = useCrosswalkFocus(crosswalk);\n const {isDimmed, highlightCrosswalk, removeHighlight} = useCrosswalkHighlight(crosswalk);\n const [scrollToCrosswalk] = useHighlightedCrosswalks();\n\n const coloredCrosswalk = isDimmed ? 'rgba(0, 0, 0, 0.12)' : crosswalkColor;\n const color = isEmpty ? '#FFF' : isColored ? coloredCrosswalk : '#CACCD1';\n\n const sourceSystemLabel = getSourceSystemLabel(metadata, crosswalk.type);\n const crosswalkId = getLastUriPart(crosswalk.uri);\n const crosswalkDisabled = isCrosswalkDisabled(crosswalk);\n\n const styles = useStyles({color, isOpaque: !isDimmed, isFocused});\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 '@mui/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 from '@mui/material/Link';\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 [emptyTempAttributeUris, setEmptyTempAttributeUris] = useState<string[]>([]);\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 setEmptyTempAttributeUris([]);\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 if (!emptyTempAttributeUris.includes(newAttribute.uri)) {\n setEmptyTempAttributeUris((emptyTempAttributeUris) => [...emptyTempAttributeUris, newAttribute.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 emptyTempAttributeUris\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":["defaultGetRowCellKey","rowIndex","columnData","cellIndex","id","getRowCellKey","rowCellHeightsMap","setRowCellHeightsMap","useState","rowCellHeightsMapCache","useRef","flushHeightUpdates","useCallback","debounce","current","clearHeightsCache","getDynamicRowCellHeight","cell","key","changeRowCellHeight","curry","height","onChangeHeight","children","cellProps","cellRef","rowValue","changeCellHeight","adjustCellHeight","clientHeight","useDidUpdateEffect","rawValue","ref","handleHeight","onResize","open","onClose","onConfirm","i18n","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","isTemporary","getBoundingClientRect","dataTypeDefinition","getAttrDataTypeDefinition","initEditorValue","attributeValueToEditorValue","editorValue","changeEditorValue","isTemporaryWithDefaultValue","isNil","defaultValue","TextFieldProps","InputProps","disableUnderline","root","multiline","fullWidth","autoFocus","applyChangesAndClose","editedValue","editorValueToAttributeValue","equals","editedAttributeValue","isLookupAttrType","value","lookupCode","isNumericType","type","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","isBooleanType","isTimestampBasedType","onKeyUp","event","includes","onBackdropClick","DataTypeValueEditor","fieldName","attributeUriToSearchUri","onChange","menuItem","minHeight","secondary","menuText","fontSize","lineHeight","letterSpacing","marginLeft","sourceItem","borderBottom","MenuItemWithTooltip","withTooltip","MenuItem","MenuItemContent","icon","Typography","CrosswalkMenuItem","forwardRef","item","onMenuClose","disabled","crosswalk","SourceItem","focusable","tooltipTitle","showForDisabled","e","fullyColored","opaque","variant","wordBreak","content","position","pointerEvents","boxSizing","alignItems","opacity","transition","actions","marginRight","dataReltioId","disableEdit","disableDelete","onIgnore","onPin","onDelete","isEmpty","isReadingMode","isEditingMode","isHovered","onMouseEnter","onMouseLeave","setReadingMode","setEditingMode","useAttributeState","getLastUriPart","crosswalkDisabled","isCrosswalkDisabled","canModifyAttribute","system","canEdit","checkMetadataForUpdate","Mode","canDelete","checkMetadataForDelete","isTempUri","hasBasicPermission","checkBasicMetadataPermission","MetadataPermissions","showPin","pin","showIgnore","ignored","useEffect","useCrosswalkColor","isHighlighted","isDimmed","highlightCrosswalk","removeHighlight","useCrosswalkHighlight","Edit","Delete","crosswalks","DataTypeValue","getAttributeValue","PinButton","isPinned","IgnoreButton","isIgnored","isAutoGeneratedAttribute","DropDownMenuButton","MenuItemRenderer","menuId","buttonComponent","SmallIconButtonWithTooltip","buttonProps","MoreVertIcon","size","menuItems","simpleAttributesWrapper","flexWrap","gap","dropIndicator","attributeValues","parentUri","crosswalksMap","onAdd","emptyTempAttributeUris","isDragItemOver","drop","useDrop","accept","canDrop","isRelationCrosswalk","isRelationUri","ownerType","isEntityCrosswalk","isEntityUri","checkMetadataForCreate","isRelationTypeUri","isEntityTypeUri","collect","monitor","isOver","index","length","attributeIndex","map","canCreate","Button","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","pipe","pickBy","val","attrUri","areOneHierarchyUris","flatten","uniqBy","prop","ArrowExpandButton","getCrosswalkId","Spacer","image","imageContainer","paddingRight","IMAGE_SIZE","imageWidth","imageHeight","ComplexAttribute","Image","containerClassName","src","getImageAttributeThumbnailUrl","getLabel","relationshipLabel","generateEntityUrl","useContext","UrlGeneratorsContext","metadata","useMdmMetadata","uiPath","useMdmUiPath","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","setAttributeStateDebounced","renderAttributesList","valueContainerClassName","LabelRenderer","RightSlot","imageSize","imageMargin","coloredCell","right","top","headCell","rowCell","cellValueWrapper","dragIndicator","left","cursor","dragIndicatorIcon","attributeTitle","ovValue","marginTop","count","textAlign","ruleType","ruleTypeLabel","rulePopup","overflowY","popupItem","closeButton","popupTitle","fontWeight","popupTitleWrapper","popupItemsWrapper","maxHeight","winnerSourceItemWrapper","winnerSourceItem","winnerSourceItemLabel","CellValueRenderer","columnIndex","someRowIsDragging","otherProps","isFirstColumn","shouldRenderCell","CommonRowCellRenderer","isDragLayer","RowCellAutoSizer","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","dragRef","DragIndicator","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","pathOr","countAttributeValues","survivorshipGroups","currentSurvivorshipGroup","mapping","getSurvivorshipStrategy","survivorshipStrategy","getDefaultSurvivorshipStrategy","isSourceSystemRule","uniq","undefined","fixUri","isOtherAttributeWinnerRule","isComplexAttribute","isMinMaxValueRule","getRuleTypeValues","onConfirmEditWithoutIgnore","onConfirmEditWithIgnore","option","setOption","Dialog","TransitionProps","onEnter","DialogContent","DialogContentText","FormControl","FormLabel","RadioGroup","getValue","FormControlLabel","control","Radio","DialogActions","tableContainer","tableHeader","tableTitle","tableContent","flex","getIdFromRowValue","ovValues","isLoading","visibleColumns","onChangeVisibleColumns","noop","additionalHeaderItems","visibleColumnsData","initialAttrTypes","keys","without","makeAttrTypeUri","identity","rowsData","columns","attrName","attrValues","crosswalksMapForAttribute","relation","assoc","getBasicTableRowsData","useDynamicRowCellHeight","renderRowCell","getRowCellHeight","always","pendingDeletion","setPendingDeletion","pendingIgnoredEditing","setPendingIgnoredEditing","handleEdit","handleReorderAttributeTypes","oldPosition","newPosition","move","handleDelete","tableContext","BasicViewHeader","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","LinearLoadIndicator","BasicTable","fixFirstColumn","headRowHeight","defaultColumnWidth","defaultColumnMinWidth","dndRowReorderingEnabled","dndRowReorderingHandler","context","ConfirmDeleteDialog","useColoredItemStyles","endDatedCrosswalkIcon","EventBusy","xmlnsXlink","stroke","strokeWidth","xlinkHref","mask","overflowWrap","button","textTransform","CopyIcon","navigator","clipboard","writeText","timestampEditorInput","currentValue","setValue","handleChange","newValue","valueOf","TimestampEditor","slotProps","onBlur","attributeWrapper","flexGrow","editor","moreButton","canEditAttribute","onEditAttribute","onDeleteAttribute","addedAttributes","setAddedAttributes","pendingDeletionAttrUri","setPendingDeletionAttrUri","isTempCrosswalk","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","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","isColored","isDeleteDialogOpen","setDeleteDialogOpen","crosswalkColor","scrollToCrosswalk","useHighlightedCrosswalks","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","setEmptyTempAttributeUris","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":""}
1
+ {"version":3,"file":"2066.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/hooks/useDynamicRowCellHeight.ts","webpack://@reltio/remotes/../components/src/components/BasicTableView/RowCellAutoSizer/RowCellAutoSizer.tsx","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/RowCellRenderer.tsx","webpack://@reltio/remotes/../components/src/components/crosswalks/AttributesTable/cell-renderers/CommonRowCellRenderer.tsx","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/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} from 'ramda';\nimport {debounce} from '@reltio/mdm-sdk';\nimport {ColumnData, RowValue} from '../../types';\n\ntype GetRowCellKeyProps = {\n rowIndex: number;\n cellIndex: number;\n columnData: ColumnData;\n rowValue: RowValue;\n};\n\ntype RowCellHeightsMap = Record<string, number>;\n\nconst defaultGetRowCellKey = ({rowIndex, columnData, cellIndex}: GetRowCellKeyProps) =>\n `${columnData.id}[${rowIndex}][${cellIndex}]`;\n\nconst useDynamicRowCellHeight = (getRowCellKey = defaultGetRowCellKey) => {\n const [rowCellHeightsMap, setRowCellHeightsMap] = useState<RowCellHeightsMap>({});\n const rowCellHeightsMapCache = useRef<RowCellHeightsMap>({});\n\n const flushHeightUpdates = useCallback(\n debounce(() => setRowCellHeightsMap({...rowCellHeightsMapCache.current})),\n []\n );\n\n const clearHeightsCache = useCallback(() => {\n rowCellHeightsMapCache.current = {};\n }, []);\n\n const getDynamicRowCellHeight = useCallback(\n (cell: GetRowCellKeyProps) => {\n const key = getRowCellKey(cell);\n return rowCellHeightsMap[key];\n },\n [getRowCellKey, rowCellHeightsMap]\n );\n\n const changeRowCellHeight = useCallback(\n curry((cell: GetRowCellKeyProps, height: number) => {\n const key = getRowCellKey(cell);\n const currentHeight = rowCellHeightsMapCache.current[key];\n if (currentHeight !== height) {\n rowCellHeightsMapCache.current[key] = height;\n flushHeightUpdates();\n }\n }),\n [flushHeightUpdates, getRowCellKey]\n );\n\n return {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache};\n};\n\nexport default useDynamicRowCellHeight;\n","import React, {ReactNode, useRef} from 'react';\n\nimport ReactResizeDetector from 'react-resize-detector';\nimport {useDidUpdateEffect} from '../../../hooks';\nimport {ColumnData, RenderRowCellProps, RowValue} from '../types';\n\ntype OnChangeHeightProps = {\n rowIndex: number;\n cellIndex: number;\n columnData: ColumnData;\n rowValue: RowValue;\n};\n\ntype Props = {\n onChangeHeight: (props: OnChangeHeightProps) => (size: number) => void;\n children: ReactNode;\n} & RenderRowCellProps;\n\nconst RowCellAutoSizer = ({onChangeHeight, children: cell, ...cellProps}: Props) => {\n const cellRef = useRef<HTMLDivElement>();\n const {rowValue, rowIndex, columnData, cellIndex} = cellProps;\n const changeCellHeight = onChangeHeight({rowIndex, cellIndex, columnData, rowValue});\n\n const adjustCellHeight = () => cellRef.current && changeCellHeight(cellRef.current.clientHeight);\n\n useDidUpdateEffect(adjustCellHeight, [rowValue.rawValue]);\n\n return (\n <div ref={cellRef}>\n <ReactResizeDetector handleHeight onResize={adjustCellHeight} />\n {cell}\n </div>\n );\n};\n\nexport default RowCellAutoSizer;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\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 '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n tooltip: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n filter: '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 '@mui/material/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 '@mui/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 HistorySlice\n} from '@reltio/mdm-sdk';\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 '@mui/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 from '@mui/material/Popover';\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 isTemporary?: boolean;\n};\n\nexport const SimpleAttributeEditor = ({\n attributeType,\n attributeValue,\n color,\n containerRef,\n onClose,\n onEdit,\n isTemporary\n}: 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 const isTemporaryWithDefaultValue = !isNil(attributeType.defaultValue) && isTemporary;\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 fullWidth: true,\n autoFocus: true\n };\n\n const applyChangesAndClose = () => {\n const editedValue = !isNil(editorValue) && editorValueToAttributeValue(attributeType, editorValue);\n if ((!isNil(editorValue) && !equals(editorValue, initEditorValue)) || isTemporaryWithDefaultValue) {\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 dataTypeDefinition={dataTypeDefinition}\n fieldName={attributeUriToSearchUri(attributeType.uri)}\n onChange={changeEditorValue}\n TextFieldProps={TextFieldProps}\n value={editorValue}\n />\n </Popover>\n );\n};\n","import {makeStyles} from '@mui/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 from '@mui/material/MenuItem';\nimport Typography from '@mui/material/Typography';\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 '@mui/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, {useEffect, useRef} from 'react';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport EditIcon from '@mui/icons-material/Edit';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport {\n AttributeType,\n checkMetadataForDelete,\n checkMetadataForUpdate,\n Crosswalk,\n getAttrDataTypeDefinition,\n getAttributeValue,\n getLastUriPart,\n isAutoGeneratedAttribute,\n isCrosswalkDisabled,\n isTempUri,\n MetadataPermissions,\n Mode,\n RelationCrosswalk,\n SimpleAttributeValue,\n checkBasicMetadataPermission\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 isEmpty: boolean;\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 isEmpty\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(Mode.Editing, attributeType);\n const canDelete = canModifyAttribute && !disableDelete && checkMetadataForDelete(Mode.Editing, attributeType);\n const isTemporary = isTempUri(attributeValue.uri);\n const hasBasicPermission =\n checkBasicMetadataPermission(MetadataPermissions.UPDATE, attributeType) && !disableEdit && canModifyAttribute;\n const showPin = !isTemporary && ((!isReadingMode && hasBasicPermission) || attributeValue.pin);\n const showIgnore = !isTemporary && ((!isReadingMode && hasBasicPermission) || attributeValue.ignored);\n\n useEffect(() => {\n if (isTemporary && !isEmpty) {\n setEditingMode();\n }\n }, [isEmpty]);\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={!hasBasicPermission}\n />\n )}\n {showIgnore && (\n <IgnoreButton\n isIgnored={attributeValue.ignored}\n onClick={() => onIgnore({attributeValue})}\n disabled={!hasBasicPermission}\n />\n )}\n {isHovered && !isAutoGeneratedAttribute(attributeType) && (\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 isTemporary={isTemporary}\n />\n )}\n </div>\n );\n};\nexport default SimpleAttribute;\n","import {makeStyles} from '@mui/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 Mode,\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 emptyTempAttributeUris: string[];\n};\n\nconst SimpleAttributesBlock = ({\n attributeValues,\n attributeType,\n parentUri,\n disableEdit,\n crosswalksMap,\n onAdd,\n emptyTempAttributeUris,\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(Mode.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} data-reltio-id={'simple-attributes-wrapper'}>\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 isEmpty={emptyTempAttributeUris.includes(value.uri)}\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, Mode, NestedAttributeValue} from '@reltio/mdm-sdk';\nimport {CrosswalksMap} from '../types';\nimport NestedAttribute from '../NestedAttribute/NestedAttribute';\nimport Button from '@mui/material/Button';\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 emptyTempAttributeUris: string[];\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(Mode.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 emptyTempAttributeUris: string[];\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 emptyTempAttributeUris: string[];\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 '@mui/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 emptyTempAttributeUris: string[];\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 '@mui/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 emptyTempAttributeUris: string[];\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 '@mui/icons-material/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 '@mui/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 Mode\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 emptyTempAttributeUris: string[];\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 emptyTempAttributeUris\n}: Props) => {\n const styles = useStyles();\n\n const {isReadingMode, onMouseEnter, onMouseLeave} = useAttributeState();\n const canEdit = !disableEdit && checkMetadataForUpdate(Mode.Editing, attributeType);\n const canDelete = !disableDelete && checkMetadataForDelete(Mode.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 emptyTempAttributeUris={emptyTempAttributeUris}\n />\n )}\n </>\n );\n};\n\nexport default ComplexAttribute;\n","import {makeStyles} from '@mui/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 emptyTempAttributeUris: string[];\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 emptyTempAttributeUris: string[];\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 '@mui/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 {isNil, map, pipe, reject} from 'ramda';\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 {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, useMdmMetadata, useMdmUiPath} from '../../../../contexts';\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 emptyTempAttributeUris: string[];\n};\n\nconst ReferenceAttribute = ({attributeValue, attributeType, ...other}: Props) => {\n const styles = useStyles();\n const {generateEntityUrl} = useContext(UrlGeneratorsContext);\n const metadata = useMdmMetadata();\n const uiPath = useMdmUiPath();\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 from '@mui/material/Typography';\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';\nimport classnames from 'classnames';\nimport {Crosswalk, findSourceSystemByUri, Source} from '@reltio/mdm-sdk';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport {useCrosswalkFocus, useMdmMetadata} 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 = useMdmMetadata();\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 '@mui/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 '@mui/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 position: 'relative',\n padding: '15px 15px 0 15px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n // '&:hover $dragIndicator': {\n // display: 'block'\n // }\n },\n dragIndicator: {\n display: 'none',\n position: 'absolute',\n top: '15px',\n left: 0,\n cursor: 'grab'\n },\n dragIndicatorIcon: {\n fill: theme.palette.text.secondary,\n width: '14px',\n height: '14px'\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';\nimport classnames from 'classnames';\n// eslint-disable-next-line import/named\nimport {RowCellRendererProps} from '../../types';\nimport {useStyles} from './styles';\n\ntype Props = {\n someRowIsDragging?: boolean;\n dragRef?: boolean;\n isDragLayer?: boolean;\n} & RowCellRendererProps;\n\nconst RowCellRenderer = ({\n cell,\n CellValueRenderer,\n columnIndex,\n columnData,\n someRowIsDragging,\n ...otherProps\n}: Props) => {\n const styles = useStyles();\n const isFirstColumn = columnIndex === 0;\n const shouldRenderCell = !someRowIsDragging || isFirstColumn;\n return (\n <div\n className={classnames(styles.rowCell, isFirstColumn && styles.coloredCell)}\n data-reltio-id={`column-name-${columnData.id}`}\n >\n {shouldRenderCell && (\n <>\n {cell.values.map((value, index) => (\n <CellValueRenderer\n key={index}\n value={value}\n someRowIsDragging={someRowIsDragging}\n {...otherProps}\n />\n ))}\n </>\n )}\n </div>\n );\n};\n\nexport default RowCellRenderer;\n","import React from 'react';\nimport RowCellRenderer from './RowCellRenderer';\n// eslint-disable-next-line import/named\nimport {RowCellAutoSizer} from '../../../BasicTableView';\nimport {RowCellRendererProps} from '../../types';\n\ntype RowCellAutoSizerProps = React.ComponentProps<typeof RowCellAutoSizer>;\n\ntype Props = {\n changeRowCellHeight: RowCellAutoSizerProps['onChangeHeight'];\n someRowIsDragging?: boolean;\n dragRef?: boolean;\n isDragLayer?: boolean;\n} & RowCellRendererProps;\n\nexport const CommonRowCellRenderer = ({changeRowCellHeight, ...otherProps}: Props) => {\n if (otherProps.isDragLayer) {\n return <RowCellRenderer {...otherProps} someRowIsDragging={false} />;\n }\n\n return (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...otherProps}>\n <RowCellRenderer {...otherProps} />\n </RowCellAutoSizer>\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 '@mui/styles';\n\nexport const useStyles = makeStyles({\n root: {\n marginBottom: '-6px'\n }\n});\n","import React from 'react';\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 Mode\n} from '@reltio/mdm-sdk';\nimport {useMdmMetadata} from '../../../../contexts';\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 = useMdmMetadata();\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: Mode.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 '@mui/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 AttributesFactory from './attribute-renderers/AttributesFactory';\nimport {\n AddInlineAttributeEvent,\n DeleteInlineAttributeEvent,\n EditInlineAttributeEvent,\n IgnoreInlineAttributeEvent,\n PinInlineAttributeEvent\n} from '../../../attributes/inline';\nimport {withTableContext} from '../../../BasicTableView';\nimport {AttributeValues} from '../../types';\nimport {pick} from 'ramda';\n\ntype Props = {\n value: AttributeValues;\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 emptyTempAttributeUris: string[];\n parentUri: string;\n readOnly?: boolean;\n};\n\nexport const AttributeValuesRenderer = ({\n value,\n onDelete,\n onEdit,\n onPin,\n onIgnore,\n onAdd,\n emptyTempAttributeUris,\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 emptyTempAttributeUris,\n disableEdit: readOnly,\n disableDelete: readOnly\n });\n};\n\nexport default withTableContext(\n pick(['onDelete', 'onPin', 'onIgnore', 'onEdit', 'onAdd', 'parentUri', 'readOnly', 'emptyTempAttributeUris'])\n)(AttributeValuesRenderer);\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 emptyTempAttributeUris: string[];\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 DragIndicatorIcon from '@mui/icons-material/DragIndicator';\nimport ReadOnlyAttributeValuesBlock from '../../../attributes/readMode/AttributeValuesBlock/AttributeValuesBlock';\nimport AttributeTitle from '../../../Title/Title';\nimport {OvValues} from '../../types';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: OvValues;\n someRowIsDragging?: boolean;\n dragRef?: React.Ref<HTMLDivElement>;\n};\n\nconst OvValuesRenderer = ({value: {values, attributeType}, someRowIsDragging, dragRef}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.cellValueWrapper}>\n <div ref={dragRef} className={styles.dragIndicator}>\n <DragIndicatorIcon className={styles.dragIndicatorIcon} />\n </div>\n <AttributeTitle className={styles.attributeTitle} label={attributeType.label} />\n {!someRowIsDragging && (\n <ReadOnlyAttributeValuesBlock\n values={values}\n attributeType={attributeType}\n valueContainerClassName={styles.ovValue}\n />\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 {cond, prop} from 'ramda';\nimport i18n from 'ui-i18n';\nimport IconButton from '@mui/material/IconButton';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemText from '@mui/material/ListItemText';\nimport Popover from '@mui/material/Popover';\nimport Typography from '@mui/material/Typography';\nimport CloseIcon from '@mui/icons-material/Close';\nimport InfoIcon from '@mui/icons-material/Info';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport {Metadata, findAttributeTypeByUri, getLabel, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport {useMdmMetadata} from '../../../../contexts';\nimport {useStyles} from './styles';\n\ntype SourcesRendererProps = {\n sourcesUriOrder: string[];\n metadata: Metadata;\n};\n\nconst SourcesRenderer = ({sourcesUriOrder, metadata}: SourcesRendererProps) => {\n const styles = useStyles();\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\ntype AttributeRendererProps = {\n attributeUri: string;\n metadata: Metadata;\n};\n\nconst AttributeRenderer = ({attributeUri, metadata}: AttributeRendererProps) => {\n const styles = useStyles();\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 [\n prop('sourcesUriOrder'),\n // eslint-disable-next-line react/display-name\n ({sourcesUriOrder}, metadata) => <SourcesRenderer metadata={metadata} sourcesUriOrder={sourcesUriOrder} />\n ],\n [\n prop('primaryAttributeUri'),\n // eslint-disable-next-line react/display-name\n ({primaryAttributeUri}, metadata) => (\n <AttributeRenderer metadata={metadata} attributeUri={primaryAttributeUri} />\n )\n ],\n [\n prop('comparisonAttributeUri'),\n // eslint-disable-next-line react/display-name\n ({comparisonAttributeUri}, metadata) => (\n <AttributeRenderer metadata={metadata} attributeUri={comparisonAttributeUri} />\n )\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 metadata = useMdmMetadata();\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} size=\"large\">\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, metadata)}\n </List>\n </Popover>\n </>\n );\n};\n\nexport default RuleTypeInfoButton;\n","import React from 'react';\nimport classnames from 'classnames';\nimport RuleTypeInfoButton from './RuleTypeInfoButton';\nimport {RuleTypeValues} from '../../types';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n value: RuleTypeValues;\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 List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemText from '@mui/material/ListItemText';\nimport {CrosswalkBase, getCrosswalkColor, getCrosswalkId, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport SourceIcon from '../../../SourceIcon/SourceIcon';\nimport {useCrosswalkHighlight, useMdmMetadata} from '../../../../contexts';\nimport ColoredBlock from '../../ColoredBlock/ColoredBlock';\nimport {WinnerSources} from '../../types';\nimport {useStyles} from './styles';\n\ntype WinnerSourceProps = {\n crosswalk: CrosswalkBase;\n};\n\nconst WinnerSource = ({crosswalk}: WinnerSourceProps) => {\n const styles = useStyles();\n const metadata = useMdmMetadata();\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: WinnerSources;\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 pathOr\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 ComplexAttributeValue,\n Crosswalk,\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, AttributesTableColumnData, AttributesTableRowValue, RuleTypeValues} 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 + pathOr(0, [value.uri, 'length'], crosswalksMap), 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): RuleTypeValues => {\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 = (\n attributeValues: AttributeValue[] = [],\n crosswalksMap: CrosswalksMap\n): Crosswalk[] => {\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 &&\n findValueInAttributesByUriSuffix((value as ComplexAttributeValue).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(\n ({id, label, initialWidth, minWidth}): AttributesTableColumnData => ({\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);\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): AttributesTableRowValue[] => {\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, {useState} from 'react';\nimport i18n from 'ui-i18n';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport Radio from '@mui/material/Radio';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport FormControl from '@mui/material/FormControl';\nimport FormLabel from '@mui/material/FormLabel';\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\n open={open}\n TransitionProps={{\n onEnter: () => setOption('without')\n }}\n >\n <DialogContent>\n <DialogContentText>\n {i18n.text('You are attempting to change a value that is presently ignored.')}\n </DialogContentText>\n <FormControl variant=\"standard\" 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 '@mui/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 classnames from 'classnames';\nimport i18n from 'ui-i18n';\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, useDynamicRowCellHeight} from '../../BasicTableView';\nimport BasicViewHeader from '../../BasicViewHeader/BasicViewHeader';\nimport {CommonRowCellRenderer} from './cell-renderers/CommonRowCellRenderer';\nimport {COLUMNS_DATA, DEFAULT_VISIBLE_COLUMNS, getBasicTableColumnsData, getBasicTableRowsData} from './helpers';\nimport {always, either, filter, isNil, keys, map, pipe, without, identity, both, move} from 'ramda';\nimport LinearLoadIndicator from '../../LinearLoadIndicator/LinearLoadIndicator';\nimport ConfirmDeleteDialog from '../../ConfirmDeleteDialog/ConfirmDeleteDialog';\nimport {CrosswalksByOwnerTypeMap, GetRowCellKeyProps, AttributesTableRowValue, RowCellRendererProps} from '../types';\nimport ConfirmEditIgnoredDialog from './ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog';\nimport {noop} from '../../../core';\nimport {useMdmMetadata} from '../../../contexts';\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 emptyTempAttributeUris: string[];\n selectedAttributeTypes?: AttributeType[];\n onSelectAttributeTypes?: (selected: AttributeType[]) => void;\n additionalHeaderItems?: React.ReactNode;\n className?: string;\n activeSurvivorshipGroupUri?: string;\n};\n\nconst getIdFromRowValue = (rowValue: AttributesTableRowValue) => rowValue.ovValues.attributeType.uri;\n\nconst getRowCellKey = ({columnData: {id}, cellIndex, rowValue}: GetRowCellKeyProps) =>\n `${id}[${getIdFromRowValue(rowValue)}][${cellIndex}]`;\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 emptyTempAttributeUris,\n selectedAttributeTypes,\n onSelectAttributeTypes = noop,\n additionalHeaderItems,\n className,\n activeSurvivorshipGroupUri\n}: Props) => {\n const styles = useStyles();\n const metadata = useMdmMetadata();\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 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(getRowCellKey);\n\n const renderRowCell = useCallback(\n (props: RowCellRendererProps) => <CommonRowCellRenderer changeRowCellHeight={changeRowCellHeight} {...props} />,\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 handleReorderAttributeTypes = useCallback(\n (oldPosition: number, newPosition: number) => {\n onSelectAttributeTypes(move(oldPosition, newPosition, selectedAttributeTypes));\n },\n [onSelectAttributeTypes, selectedAttributeTypes]\n );\n\n const handleDelete = useCallback(pendingDeletion ? () => onDelete(pendingDeletion) : noop, [\n pendingDeletion,\n onDelete\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 emptyTempAttributeUris,\n readOnly\n }),\n [\n setPendingDeletion,\n onPin,\n onIgnore,\n handleEdit,\n onAdd,\n parentUri,\n parentTypeUri,\n selectedAttributeTypes,\n onSelectAttributeTypes,\n emptyTempAttributeUris,\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 dndRowReorderingEnabled={false}\n dndRowReorderingHandler={handleReorderAttributeTypes}\n getIdFromRowValue={getIdFromRowValue}\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={handleDelete}\n />\n <ConfirmEditIgnoredDialog\n open={!!pendingIgnoredEditing}\n onClose={() => setPendingIgnoredEditing(null)}\n onConfirmEditWithIgnore={() => onEdit(pendingIgnoredEditing)}\n onConfirmEditWithoutIgnore={() => {\n onEdit({...pendingIgnoredEditing, clearAttributeFlags: true});\n }}\n />\n </div>\n );\n};\n\nexport default memo(AttributesTable);\n","import {makeStyles} from '@mui/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 '@mui/icons-material/EventBusy';\nimport Tooltip from '@mui/material/Tooltip';\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 '@mui/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 from '@mui/material/Typography';\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 '@mui/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, {useCallback, useEffect, useState} from 'react';\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: currentValue, classes = {}, disabled = false, onChange}: Props) => {\n const styles = useStyles();\n\n const [value, setValue] = useState<Date | number>(currentValue);\n\n useEffect(() => {\n setValue(currentValue);\n }, [currentValue]);\n\n const handleChange = useCallback(() => {\n const newValue = value?.valueOf();\n if (currentValue !== newValue) {\n onChange(newValue);\n }\n }, [onChange, value, currentValue]);\n\n return (\n <TimestampEditor\n slotProps={{\n textField: {\n variant: 'filled',\n InputProps: {\n disableUnderline: true,\n classes: {\n input: styles.timestampEditorInput,\n root: classnames(styles.timestampEditor, classes.root)\n },\n onBlur: handleChange\n }\n }\n }}\n value={value || null}\n disabled={disabled}\n onChange={setValue}\n onClose={handleChange}\n />\n );\n};\n\nexport default CrosswalkDateEditor;\n","import {makeStyles} from '@mui/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 {ascend, filter, has, isNil, map, pipe, prop, propEq, without} from 'ramda';\nimport i18n from 'ui-i18n';\nimport moment from 'moment';\nimport {\n AttributeType,\n CrosswalkBase,\n CrosswalksAttrTypes,\n formatDateTime,\n getCrosswalksTypes,\n getSourceSystemLabel,\n parseTimestamp\n} from '@reltio/mdm-sdk';\nimport Typography from '@mui/material/Typography';\nimport DeleteIcon from '@mui/icons-material/Delete';\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 CopyableValueField from '../CopyableValueField/CopyableValueField';\nimport CrosswalkDateEditor from '../CrosswalkDateEditor/CrosswalkDateEditor';\nimport {useMdmMetadata} from '../../../contexts';\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 [addedAttributes, setAddedAttributes] = useState<string[]>([]);\n const [pendingDeletionAttrUri, setPendingDeletionAttrUri] = useState<string>(null);\n const metadata = useMdmMetadata();\n const isTempCrosswalk = !('uri' in crosswalk);\n\n const addSelectedAttributes = (selectedAttributes: AttributeType[]) => {\n if (selectedAttributes.length > 0) {\n setAddedAttributes((addedAttributes) => addedAttributes.concat(map(prop('uri'), selectedAttributes)));\n }\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 size=\"small\"\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 size=\"small\"\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 '@mui/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 {CrosswalkBase, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport Typography from '@mui/material/Typography';\nimport ColoredBlock from '../ColoredBlock/ColoredBlock';\nimport {useCrosswalkColor} from '../../../contexts/CrosswalksDisplayContext';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport {useMdmMetadata} from '../../../contexts';\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: CrosswalkBase;\n};\n\nconst CrosswalkDragPreview = ({crosswalk}: Props) => {\n const styles = useStyles();\n const metadata = useMdmMetadata();\n const color = useCrosswalkColor(crosswalk);\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 '@mui/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 from '@mui/material/Button';\nimport Typography from '@mui/material/Typography';\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 '@mui/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 {getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport Typography from '@mui/material/Typography';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport SourceIcon from '../../SourceIcon/SourceIcon';\nimport SmallIconButton from '../../SmallIconButton/SmallIconButton';\nimport {useCrosswalkHighlight} from '../../../contexts/CrosswalksDisplayContext';\nimport {useMdmMetadata} from '../../../contexts';\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 = useMdmMetadata();\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 '@mui/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, {useEffect, useRef, useState, memo} from 'react';\nimport i18n from 'ui-i18n';\nimport {useDrag} from 'react-dnd';\nimport {getEmptyImage} from 'react-dnd-html5-backend';\nimport {\n Crosswalk,\n eqCrosswalks,\n getLastUriPart,\n getSourceSystemLabel,\n isCrosswalkDisabled,\n RelationCrosswalk\n} from '@reltio/mdm-sdk';\nimport Typography from '@mui/material/Typography';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\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 DependentIcon from '../../../icons/NestedAttribute';\nimport CrosswalkAttributes from '../CrosswalkAttributes/CrosswalkAttributes';\nimport {useMdmMetadata} from '../../../contexts';\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\n const [expanded, setExpanded] = useState(false);\n const [isDeleteDialogOpen, setDeleteDialogOpen] = useState(false);\n\n const metadata = useMdmMetadata();\n\n const crosswalkColor = useCrosswalkColor(crosswalk);\n const {toggleCrosswalkFocus, isFocused} = useCrosswalkFocus(crosswalk);\n const {isDimmed, highlightCrosswalk, removeHighlight} = useCrosswalkHighlight(crosswalk);\n const [scrollToCrosswalk] = useHighlightedCrosswalks();\n\n const coloredCrosswalk = isDimmed ? 'rgba(0, 0, 0, 0.12)' : crosswalkColor;\n const color = isEmpty ? '#FFF' : isColored ? coloredCrosswalk : '#CACCD1';\n\n const sourceSystemLabel = getSourceSystemLabel(metadata, crosswalk.type);\n const crosswalkId = getLastUriPart(crosswalk.uri);\n const crosswalkDisabled = isCrosswalkDisabled(crosswalk);\n\n const styles = useStyles({color, isOpaque: !isDimmed, isFocused});\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 '@mui/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 from '@mui/material/Link';\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 [emptyTempAttributeUris, setEmptyTempAttributeUris] = useState<string[]>([]);\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 setEmptyTempAttributeUris([]);\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 if (!emptyTempAttributeUris.includes(newAttribute.uri)) {\n setEmptyTempAttributeUris((emptyTempAttributeUris) => [...emptyTempAttributeUris, newAttribute.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 emptyTempAttributeUris\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, clearAttributeFlags}: EditInlineAttributeEvent) => {\n if (isComplexAttribute(attributeType) || isImage(attributeType)) return;\n const update = async () => {\n await handleErrorResponse(\n updateAttribute({\n attributeUri: attributeValue.uri,\n sourceUri: crosswalk.type,\n crosswalkValue: crosswalk.value,\n crosswalkSourceTable: crosswalk.sourceTable,\n value: isLookupAttrType(attributeType)\n ? attributeValue.lookupCode\n : (attributeValue.value as string)\n })\n );\n if (!clearAttributeFlags) {\n if (attributeValue.ignored) {\n await handleErrorResponse(\n ignoreAttribute({\n attributeUri: attributeValue.uri,\n value: true\n })\n );\n } else if (attributeValue.pin) {\n await handleErrorResponse(\n pinAttribute({\n attributeUri: attributeValue.uri,\n value: true\n })\n );\n }\n }\n };\n\n handleAction(update());\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":["defaultGetRowCellKey","rowIndex","columnData","cellIndex","id","getRowCellKey","rowCellHeightsMap","setRowCellHeightsMap","useState","rowCellHeightsMapCache","useRef","flushHeightUpdates","useCallback","debounce","current","clearHeightsCache","getDynamicRowCellHeight","cell","key","changeRowCellHeight","curry","height","onChangeHeight","children","cellProps","cellRef","rowValue","changeCellHeight","adjustCellHeight","clientHeight","useDidUpdateEffect","rawValue","ref","handleHeight","onResize","open","onClose","onConfirm","i18n","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","isTemporary","getBoundingClientRect","dataTypeDefinition","getAttrDataTypeDefinition","initEditorValue","attributeValueToEditorValue","editorValue","changeEditorValue","isTemporaryWithDefaultValue","isNil","defaultValue","TextFieldProps","InputProps","disableUnderline","root","multiline","fullWidth","autoFocus","applyChangesAndClose","editedValue","editorValueToAttributeValue","equals","editedAttributeValue","isLookupAttrType","value","lookupCode","isNumericType","type","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","isBooleanType","isTimestampBasedType","onKeyUp","event","includes","onBackdropClick","DataTypeValueEditor","fieldName","attributeUriToSearchUri","onChange","menuItem","minHeight","secondary","menuText","fontSize","lineHeight","letterSpacing","marginLeft","sourceItem","borderBottom","MenuItemWithTooltip","withTooltip","MenuItem","MenuItemContent","icon","Typography","CrosswalkMenuItem","forwardRef","item","onMenuClose","disabled","crosswalk","SourceItem","focusable","tooltipTitle","showForDisabled","e","fullyColored","opaque","variant","wordBreak","content","position","pointerEvents","boxSizing","alignItems","opacity","transition","actions","marginRight","dataReltioId","disableEdit","disableDelete","onIgnore","onPin","onDelete","isEmpty","isReadingMode","isEditingMode","isHovered","onMouseEnter","onMouseLeave","setReadingMode","setEditingMode","useAttributeState","getLastUriPart","crosswalkDisabled","isCrosswalkDisabled","canModifyAttribute","system","canEdit","checkMetadataForUpdate","Mode","canDelete","checkMetadataForDelete","isTempUri","hasBasicPermission","checkBasicMetadataPermission","MetadataPermissions","showPin","pin","showIgnore","ignored","useEffect","useCrosswalkColor","isHighlighted","isDimmed","highlightCrosswalk","removeHighlight","useCrosswalkHighlight","Edit","Delete","crosswalks","DataTypeValue","getAttributeValue","PinButton","isPinned","IgnoreButton","isIgnored","isAutoGeneratedAttribute","DropDownMenuButton","MenuItemRenderer","menuId","buttonComponent","SmallIconButtonWithTooltip","buttonProps","MoreVertIcon","size","menuItems","simpleAttributesWrapper","flexWrap","gap","dropIndicator","attributeValues","parentUri","crosswalksMap","onAdd","emptyTempAttributeUris","isDragItemOver","drop","useDrop","accept","canDrop","isRelationCrosswalk","isRelationUri","ownerType","isEntityCrosswalk","isEntityUri","checkMetadataForCreate","isRelationTypeUri","isEntityTypeUri","collect","monitor","isOver","index","length","attributeIndex","map","canCreate","Button","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","pipe","pickBy","val","attrUri","areOneHierarchyUris","flatten","uniqBy","prop","ArrowExpandButton","getCrosswalkId","Spacer","image","imageContainer","paddingRight","IMAGE_SIZE","imageWidth","imageHeight","ComplexAttribute","Image","containerClassName","src","getImageAttributeThumbnailUrl","getLabel","relationshipLabel","generateEntityUrl","useContext","UrlGeneratorsContext","metadata","useMdmMetadata","uiPath","useMdmUiPath","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","setAttributeStateDebounced","renderAttributesList","valueContainerClassName","LabelRenderer","RightSlot","imageSize","imageMargin","coloredCell","right","top","headCell","rowCell","cellValueWrapper","dragIndicator","left","cursor","dragIndicatorIcon","attributeTitle","ovValue","marginTop","count","textAlign","ruleType","ruleTypeLabel","rulePopup","overflowY","popupItem","closeButton","popupTitle","fontWeight","popupTitleWrapper","popupItemsWrapper","maxHeight","winnerSourceItemWrapper","winnerSourceItem","winnerSourceItemLabel","CellValueRenderer","columnIndex","someRowIsDragging","otherProps","isFirstColumn","shouldRenderCell","CommonRowCellRenderer","isDragLayer","RowCellAutoSizer","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","dragRef","DragIndicator","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","pathOr","countAttributeValues","survivorshipGroups","currentSurvivorshipGroup","mapping","getSurvivorshipStrategy","survivorshipStrategy","getDefaultSurvivorshipStrategy","isSourceSystemRule","uniq","undefined","fixUri","isOtherAttributeWinnerRule","isComplexAttribute","isMinMaxValueRule","getRuleTypeValues","onConfirmEditWithoutIgnore","onConfirmEditWithIgnore","option","setOption","Dialog","TransitionProps","onEnter","DialogContent","DialogContentText","FormControl","FormLabel","RadioGroup","getValue","FormControlLabel","control","Radio","DialogActions","tableContainer","tableHeader","tableTitle","tableContent","flex","getIdFromRowValue","ovValues","isLoading","visibleColumns","onChangeVisibleColumns","noop","additionalHeaderItems","visibleColumnsData","initialAttrTypes","keys","without","makeAttrTypeUri","identity","rowsData","columns","attrName","attrValues","crosswalksMapForAttribute","relation","assoc","getBasicTableRowsData","useDynamicRowCellHeight","renderRowCell","getRowCellHeight","always","pendingDeletion","setPendingDeletion","pendingIgnoredEditing","setPendingIgnoredEditing","handleEdit","handleReorderAttributeTypes","oldPosition","newPosition","move","handleDelete","tableContext","BasicViewHeader","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","LinearLoadIndicator","BasicTable","fixFirstColumn","headRowHeight","defaultColumnWidth","defaultColumnMinWidth","dndRowReorderingEnabled","dndRowReorderingHandler","context","ConfirmDeleteDialog","clearAttributeFlags","useColoredItemStyles","endDatedCrosswalkIcon","EventBusy","xmlnsXlink","stroke","strokeWidth","xlinkHref","mask","overflowWrap","button","textTransform","CopyIcon","navigator","clipboard","writeText","timestampEditorInput","currentValue","setValue","handleChange","newValue","valueOf","TimestampEditor","slotProps","onBlur","attributeWrapper","flexGrow","editor","moreButton","canEditAttribute","onEditAttribute","onDeleteAttribute","addedAttributes","setAddedAttributes","pendingDeletionAttrUri","setPendingDeletionAttrUri","isTempCrosswalk","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","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","isColored","isDeleteDialogOpen","setDeleteDialogOpen","crosswalkColor","scrollToCrosswalk","useHighlightedCrosswalks","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","setEmptyTempAttributeUris","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","async","update","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":""}