@reltio/remotes 1.4.1326 → 1.4.1328

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/5592.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"5592.js","mappings":"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","sources":["webpack://@reltio/remotes/../../node_modules/@date-io/moment/build/index.esm.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Edit.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/EventBusy.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Info.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/KeyboardArrowLeft.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/KeyboardArrowRight.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Settings.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Visibility.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/icons/Filter.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/FilterButton/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/FilterButton/FilterButton.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/BasicTablePagination.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/viewState/basicTableViewState.js","webpack://@reltio/remotes/../components/src/components/BasicView/styles.js","webpack://@reltio/remotes/../components/src/components/BasicView/BasicView.tsx","webpack://@reltio/remotes/../components/src/components/ConfirmationDialog/styles.ts","webpack://@reltio/remotes/../components/src/components/ConfirmationDialog/ConfirmationDialog.tsx","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/EntityTypeBadge.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBand/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBand/ProfileBand.tsx","webpack://@reltio/remotes/../components/src/components/SettingsMenu/SettingsMenu.tsx","webpack://@reltio/remotes/../components/src/components/VerticalDivider/VerticalDivider.js","webpack://@reltio/remotes/../components/src/hooks/useActions.ts","webpack://@reltio/remotes/../components/src/hooks/useCollaboration.ts","webpack://@reltio/remotes/../components/src/hooks/useRelationsLoader.ts","webpack://@reltio/remotes/../components/src/hooks/useUsers.ts","webpack://@reltio/remotes/../relationships/src/hooks/useSavedState.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/helpers/tableHelpers.ts","webpack://@reltio/remotes/../relationships/src/hooks/useRelationshipsTable.ts","webpack://@reltio/remotes/../relationships/src/components/RelationTypeSelector/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationTypeSelector/RelationTypeSelector.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTableHeader/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTableHeader/RelationshipsTableHeader.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/HeadCellRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/EntityProfileRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/AttributesRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/DefaultCellValueRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/helpers.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/RowCellRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipMenuButton/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipMenuButton/MenuItemRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipMenuButton/RelationshipMenuButton.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/RelationshipsTable.tsx","webpack://@reltio/remotes/../relationships/src/components/LegendTable/helpers.ts","webpack://@reltio/remotes/../relationships/src/components/LegendTable/styles.ts","webpack://@reltio/remotes/../relationships/src/components/LegendTable/LegendTable.tsx","webpack://@reltio/remotes/../relationships/src/components/LegendPanel/styles.ts","webpack://@reltio/remotes/../relationships/src/components/LegendPanel/LegendPanel.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/EntityInfo/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/EntityInfo/EntityInfo.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDirection/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDirection/RelationDirection.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDate/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDate/RelationDate.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationshipBand.tsx","webpack://@reltio/remotes/../relationships/src/services/errors.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipDetails/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipDetails/RelationshipDetails.tsx","webpack://@reltio/remotes/../relationships/src/hooks/useCrosswalksDisplay.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/RelationshipsView.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/helpers/filtersHelpers.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/index.tsx","webpack://@reltio/remotes/./src/relationships.ts","webpack://@reltio/remotes/../../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"],"sourcesContent":["import defaultMoment from 'moment';\n\nvar MomentUtils = /** @class */ (function () {\n function MomentUtils(_a) {\n var _b = _a === void 0 ? {} : _a, locale = _b.locale, instance = _b.instance, moment = _b.moment;\n this.yearFormat = \"YYYY\";\n this.yearMonthFormat = \"MMMM YYYY\";\n this.dateTime12hFormat = \"MMMM Do hh:mm a\";\n this.dateTime24hFormat = \"MMMM Do HH:mm\";\n this.time12hFormat = \"hh:mm A\";\n this.time24hFormat = \"HH:mm\";\n this.dateFormat = \"MMMM Do\";\n this.moment = instance || moment || defaultMoment;\n this.locale = locale;\n }\n MomentUtils.prototype.parse = function (value, format) {\n if (value === \"\") {\n return null;\n }\n return this.moment(value, format, true);\n };\n MomentUtils.prototype.date = function (value) {\n if (value === null) {\n return null;\n }\n var moment = this.moment(value);\n moment.locale(this.locale);\n return moment;\n };\n MomentUtils.prototype.isValid = function (value) {\n return this.moment(value).isValid();\n };\n MomentUtils.prototype.isNull = function (date) {\n return date === null;\n };\n MomentUtils.prototype.getDiff = function (date, comparing) {\n return date.diff(comparing);\n };\n MomentUtils.prototype.isAfter = function (date, value) {\n return date.isAfter(value);\n };\n MomentUtils.prototype.isBefore = function (date, value) {\n return date.isBefore(value);\n };\n MomentUtils.prototype.isAfterDay = function (date, value) {\n return date.isAfter(value, \"day\");\n };\n MomentUtils.prototype.isBeforeDay = function (date, value) {\n return date.isBefore(value, \"day\");\n };\n MomentUtils.prototype.isBeforeYear = function (date, value) {\n return date.isBefore(value, \"year\");\n };\n MomentUtils.prototype.isAfterYear = function (date, value) {\n return date.isAfter(value, \"year\");\n };\n MomentUtils.prototype.startOfDay = function (date) {\n return date.clone().startOf(\"day\");\n };\n MomentUtils.prototype.endOfDay = function (date) {\n return date.clone().endOf(\"day\");\n };\n MomentUtils.prototype.format = function (date, formatString) {\n date.locale(this.locale);\n return date.format(formatString);\n };\n MomentUtils.prototype.formatNumber = function (numberToFormat) {\n return numberToFormat;\n };\n MomentUtils.prototype.getHours = function (date) {\n return date.get(\"hours\");\n };\n MomentUtils.prototype.addDays = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"days\")\n : date.clone().add(count, \"days\");\n };\n MomentUtils.prototype.setHours = function (date, count) {\n return date.clone().hours(count);\n };\n MomentUtils.prototype.getMinutes = function (date) {\n return date.get(\"minutes\");\n };\n MomentUtils.prototype.setMinutes = function (date, count) {\n return date.clone().minutes(count);\n };\n MomentUtils.prototype.getSeconds = function (date) {\n return date.get(\"seconds\");\n };\n MomentUtils.prototype.setSeconds = function (date, count) {\n return date.clone().seconds(count);\n };\n MomentUtils.prototype.getMonth = function (date) {\n return date.get(\"month\");\n };\n MomentUtils.prototype.isSameDay = function (date, comparing) {\n return date.isSame(comparing, \"day\");\n };\n MomentUtils.prototype.isSameMonth = function (date, comparing) {\n return date.isSame(comparing, \"month\");\n };\n MomentUtils.prototype.isSameYear = function (date, comparing) {\n return date.isSame(comparing, \"year\");\n };\n MomentUtils.prototype.isSameHour = function (date, comparing) {\n return date.isSame(comparing, \"hour\");\n };\n MomentUtils.prototype.setMonth = function (date, count) {\n return date.clone().month(count);\n };\n MomentUtils.prototype.getMeridiemText = function (ampm) {\n return ampm === \"am\" ? \"AM\" : \"PM\";\n };\n MomentUtils.prototype.startOfMonth = function (date) {\n return date.clone().startOf(\"month\");\n };\n MomentUtils.prototype.endOfMonth = function (date) {\n return date.clone().endOf(\"month\");\n };\n MomentUtils.prototype.getNextMonth = function (date) {\n return date.clone().add(1, \"month\");\n };\n MomentUtils.prototype.getPreviousMonth = function (date) {\n return date.clone().subtract(1, \"month\");\n };\n MomentUtils.prototype.getMonthArray = function (date) {\n var firstMonth = date.clone().startOf(\"year\");\n var monthArray = [firstMonth];\n while (monthArray.length < 12) {\n var prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(this.getNextMonth(prevMonth));\n }\n return monthArray;\n };\n MomentUtils.prototype.getYear = function (date) {\n return date.get(\"year\");\n };\n MomentUtils.prototype.setYear = function (date, year) {\n return date.clone().set(\"year\", year);\n };\n MomentUtils.prototype.mergeDateAndTime = function (date, time) {\n return this.setMinutes(this.setHours(date, this.getHours(time)), this.getMinutes(time));\n };\n MomentUtils.prototype.getWeekdays = function () {\n return this.moment.weekdaysShort(true);\n };\n MomentUtils.prototype.isEqual = function (value, comparing) {\n if (value === null && comparing === null) {\n return true;\n }\n return this.moment(value).isSame(comparing);\n };\n MomentUtils.prototype.getWeekArray = function (date) {\n var start = date\n .clone()\n .startOf(\"month\")\n .startOf(\"week\");\n var end = date\n .clone()\n .endOf(\"month\")\n .endOf(\"week\");\n var count = 0;\n var current = start;\n var nestedWeeks = [];\n while (current.isBefore(end)) {\n var weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = current.clone().add(1, \"day\");\n count += 1;\n }\n return nestedWeeks;\n };\n MomentUtils.prototype.getYearRange = function (start, end) {\n var startDate = this.moment(start).startOf(\"year\");\n var endDate = this.moment(end).endOf(\"year\");\n var years = [];\n var current = startDate;\n while (current.isBefore(endDate)) {\n years.push(current);\n current = current.clone().add(1, \"year\");\n }\n return years;\n };\n // displaying methods\n MomentUtils.prototype.getCalendarHeaderText = function (date) {\n return this.format(date, this.yearMonthFormat);\n };\n MomentUtils.prototype.getYearText = function (date) {\n return this.format(date, \"YYYY\");\n };\n MomentUtils.prototype.getDatePickerHeaderText = function (date) {\n return this.format(date, \"ddd, MMM D\");\n };\n MomentUtils.prototype.getDateTimePickerHeaderText = function (date) {\n return this.format(date, \"MMM D\");\n };\n MomentUtils.prototype.getMonthText = function (date) {\n return this.format(date, \"MMMM\");\n };\n MomentUtils.prototype.getDayText = function (date) {\n return this.format(date, \"D\");\n };\n MomentUtils.prototype.getHourText = function (date, ampm) {\n return this.format(date, ampm ? \"hh\" : \"HH\");\n };\n MomentUtils.prototype.getMinuteText = function (date) {\n return this.format(date, \"mm\");\n };\n MomentUtils.prototype.getSecondText = function (date) {\n return this.format(date, \"ss\");\n };\n return MomentUtils;\n}());\n\nexport default MomentUtils;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), 'Edit');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M9.31 17l2.44-2.44L14.19 17l1.06-1.06-2.44-2.44 2.44-2.44L14.19 10l-2.44 2.44L9.31 10l-1.06 1.06 2.44 2.44-2.44 2.44L9.31 17zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z\"\n}), 'EventBusy');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n}), 'Info');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n}), 'KeyboardArrowLeft');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'KeyboardArrowRight');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n transform: \"scale(1.2, 1.2)\",\n fill: \"none\",\n d: \"M0 0h20v20H0V0z\"\n}), _react.default.createElement(\"path\", {\n transform: \"scale(1.2, 1.2)\",\n d: \"M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z\"\n})), 'Settings');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;","import {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import React from 'react';\n\nconst SvgFilter: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={18} height={18} viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M18 2V0H0v2l7 8v8l4-2v-6z\" fill=\"currentColor\" fillRule=\"nonzero\" stroke=\"none\" strokeWidth={1} />\n </svg>\n );\n};\n\nexport default SvgFilter;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n 'filterIcon--enabled': {\n color: theme.palette.primary.main\n },\n closeIcon: {\n position: 'absolute',\n right: '3px',\n bottom: '3px',\n transform: 'scale(0.5)'\n },\n button: {\n padding: '11px'\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport i18n from 'ui-i18n';\nimport {IconButton as IconButton} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport FilterIcon from '../../../../icons/Filter';\nimport {useStyles} from './styles';\n\nconst FilterButton = ({enabled, onClick}) => {\n const styles = useStyles();\n\n return (\n <Tooltip title={enabled ? i18n.text('Clear all filters') : i18n.text('Filter')}>\n <IconButton onClick={onClick} classes={{root: styles.button}}>\n {enabled ? (\n <>\n <FilterIcon className={styles['filterIcon--enabled']} />\n <CloseIcon color=\"primary\" className={styles.closeIcon} />\n </>\n ) : (\n <FilterIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n\nFilterButton.propTypes = {\n enabled: PropTypes.bool,\n onClick: PropTypes.func\n};\n\nexport default FilterButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n pagination: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: '56px',\n borderTop: '1px solid rgba(0,0,0,0.12)',\n boxShadow: 'none'\n },\n caption: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px'\n },\n selectRoot: {\n marginLeft: '5px',\n marginRight: '36px'\n },\n select: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px',\n textAlign: 'right'\n },\n actions: {\n marginLeft: '32px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {TablePagination as TablePagination} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getValue} from '../../../core/utils';\nimport {nthArg, pipe, pathOr, identity} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BasicTablePagination = ({\n classes = {},\n count,\n rowsPerPageOptions,\n page,\n onChangePage,\n rowsPerPage,\n onChangeRowsPerPage,\n basicTableRef,\n labelRowsPerPage\n}) => {\n const labelDisplayedRows = ({from, to, count}) =>\n i18n.text('${fromRow}-${toRow} of ${countRows}', {\n fromRow: i18n.number(from, '0,0'),\n toRow: i18n.number(to, '0,0'),\n countRows: i18n.number(count, '0,0')\n });\n const styles = useStyles();\n const resetScrollbarPosition = useCallback(() => {\n pathOr(identity, ['current', 'resetScrollbarPosition'], basicTableRef)();\n }, [basicTableRef]);\n const handleChangePage = useCallback(\n (value) => {\n onChangePage(value);\n resetScrollbarPosition();\n },\n [onChangePage, resetScrollbarPosition]\n );\n const handleChangeRowsPerPage = useCallback(\n (value) => {\n onChangePage(0);\n onChangeRowsPerPage(value);\n resetScrollbarPosition();\n },\n [onChangePage, onChangeRowsPerPage, resetScrollbarPosition]\n );\n return (\n <TablePagination\n classes={{\n ...classes,\n root: classnames(styles.pagination, classes.root),\n select: classnames(styles.select, classes.select),\n caption: styles.caption,\n selectRoot: styles.selectRoot,\n actions: styles.actions\n }}\n component=\"div\"\n labelRowsPerPage={labelRowsPerPage || i18n.text('Rows per page:')}\n labelDisplayedRows={labelDisplayedRows}\n count={count}\n rowsPerPageOptions={rowsPerPageOptions}\n page={page}\n onChangePage={pipe(nthArg(1), handleChangePage)}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={pipe(getValue, handleChangeRowsPerPage)}\n />\n );\n};\n\nBasicTablePagination.propTypes = {\n classes: PropTypes.object,\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n page: PropTypes.number,\n onChangePage: PropTypes.func,\n rowsPerPage: PropTypes.number,\n onChangeRowsPerPage: PropTypes.func,\n basicTableRef: PropTypes.shape({current: PropTypes.object}),\n labelRowsPerPage: PropTypes.string\n};\n\nexport default React.memo(BasicTablePagination);\n","import {always, assoc, difference, dissoc, evolve, keys, path, when} from 'ramda';\nimport {createStandardAction, toggleSortOrder} from '../../../core';\n\nconst CHANGE_COLUMNS = 'CHANGE_COLUMNS';\nconst TOGGLE_FILTERS = 'TOGGLE_FILTERS';\nconst CHANGE_FILTER = 'CHANGE_FILTER';\nconst TOGGLE_SORT = 'TOGGLE_SORT';\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS_PER_PAGE = 'CHANGE_ROWS_PER_PAGE';\n\nexport const actions = {\n changeColumns: createStandardAction(CHANGE_COLUMNS),\n toggleFilters: createStandardAction(TOGGLE_FILTERS),\n changeFilter: createStandardAction(CHANGE_FILTER),\n toggleSort: createStandardAction(TOGGLE_SORT),\n changePage: createStandardAction(CHANGE_PAGE),\n changeRowsPerPage: createStandardAction(CHANGE_ROWS_PER_PAGE)\n};\n\nexport const changeVisibleColumns = (state, nextVisibleColumns) => {\n const removedColumns = difference(state.visibleColumns, nextVisibleColumns);\n const isRemovedColumn = (columnId) => removedColumns.includes(columnId);\n return evolve(\n {\n visibleColumns: always(nextVisibleColumns),\n sorting: when(\n (sorting = {}) => isRemovedColumn(sorting.field),\n () => {\n const [nextSortField] = nextVisibleColumns;\n return {field: nextSortField, order: 'asc'};\n }\n ),\n filters: (filters) =>\n keys(filters).reduce(\n (acc, columnId) => (isRemovedColumn(columnId) ? dissoc(columnId, acc) : acc),\n filters\n )\n },\n state\n );\n};\n\nexport const reducer = (state, action) => {\n switch (action.type) {\n case CHANGE_COLUMNS: {\n const columnIds = action.payload;\n return changeVisibleColumns(state, columnIds);\n }\n case TOGGLE_FILTERS: {\n const enableFilters = !state.filters;\n return {\n ...state,\n filters: enableFilters ? {} : null,\n page: enableFilters ? state.page : 0\n };\n }\n case CHANGE_FILTER: {\n const {columnId, filter} = action.payload;\n return evolve({filters: filter ? assoc(columnId, filter) : dissoc(columnId), page: always(0)}, state);\n }\n case TOGGLE_SORT: {\n const nextSortField = action.payload;\n const prevSortField = path(['sorting', 'field'], state);\n const prevSortOrder = path(['sorting', 'order'], state);\n return {\n ...state,\n sorting: {\n field: nextSortField,\n order: toggleSortOrder(nextSortField === prevSortField ? prevSortOrder : null)\n },\n page: 0\n };\n }\n case CHANGE_PAGE:\n return {...state, page: action.payload};\n case CHANGE_ROWS_PER_PAGE:\n return {...state, rowsPerPage: action.payload};\n default:\n return state;\n }\n};\n\nexport default {\n reducer,\n actions,\n changeVisibleColumns\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n 'basic-view__paper': {\n display: 'flex',\n flexDirection: 'column',\n ...theme.basicView\n }\n}));\n","import Paper, {PaperProps} from '@material-ui/core/Paper';\nimport PropTypes from 'prop-types';\nimport React, {forwardRef, Ref} from 'react';\nimport {useStyles} from './styles';\n\nconst BasicView = forwardRef<Ref<typeof Paper>, PaperProps>(({children, className, ...otherProps}, ref) => {\n const styles = useStyles();\n return (\n <Paper ref={ref} className={className} classes={{root: styles['basic-view__paper']}} {...otherProps}>\n {children}\n </Paper>\n );\n});\n\nBasicView.displayName = 'BasicView';\n\nBasicView.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n\nexport default BasicView;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n paper: {\n minHeight: '180px'\n },\n title: {\n padding: '16px 16px 10px 16px',\n fontSize: '20px',\n fontWeight: 500,\n letterSpacing: '0.25px',\n lineHeight: '24px'\n },\n content: {\n padding: '0 16px'\n },\n contentText: {\n marginBottom: 0,\n fontSize: '16px',\n letterSpacing: '0.15px',\n lineHeight: '24px'\n },\n actionButtons: {\n display: 'flex',\n paddingTop: '4px',\n fontSize: '14px',\n fontWeight: 500,\n letterSpacing: 0,\n lineHeight: '16px',\n '& > div': {\n marginLeft: 'auto'\n }\n },\n discardButton: {\n marginRight: '8px'\n }\n});\n\nexport {useStyles};\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Button as Button} from '@material-ui/core';\nimport {Dialog as Dialog} from '@material-ui/core';\nimport {DialogActions as DialogActions} from '@material-ui/core';\nimport {DialogContent as DialogContent} from '@material-ui/core';\nimport {DialogContentText as DialogContentText} from '@material-ui/core';\nimport {DialogTitle as DialogTitle} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\nexport type Props = {\n open: boolean;\n title: React.ReactNode;\n content: React.ReactNode;\n cancelCaption?: string;\n discardCaption?: string;\n saveCaption?: string;\n disabledSave?: boolean;\n onCancel?: () => void;\n onDiscard?: () => void;\n onSave: () => void;\n};\n\nconst ConfirmationDialog = ({\n open,\n title,\n content,\n onCancel,\n cancelCaption = i18n.text('Cancel'),\n onDiscard,\n discardCaption = '',\n onSave,\n saveCaption = i18n.text('Save'),\n disabledSave = false\n}: Props) => {\n const styles = useStyles();\n\n return (\n <Dialog open={open} onClose={onCancel} classes={{paperScrollPaper: styles.paper}}>\n <DialogTitle classes={{root: styles.title}}>{title}</DialogTitle>\n <DialogContent classes={{root: styles.content}}>\n <DialogContentText classes={{root: styles.contentText}}>{content}</DialogContentText>\n </DialogContent>\n <DialogActions className={styles.actionButtons} disableSpacing>\n {onCancel && <Button onClick={onCancel}>{cancelCaption}</Button>}\n <div>\n {onDiscard && (\n <Button onClick={onDiscard} classes={{root: styles.discardButton}}>\n {discardCaption}\n </Button>\n )}\n <Button onClick={onSave} color=\"primary\" disabled={disabledSave} autoFocus>\n {saveCaption}\n </Button>\n </div>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default ConfirmationDialog;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n 'entityType-overflow': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n\n 'entityType-small': {\n padding: '1px 4px',\n fontSize: '10px',\n lineHeight: 'normal',\n marginRight: '12px',\n borderRadius: '2px'\n },\n 'entityType-medium': {\n padding: '2px 8px 3px',\n borderRadius: '2px',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '15px',\n marginRight: '16px'\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport {Typography as Typography} from '@material-ui/core';\n\nimport {getEntityType, getEntityTypeLabel, getPropWithInheritance, theme, utils, Entity} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport useStyles from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n size?: 'small' | 'medium';\n};\n\nconst EntityTypeBadge = ({entity, className, size = 'small'}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entityTypeUri = entity.type;\n const entityType = getEntityType(metadata, entityTypeUri) || {};\n const entityTypeColor = getPropWithInheritance(metadata, entityType, 'typeColor') || theme.palette.primary.main;\n const entityTypeLabel = getEntityTypeLabel(metadata, entity);\n\n return (\n <ExpandedValueTooltip value={entityTypeLabel} placement=\"top\">\n <Typography\n style={{\n backgroundColor: entityTypeColor,\n color: utils.Colors.getColor(entityTypeColor) ? '#FFFFFF' : '#212121'\n }}\n className={classnames(styles[`entityType-${size}`], styles['entityType-overflow'], className)}\n component=\"div\"\n >\n {entityTypeLabel}\n </Typography>\n </ExpandedValueTooltip>\n );\n};\n\nexport default EntityTypeBadge;\n","import {makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme & {inactiveBackground: string}) => ({\n profileBandWrapper: {\n // especially for IE (overflow fix)\n flexShrink: 0\n },\n profileBand: {\n display: 'flex',\n padding: '16px 12px 16px 16px',\n alignItems: 'flex-start',\n backgroundColor: '#fff',\n boxShadow: 'inset 0 -1px 0 0 rgba(0,114,206,0.06), inset 0 1px 0 0 rgba(0,114,206,0.06);',\n\n '&:after': {\n // IE workaround for minHeight and centering items\n content: '\"\"',\n minHeight: 'inherit',\n fontSize: 0\n }\n },\n inactive: {\n background: theme.inactiveBackground\n },\n profileIcon: {\n marginRight: '12px'\n },\n imageProfileIcon: {\n width: '48px',\n height: '48px'\n },\n profileInfo: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 1 50%'\n },\n badge: {},\n label: {\n lineHeight: '1.2',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n\n '&+ $specialInfo': {\n marginTop: '4px'\n }\n },\n secondaryLabel: {\n display: 'inline-flex',\n color: theme.palette.text.primary,\n marginTop: '2px',\n lineHeight: '16px',\n fontSize: '14px',\n fontWeight: 400,\n\n '&+ $businessCard': {\n marginLeft: '12px'\n }\n },\n businessCard: {\n color: theme.palette.text.secondary,\n display: 'inline-flex',\n fontSize: '14px',\n marginTop: '4px',\n lineHeight: '1.2'\n },\n specialInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n marginTop: '8px'\n },\n entityType: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n entityId: {\n fontSize: '13px',\n color: theme.palette.text.secondary,\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n}));\n\nexport default useStyles;\n","import React, {ReactNode, useCallback} from 'react';\nimport classnames from 'classnames';\nimport {useSelector} from 'react-redux';\nimport {isNil} from 'ramda';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nimport {getLabel, isActiveObject, getBusinessCardAttributesText, getEntityId, isTempUri, Entity} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\n\nimport EntityAvatar from '../EntityAvatar/EntityAvatar';\nimport EntityTypeBadge from '../EntityTypeBadge/EntityTypeBadge';\n\nimport useStyles from './styles';\n\ntype Props = {\n className?: string;\n entity?: Entity;\n children?: ReactNode;\n};\n\nconst ProfileBand = ({className, entity, children}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const showEntityId = useSelector(mdmModule.selectors.getShowEntityId);\n const handleCopyEntityIdToClipboard = useCallback(() => {\n navigator.clipboard.writeText(getEntityId(entity));\n }, [entity]);\n\n if (isNil(entity)) {\n return null;\n }\n\n const label = getLabel(entity.label);\n const secondaryLabel = entity.secondaryLabel;\n const businessCardText = getBusinessCardAttributesText(metadata, entity);\n const isActive = isActiveObject(entity);\n const entityUri = entity.uri;\n const entityId = getEntityId(entity);\n return (\n <div className={classnames(styles.profileBandWrapper, className)}>\n <div\n className={classnames(styles.profileBand, {\n [styles.inactive]: !isActive\n })}\n data-entity-uri={entityUri}\n >\n <EntityAvatar\n key={entity.uri}\n entity={entity}\n avatarClassName={styles.profileIcon}\n imageClassName={styles.imageProfileIcon}\n />\n <div className={styles.profileInfo}>\n <div>\n <Typography variant=\"h6\" className={styles.label}>\n {label}\n </Typography>\n {secondaryLabel && (\n <Typography variant=\"subtitle2\" className={styles.secondaryLabel}>\n {secondaryLabel}\n </Typography>\n )}\n {businessCardText && (\n <Typography variant=\"subtitle1\" className={styles.businessCard}>\n {businessCardText}\n </Typography>\n )}\n </div>\n <div className={styles.specialInfo}>\n <div className={styles.entityType}>\n <EntityTypeBadge entity={entity} size=\"medium\" className={styles.badge} />\n {!isTempUri(entityUri) && showEntityId && (\n <Tooltip title={i18n.text('Copy to clipboard')}>\n <Typography\n display=\"inline\"\n variant=\"body2\"\n className={styles.entityId}\n onClick={handleCopyEntityIdToClipboard}\n >\n {i18n.text('Entity ID')}: {entityId}\n </Typography>\n </Tooltip>\n )}\n </div>\n </div>\n </div>\n {children && <div>{children}</div>}\n </div>\n </div>\n );\n};\n\nexport default ProfileBand;\n","import React from 'react';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport i18n from 'ui-i18n';\nimport {DropDownMenuItem} from '../../types';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport DropDownMenuButton from '../DropDownMenuButton/DropDownMenuButton';\n\ntype Props = {\n items: Array<DropDownMenuItem>;\n menuId: string;\n};\n\nconst SettingsMenu = ({items, menuId}: Props) => {\n return (\n <DropDownMenuButton\n buttonComponent={SmallIconButtonWithTooltip}\n buttonProps={{\n icon: SettingsIcon,\n tooltipTitle: i18n.text('Settings'),\n size: 'L'\n }}\n menuId={menuId}\n menuItems={items}\n />\n );\n};\n\nexport default SettingsMenu;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst VerticalDivider = ({height, margin}) => (\n <div\n style={{\n width: '1px',\n height: `${height}px`,\n borderLeft: '1px solid rgba(0,0,0,0.38)',\n margin: `0 ${margin}px`,\n flexShrink: '0'\n }}\n />\n);\n\nVerticalDivider.propTypes = {\n height: PropTypes.number,\n margin: PropTypes.number\n};\n\nexport default VerticalDivider;\n","import {useMemo} from 'react';\nimport {pipe} from 'ramda';\n\ntype UseActions = ({\n actions,\n dispatch\n}: {\n actions: {\n [key: string]: <T>(payload: T) => {type: string; payload: T};\n };\n dispatch: <T>({type, payload}: {type: string; payload: T}) => void;\n}) => {\n [key in keyof typeof actions]: <T>(payload: T) => void;\n};\n\nexport const useActions: UseActions = ({actions, dispatch}) =>\n useMemo(\n () =>\n Object.entries(actions).reduce((acc, [actionName, actionCreator]) => {\n return {...acc, [actionName]: pipe(actionCreator, dispatch)};\n }, {}),\n [dispatch, actions]\n );\n","import {useCallback, useEffect, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {andThen, fromPairs, map, otherwise, pipe, props, uniqBy, prop, propEq, when, always} from 'ramda';\nimport {\n CollaborationObjectTypes,\n Comment,\n CommentsMap,\n createComment as createCommentRequest,\n createReply as createReplyRequest,\n getComment as getCommentRequest,\n getCommentsCount as getCommentsCountRequest,\n Reply,\n updateComment as updateCommentRequest,\n updateReply as updateReplyRequest,\n deleteComment as deleteCommentRequest,\n deleteReply as deleteReplyRequest,\n getComments as getCommentsRequest,\n isTempUri\n} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\n\ntype Props = {\n objectIds?: string[];\n objectTypes?: CollaborationObjectTypes[];\n enabled?: boolean;\n};\n\nconst filterReplies = (replyId: string, replies: Reply[]) => replies.filter((reply) => reply.replyId !== replyId);\n\nconst getUpdatedReplies = (comment: Comment, reply: Reply) => {\n const changedReplyIndex = comment.replies.findIndex(({replyId}) => replyId === reply.replyId);\n const newReplies = [...comment.replies];\n newReplies[changedReplyIndex] = reply;\n return newReplies;\n};\n\nconst defaultObjectIds = [];\nconst catchErrorInRequest = (e) => console.error('Collaboration error', e);\nexport const useCollaboration = ({objectIds = defaultObjectIds, objectTypes, enabled = true}: Props) => {\n const entity = useSelector(mdm.selectors.getEntity);\n const tenant: string = useSelector(mdm.selectors.getTenant);\n const collaborationPath: string = useSelector(mdm.selectors.getCollaborationPath);\n const isCollaborationEnabled = useSelector(mdm.selectors.isCollaborationEnabled) && enabled;\n\n const [pageToken, setPageToken] = useState<string | null>(null);\n const [comments, setComments] = useState<Comment[]>([]);\n const [commentsMap, setCommentsMap] = useState<CommentsMap>(null);\n const [currentComment, setCurrentComment] = useState<Comment | null>(null);\n const [sending, setSending] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const addCommentsToCommentsMap = useCallback((commentsMap: CommentsMap) => {\n setCommentsMap((currentCommentsMap) => ({\n ...currentCommentsMap,\n ...commentsMap\n }));\n }, []);\n const entityUri = entity?.uri;\n const getCommentsCount = useCallback(\n (objectIds: string[], shouldResetCommentsMap = false) => {\n if (isCollaborationEnabled && entityUri && !isTempUri(entityUri)) {\n const onError = (e) => {\n console.warn('Collaboration error', e);\n setCommentsMap(null);\n };\n pipe(\n getCommentsCountRequest,\n andThen(map(props(['objectId', 'comments']))),\n andThen(fromPairs),\n andThen(shouldResetCommentsMap ? setCommentsMap : addCommentsToCommentsMap),\n otherwise(onError)\n )({uris: objectIds, tenant, collaborationPath});\n } else {\n setCommentsMap(null);\n }\n },\n [addCommentsToCommentsMap, collaborationPath, entityUri, isCollaborationEnabled, tenant]\n );\n\n useEffect(() => {\n getCommentsCount(objectIds, true);\n }, [objectIds, getCommentsCount]);\n\n const getComments = useCallback(\n (relatedObjectUri: string, pageToken?: string) => {\n getCommentsRequest({collaborationPath, tenant, relatedObjectUri, pageToken})\n .then(({items, nextPageToken}) => {\n setComments((prevComments) => {\n if (!pageToken) {\n return items;\n }\n return uniqBy(prop('commentId'), [...prevComments, ...items]);\n });\n setPageToken(nextPageToken);\n })\n .catch(catchErrorInRequest);\n },\n [collaborationPath, tenant]\n );\n\n const getComment = useCallback(\n (commentId: string) => {\n setLoading(true);\n\n getCommentRequest({collaborationPath, tenant, commentId})\n .then(setCurrentComment)\n .catch(catchErrorInRequest)\n .finally(() => setLoading(false));\n },\n [collaborationPath, tenant]\n );\n\n const addCommentToState = (comment: Comment, uri: string) => {\n setCurrentComment(comment);\n setCommentsMap((prevCommentsMap) => {\n return {\n ...prevCommentsMap,\n [uri]: [...(prevCommentsMap[uri] || []), {commentId: comment.commentId, replies: 0, status: 'open'}]\n };\n });\n setComments((prevComments) => [comment, ...prevComments]);\n };\n const updateCommentInState = (comment: Comment) => {\n setCurrentComment(comment);\n setComments(map(when(propEq('commentId', comment.commentId), always(comment))));\n };\n const deleteCommentFromState = (commentId: string, uri: string) => {\n setCurrentComment(null);\n setCommentsMap((prevCommentsMap) => {\n const comments = prevCommentsMap[uri] || [];\n return {\n ...prevCommentsMap,\n [uri]: comments.filter((c) => c.commentId !== commentId)\n };\n });\n setComments((prevComments) => {\n return prevComments.filter((comment) => comment.commentId !== commentId);\n });\n };\n const createComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n permanentLink: ''\n };\n\n return createCommentRequest({collaborationPath, tenant, data})\n .then(([comment]) => addCommentToState(comment, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const editComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris, commentId, replies}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n permanentLink: '',\n commentId,\n replies\n };\n\n return updateCommentRequest({collaborationPath, tenant, data})\n .then((comment) => updateCommentInState({...comment, replies}))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const deleteComment = useCallback(\n ({uri, commentId}) => {\n setSending(true);\n\n deleteCommentRequest({collaborationPath, tenant, commentId})\n .then(() => deleteCommentFromState(commentId, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const updateReplyInState = useCallback((reply: Reply, uri: string, commentId: string, isDeleteReply?: boolean) => {\n const newStatus = reply.action === 'resolve' ? 'resolved' : 'open';\n const {replyId} = reply;\n if (newStatus === 'resolved') {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return null;\n }\n });\n } else {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: isDeleteReply\n ? filterReplies(replyId, prevCurrentComment.replies)\n : [...prevCurrentComment.replies, reply]\n };\n }\n });\n }\n\n setCommentsMap((prevCommentsMap) => ({\n ...prevCommentsMap,\n [uri]: (prevCommentsMap[uri] || []).map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply ? comment.replies - 1 : comment.replies + 1\n };\n }\n\n return comment;\n })\n }));\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply\n ? filterReplies(reply.replyId, comment.replies)\n : [...comment.replies, reply]\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const deleteReply = useCallback(\n ({uri, commentId, reply}) => {\n setSending(true);\n\n deleteReplyRequest({collaborationPath, tenant, commentId, replyId: reply.replyId})\n .then(() => updateReplyInState(reply, uri, commentId, true))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, updateReplyInState, tenant]\n );\n\n const editReplyInState = useCallback((reply: Reply, commentId: string) => {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: getUpdatedReplies(prevCurrentComment, reply)\n };\n }\n });\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n replies: getUpdatedReplies(comment, reply)\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const editReply = useCallback(\n ({content, namedUsers, commentId, replyId}) => {\n setSending(true);\n const data = {\n content,\n namedUsers\n };\n return updateReplyRequest({collaborationPath, tenant, commentId, replyId, data})\n .then((reply) => editReplyInState(reply, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, editReplyInState]\n );\n\n const createReply = useCallback(\n ({content, namedUsers, commentId, action, uri}) => {\n setSending(true);\n\n const data = {\n content,\n action,\n namedUsers\n };\n\n return createReplyRequest({collaborationPath, tenant, commentId, data})\n .then(([reply]) => updateReplyInState(reply, uri, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, updateReplyInState]\n );\n\n const resolveThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'resolve', uri});\n },\n [createReply]\n );\n\n const reOpenThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'reopen', uri});\n },\n [createReply]\n );\n\n const clearCurrentComment = useCallback(() => {\n setCurrentComment(null);\n }, []);\n\n return {\n clearCurrentComment,\n comments,\n commentsMap,\n createComment,\n createReply,\n currentComment,\n deleteComment,\n editComment,\n getComment,\n getComments,\n getCommentsCount,\n loading,\n objectTypes,\n pageToken,\n reOpenThread,\n resolveThread,\n sending,\n deleteReply,\n editReply\n };\n};\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {cond, pipe, prop, T, when, identity, times, length, ifElse, always} from 'ramda';\nimport mdm, {profile} from '@reltio/mdm-module';\nimport {\n ActivityFilter,\n addGlobalFilterToQuery,\n Entity,\n getRelationsForDataTenantEntity,\n getRelationsForEntity,\n GlobalSearchRequestOptions,\n isDataTenantEntity,\n isTempUri,\n Mode,\n wrapInArrayIfNeeded\n} from '@reltio/mdm-sdk';\nimport {useSafePromise} from './useSafePromise';\nimport {usePrevious} from './usePrevious';\n\ntype Props = {\n sorting?: {\n field: string;\n order: string;\n };\n filter?: string;\n page: number;\n rowsPerPage: number;\n config: {\n id: string;\n content: Record<string, unknown>;\n suggested?: Record<string, unknown>[] | Record<string, unknown>;\n };\n entity: Entity;\n relationActivityFilter?: ActivityFilter;\n mode: Mode;\n searchByOv?: boolean;\n};\n\nconst buildSuggestedIds = when(\n identity,\n pipe(\n wrapInArrayIfNeeded,\n length,\n times((n) => n + 1)\n )\n);\n\nexport const useRelationsLoader = ({\n sorting,\n filter,\n page,\n rowsPerPage,\n config,\n entity,\n relationActivityFilter,\n mode,\n searchByOv = false\n}: Props) => {\n const [isLoading, setIsLoading] = useState(false);\n const dispatch = useDispatch();\n const tenant = useSelector(mdm.selectors.getTenant) as string;\n const dtssPath = useSelector(mdm.selectors.getDtssPath) as string;\n const {activityFilter, globalFilter}: GlobalSearchRequestOptions =\n useSelector(mdm.selectors.getGlobalSearchRequestOptions) || {};\n const safePromise = useSafePromise();\n const suggested = config.suggested;\n const options = useMemo(\n () => ({\n searchByOv\n }),\n [searchByOv]\n );\n const loadRelations = useCallback(() => {\n if (entity?.uri) {\n const requestConfig = {\n ...config.content,\n sortBy: sorting?.field,\n order: sorting?.order,\n returnDates: true,\n returnObjects: true,\n activeness: {\n relation: relationActivityFilter || ActivityFilter.ALL,\n entity: activityFilter\n },\n max: rowsPerPage,\n offset: page * rowsPerPage,\n filter: addGlobalFilterToQuery(globalFilter, filter) || undefined,\n suggested: buildSuggestedIds(suggested)\n };\n const configs = [requestConfig].concat(\n ifElse(\n identity,\n pipe(wrapInArrayIfNeeded, (suggested) =>\n suggested.map((config, i) => ({...config, id: requestConfig.suggested[i]}))\n ),\n always([])\n )(suggested)\n );\n\n const request = cond([\n [pipe(prop('uri'), isTempUri), () => Promise.resolve([{total: 0}])],\n [\n isDataTenantEntity,\n (entity) =>\n getRelationsForDataTenantEntity({\n entityUri: entity.uri,\n configs: configs,\n customerTenant: tenant,\n dataTenant: entity.dataTenant,\n dtssPath,\n options\n })\n ],\n [T, (entity) => getRelationsForEntity(entity.uri, configs, options)]\n ]);\n setIsLoading(true);\n safePromise(request(entity))\n .then(([{connections, total}]) => {\n dispatch(profile.relations.actions.relationsLoaded({id: config.id, connections, total}));\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n activityFilter,\n config,\n dispatch,\n dtssPath,\n entity?.uri,\n entity?.dataTenant,\n filter,\n globalFilter,\n page,\n relationActivityFilter,\n rowsPerPage,\n safePromise,\n sorting,\n tenant,\n options\n ]);\n const isRequestSentRef = useRef<boolean>(false);\n isRequestSentRef.current = false;\n useEffect(() => {\n isRequestSentRef.current = true;\n loadRelations();\n }, [loadRelations]);\n const prevMode = usePrevious(mode);\n useEffect(() => {\n if (mode === Mode.Viewing && !isRequestSentRef.current && prevMode !== mode) {\n isRequestSentRef.current = true;\n loadRelations();\n }\n }, [loadRelations, mode, prevMode]);\n return {isLoading, reload: loadRelations};\n};\n","import {useEffect, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {getAllUsersForTenant} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\n\nexport const useUsers = () => {\n const [users, setUsers] = useState([]);\n\n const tenant = useSelector(mdm.selectors.getTenant);\n const servicesPath = useSelector(mdm.selectors.getServicesPath);\n\n const onError = (e) => {\n console.warn('Users error', e);\n setUsers([]);\n };\n\n useEffect(() => {\n getAllUsersForTenant({tenant, servicesPath})\n .then(({array}) => setUsers(array))\n .catch(onError);\n }, [tenant, servicesPath]);\n\n return users;\n};\n","import {useEffect, useState} from 'react';\nimport {useDidUpdateEffect} from '@reltio/components';\nimport {\n RelationshipsSavedState,\n RelationsTableSavedState,\n AttributesTableSavedState\n} from './../types/RelationshipsSavedState';\n\nconst DEFAULT_SAVED_STATE = {\n relationsTable: {},\n attributesTable: {}\n};\n\nconst useSavedState = ({getSavedState, saveState, entityTypeUri}) => {\n const [savedState, setSavedState] = useState<RelationshipsSavedState>(DEFAULT_SAVED_STATE);\n const [changedRelationsState, setRelationsChangedState] = useState<Record<string, RelationsTableSavedState>>(null);\n\n const saveChangesLocallyForPrevEntityType = () => {\n if (changedRelationsState) {\n setSavedState({...savedState, relationsTable: changedRelationsState});\n setRelationsChangedState(null);\n }\n };\n useDidUpdateEffect(saveChangesLocallyForPrevEntityType, [entityTypeUri]);\n\n const updateRelationsTableSavedState = (stateToSave: RelationsTableSavedState) => {\n const changedState: Record<string, RelationsTableSavedState> = {\n ...savedState.relationsTable,\n [entityTypeUri]: stateToSave\n };\n setRelationsChangedState(changedState);\n saveState({...savedState, relationsTable: changedState});\n };\n\n const updateAttributesTableSavedState = (stateToSave: AttributesTableSavedState) => {\n saveState({...savedState, attributesTable: stateToSave});\n };\n\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n getSavedState()\n .then((savedState) => {\n setSavedState(savedState || DEFAULT_SAVED_STATE);\n })\n .then((_) => setIsLoading(false))\n .catch((_) => setIsLoading(false));\n }, []); // eslint-disable-line\n return {\n isLoading,\n relationsTableSavedState: savedState.relationsTable?.[entityTypeUri],\n attributesTableSavedState: savedState.attributesTable,\n updateRelationsTableSavedState,\n updateAttributesTableSavedState\n };\n};\n\nexport default useSavedState;\n","import {\n attributeUriToSearchUri,\n DataTypes,\n getAttrDataTypeDefinition,\n getReadableAttributesList,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {adjust, assoc, concat, find, map, pipe, pluck, prop, propEq, reject, uniqBy} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {RelationshipsTableColumnData} from '../../../types';\n\nconst RELATION_TYPE_COLUMN_ID = 'relation.type';\nconst ATTRIBUTES_COLUMN_ID = 'relation.attributes';\n\nexport const DEFAULT_COLUMNS_DATA = [\n {\n id: 'entity.label',\n get label() {\n return i18n.text('Profile');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_STRING\n },\n hideable: false,\n filterable: false,\n initialWidth: 280,\n autoResize: false\n },\n {\n id: RELATION_TYPE_COLUMN_ID,\n get label() {\n return i18n.text('Type');\n }\n },\n {\n id: 'relation.label',\n get label() {\n return i18n.text('Directional Label');\n },\n filterable: false,\n dataTypeDefinition: {\n type: DataTypes.TYPE_STRING\n }\n },\n {\n id: 'relation.activeness.startDate',\n get label() {\n return i18n.text('Start Date');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_ACTIVENESS_DATE\n }\n },\n {\n id: 'relation.activeness.endDate',\n get label() {\n return i18n.text('End Date');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_ACTIVENESS_DATE\n }\n },\n {\n id: ATTRIBUTES_COLUMN_ID,\n get label() {\n return i18n.text('Attributes');\n },\n sortable: false,\n filterable: false,\n maxAttrsToShow: 7\n }\n];\n\nexport const DEFAULT_COLUMNS = pluck('id', DEFAULT_COLUMNS_DATA);\nexport const ALL_TYPES_COLUMNS = [RELATION_TYPE_COLUMN_ID, ATTRIBUTES_COLUMN_ID];\n\nexport const ROWS_PER_PAGE_OPTIONS = [20, 50, 100];\n\nconst getColumnIdFromAttrUri = pipe(attributeUriToSearchUri, concat('relation.'));\n\nconst getColumnsDataFromRelationAttributes = pipe(\n map((attr) => ({\n id: getColumnIdFromAttrUri(attr.uri),\n label: attr.label,\n dataTypeDefinition: getAttrDataTypeDefinition(attr)\n })),\n uniqBy(prop('id'))\n);\n\nconst getRelationColumnDataType = (relationTypes: TRelationType[]) => ({\n type: DataTypes.TYPE_SELECT,\n options: relationTypes.map(({uri, label}) => ({value: uri, label}))\n});\n\nconst updateColumnData = (columnId: string, updateFn) => (columnsData: RelationshipsTableColumnData[]) =>\n adjust(columnsData.findIndex(propEq('id', columnId)), updateFn, columnsData);\n\nconst updateRelationTypeColumn = (relationTypes: TRelationType[]) =>\n updateColumnData(RELATION_TYPE_COLUMN_ID, assoc('dataTypeDefinition', getRelationColumnDataType(relationTypes)));\n\nexport const getColumnsData = (relationTypes: TRelationType[], currentRelationType: string) =>\n currentRelationType\n ? pipe(\n find((relationType: TRelationType) => relationType.uri === currentRelationType),\n getReadableAttributesList,\n getColumnsDataFromRelationAttributes,\n concat(DEFAULT_COLUMNS_DATA),\n reject(({id}) => ALL_TYPES_COLUMNS.includes(id))\n )(relationTypes)\n : updateRelationTypeColumn(relationTypes)(DEFAULT_COLUMNS_DATA);\n","import {\n assoc,\n pipe,\n evolve,\n either,\n path,\n prop,\n propOr,\n ifElse,\n always,\n without,\n concat,\n intersection,\n pick,\n unless,\n isNil,\n filter\n} from 'ramda';\nimport {useReducer} from 'react';\nimport {basicTableViewState, createStandardAction, Sorting, useActions} from '@reltio/components';\nimport {ALL_TYPES_COLUMNS, DEFAULT_COLUMNS} from '../components/RelationshipsView/helpers/tableHelpers';\nimport {validateFilterValue} from '@reltio/mdm-sdk';\n\ntype Props = {\n defaultColumns: string[];\n defaultSorting: Sorting;\n defaultRowsPerPage: number;\n};\n\nconst CHANGE_RELATION_TYPE = 'CHANGE_RELATION_TYPE';\nconst APPLY_SAVED_STATE = 'APPLY_SAVED_STATE';\nconst SAVE_CURRENT_STATE = 'SAVE_CURRENT_STATE';\n\nconst actions = {\n ...basicTableViewState.actions,\n changeRelationType: createStandardAction(CHANGE_RELATION_TYPE),\n applySavedState: createStandardAction(APPLY_SAVED_STATE),\n saveCurrentState: createStandardAction(SAVE_CURRENT_STATE)\n};\n\nconst resetPageNumber = assoc('page', 0);\n\nconst getDefaultVisibleColumnsForCurrentRelationType = (state) => {\n return pipe(\n prop('visibleColumns'),\n ifElse(always(state.currentRelationType), without(ALL_TYPES_COLUMNS), concat(ALL_TYPES_COLUMNS)),\n intersection(DEFAULT_COLUMNS)\n )(state);\n};\n\nconst getSavedVisibleColumnsForCurrentRelationType = (state) =>\n path(['visibleColumnsForRelationTypes', `${state.currentRelationType}`], state);\n\nconst changeVisibleColumnsForCurrentRelationType = (state) => {\n const nextVisibleColumns = either(\n getSavedVisibleColumnsForCurrentRelationType,\n getDefaultVisibleColumnsForCurrentRelationType\n )(state);\n return basicTableViewState.changeVisibleColumns(state, nextVisibleColumns);\n};\n\nconst getFiltersFromSavedState = pipe(\n propOr(null, 'filters'),\n unless(\n isNil,\n filter(({filter, value}) => validateFilterValue(filter, value))\n )\n);\n\nconst saveVisibleColumnsForCurrentRelationType = (state) => {\n const {currentRelationType, visibleColumns} = state;\n return evolve(\n {\n visibleColumnsForRelationTypes: assoc(`${currentRelationType}`, visibleColumns)\n },\n state\n );\n};\n\nconst getStateToSave = pipe(\n saveVisibleColumnsForCurrentRelationType,\n pick(['currentRelationType', 'visibleColumnsForRelationTypes', 'filters', 'sorting'])\n);\n\nexport const useRelationshipsTable = ({defaultColumns, defaultSorting, defaultRowsPerPage}: Props) => {\n const initState = {\n visibleColumns: defaultColumns,\n filters: null,\n sorting: defaultSorting,\n page: 0,\n rowsPerPage: defaultRowsPerPage,\n currentRelationType: null,\n stateToSave: null,\n visibleColumnsForRelationTypes: {},\n entityTypeOfAppliedSavedState: null\n };\n const [state, dispatch] = useReducer((state, action) => {\n switch (action.type) {\n case CHANGE_RELATION_TYPE: {\n const nextRelationType = action.payload;\n return pipe(\n saveVisibleColumnsForCurrentRelationType,\n assoc('currentRelationType', nextRelationType),\n changeVisibleColumnsForCurrentRelationType,\n resetPageNumber\n )(state);\n }\n case APPLY_SAVED_STATE: {\n const {savedState, entityTypeUri} = action.payload;\n const visibleColumns = savedState\n ? getSavedVisibleColumnsForCurrentRelationType(savedState)\n : state.visibleColumns;\n const filters = savedState ? getFiltersFromSavedState(savedState) : state.filters;\n return {\n ...state,\n ...savedState,\n filters,\n visibleColumns,\n entityTypeOfAppliedSavedState: entityTypeUri\n };\n }\n case SAVE_CURRENT_STATE: {\n return {\n ...state,\n stateToSave: getStateToSave(state)\n };\n }\n default:\n return basicTableViewState.reducer(state, action);\n }\n }, initState);\n const tableActions = useActions({actions, dispatch});\n return [state, tableActions];\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n select: {\n fontSize: '13px',\n color: 'rgba(0,0,0,.6)',\n paddingLeft: '15px',\n '&&': {\n paddingRight: '35px'\n }\n },\n selectMenu: {\n '& li': {\n fontSize: '13px',\n height: '32px'\n }\n },\n textField: {\n maxWidth: '100%'\n }\n});\n","import React, {useMemo} from 'react';\nimport i18n from 'ui-i18n';\nimport {map, concat, pipe} from 'ramda';\nimport {TRelationType} from '@reltio/mdm-sdk';\nimport {DropDownEditor} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: string;\n onChange: (value: string) => void;\n relationTypes: TRelationType[];\n className?: string;\n};\n\nconst RelationTypeSelector = ({value, onChange, relationTypes, className}: Props) => {\n const styles = useStyles();\n const entries = useMemo(\n () =>\n pipe(\n map(({label, uri}) => ({label, value: uri})),\n concat([{value: '', label: i18n.text('All types')}])\n )(relationTypes),\n [relationTypes]\n );\n\n return (\n <div className={className}>\n <DropDownEditor\n displayEmpty\n disableUnderline\n classes={{\n select: styles.select\n }}\n TextFieldProps={{\n classes: {\n root: styles.textField\n }\n }}\n MenuProps={{\n classes: {\n list: styles.selectMenu\n }\n }}\n value={value || ''}\n entries={entries}\n onChange={(value: string) => onChange(value || null)}\n />\n </div>\n );\n};\n\nexport default RelationTypeSelector;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n header: {\n height: '56px',\n boxSizing: 'border-box',\n paddingRight: '10px'\n },\n title: {\n fontSize: '16px'\n },\n total: {\n fontSize: '14px',\n color: theme.palette.text.secondary,\n flexShrink: 0,\n marginRight: '5px'\n },\n relationTypeSelector: {\n margin: '0px 10px 0 30px',\n overflow: 'hidden'\n }\n}));\n","import React, {memo, useMemo} from 'react';\nimport i18n from 'ui-i18n';\nimport {TRelationType} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport {\n BasicViewHeader,\n ColumnsSettings,\n DropDownMenuItem,\n FilterButton,\n SettingsMenu,\n Spacer,\n VerticalDivider\n} from '@reltio/components';\nimport RelationTypeSelector from '../RelationTypeSelector/RelationTypeSelector';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n total: number;\n filteringEnabled: boolean;\n onToggleFilters: () => void;\n columnsData: Record<string, unknown>[];\n selectedColumns: string[];\n currentRelationType: string;\n onRelationTypeChange: (value: string) => void;\n relationTypes: TRelationType[];\n onChangeColumns: (columns: string[]) => void;\n searchByOv: boolean;\n onToggleSearchByOv: () => void;\n};\n\nconst RelationshipsTableHeader = ({\n total,\n filteringEnabled,\n onToggleFilters,\n columnsData,\n selectedColumns,\n currentRelationType,\n onRelationTypeChange,\n relationTypes,\n onChangeColumns,\n searchByOv,\n onToggleSearchByOv\n}: Props) => {\n const styles = useStyles();\n\n const settingItems = useMemo<Array<DropDownMenuItem>>(() => {\n return [\n {\n selected: searchByOv,\n selectable: true,\n text: i18n.text('Search by OV only'),\n onClick: onToggleSearchByOv,\n id: 'showNonOv'\n }\n ];\n }, [onToggleSearchByOv, searchByOv]);\n\n return (\n <BasicViewHeader title={i18n.text('Relationships')} classes={{root: styles.header, title: styles.title}}>\n {relationTypes.length > 0 && (\n <RelationTypeSelector\n className={styles.relationTypeSelector}\n value={currentRelationType}\n onChange={onRelationTypeChange}\n relationTypes={relationTypes}\n />\n )}\n <VerticalDivider height={28} margin={20} />\n <Typography variant=\"caption\" className={styles.total}>\n {total === 1\n ? i18n.text('${count} record', {count: total})\n : i18n.text('${count} records', {count: total})}\n </Typography>\n <Spacer />\n <SettingsMenu items={settingItems} menuId=\"relationships-view-settings\" />\n <FilterButton enabled={filteringEnabled} onClick={onToggleFilters} />\n <VerticalDivider height={28} margin={8} />\n <ColumnsSettings\n columnsData={columnsData}\n selectedColumns={selectedColumns}\n onChangeColumns={onChangeColumns}\n />\n </BasicViewHeader>\n );\n};\n\nexport default memo(RelationshipsTableHeader);\n","import {makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n headCell: {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n width: '100%',\n fontSize: '12px',\n color: theme.palette.text.secondary,\n background: 'linear-gradient(0deg, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.06)), #FFFFFF'\n },\n rowCell: {\n fontSize: '13px',\n overflow: 'hidden',\n overflowWrap: 'break-word'\n },\n inactiveRowCell: {\n opacity: 0.6\n },\n defaultWrapper: {\n padding: '15px 25px 0 25px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n },\n entityCell: {\n display: 'flex',\n alignItems: 'flex-start',\n padding: '15px'\n },\n entityAvatar: {\n transform: 'scale(0.5)',\n margin: '-10px 0 -10px -10px'\n },\n inactiveEntityAvatar: {\n overflow: 'initial',\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n backgroundColor: 'rgb(209, 206, 206)',\n border: '1px solid rgba(0, 0, 0, 1)',\n borderRadius: '2px',\n width: '12px',\n right: 0,\n bottom: 0,\n height: '12px'\n },\n '& > img': {\n borderRadius: '50%',\n overflow: 'hidden'\n }\n },\n entityLabel: {\n color: theme.palette.primary.main,\n textDecoration: 'none',\n fontWeight: 500\n },\n attributesWrapper: {\n padding: '15px 25px 10px 25px',\n color: 'rgba(0,0,0,0.87)'\n },\n commentsContainer: {\n marginLeft: 'auto'\n }\n}));\n","import React from 'react';\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {withFilterAtBottom} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\nconst HeadCellRenderer = (props) => {\n const styles = useStyles();\n return (\n <div className={styles.headCell}>\n <DefaultHeadCellRenderer {...props} />\n </div>\n );\n};\n\nexport default withFilterAtBottom(HeadCellRenderer);\n","import React from 'react';\nimport classnames from 'classnames';\nimport {useSelector} from 'react-redux';\nimport {CommentsContainer, COMMENTS_CONTAINER_VISIBILITY_AREA, EntityTypeIcon, EntityUriLink} from '@reltio/components';\nimport {\n CollaborationObjectTypes,\n ConnectionEntity,\n ConnectionRelation,\n createRelatedObjectUris,\n getEntityUriForLink,\n getLabel,\n TEntityType\n} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n entity: ConnectionEntity;\n relation: ConnectionRelation;\n entityType: TEntityType;\n };\n isInactiveRelation?: boolean;\n};\n\nconst EntityProfileRenderer = ({value: {entity, entityType, relation}, isInactiveRelation}: Props) => {\n const styles = useStyles();\n const currentEntityUri = useSelector(mdmModule.selectors.getEntityUri);\n return (\n <div className={classnames(styles.entityCell, COMMENTS_CONTAINER_VISIBILITY_AREA)}>\n <EntityTypeIcon\n className={classnames(styles.entityAvatar, {[styles.inactiveEntityAvatar]: isInactiveRelation})}\n entityType={entityType}\n />\n <EntityUriLink\n value={getEntityUriForLink({uri: entity.entityUri, dataTenant: entity.dataTenant})}\n className={styles.entityLabel}\n >\n {getLabel(entity.entityLabel)}\n </EntityUriLink>\n <div className={styles.commentsContainer} onClick={(e) => e.stopPropagation()}>\n <CommentsContainer\n uri={relation.relationUri}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.RELATION, {\n entityUri: currentEntityUri,\n connection: {relation, entity}\n })}\n objectType={CollaborationObjectTypes.RELATION}\n allowOnlyOneComment\n />\n </div>\n </div>\n );\n};\n\nexport default EntityProfileRenderer;\n","import React from 'react';\nimport {ReadOnlyAttributesList} from '@reltio/components';\nimport {AttributeType, RecordAttributesType} from '@reltio/mdm-sdk';\nimport {RelationshipsTableColumnData} from '../../../types';\nimport {useStyles} from './styles';\n\ntype Props = {\n columnData: RelationshipsTableColumnData;\n value: {\n attributeTypes: AttributeType[];\n attributes: RecordAttributesType;\n };\n};\n\nconst AttributesRenderer = ({columnData, value: {attributes, attributeTypes}}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.attributesWrapper} onClick={(e) => e.stopPropagation()}>\n <ReadOnlyAttributesList\n max={columnData.maxAttrsToShow}\n entity={{attributes}}\n attrTypes={attributeTypes}\n drawLines={false}\n />\n </div>\n );\n};\n\nexport default AttributesRenderer;\n","import React from 'react';\nimport {DataTypeValue} from '@reltio/components';\nimport {useStyles} from './styles';\nimport {RelationshipsTableColumnData} from '../../../types';\n\ntype Props = {\n columnData: RelationshipsTableColumnData;\n value: unknown;\n};\n\nconst DefaultCellValueRenderer = ({value, columnData: {dataTypeDefinition}}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.defaultWrapper}>\n <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} />\n </div>\n );\n};\n\nexport default DefaultCellValueRenderer;\n","import {assoc, split, slice, values, length, path, cond, map, pathEq, pipe, reduce, T} from 'ramda';\nimport {defaultGetRowCellHeight} from '@reltio/components';\nimport {Connection, getEntityType, getRelationType, getOvAttributeValuesByPath, Metadata} from '@reltio/mdm-sdk';\nimport HeadCellRenderer from './cell-renderers/HeadCellRenderer';\nimport EntityProfileRenderer from './cell-renderers/EntityProfileRenderer';\nimport AttributesRenderer from './cell-renderers/AttributesRenderer';\nimport DefaultCellValueRenderer from './cell-renderers/DefaultCellValueRenderer';\nimport {RelationshipsTableColumnData} from '../../types';\n\nconst getAttrPathFromColumnId = pipe(split('.'), slice(2, Infinity));\n\nconst getRelationAttributeValues = (attrPath, relation) =>\n pipe(path(['object', 'attributes']), getOvAttributeValuesByPath(attrPath))(relation);\n\nconst getRowValueByColumnId = (metadata: Metadata, {entity, relation}: Connection, columnId: string) => {\n switch (columnId) {\n case 'entity.label':\n return {entity, entityType: getEntityType(metadata, entity.entityType), relation};\n case 'relation.type':\n return relation.relationType;\n case 'relation.label':\n return relation.relationLabel;\n case 'relation.activeness.startDate':\n return relation.startDate;\n case 'relation.activeness.endDate':\n return relation.endDate;\n case 'relation.attributes':\n return {\n attributes: relation.object.attributes,\n attributeTypes: getRelationType(metadata, relation.relationType).attributes\n };\n default: {\n const attrPath = getAttrPathFromColumnId(columnId);\n return getRelationAttributeValues(attrPath, relation);\n }\n }\n};\n\nconst getBasicTableRowsData = (\n metadata: Metadata,\n columnsData: RelationshipsTableColumnData[],\n connections: Connection[]\n) => {\n return (connections || []).map((connection) =>\n pipe(\n reduce((acc, {id}) => assoc(id, getRowValueByColumnId(metadata, connection, id), acc), {}),\n assoc('rawValue', connection)\n )(columnsData)\n );\n};\n\nconst getNestedPathByColumnId = (columnId: string) => {\n if (columnId.startsWith('relation.attributes')) {\n const attrPath = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nconst getCellValueRenderer = (columnId: string) => {\n switch (columnId) {\n case 'entity.label':\n return EntityProfileRenderer;\n case 'relation.attributes':\n return AttributesRenderer;\n default:\n return DefaultCellValueRenderer;\n }\n};\n\nconst getColumnDataByColumnId = (columnData: RelationshipsTableColumnData) => ({\n sortable: true,\n resizable: true,\n ...columnData,\n headCellRenderer: HeadCellRenderer,\n nestedPath: getNestedPathByColumnId(columnData.id),\n rowCellValueRenderer: getCellValueRenderer(columnData.id)\n});\n\nconst getBasicTableColumnsData = map(getColumnDataByColumnId);\n\nconst calculateAttributesCellHeight = ({columnData, cell}) => {\n const attributesCount = pipe(path(['values', 0, 'attributes']), values, length)(cell);\n return attributesCount > columnData.maxAttrsToShow\n ? columnData.maxAttrsToShow * 26 + 49\n : attributesCount * 26 + 25;\n};\n\nconst getStaticRowCellHeight = cond([\n [pathEq(['columnData', 'id'], 'relation.attributes'), calculateAttributesCellHeight],\n [T, defaultGetRowCellHeight]\n]);\n\nexport {getBasicTableRowsData, getBasicTableColumnsData, getStaticRowCellHeight};\n","import React from 'react';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\ntype Props = {\n cell: {\n values: unknown[];\n };\n CellValueRenderer: React.ElementType;\n isInactiveRelation?: boolean;\n};\n\nconst RowCellRenderer = ({cell, CellValueRenderer, ...otherProps}: Props) => {\n const styles = useStyles();\n return (\n <div className={classnames(styles.rowCell, {[styles.inactiveRowCell]: otherProps.isInactiveRelation})}>\n {cell.values.map((value, index) => (\n <CellValueRenderer key={index} value={value} {...otherProps} />\n ))}\n </div>\n );\n};\n\nexport default RowCellRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n menuItem: {\n minHeight: '32px',\n color: theme.palette.text.secondary\n },\n menuText: {\n color: theme.palette.text.primary,\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 0,\n marginLeft: '16px'\n },\n buttons: {\n display: 'flex',\n alignItems: 'center',\n paddingRight: '5px'\n }\n}));\n","import React, {forwardRef, ReactNode} from 'react';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {noop, withTooltip} from '@reltio/components';\nimport {useStyles} from './styles';\n\nconst MenuItemWithTooltip = withTooltip(MenuItem);\n\ntype Item = {\n text?: string;\n disabled?: boolean;\n icon: ReactNode;\n tooltip?: string;\n onClick?: (e) => void;\n};\n\ntype Props = {\n item: Item;\n onMenuClose?: () => void;\n};\n\nconst MenuItemRenderer = forwardRef(({item, onMenuClose = noop}: Props, ref: React.Ref<HTMLLIElement>) => {\n const styles = useStyles();\n const {icon, disabled, text, tooltip, onClick} = item;\n const handleClick = (e) => {\n onMenuClose();\n onClick(e);\n };\n\n return (\n <MenuItemWithTooltip\n tooltipTitle={tooltip}\n showForDisabled={true}\n classes={{root: styles.menuItem}}\n onClick={handleClick}\n disabled={disabled}\n ref={ref}\n >\n {icon}\n <Typography classes={{root: styles.menuText}}>{text}</Typography>\n </MenuItemWithTooltip>\n );\n});\nMenuItemRenderer.displayName = 'MenuItemRenderer';\n\nexport default MenuItemRenderer;\n","import React, {useCallback, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport i18n from 'ui-i18n';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {ConfirmationDialog, DropDownMenuButton, noop, SmallIconButton} from '@reltio/components';\nimport MenuItemRenderer from './MenuItemRenderer';\nimport {checkMetadataPermission, Connection, getLabel, getRelationType, MetadataPermissions} from '@reltio/mdm-sdk';\nimport {pipe, prop} from 'ramda';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n disableDelete?: boolean;\n connection: Connection;\n onMenuOpen?: () => void;\n onMenuClose?: () => void;\n onDelete: () => void;\n};\n\nexport const RelationshipMenuButton = ({\n disableDelete,\n connection: {entity, relation},\n onMenuOpen = noop,\n onMenuClose = noop,\n onDelete\n}: Props) => {\n const styles = useStyles();\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const hasDeletePermission = pipe(\n prop('relationType'),\n getRelationType(metadata),\n checkMetadataPermission(MetadataPermissions.DELETE)\n )(relation);\n\n const canDelete = !disableDelete && hasDeletePermission;\n\n const [pendingDeletion, setPendingDeletion] = useState(false);\n const showDeleteConfirmation = () => setPendingDeletion(true);\n const hideDeleteConfirmation = () => setPendingDeletion(false);\n\n const actions = [\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: showDeleteConfirmation\n }\n ];\n\n const handleMenuClose = useCallback(() => {\n if (!pendingDeletion) {\n onMenuClose();\n }\n }, [pendingDeletion, onMenuClose]);\n const truncateWithEllipsis = (text: string) => (text.length > 17 ? `${text.substring(0, 17)}...` : text);\n\n return (\n <div className={styles.buttons}>\n <DropDownMenuButton\n MenuItemRenderer={MenuItemRenderer}\n menuId={'relationships-table-actions'}\n buttonComponent={SmallIconButton}\n buttonProps={{\n icon: MoreVertIcon,\n size: 'S'\n }}\n menuItems={actions}\n onMenuOpen={onMenuOpen}\n onMenuClose={handleMenuClose}\n />\n <ConfirmationDialog\n open={pendingDeletion}\n title={i18n.text('Do you want to delete relationship \"${label}\"?', {\n label: truncateWithEllipsis(getLabel(entity.entityLabel))\n })}\n content={i18n.text(\n 'This relationship will be removed and all the values in the relationship will be permanently deleted. \\\nAre you sure you want to delete this relationship?'\n )}\n onSave={pipe(hideDeleteConfirmation, onMenuClose, onDelete)}\n onDiscard={pipe(hideDeleteConfirmation, onMenuClose)}\n saveCaption={i18n.text('Delete')}\n discardCaption={i18n.text('Cancel')}\n />\n </div>\n );\n};\n\nexport default RelationshipMenuButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n tableContainer: {\n flex: 1,\n overflow: 'hidden',\n display: 'flex',\n zIndex: 0\n },\n hoveredRowRightContentWrapper: {\n width: '100%',\n pointerEvents: 'none!important' as any\n },\n menuButtonContainer: {\n position: 'absolute',\n top: 'calc(50% - 12px)',\n right: 0,\n pointerEvents: 'all'\n },\n tooltipAnchor: {\n width: '100%',\n height: '1px'\n }\n});\n","import React, {ForwardedRef, memo, useCallback, useMemo, useState} from 'react';\nimport {Connection, isActiveObject, Metadata} from '@reltio/mdm-sdk';\nimport {\n BasicTable,\n ColumnData,\n ColumnFilter,\n RowCellAutoSizer,\n Sorting,\n useDynamicRowCellHeight\n} from '@reltio/components';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getBasicTableColumnsData, getBasicTableRowsData, getStaticRowCellHeight} from './helpers';\nimport RowCellRenderer from './cell-renderers/RowCellRenderer';\nimport {either} from 'ramda';\nimport RelationshipMenuButton from '../RelationshipMenuButton/RelationshipMenuButton';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n metadata: Metadata;\n connections: Connection[];\n columnsData: ColumnData[];\n sorting: Sorting;\n onSort: (field: string) => void;\n filters?: Record<string, ColumnFilter>;\n onFilter: (event: {columnId: string; filter: ColumnFilter}) => void;\n onRowClick: (rowIndex: number) => void;\n onDelete: (relationUri: string) => void;\n tableRef: ForwardedRef<unknown>;\n readOnly?: boolean;\n};\n\nconst RelationshipsTable = ({\n metadata,\n connections,\n columnsData,\n sorting,\n onSort,\n filters,\n onFilter,\n onRowClick,\n tableRef,\n onDelete,\n readOnly\n}: Props) => {\n const styles = useStyles();\n\n const tableRowsData = useMemo(() => getBasicTableRowsData(metadata, columnsData, connections), [\n metadata,\n connections,\n columnsData\n ]);\n const tableColumnsData = useMemo(() => getBasicTableColumnsData(columnsData), [columnsData]);\n\n const {getDynamicRowCellHeight, changeRowCellHeight} = useDynamicRowCellHeight();\n const getRowCellHeight = useCallback(either(getDynamicRowCellHeight, getStaticRowCellHeight), [\n getDynamicRowCellHeight,\n getStaticRowCellHeight\n ]);\n const [hoverRowIndex, setHoverRowIndex] = useState<number>(null);\n\n const renderRowCell = useCallback(\n (props) => {\n const isInactiveRelation = !isActiveObject(props.rowValue.rawValue.relation);\n return (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...props}>\n <RowCellRenderer {...props} isInactiveRelation={isInactiveRelation} />\n </RowCellAutoSizer>\n );\n },\n [changeRowCellHeight]\n );\n\n const [isActionsMenuOpen, setIsActionsMenuOpen] = useState(false);\n\n const handleActionsMenuOpen = useCallback(() => setIsActionsMenuOpen(true), []);\n const handleActionsMenuClose = useCallback(() => {\n setHoverRowIndex(null);\n setIsActionsMenuOpen(false);\n }, []);\n\n const onRowHover = useCallback(\n (rowIndex) => setHoverRowIndex((prevHoverRowIndex) => (isActionsMenuOpen ? prevHoverRowIndex : rowIndex)),\n [isActionsMenuOpen]\n );\n\n const hoveredRowRightContent = useMemo(() => {\n const connection: Connection = hoverRowIndex != null ? tableRowsData[hoverRowIndex].rawValue : null;\n const isInactiveRelation = !isActiveObject(connection?.relation);\n\n return (\n connection && (\n <>\n <Tooltip\n key={connection.relation.relationUri}\n open={isInactiveRelation}\n title={i18n.text('Inactive')}\n >\n <div className={styles.tooltipAnchor} />\n </Tooltip>\n <div className={styles.menuButtonContainer}>\n <RelationshipMenuButton\n disableDelete={readOnly}\n connection={connection}\n onMenuOpen={handleActionsMenuOpen}\n onMenuClose={handleActionsMenuClose}\n onDelete={() => onDelete(connection.relation.relationUri)}\n />\n </div>\n </>\n )\n );\n }, [onDelete, tableRowsData, hoverRowIndex]);\n\n return (\n <div className={styles.tableContainer}>\n <BasicTable\n fixFirstColumn={true}\n columnsData={tableColumnsData}\n rowsData={tableRowsData}\n sorting={sorting}\n onSort={onSort}\n filters={filters}\n onFilter={onFilter}\n defaultColumnWidth={250}\n defaultColumnMinWidth={200}\n headRowHeight={48}\n getRowCellHeight={getRowCellHeight}\n renderRowCell={renderRowCell}\n onRowClick={onRowClick}\n ref={tableRef}\n hoverStateEnabled={true}\n hoverRowIndex={hoverRowIndex}\n onRowHover={onRowHover}\n hoveredRowRightContent={hoveredRowRightContent}\n classes={{\n hoveredRowRightContentWrapper: styles.hoveredRowRightContentWrapper\n }}\n />\n </div>\n );\n};\n\nexport default memo(RelationshipsTable);\n","import {AttributeType, Relation} from '@reltio/mdm-sdk';\nimport {CrosswalksByTypes, groupCrosswalksByTypesAndSources} from '@reltio/components';\nimport {assoc, map, pipe, propOr} from 'ramda';\n\ntype TableRow = {\n source: string;\n crosswalksByTypes: CrosswalksByTypes;\n};\n\nexport const buildTableRowsData = (relation: Relation, selectedAttributeTypes: AttributeType[] = []): TableRow[] => {\n return pipe(\n propOr([], 'crosswalks'),\n map(assoc('ownerType', 'entity')),\n groupCrosswalksByTypesAndSources(relation.type, selectedAttributeTypes)\n )(relation);\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n tableRow: {\n '& + &': {\n marginTop: '4px'\n },\n margin: 'auto',\n maxWidth: '448px'\n }\n}));\n","import React, {memo, useCallback, useMemo, useState} from 'react';\nimport {\n AttributeType,\n checkCanDeleteCrosswalk,\n checkCanEditCrosswalk,\n getRelationType,\n Metadata,\n Relation,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {DeleteCrosswalkEvent, EditCrosswalkEvent, SourceCrosswalksRow} from '@reltio/components';\nimport {append, ifElse, includes, without} from 'ramda';\nimport {buildTableRowsData} from './helpers';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n readOnly?: boolean;\n relation: Relation;\n metadata: Metadata;\n selectedAttributeTypes?: AttributeType[];\n onDeleteCrosswalk: (event: DeleteCrosswalkEvent) => void;\n onEditCrosswalk: (event: EditCrosswalkEvent) => void;\n};\n\nconst LegendTable = ({\n readOnly,\n relation,\n metadata,\n selectedAttributeTypes,\n onDeleteCrosswalk,\n onEditCrosswalk\n}: Props) => {\n const styles = useStyles();\n\n const relationType: TRelationType = getRelationType(metadata, relation.type);\n\n const rowsData = useMemo(() => buildTableRowsData(relation, selectedAttributeTypes), [\n relation,\n selectedAttributeTypes\n ]);\n const [expandedSources, setExpandedSources] = useState<string[]>([]);\n\n const handleDelete = useCallback(\n (crosswalkId: string) => {\n onDeleteCrosswalk({entityUri: relation.uri, crosswalkId});\n },\n [onDeleteCrosswalk, relation.uri]\n );\n\n const handleEdit = useCallback(\n (event: Omit<EditCrosswalkEvent, 'entityUri'>) => {\n onEditCrosswalk({entityUri: relation.uri, ...event});\n },\n [onEditCrosswalk, relation.uri]\n );\n\n return (\n <div>\n {rowsData.map(({source, crosswalksByTypes}) => {\n return (\n <div key={source} className={styles.tableRow}>\n <SourceCrosswalksRow\n source={source}\n crosswalksByTypes={crosswalksByTypes}\n expanded={expandedSources.includes(source)}\n disableEditCrosswalk={!checkCanEditCrosswalk(relationType) || readOnly}\n disableDeleteCrosswalk={!checkCanDeleteCrosswalk(relationType) || readOnly}\n onEdit={handleEdit}\n onDelete={handleDelete}\n onToggleExpanded={() => {\n setExpandedSources(ifElse(includes(source), without([source]), append(source)));\n }}\n />\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default memo(LegendTable);\n","import {makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n header: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n padding: '20px 12px',\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n },\n title: {\n fontWeight: 500,\n fontSize: '20px',\n lineHeight: '23px',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary,\n marginLeft: '12px'\n },\n hint: {\n color: theme.palette.text.secondary,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n alignSelf: 'flex-start',\n margin: '4px 14px 10px'\n },\n hintText: {\n marginLeft: '8px',\n fontSize: '12px',\n lineHeight: '16px'\n },\n buttons: {\n display: 'flex',\n padding: '8px 6px 4px'\n },\n buttonLabel: {\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '16px'\n },\n icon: {\n fontSize: '18px',\n marginRight: '8px'\n },\n editor: {\n paddingLeft: 25,\n margin: 'auto',\n maxWidth: '448px',\n boxSizing: 'border-box',\n marginBottom: '4px'\n },\n tableContainer: {\n overflowY: 'auto',\n overflowX: 'hidden',\n paddingLeft: '16px',\n paddingRight: '6px'\n }\n}));\n","import React, {memo, useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport InfoIcon from '@material-ui/icons/Info';\nimport AddIcon from '@material-ui/icons/Add';\nimport {Button as Button} from '@material-ui/core';\nimport LegendTable from '../LegendTable/LegendTable';\nimport {\n AttributeType,\n checkCanCreateCrosswalk,\n getRelationType,\n Metadata,\n Relation,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {\n AddCrosswalkEvent,\n CrosswalkEditor,\n DeleteCrosswalkEvent,\n EditCrosswalkEvent,\n withTooltip\n} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\nconst ButtonWithTooltip = withTooltip(Button);\n\ntype Props = {\n className?: string;\n readOnly?: boolean;\n relation: Relation;\n selectedAttributeTypes?: AttributeType[];\n onAddCrosswalk: (event: AddCrosswalkEvent) => void;\n onDeleteCrosswalk: (event: DeleteCrosswalkEvent) => void;\n onEditCrosswalk: (event: EditCrosswalkEvent) => void;\n};\n\nconst LegendPanel = ({\n className,\n readOnly,\n relation,\n selectedAttributeTypes,\n onAddCrosswalk,\n onDeleteCrosswalk,\n onEditCrosswalk\n}: Props) => {\n const styles = useStyles();\n\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const relationType: TRelationType = getRelationType(metadata, relation.type);\n\n const [openEditor, setOpenEditor] = useState(false);\n const canAdd = checkCanCreateCrosswalk(relationType) && !readOnly;\n\n return (\n <div className={className}>\n <div className={styles.header}>\n <span className={styles.title}>{i18n.text('Legend')}</span>\n </div>\n <div className={styles.buttons}>\n <ButtonWithTooltip\n color=\"primary\"\n showForDisabled={true}\n disabled={!canAdd}\n tooltipTitle={canAdd ? null : i18n.text(\"You don't have permissions to add crosswalk\")}\n onClick={() => setOpenEditor(true)}\n >\n <AddIcon className={styles.icon} />\n <div className={styles.buttonLabel}>{i18n.text('Crosswalk')}</div>\n </ButtonWithTooltip>\n </div>\n <div className={styles.hint}>\n <InfoIcon className={styles.icon} />\n <span className={styles.hintText}>\n {i18n.text('You can drag a crosswalk to add values to attributes swimlanes')}\n </span>\n </div>\n <div className={styles.tableContainer}>\n {openEditor && (\n <CrosswalkEditor\n className={styles.editor}\n onAdd={(crosswalk) => onAddCrosswalk({entity: relation, crosswalk})}\n onClose={() => setOpenEditor(false)}\n />\n )}\n <LegendTable\n readOnly={readOnly}\n metadata={metadata}\n relation={relation}\n selectedAttributeTypes={selectedAttributeTypes}\n onDeleteCrosswalk={onDeleteCrosswalk}\n onEditCrosswalk={onEditCrosswalk}\n />\n </div>\n </div>\n );\n};\n\nexport default memo(LegendPanel);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n entityInfo: {\n flex: '0 1 auto',\n overflow: 'hidden',\n minWidth: '100px'\n },\n entityLabelContainer: {\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden'\n },\n entityLabel: {\n lineHeight: '1.2',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary\n },\n infoIcon: {\n fontSize: '16px',\n color: theme.palette.text.secondary,\n marginLeft: '5px'\n },\n profileBand: {\n margin: '-10px',\n maxWidth: '500px'\n },\n entityTypeBadge: {\n marginTop: '7px'\n }\n}));\n","import React from 'react';\nimport {Entity, getLabel} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport {ExpandedValueTooltip, LightArrowTooltip, ProfileBand, EntityTypeBadge} from '@reltio/components';\nimport InfoIcon from '@material-ui/icons/Info';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n};\n\nconst EntityInfo = ({entity}: Props) => {\n const styles = useStyles();\n const label = getLabel(entity.label);\n return (\n <div className={styles.entityInfo}>\n <div className={styles.entityLabelContainer}>\n <ExpandedValueTooltip value={label}>\n <Typography variant=\"h6\" className={styles.entityLabel} noWrap>\n {label}\n </Typography>\n </ExpandedValueTooltip>\n <LightArrowTooltip\n title={<ProfileBand className={styles.profileBand} entity={entity} />}\n placement={'right'}\n >\n <InfoIcon className={styles.infoIcon} />\n </LightArrowTooltip>\n </div>\n <EntityTypeBadge className={styles.entityTypeBadge} entity={entity} size={'medium'} />\n </div>\n );\n};\n\nexport default EntityInfo;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n root: {\n flexShrink: 0,\n overflow: 'hidden',\n width: '110px'\n },\n label: {\n color: theme.palette.text.secondary,\n fontSize: '13px'\n }\n}));\n","import React from 'react';\nimport {ConnectionRelation} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport {ExpandedValueTooltip} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n relation: ConnectionRelation;\n};\n\nconst RelationDirection = ({relation}: Props) => {\n const styles = useStyles();\n const {direction, relationLabel} = relation;\n return (\n <div className={styles.root}>\n <ExpandedValueTooltip value={relationLabel}>\n <Typography variant={'subtitle2'} className={styles.label} align={'center'} noWrap>\n {relationLabel}\n </Typography>\n </ExpandedValueTooltip>\n <svg width=\"110\" height=\"12\" fill=\"black\" fillOpacity=\"0.3\">\n {direction === 'out' && <polygon points=\"94 0, 110 6, 94 12, 94 9, 0 9, 0 3, 94 3\" />}\n {direction === 'bidirectional' && (\n <polygon points=\"94 0, 110 6, 94 12, 94 9, 16 9, 16 12, 0 6, 16 0, 16 3, 94 3\" />\n )}\n {direction === 'in' && <polygon points=\"16 12, 0 6, 16 0, 16 3, 110 3, 110 9, 16 9\" />}\n </svg>\n </div>\n );\n};\n\nexport default RelationDirection;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n root: {\n '&:hover $editButton': {\n visibility: 'visible'\n }\n },\n editButton: {\n visibility: 'hidden',\n marginLeft: '4px',\n marginBottom: '4px'\n },\n paper: {\n width: '150px',\n border: '3px solid rgba(0, 0, 0, 0.3)',\n borderRadius: '4px',\n boxSizing: 'border-box',\n overflow: 'hidden'\n }\n}));\n","import React, {KeyboardEvent, useRef, useState} from 'react';\nimport {formatDate} from '@reltio/mdm-sdk';\nimport {DateEditor, SmallIconButton} from '@reltio/components';\nimport EditIcon from '@material-ui/icons/Edit';\nimport {Popover as Popover} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n value: number;\n onChange: (value: number) => void;\n readOnly?: boolean;\n};\n\nconst RelationDate = ({value = null, onChange, readOnly}: Props) => {\n const styles = useStyles();\n const ref = useRef<HTMLSpanElement>();\n\n const [showEditor, setShowEditor] = useState(false);\n const openEditor = () => setShowEditor(true);\n const closeEditor = () => setShowEditor(false);\n\n const [editedValue, setEditedValue] = useState(value);\n\n const applyChangesAndClose = () => {\n if (editedValue !== value) {\n onChange(editedValue);\n }\n closeEditor();\n };\n\n const onKeyUp = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter') applyChangesAndClose();\n else if (event.key === 'Escape') closeEditor();\n };\n\n return (\n <span ref={ref} className={styles.root}>\n {value && formatDate(value)}\n <SmallIconButton\n disabled={readOnly}\n icon={EditIcon}\n size={'XXS'}\n className={styles.editButton}\n onClick={openEditor}\n />\n <Popover\n classes={{paper: styles.paper}}\n open={showEditor}\n anchorEl={ref.current}\n anchorOrigin={{vertical: 'top', horizontal: 'left'}}\n transformOrigin={{vertical: 14, horizontal: 20}}\n onKeyUp={onKeyUp}\n onBackdropClick={applyChangesAndClose}\n >\n <DateEditor\n InputProps={{\n autoFocus: true,\n disableUnderline: true,\n fullWidth: true\n }}\n size={'small'}\n hiddenLabel={true}\n label={undefined}\n value={editedValue && new Date(editedValue)}\n onChange={(value) => setEditedValue(value && value.valueOf())}\n />\n </Popover>\n </span>\n );\n};\n\nexport default RelationDate;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n relationBand: {\n flexShrink: 0,\n boxShadow: 'inset 0px -1px 0px rgba(0,0,0,0.06)',\n padding: '16px 19px'\n },\n inactiveRelationBand: {\n opacity: 0.6,\n background: 'rgba(185, 188, 197, 0.18)'\n },\n toolbar: {\n display: 'flex',\n alignItems: 'center',\n gap: '16px',\n marginBottom: '10px'\n },\n mainInfo: {\n display: 'flex',\n gap: '16px',\n marginLeft: '40px'\n },\n detailsInfo: {\n display: 'flex',\n gap: '34px',\n marginLeft: '40px',\n marginTop: '17px',\n color: theme.palette.text.secondary,\n fontSize: '13px'\n },\n detailTitle: {\n color: theme.palette.text.primary,\n flexShrink: 0,\n marginRight: '4px'\n },\n directionalLabel: {\n display: 'flex',\n overflow: 'hidden',\n '& span': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }\n },\n relationDate: {\n flexShrink: 0\n },\n commentsContainer: {\n marginRight: '18px'\n }\n}));\n","import React, {memo} from 'react';\nimport {CollaborationObjectTypes, Connection, createRelatedObjectUris, Entity, isActiveObject} from '@reltio/mdm-sdk';\nimport {\n CommentsContainer,\n COMMENTS_CONTAINER_VISIBILITY_AREA,\n ExpandedValueTooltip,\n SmallIconButton,\n Spacer\n} from '@reltio/components';\nimport classnames from 'classnames';\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport {Typography as Typography} from '@material-ui/core';\nimport EntityInfo from './EntityInfo/EntityInfo';\nimport RelationDirection from './RelationDirection/RelationDirection';\nimport RelationDate from './RelationDate/RelationDate';\nimport RelationshipMenuButton from '../RelationshipMenuButton/RelationshipMenuButton';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n readOnly?: boolean;\n entity: Entity;\n connection: Connection;\n onNavigateBack: () => void;\n onDelete: () => void;\n onChangeActivenessDate: (attributeName: string, value: number) => void;\n};\n\nconst RelationshipBand = ({readOnly, entity, connection, onNavigateBack, onDelete, onChangeActivenessDate}: Props) => {\n const isInactiveRelation = !isActiveObject(connection.relation);\n const styles = useStyles();\n return (\n <div\n className={classnames(styles.relationBand, COMMENTS_CONTAINER_VISIBILITY_AREA, {\n [styles.inactiveRelationBand]: isInactiveRelation\n })}\n >\n <div className={styles.toolbar}>\n <SmallIconButton icon={ArrowBackIcon} size={'S'} onClick={() => onNavigateBack()} />\n <Typography variant={'subtitle2'} display={'inline'}>\n {i18n.text('Back to relationships')}\n </Typography>\n <Spacer />\n <div className={styles.commentsContainer}>\n <CommentsContainer\n uri={connection.relation.relationUri}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.RELATION, {\n entityUri: entity?.uri,\n connection\n })}\n objectType={CollaborationObjectTypes.RELATION}\n allowOnlyOneComment\n />\n </div>\n <RelationshipMenuButton connection={connection} onDelete={onDelete} disableDelete={readOnly} />\n </div>\n <div className={styles.mainInfo}>\n <EntityInfo entity={entity} />\n <RelationDirection relation={connection.relation} />\n <EntityInfo entity={{...connection.entity.object, dataTenant: connection.entity.dataTenant}} />\n </div>\n <div className={styles.detailsInfo}>\n <div className={styles.directionalLabel}>\n <span className={styles.detailTitle}>{i18n.text('Directional label:')}</span>\n <ExpandedValueTooltip value={connection.relation.relationLabel}>\n <span>{connection.relation.relationLabel}</span>\n </ExpandedValueTooltip>\n </div>\n <div className={styles.relationDate}>\n <span className={styles.detailTitle}>{i18n.text('Start date:')}</span>\n <RelationDate\n value={connection.relation.startDate}\n onChange={(value) => onChangeActivenessDate('startDate', value)}\n readOnly={readOnly}\n />\n </div>\n <div className={styles.relationDate}>\n <span className={styles.detailTitle}>{i18n.text('End date:')}</span>\n <RelationDate\n value={connection.relation.endDate}\n onChange={(value) => onChangeActivenessDate('endDate', value)}\n readOnly={readOnly}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default memo(RelationshipBand);\n","import {ErrorPopup} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {getRequestErrorMessage} from '@reltio/mdm-sdk';\n\nexport const showErrorMessage = (error: unknown) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: getRequestErrorMessage(error, i18n.text('Something went wrong'))\n });\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n detailsView: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'hidden'\n },\n locked: {\n pointerEvents: 'none'\n },\n resizablePanesWrapper: {\n flexGrow: 1\n },\n pane: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden'\n }\n});\n","import React, {memo, useCallback, useMemo, useState} from 'react';\nimport classnames from 'classnames';\nimport {\n ApiError,\n ApiErrorCode,\n AttributeType,\n Connection,\n deleteActivenessAttribute,\n Entity,\n getRelation,\n Relation,\n updateActivenessAttribute\n} from '@reltio/mdm-sdk';\nimport {\n AttributesTable,\n BasicView,\n CrosswalkDragLayer,\n CrosswalksDisplayProvider,\n ExpandedAttributesProvider,\n ResizablePanes,\n useCrosswalkActions,\n useModifiedEntity,\n useSafePromise\n} from '@reltio/components';\nimport LegendPanel from '../LegendPanel/LegendPanel';\nimport RelationshipBand from '../RelationshipBand/RelationshipBand';\nimport {assocPath, dissocPath, pipe} from 'ramda';\nimport {showErrorMessage} from '../../services/errors';\nimport {useCrosswalksDisplay} from '../../hooks/useCrosswalksDisplay';\nimport HTML5Backend from 'react-dnd-html5-backend';\nimport {DndProvider} from 'react-dnd';\n\nimport {useStyles} from './styles';\n\nconst MIN_PANE1_SIZE = 600;\nconst MIN_PANE2_SIZE = 480;\nconst MAX_PANE1_SIZE = -MIN_PANE2_SIZE;\n\ntype Props = {\n entity: Entity;\n connection: Connection;\n visibleColumns?: string[];\n onClose: (error?: ApiError) => void;\n onDeleteConnection: () => void;\n onChangeConnection: (connection: Connection) => void;\n onChangeVisibleColumns: (visibleColumns: string[]) => void;\n readOnly?: boolean;\n};\n\nconst RelationshipDetails = ({\n entity,\n connection,\n visibleColumns,\n onClose,\n onDeleteConnection,\n onChangeConnection,\n onChangeVisibleColumns,\n readOnly\n}: Props) => {\n const styles = useStyles();\n const displayProps = useCrosswalksDisplay();\n const [paneSize, setPaneSize] = useState(MAX_PANE1_SIZE);\n const handlePaneSizeChange = useCallback(({percentageSize}) => setPaneSize(percentageSize), []);\n\n const [selectedAttrTypes, setSelectedAttrTypes] = useState<AttributeType[]>();\n const [isLoading, setIsLoading] = useState(false);\n const relationUri = connection.relation.relationUri;\n\n const safePromise = useSafePromise();\n const onLoad = useCallback(() => setIsLoading(true), []);\n const onLoaded = useCallback(() => setIsLoading(false), []);\n const onDeleteRelation = useCallback(pipe(onDeleteConnection, onLoad), []);\n const [onError, reloadRelation] = useMemo(() => {\n const onError = (error: ApiError) => {\n if (error.errorCode === ApiErrorCode.CROSSWALK_NOT_FOUND) {\n showErrorMessage(error);\n reloadRelation();\n } else if (error.errorCode === ApiErrorCode.OBJECT_NOT_FOUND) {\n onClose(error);\n } else {\n showErrorMessage(error);\n onLoaded();\n }\n };\n const reloadRelation = () => {\n safePromise(getRelation(relationUri))\n .then((newRelation: Relation) => {\n onChangeConnection(assocPath(['relation', 'object'], newRelation, connection));\n onLoaded();\n })\n .catch(onError);\n };\n return [onError, reloadRelation];\n }, [connection, onLoaded, onChangeConnection, onClose]);\n\n const {\n modifiedEntity,\n crosswalksMap,\n newlyCreatedAttributes,\n onPinAttribute,\n onIgnoreAttribute,\n onAddAttribute,\n onEditAttribute,\n onDeleteAttribute\n } = useModifiedEntity({\n entity: connection.relation.object,\n onModify: reloadRelation,\n onError,\n onLoad\n });\n\n const {addCrosswalk, deleteCrosswalk, editCrosswalk} = useCrosswalkActions({\n onSuccess: reloadRelation,\n onError,\n onLoad\n });\n\n const onChangeActivenessDate = useCallback(\n (attributeName: string, value: number) => {\n onLoad();\n const request = value\n ? updateActivenessAttribute({entityUri: relationUri, attributeName, value}).then(() =>\n onChangeConnection(assocPath(['relation', attributeName], value, connection))\n )\n : deleteActivenessAttribute({entityUri: relationUri, attributeName}).then(() =>\n onChangeConnection(dissocPath(['relation', attributeName], connection))\n );\n request.then(onLoaded).catch(onError);\n },\n [connection, onLoad, onLoaded, onError]\n );\n\n return (\n <BasicView className={styles.detailsView}>\n <CrosswalksDisplayProvider {...displayProps}>\n <DndProvider backend={HTML5Backend}>\n <CrosswalkDragLayer />\n <ResizablePanes\n className={classnames(styles.resizablePanesWrapper, {[styles.locked]: isLoading})}\n orientation={'vertical'}\n size={paneSize}\n minSize={MIN_PANE1_SIZE}\n maxSize={MAX_PANE1_SIZE}\n allowResize={true}\n onChange={handlePaneSizeChange}\n >\n <div className={styles.pane}>\n <RelationshipBand\n readOnly={readOnly}\n entity={entity}\n connection={connection}\n onNavigateBack={onClose}\n onDelete={onDeleteRelation}\n onChangeActivenessDate={onChangeActivenessDate}\n />\n <ExpandedAttributesProvider attributeUris={newlyCreatedAttributes}>\n <AttributesTable\n readOnly={readOnly}\n entity={modifiedEntity}\n crosswalksMap={crosswalksMap}\n isLoading={isLoading}\n onPin={onPinAttribute}\n onIgnore={onIgnoreAttribute}\n onEdit={onEditAttribute}\n onAdd={onAddAttribute}\n onDelete={onDeleteAttribute}\n selectedAttributeTypes={selectedAttrTypes}\n onSelectAttributeTypes={setSelectedAttrTypes}\n visibleColumns={visibleColumns}\n onChangeVisibleColumns={onChangeVisibleColumns}\n />\n </ExpandedAttributesProvider>\n </div>\n <LegendPanel\n readOnly={readOnly}\n className={styles.pane}\n relation={connection.relation.object}\n selectedAttributeTypes={selectedAttrTypes}\n onAddCrosswalk={addCrosswalk}\n onDeleteCrosswalk={deleteCrosswalk}\n onEditCrosswalk={editCrosswalk}\n />\n </ResizablePanes>\n </DndProvider>\n </CrosswalksDisplayProvider>\n </BasicView>\n );\n};\n\nexport default memo(RelationshipDetails);\n","import {useCallback, useMemo, useState, useRef} from 'react';\nimport {CrosswalkBase, debounce, eqCrosswalks} from '@reltio/mdm-sdk';\nimport {any, concat} from 'ramda';\n\nexport const useCrosswalksDisplay = () => {\n const [highlightedCrosswalks, setHighlightedCrosswalks] = useState<CrosswalkBase[]>([]);\n const highlightedCrosswalksCache = useRef([]);\n const applyHighlightedCrosswalks = useCallback(\n debounce(() => {\n setHighlightedCrosswalks([...highlightedCrosswalksCache.current]);\n }, 50),\n []\n );\n const cacheHighlightedCrosswalks = useCallback(\n (arr) => {\n highlightedCrosswalksCache.current = arr;\n applyHighlightedCrosswalks(arr);\n },\n [applyHighlightedCrosswalks]\n );\n\n const setCrosswalkHighlighted = useCallback(\n (crosswalk: CrosswalkBase, highlighted: boolean) => {\n if (!crosswalk) return;\n if (highlighted) {\n cacheHighlightedCrosswalks([crosswalk]);\n } else {\n cacheHighlightedCrosswalks([]);\n }\n },\n [cacheHighlightedCrosswalks]\n );\n\n const [focusedCrosswalks, setFocusedCrosswalks] = useState<CrosswalkBase[]>([]);\n const calculateFocusedCrosswalks = (prev: CrosswalkBase[], next: CrosswalkBase[]) =>\n concat(\n prev.filter((prevCrosswalk) => !any(eqCrosswalks(prevCrosswalk), next)),\n next.filter((nextCrosswalk) => !any(eqCrosswalks(nextCrosswalk), prev))\n );\n\n const toggleCrosswalkFocus = useCallback((crosswalk: CrosswalkBase) => {\n if (!crosswalk) return;\n setFocusedCrosswalks((prevValue) => calculateFocusedCrosswalks([crosswalk], prevValue));\n }, []);\n\n return {\n highlightedCrosswalks: useMemo(() => [...highlightedCrosswalks, ...focusedCrosswalks], [\n highlightedCrosswalks,\n focusedCrosswalks\n ]),\n focusedCrosswalks,\n toggleCrosswalkFocus,\n setCrosswalkHighlighted\n };\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n relationshipsView: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflowX: 'hidden',\n overflowY: 'auto',\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif',\n display: 'flex',\n flexDirection: 'column'\n },\n '@global div[role=tooltip]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n '@global div[role=presentation]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n pane: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'hidden',\n position: 'relative'\n }\n});\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport {Dispatch} from 'redux';\nimport {connect} from 'react-redux';\nimport {\n always,\n andThen,\n both,\n either,\n equals,\n filter,\n identity,\n map,\n otherwise,\n pipe,\n prop,\n propEq,\n update,\n when,\n not\n} from 'ramda';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {\n ApiError,\n ApiErrorCode,\n checkMetadataPermission,\n CollaborationObjectTypes,\n Connection,\n Entity,\n getEntitiesMapForConnections,\n getInheritancePath,\n getRelationshipsObjectIdsForCollaboration,\n isDataTenantEntity,\n Metadata,\n MetadataPermissions,\n Mode,\n RelationshipsPerspectiveConfig,\n removeRelation,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {\n BasicTablePagination,\n CollaborationContext,\n EntitiesMapContext,\n LinearLoadIndicator,\n ProfileBand,\n ProfileBandNavigation,\n useCollaboration,\n useDidUpdateEffect,\n useRelationsLoader,\n UsersContext,\n useUsers\n} from '@reltio/components';\nimport useSavedState from '../../hooks/useSavedState';\nimport {useRelationshipsTable} from '../../hooks/useRelationshipsTable';\nimport {RelationshipsSavedState} from '../../types';\nimport {DEFAULT_COLUMNS, getColumnsData, ROWS_PER_PAGE_OPTIONS} from './helpers/tableHelpers';\nimport {buildRelationshipsFilter} from './helpers/filtersHelpers';\nimport RelationshipsTableHeader from '../RelationshipsTableHeader/RelationshipsTableHeader';\nimport RelationshipsTable from '../RelationshipsTable/RelationshipsTable';\nimport RelationshipDetails from '../RelationshipDetails/RelationshipDetails';\nimport {showErrorMessage} from '../../services/errors';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: RelationshipsPerspectiveConfig;\n entity: Entity;\n metadata: Metadata;\n connections: Connection[];\n total: number;\n saveState: (state: RelationshipsSavedState) => void;\n getSavedState: () => Promise<RelationshipsSavedState>;\n dispatch: Dispatch;\n};\n\nconst RelationshipsView = ({\n config,\n entity,\n metadata,\n connections,\n total,\n saveState,\n getSavedState,\n dispatch\n}: Props) => {\n const styles = useStyles();\n const tableRef = useRef();\n const users = useUsers();\n\n const isDTEntity = isDataTenantEntity(entity);\n\n const [searchByOv, setSearchByOv] = useState(false);\n\n const {type: entityTypeUri} = entity || {};\n const [\n {\n visibleColumns,\n filters,\n page,\n rowsPerPage,\n sorting,\n currentRelationType,\n stateToSave,\n entityTypeOfAppliedSavedState\n },\n {\n changeColumns,\n toggleFilters,\n changeFilter,\n changePage,\n changeRowsPerPage,\n toggleSort,\n changeRelationType,\n saveCurrentState,\n applySavedState\n }\n ] = useRelationshipsTable({\n defaultColumns: DEFAULT_COLUMNS,\n defaultRowsPerPage: ROWS_PER_PAGE_OPTIONS[0],\n defaultSorting: {\n field: DEFAULT_COLUMNS[0],\n order: 'asc'\n }\n });\n\n const isSavedStateApplied = entityTypeOfAppliedSavedState === entityTypeUri;\n\n const {\n isLoading: isSavedStateLoading,\n relationsTableSavedState,\n attributesTableSavedState,\n updateRelationsTableSavedState,\n updateAttributesTableSavedState\n } = useSavedState({\n getSavedState,\n saveState,\n entityTypeUri\n });\n\n const [attributesTableVisibleColumns, setAttributesTableVisibleColumns] = useState<string[]>();\n\n useEffect(() => {\n if (!isSavedStateLoading) {\n applySavedState({savedState: relationsTableSavedState, entityTypeUri});\n }\n }, [isSavedStateLoading, entityTypeUri]); // eslint-disable-line\n\n useEffect(() => {\n if (!isSavedStateLoading) {\n setAttributesTableVisibleColumns(attributesTableSavedState?.visibleColumns);\n }\n }, [isSavedStateLoading]); // eslint-disable-line\n\n useDidUpdateEffect(() => {\n if (isSavedStateApplied) {\n updateRelationsTableSavedState(stateToSave);\n }\n }, [stateToSave]);\n\n const resetPage = () => {\n changePage(0);\n };\n useDidUpdateEffect(resetPage, [entity]);\n\n const [detailedConnectionIndex, setDetailedConnectionIndex] = useState<number>();\n const hideConnectionDetails = useCallback(() => {\n setDetailedConnectionIndex(null);\n }, []);\n\n const relationTypes: TRelationType[] = useMemo(() => {\n const inheritancePath = getInheritancePath(metadata, entityTypeUri);\n const isRelatedToEntityType = ({startObject, endObject}) =>\n inheritancePath.some(either(equals(startObject.objectTypeURI), equals(endObject.objectTypeURI)));\n return metadata.relationTypes.filter(\n both(checkMetadataPermission(MetadataPermissions.READ), isRelatedToEntityType)\n );\n }, [metadata, entityTypeUri]);\n\n const columnsData = useMemo(() => getColumnsData(relationTypes, currentRelationType), [\n relationTypes,\n currentRelationType\n ]);\n const visibleColumnsData = useMemo(\n () => visibleColumns.map((id) => columnsData.find(propEq('id', id))).filter(identity),\n [visibleColumns, columnsData]\n );\n\n const relationsConfig = useMemo(() => {\n const relations = pipe(\n when(always(currentRelationType), filter(propEq('uri', currentRelationType))),\n map(prop('uri'))\n )(relationTypes);\n return {\n id: config.id,\n content: {\n inRelations: relations,\n outRelations: relations\n }\n };\n }, [config.id, currentRelationType, relationTypes]);\n\n const relationFilter = useMemo(() => buildRelationshipsFilter(filters, visibleColumnsData), [\n filters,\n visibleColumnsData\n ]);\n\n const {isLoading: isRelationsLoading, reload: reloadRelations} = useRelationsLoader({\n page,\n rowsPerPage,\n config: relationsConfig,\n entity: isSavedStateApplied ? entity : null,\n filter: relationFilter,\n mode: Mode.Viewing,\n sorting,\n searchByOv\n });\n\n const isLoading = !isSavedStateApplied || isRelationsLoading;\n\n const onSort = useCallback(pipe(toggleSort, saveCurrentState), [toggleSort, saveCurrentState]);\n const onFilter = useCallback(pipe(changeFilter, saveCurrentState), [changeFilter, saveCurrentState]);\n const onToggleFilters = useCallback(pipe(toggleFilters, saveCurrentState), [toggleFilters, saveCurrentState]);\n const onChangeColumns = useCallback(pipe(changeColumns, saveCurrentState), [changeColumns, saveCurrentState]);\n const onRelationTypeChange = useCallback(pipe(changeRelationType, saveCurrentState), [\n changeRelationType,\n saveCurrentState\n ]);\n const onChangeDetailedColumns = useCallback(\n (visibleColumns: string[]) => {\n setAttributesTableVisibleColumns(visibleColumns);\n updateAttributesTableSavedState({visibleColumns});\n },\n [updateAttributesTableSavedState]\n );\n\n const detailedConnection = connections?.[detailedConnectionIndex];\n const onChangeDetailedConnection = useCallback(\n (newConnection: Connection) => {\n dispatch(\n profile.relations.actions.relationsLoaded({\n id: config.id,\n connections: update(detailedConnectionIndex, newConnection, connections),\n total\n })\n );\n },\n [detailedConnection]\n );\n const [objectIds, objectTypes] = useMemo(() => {\n return [getRelationshipsObjectIdsForCollaboration(connections), [CollaborationObjectTypes.RELATION]];\n }, [connections]);\n\n const collaboration = useCollaboration({objectIds, objectTypes, enabled: !isDTEntity});\n const entitiesMap = useMemo(() => getEntitiesMapForConnections(connections), [connections]);\n\n const handleError = useCallback(\n (error: ApiError) => {\n showErrorMessage(error);\n if (error.errorCode === ApiErrorCode.OBJECT_NOT_FOUND) {\n reloadRelations();\n }\n },\n [reloadRelations]\n );\n\n const deleteRelation = useCallback(\n (relationUri: string) => {\n pipe(removeRelation, andThen(reloadRelations), otherwise(handleError))(relationUri);\n },\n [reloadRelations, handleError]\n );\n\n const deleteRelationAndCloseDetails = useCallback(() => {\n pipe(\n removeRelation,\n andThen(pipe(hideConnectionDetails, reloadRelations)),\n otherwise((error: ApiError) => {\n if (error.errorCode === ApiErrorCode.OBJECT_NOT_FOUND) {\n hideConnectionDetails();\n }\n handleError(error);\n })\n )(detailedConnection.relation.relationUri);\n }, [detailedConnection, reloadRelations, hideConnectionDetails, handleError]);\n\n const onCloseConnectionDetails = useCallback(\n (error?: ApiError) => {\n if (error) handleError(error);\n hideConnectionDetails();\n },\n [handleError, hideConnectionDetails]\n );\n\n const onToggleSearchByOv = useCallback(() => {\n setSearchByOv(not);\n }, [setSearchByOv]);\n return (\n <UsersContext.Provider value={users}>\n <CollaborationContext.Provider value={collaboration}>\n <EntitiesMapContext.Provider value={entitiesMap}>\n <div className={styles.relationshipsView}>\n <ProfileBand entity={entity}>\n <ProfileBandNavigation />\n </ProfileBand>\n <RelationshipsTableHeader\n total={total}\n filteringEnabled={!!filters}\n onToggleFilters={onToggleFilters}\n columnsData={columnsData}\n selectedColumns={visibleColumns}\n onChangeColumns={onChangeColumns}\n relationTypes={relationTypes}\n currentRelationType={currentRelationType}\n onRelationTypeChange={onRelationTypeChange}\n searchByOv={searchByOv}\n onToggleSearchByOv={onToggleSearchByOv}\n />\n <div className={styles.pane}>\n {isLoading && <LinearLoadIndicator />}\n <RelationshipsTable\n readOnly={isDTEntity}\n metadata={metadata}\n connections={connections}\n columnsData={visibleColumnsData}\n sorting={sorting}\n onSort={onSort}\n filters={filters}\n onFilter={onFilter}\n onRowClick={setDetailedConnectionIndex}\n tableRef={tableRef}\n onDelete={deleteRelation}\n />\n <BasicTablePagination\n count={total}\n rowsPerPageOptions={ROWS_PER_PAGE_OPTIONS}\n page={page}\n onChangePage={changePage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n basicTableRef={tableRef}\n />\n </div>\n {detailedConnection && (\n <RelationshipDetails\n readOnly={isDTEntity}\n entity={entity}\n visibleColumns={attributesTableVisibleColumns}\n onChangeVisibleColumns={onChangeDetailedColumns}\n connection={detailedConnection}\n onClose={onCloseConnectionDetails}\n onDeleteConnection={deleteRelationAndCloseDetails}\n onChangeConnection={onChangeDetailedConnection}\n />\n )}\n </div>\n </EntitiesMapContext.Provider>\n </CollaborationContext.Provider>\n </UsersContext.Provider>\n );\n};\n\nconst mapStateToProps = (state, {config: {id}}) => {\n return {\n entity: mdmModule.selectors.getEntity(state),\n metadata: mdmModule.selectors.getMetadata(state),\n connections: mdmModule.selectors.getConnectionsByViewId(state, id),\n total: mdmModule.selectors.getTotalByViewId(state, id)\n };\n};\n\nexport default connect(mapStateToProps)(RelationshipsView);\n","import {buildColumnsFilter, ColumnFilter} from '@reltio/components';\nimport {FilterBuilder} from '@reltio/mdm-sdk';\nimport {RelationshipsTableColumnData} from '../../../types';\n\nexport const buildRelationshipsFilter = (\n filters: Record<string, ColumnFilter>,\n columnsData: RelationshipsTableColumnData[]\n) => {\n const filtersClause = buildColumnsFilter(columnsData, filters);\n\n return new FilterBuilder().addClause(filtersClause).build();\n};\n","import React, {useCallback} from 'react';\nimport {Provider} from 'react-redux';\nimport {Store} from 'redux';\n\nimport MomentUtils from '@date-io/moment';\nimport {createGenerateClassName, StylesProvider} from '@material-ui/core/styles';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\nimport {ErrorPopup, ViewIdContext} from '@reltio/components';\nimport {RelationshipsSavedState} from '../../types';\nimport RelationshipsView from './RelationshipsView';\nimport {promisifyCallback, RelationshipsPerspectiveConfig} from '@reltio/mdm-sdk';\n\nconst generateClassName = createGenerateClassName({\n productionPrefix: 'relationshipsPerspective',\n disableGlobal: true\n});\n\ntype Props = {\n config: RelationshipsPerspectiveConfig;\n store: Store<unknown>;\n onResize?: (width: number, height: number) => void;\n saveState: (state: RelationshipsSavedState) => void;\n getSavedState: (clb: (state: RelationshipsSavedState) => void) => void;\n};\n\nconst RelationshipsPerspective = ({config, store, onResize, saveState, getSavedState}: Props) => {\n const getSavedStatePromisified: () => Promise<RelationshipsSavedState> = useCallback(\n promisifyCallback(getSavedState),\n [getSavedState]\n );\n\n return (\n <Provider store={store}>\n <ViewIdContext.Provider value={config.id}>\n <StylesProvider generateClassName={generateClassName}>\n <MuiPickersUtilsProvider utils={MomentUtils}>\n <ReactResizeDetector\n handleHeight\n onResize={(width, height) => onResize?.(Math.floor(width), Math.floor(height))}\n />\n {config && (\n <RelationshipsView\n config={config}\n saveState={saveState}\n getSavedState={getSavedStatePromisified}\n />\n )}\n <ErrorPopup />\n </MuiPickersUtilsProvider>\n </StylesProvider>\n </ViewIdContext.Provider>\n </Provider>\n );\n};\n\nexport default RelationshipsPerspective;\n","import {RelationshipsView} from '@reltio/relationships';\n\nexport default RelationshipsView;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n"],"names":["MomentUtils","_a","_b","locale","instance","moment","this","yearFormat","yearMonthFormat","dateTime12hFormat","dateTime24hFormat","time12hFormat","time24hFormat","dateFormat","prototype","parse","value","format","date","isValid","isNull","getDiff","comparing","diff","isAfter","isBefore","isAfterDay","isBeforeDay","isBeforeYear","isAfterYear","startOfDay","clone","startOf","endOfDay","endOf","formatString","formatNumber","numberToFormat","getHours","get","addDays","count","subtract","Math","abs","add","setHours","hours","getMinutes","setMinutes","minutes","getSeconds","setSeconds","seconds","getMonth","isSameDay","isSame","isSameMonth","isSameYear","isSameHour","setMonth","month","getMeridiemText","ampm","startOfMonth","endOfMonth","getNextMonth","getPreviousMonth","getMonthArray","monthArray","length","prevMonth","push","getYear","setYear","year","set","mergeDateAndTime","time","getWeekdays","weekdaysShort","isEqual","getWeekArray","start","end","current","nestedWeeks","weekNumber","floor","getYearRange","startDate","endDate","years","getCalendarHeaderText","getYearText","getDatePickerHeaderText","getDateTimePickerHeaderText","getMonthText","getDayText","getHourText","getMinuteText","getSecondText","_interopRequireDefault","exports","_react","_default","default","createElement","d","Fragment","transform","fill","contextSelector","CellRenderer","withContext","TableContext","props","width","height","viewBox","xmlns","fillRule","stroke","strokeWidth","useStyles","makeStyles","theme","color","palette","primary","main","closeIcon","position","right","bottom","button","padding","FilterButton","enabled","onClick","styles","Tooltip","title","i18n","IconButton","classes","root","Filter","className","Close","propTypes","PropTypes","pagination","display","alignItems","justifyContent","borderTop","boxShadow","caption","fontSize","lineHeight","selectRoot","marginLeft","marginRight","select","textAlign","actions","BasicTablePagination","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","resetScrollbarPosition","useCallback","pathOr","identity","handleChangePage","handleChangeRowsPerPage","TablePagination","classnames","component","labelDisplayedRows","from","to","fromRow","toRow","countRows","pipe","nthArg","getValue","React","CHANGE_COLUMNS","TOGGLE_FILTERS","CHANGE_FILTER","TOGGLE_SORT","CHANGE_PAGE","CHANGE_ROWS_PER_PAGE","changeColumns","createStandardAction","toggleFilters","changeFilter","toggleSort","changePage","changeRowsPerPage","changeVisibleColumns","state","nextVisibleColumns","removedColumns","difference","visibleColumns","isRemovedColumn","columnId","includes","evolve","always","sorting","when","field","nextSortField","order","filters","keys","reduce","acc","dissoc","reducer","action","type","columnIds","payload","enableFilters","filter","assoc","prevSortField","path","prevSortOrder","toggleSortOrder","flexDirection","basicView","BasicView","forwardRef","ref","children","otherProps","Paper","displayName","paper","minHeight","fontWeight","letterSpacing","content","contentText","marginBottom","actionButtons","paddingTop","discardButton","open","onCancel","cancelCaption","onDiscard","discardCaption","onSave","saveCaption","disabledSave","Dialog","onClose","paperScrollPaper","DialogTitle","DialogContent","DialogContentText","DialogActions","disableSpacing","Button","disabled","autoFocus","textOverflow","overflow","whiteSpace","borderRadius","entity","size","metadata","useSelector","mdmModule","entityTypeUri","entityType","getEntityType","entityTypeColor","getPropWithInheritance","entityTypeLabel","getEntityTypeLabel","ExpandedValueTooltip","placement","Typography","style","backgroundColor","utils","profileBandWrapper","flexShrink","profileBand","inactive","background","inactiveBackground","profileIcon","imageProfileIcon","profileInfo","flex","badge","label","text","wordBreak","marginTop","secondaryLabel","businessCard","secondary","specialInfo","flexWrap","entityId","cursor","textDecoration","showEntityId","handleCopyEntityIdToClipboard","navigator","clipboard","writeText","getEntityId","isNil","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","EntityAvatar","key","avatarClassName","imageClassName","variant","EntityTypeBadge","isTempUri","items","menuId","buttonComponent","SmallIconButtonWithTooltip","buttonProps","icon","SettingsIcon","tooltipTitle","menuItems","VerticalDivider","margin","borderLeft","useActions","dispatch","useMemo","Object","entries","actionName","actionCreator","filterReplies","replyId","replies","reply","getUpdatedReplies","comment","changedReplyIndex","findIndex","newReplies","defaultObjectIds","catchErrorInRequest","e","console","error","useCollaboration","objectIds","objectTypes","mdm","tenant","collaborationPath","isCollaborationEnabled","pageToken","setPageToken","useState","comments","setComments","commentsMap","setCommentsMap","currentComment","setCurrentComment","sending","setSending","loading","setLoading","addCommentsToCommentsMap","currentCommentsMap","getCommentsCount","shouldResetCommentsMap","onError","warn","getCommentsCountRequest","andThen","map","fromPairs","otherwise","uris","useEffect","getComments","relatedObjectUri","getCommentsRequest","then","nextPageToken","prevComments","uniqBy","prop","catch","getComment","commentId","getCommentRequest","finally","createComment","namedUsers","objectType","relatedObjectUris","data","objectId","visibility","permanentLink","createCommentRequest","prevCommentsMap","status","addCommentToState","editComment","updateCommentRequest","propEq","updateCommentInState","deleteComment","deleteCommentRequest","c","deleteCommentFromState","updateReplyInState","isDeleteReply","newStatus","prevCurrentComment","deleteReply","deleteReplyRequest","editReplyInState","editReply","updateReplyRequest","createReply","createReplyRequest","resolveThread","reOpenThread","clearCurrentComment","buildSuggestedIds","wrapInArrayIfNeeded","times","n","useRelationsLoader","config","relationActivityFilter","mode","searchByOv","isLoading","setIsLoading","useDispatch","dtssPath","activityFilter","globalFilter","safePromise","useSafePromise","suggested","options","loadRelations","requestConfig","sortBy","returnDates","returnObjects","activeness","relation","ActivityFilter","max","offset","addGlobalFilterToQuery","undefined","configs","concat","ifElse","i","id","request","cond","Promise","resolve","total","isDataTenantEntity","getRelationsForDataTenantEntity","customerTenant","dataTenant","T","getRelationsForEntity","connections","profile","isRequestSentRef","useRef","prevMode","usePrevious","Mode","reload","useUsers","users","setUsers","servicesPath","getAllUsersForTenant","array","DEFAULT_SAVED_STATE","relationsTable","attributesTable","RELATION_TYPE_COLUMN_ID","ATTRIBUTES_COLUMN_ID","DEFAULT_COLUMNS_DATA","dataTypeDefinition","DataTypes","hideable","filterable","initialWidth","autoResize","sortable","maxAttrsToShow","DEFAULT_COLUMNS","pluck","ALL_TYPES_COLUMNS","ROWS_PER_PAGE_OPTIONS","getColumnIdFromAttrUri","attributeUriToSearchUri","getColumnsDataFromRelationAttributes","attr","getAttrDataTypeDefinition","CHANGE_RELATION_TYPE","APPLY_SAVED_STATE","SAVE_CURRENT_STATE","basicTableViewState","changeRelationType","applySavedState","saveCurrentState","resetPageNumber","getDefaultVisibleColumnsForCurrentRelationType","currentRelationType","without","intersection","getSavedVisibleColumnsForCurrentRelationType","changeVisibleColumnsForCurrentRelationType","either","getFiltersFromSavedState","propOr","unless","validateFilterValue","saveVisibleColumnsForCurrentRelationType","visibleColumnsForRelationTypes","getStateToSave","pick","paddingLeft","paddingRight","selectMenu","textField","maxWidth","onChange","relationTypes","DropDownEditor","displayEmpty","disableUnderline","TextFieldProps","MenuProps","list","header","boxSizing","relationTypeSelector","memo","filteringEnabled","onToggleFilters","columnsData","selectedColumns","onRelationTypeChange","onChangeColumns","onToggleSearchByOv","settingItems","selected","selectable","BasicViewHeader","Spacer","SettingsMenu","ColumnsSettings","headCell","rowCell","overflowWrap","inactiveRowCell","opacity","defaultWrapper","paddingBottom","entityCell","entityAvatar","inactiveEntityAvatar","border","entityLabel","attributesWrapper","commentsContainer","withFilterAtBottom","DefaultHeadCellRenderer","isInactiveRelation","currentEntityUri","COMMENTS_CONTAINER_VISIBILITY_AREA","EntityTypeIcon","EntityUriLink","getEntityUriForLink","stopPropagation","CommentsContainer","relationUri","createRelatedObjectUris","CollaborationObjectTypes","connection","allowOnlyOneComment","columnData","attributes","attributeTypes","attrTypes","drawLines","DataTypeValue","getAttrPathFromColumnId","split","slice","Infinity","getNestedPathByColumnId","startsWith","attrPath","getCellValueRenderer","EntityProfileRenderer","AttributesRenderer","DefaultCellValueRenderer","getBasicTableColumnsData","resizable","headCellRenderer","HeadCellRenderer","nestedPath","rowCellValueRenderer","getStaticRowCellHeight","pathEq","cell","attributesCount","values","defaultGetRowCellHeight","CellValueRenderer","index","menuItem","menuText","buttons","MenuItemWithTooltip","withTooltip","MenuItem","MenuItemRenderer","item","onMenuClose","noop","tooltip","showForDisabled","disableDelete","onMenuOpen","onDelete","hasDeletePermission","getRelationType","checkMetadataPermission","MetadataPermissions","canDelete","pendingDeletion","setPendingDeletion","hideDeleteConfirmation","Delete","handleMenuClose","DropDownMenuButton","SmallIconButton","MoreVertIcon","ConfirmationDialog","substring","tableContainer","zIndex","hoveredRowRightContentWrapper","pointerEvents","menuButtonContainer","top","tooltipAnchor","onSort","onFilter","onRowClick","tableRef","readOnly","tableRowsData","relationType","relationLabel","object","getOvAttributeValuesByPath","getRelationAttributeValues","getRowValueByColumnId","getBasicTableRowsData","tableColumnsData","getDynamicRowCellHeight","changeRowCellHeight","useDynamicRowCellHeight","getRowCellHeight","hoverRowIndex","setHoverRowIndex","renderRowCell","rowValue","rawValue","RowCellAutoSizer","onChangeHeight","isActionsMenuOpen","setIsActionsMenuOpen","handleActionsMenuOpen","handleActionsMenuClose","onRowHover","rowIndex","prevHoverRowIndex","hoveredRowRightContent","BasicTable","fixFirstColumn","rowsData","defaultColumnWidth","defaultColumnMinWidth","headRowHeight","hoverStateEnabled","tableRow","selectedAttributeTypes","onDeleteCrosswalk","onEditCrosswalk","groupCrosswalksByTypesAndSources","buildTableRowsData","expandedSources","setExpandedSources","handleDelete","crosswalkId","handleEdit","event","source","crosswalksByTypes","SourceCrosswalksRow","expanded","disableEditCrosswalk","checkCanEditCrosswalk","disableDeleteCrosswalk","checkCanDeleteCrosswalk","onEdit","onToggleExpanded","append","borderBottom","hint","alignSelf","hintText","buttonLabel","editor","overflowY","overflowX","ButtonWithTooltip","onAddCrosswalk","openEditor","setOpenEditor","canAdd","checkCanCreateCrosswalk","Add","Info","CrosswalkEditor","onAdd","crosswalk","entityInfo","minWidth","entityLabelContainer","infoIcon","entityTypeBadge","noWrap","LightArrowTooltip","ProfileBand","direction","align","fillOpacity","points","editButton","showEditor","setShowEditor","closeEditor","editedValue","setEditedValue","applyChangesAndClose","formatDate","EditIcon","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","onKeyUp","onBackdropClick","DateEditor","InputProps","fullWidth","hiddenLabel","Date","valueOf","relationBand","inactiveRelationBand","toolbar","gap","mainInfo","detailsInfo","detailTitle","directionalLabel","relationDate","onNavigateBack","onChangeActivenessDate","ArrowBackIcon","showErrorMessage","ErrorPopup","message","getRequestErrorMessage","detailsView","left","locked","resizablePanesWrapper","flexGrow","pane","onDeleteConnection","onChangeConnection","onChangeVisibleColumns","displayProps","highlightedCrosswalks","setHighlightedCrosswalks","highlightedCrosswalksCache","applyHighlightedCrosswalks","debounce","cacheHighlightedCrosswalks","arr","setCrosswalkHighlighted","highlighted","focusedCrosswalks","setFocusedCrosswalks","toggleCrosswalkFocus","prevValue","calculateFocusedCrosswalks","prev","next","prevCrosswalk","any","eqCrosswalks","nextCrosswalk","useCrosswalksDisplay","paneSize","setPaneSize","handlePaneSizeChange","percentageSize","selectedAttrTypes","setSelectedAttrTypes","onLoad","onLoaded","onDeleteRelation","reloadRelation","errorCode","ApiErrorCode","getRelation","newRelation","assocPath","modifiedEntity","crosswalksMap","newlyCreatedAttributes","onPinAttribute","onIgnoreAttribute","onAddAttribute","onEditAttribute","onDeleteAttribute","useModifiedEntity","onModify","addCrosswalk","deleteCrosswalk","editCrosswalk","useCrosswalkActions","onSuccess","attributeName","updateActivenessAttribute","deleteActivenessAttribute","dissocPath","DndProvider","backend","HTML5Backend","CrosswalkDragLayer","ResizablePanes","orientation","minSize","maxSize","allowResize","attributeUris","AttributesTable","onPin","onIgnore","onSelectAttributeTypes","relationshipsView","fontFamily","connect","saveState","getSavedState","isDTEntity","setSearchByOv","stateToSave","entityTypeOfAppliedSavedState","defaultColumns","defaultSorting","defaultRowsPerPage","initState","useReducer","nextRelationType","savedState","useRelationshipsTable","isSavedStateApplied","isSavedStateLoading","relationsTableSavedState","attributesTableSavedState","updateRelationsTableSavedState","updateAttributesTableSavedState","setSavedState","changedRelationsState","setRelationsChangedState","useDidUpdateEffect","_","changedState","useSavedState","attributesTableVisibleColumns","setAttributesTableVisibleColumns","detailedConnectionIndex","setDetailedConnectionIndex","hideConnectionDetails","inheritancePath","getInheritancePath","both","startObject","endObject","some","equals","objectTypeURI","find","getReadableAttributesList","reject","updateColumnData","updateFn","getRelationColumnDataType","adjust","updateRelationTypeColumn","getColumnsData","visibleColumnsData","relationsConfig","relations","inRelations","outRelations","relationFilter","filtersClause","buildColumnsFilter","FilterBuilder","addClause","build","buildRelationshipsFilter","isRelationsLoading","reloadRelations","onChangeDetailedColumns","detailedConnection","onChangeDetailedConnection","newConnection","update","getRelationshipsObjectIdsForCollaboration","collaboration","entitiesMap","getEntitiesMapForConnections","handleError","deleteRelation","removeRelation","deleteRelationAndCloseDetails","onCloseConnectionDetails","not","UsersContext","CollaborationContext","EntitiesMapContext","ProfileBandNavigation","LinearLoadIndicator","generateClassName","createGenerateClassName","productionPrefix","disableGlobal","store","onResize","getSavedStatePromisified","promisifyCallback","Provider","ViewIdContext","StylesProvider","MuiPickersUtilsProvider","handleHeight","componentWillMount","constructor","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","name","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning"],"sourceRoot":""}
1
+ {"version":3,"file":"5592.js","mappings":"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","sources":["webpack://@reltio/remotes/../../node_modules/@date-io/moment/build/index.esm.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Edit.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/EventBusy.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Info.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/KeyboardArrowLeft.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/KeyboardArrowRight.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Settings.js","webpack://@reltio/remotes/../../node_modules/@material-ui/icons/Visibility.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/icons/Filter.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/FilterButton/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/FilterButton/FilterButton.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/BasicTablePagination.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/viewState/basicTableViewState.js","webpack://@reltio/remotes/../components/src/components/BasicView/styles.js","webpack://@reltio/remotes/../components/src/components/BasicView/BasicView.tsx","webpack://@reltio/remotes/../components/src/components/ConfirmationDialog/styles.ts","webpack://@reltio/remotes/../components/src/components/ConfirmationDialog/ConfirmationDialog.tsx","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/EntityTypeBadge/EntityTypeBadge.tsx","webpack://@reltio/remotes/../components/src/components/ProfileBand/styles.ts","webpack://@reltio/remotes/../components/src/components/ProfileBand/ProfileBand.tsx","webpack://@reltio/remotes/../components/src/components/SettingsMenu/SettingsMenu.tsx","webpack://@reltio/remotes/../components/src/components/VerticalDivider/VerticalDivider.js","webpack://@reltio/remotes/../components/src/hooks/useActions.ts","webpack://@reltio/remotes/../components/src/hooks/useCollaboration.ts","webpack://@reltio/remotes/../components/src/hooks/useRelationsLoader.ts","webpack://@reltio/remotes/../components/src/hooks/useUsers.ts","webpack://@reltio/remotes/../relationships/src/hooks/useSavedState.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/helpers/tableHelpers.ts","webpack://@reltio/remotes/../relationships/src/hooks/useRelationshipsTable.ts","webpack://@reltio/remotes/../relationships/src/components/RelationTypeSelector/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationTypeSelector/RelationTypeSelector.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTableHeader/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTableHeader/RelationshipsTableHeader.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/HeadCellRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/EntityProfileRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/AttributesRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/DefaultCellValueRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/helpers.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/cell-renderers/RowCellRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipMenuButton/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipMenuButton/MenuItemRenderer.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipMenuButton/RelationshipMenuButton.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsTable/RelationshipsTable.tsx","webpack://@reltio/remotes/../relationships/src/components/LegendTable/helpers.ts","webpack://@reltio/remotes/../relationships/src/components/LegendTable/styles.ts","webpack://@reltio/remotes/../relationships/src/components/LegendTable/LegendTable.tsx","webpack://@reltio/remotes/../relationships/src/components/LegendPanel/styles.ts","webpack://@reltio/remotes/../relationships/src/components/LegendPanel/LegendPanel.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/EntityInfo/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/EntityInfo/EntityInfo.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDirection/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDirection/RelationDirection.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDate/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationDate/RelationDate.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipBand/RelationshipBand.tsx","webpack://@reltio/remotes/../relationships/src/services/errors.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipDetails/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipDetails/RelationshipDetails.tsx","webpack://@reltio/remotes/../relationships/src/hooks/useCrosswalksDisplay.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/styles.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/RelationshipsView.tsx","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/helpers/filtersHelpers.ts","webpack://@reltio/remotes/../relationships/src/components/RelationshipsView/index.tsx","webpack://@reltio/remotes/./src/relationships.ts","webpack://@reltio/remotes/../../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js"],"sourcesContent":["import defaultMoment from 'moment';\n\nvar MomentUtils = /** @class */ (function () {\n function MomentUtils(_a) {\n var _b = _a === void 0 ? {} : _a, locale = _b.locale, instance = _b.instance, moment = _b.moment;\n this.yearFormat = \"YYYY\";\n this.yearMonthFormat = \"MMMM YYYY\";\n this.dateTime12hFormat = \"MMMM Do hh:mm a\";\n this.dateTime24hFormat = \"MMMM Do HH:mm\";\n this.time12hFormat = \"hh:mm A\";\n this.time24hFormat = \"HH:mm\";\n this.dateFormat = \"MMMM Do\";\n this.moment = instance || moment || defaultMoment;\n this.locale = locale;\n }\n MomentUtils.prototype.parse = function (value, format) {\n if (value === \"\") {\n return null;\n }\n return this.moment(value, format, true);\n };\n MomentUtils.prototype.date = function (value) {\n if (value === null) {\n return null;\n }\n var moment = this.moment(value);\n moment.locale(this.locale);\n return moment;\n };\n MomentUtils.prototype.isValid = function (value) {\n return this.moment(value).isValid();\n };\n MomentUtils.prototype.isNull = function (date) {\n return date === null;\n };\n MomentUtils.prototype.getDiff = function (date, comparing) {\n return date.diff(comparing);\n };\n MomentUtils.prototype.isAfter = function (date, value) {\n return date.isAfter(value);\n };\n MomentUtils.prototype.isBefore = function (date, value) {\n return date.isBefore(value);\n };\n MomentUtils.prototype.isAfterDay = function (date, value) {\n return date.isAfter(value, \"day\");\n };\n MomentUtils.prototype.isBeforeDay = function (date, value) {\n return date.isBefore(value, \"day\");\n };\n MomentUtils.prototype.isBeforeYear = function (date, value) {\n return date.isBefore(value, \"year\");\n };\n MomentUtils.prototype.isAfterYear = function (date, value) {\n return date.isAfter(value, \"year\");\n };\n MomentUtils.prototype.startOfDay = function (date) {\n return date.clone().startOf(\"day\");\n };\n MomentUtils.prototype.endOfDay = function (date) {\n return date.clone().endOf(\"day\");\n };\n MomentUtils.prototype.format = function (date, formatString) {\n date.locale(this.locale);\n return date.format(formatString);\n };\n MomentUtils.prototype.formatNumber = function (numberToFormat) {\n return numberToFormat;\n };\n MomentUtils.prototype.getHours = function (date) {\n return date.get(\"hours\");\n };\n MomentUtils.prototype.addDays = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"days\")\n : date.clone().add(count, \"days\");\n };\n MomentUtils.prototype.setHours = function (date, count) {\n return date.clone().hours(count);\n };\n MomentUtils.prototype.getMinutes = function (date) {\n return date.get(\"minutes\");\n };\n MomentUtils.prototype.setMinutes = function (date, count) {\n return date.clone().minutes(count);\n };\n MomentUtils.prototype.getSeconds = function (date) {\n return date.get(\"seconds\");\n };\n MomentUtils.prototype.setSeconds = function (date, count) {\n return date.clone().seconds(count);\n };\n MomentUtils.prototype.getMonth = function (date) {\n return date.get(\"month\");\n };\n MomentUtils.prototype.isSameDay = function (date, comparing) {\n return date.isSame(comparing, \"day\");\n };\n MomentUtils.prototype.isSameMonth = function (date, comparing) {\n return date.isSame(comparing, \"month\");\n };\n MomentUtils.prototype.isSameYear = function (date, comparing) {\n return date.isSame(comparing, \"year\");\n };\n MomentUtils.prototype.isSameHour = function (date, comparing) {\n return date.isSame(comparing, \"hour\");\n };\n MomentUtils.prototype.setMonth = function (date, count) {\n return date.clone().month(count);\n };\n MomentUtils.prototype.getMeridiemText = function (ampm) {\n return ampm === \"am\" ? \"AM\" : \"PM\";\n };\n MomentUtils.prototype.startOfMonth = function (date) {\n return date.clone().startOf(\"month\");\n };\n MomentUtils.prototype.endOfMonth = function (date) {\n return date.clone().endOf(\"month\");\n };\n MomentUtils.prototype.getNextMonth = function (date) {\n return date.clone().add(1, \"month\");\n };\n MomentUtils.prototype.getPreviousMonth = function (date) {\n return date.clone().subtract(1, \"month\");\n };\n MomentUtils.prototype.getMonthArray = function (date) {\n var firstMonth = date.clone().startOf(\"year\");\n var monthArray = [firstMonth];\n while (monthArray.length < 12) {\n var prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(this.getNextMonth(prevMonth));\n }\n return monthArray;\n };\n MomentUtils.prototype.getYear = function (date) {\n return date.get(\"year\");\n };\n MomentUtils.prototype.setYear = function (date, year) {\n return date.clone().set(\"year\", year);\n };\n MomentUtils.prototype.mergeDateAndTime = function (date, time) {\n return this.setMinutes(this.setHours(date, this.getHours(time)), this.getMinutes(time));\n };\n MomentUtils.prototype.getWeekdays = function () {\n return this.moment.weekdaysShort(true);\n };\n MomentUtils.prototype.isEqual = function (value, comparing) {\n if (value === null && comparing === null) {\n return true;\n }\n return this.moment(value).isSame(comparing);\n };\n MomentUtils.prototype.getWeekArray = function (date) {\n var start = date\n .clone()\n .startOf(\"month\")\n .startOf(\"week\");\n var end = date\n .clone()\n .endOf(\"month\")\n .endOf(\"week\");\n var count = 0;\n var current = start;\n var nestedWeeks = [];\n while (current.isBefore(end)) {\n var weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = current.clone().add(1, \"day\");\n count += 1;\n }\n return nestedWeeks;\n };\n MomentUtils.prototype.getYearRange = function (start, end) {\n var startDate = this.moment(start).startOf(\"year\");\n var endDate = this.moment(end).endOf(\"year\");\n var years = [];\n var current = startDate;\n while (current.isBefore(endDate)) {\n years.push(current);\n current = current.clone().add(1, \"year\");\n }\n return years;\n };\n // displaying methods\n MomentUtils.prototype.getCalendarHeaderText = function (date) {\n return this.format(date, this.yearMonthFormat);\n };\n MomentUtils.prototype.getYearText = function (date) {\n return this.format(date, \"YYYY\");\n };\n MomentUtils.prototype.getDatePickerHeaderText = function (date) {\n return this.format(date, \"ddd, MMM D\");\n };\n MomentUtils.prototype.getDateTimePickerHeaderText = function (date) {\n return this.format(date, \"MMM D\");\n };\n MomentUtils.prototype.getMonthText = function (date) {\n return this.format(date, \"MMMM\");\n };\n MomentUtils.prototype.getDayText = function (date) {\n return this.format(date, \"D\");\n };\n MomentUtils.prototype.getHourText = function (date, ampm) {\n return this.format(date, ampm ? \"hh\" : \"HH\");\n };\n MomentUtils.prototype.getMinuteText = function (date) {\n return this.format(date, \"mm\");\n };\n MomentUtils.prototype.getSecondText = function (date) {\n return this.format(date, \"ss\");\n };\n return MomentUtils;\n}());\n\nexport default MomentUtils;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), 'Edit');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M9.31 17l2.44-2.44L14.19 17l1.06-1.06-2.44-2.44 2.44-2.44L14.19 10l-2.44 2.44L9.31 10l-1.06 1.06 2.44 2.44-2.44 2.44L9.31 17zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z\"\n}), 'EventBusy');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n}), 'Info');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n}), 'KeyboardArrowLeft');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'KeyboardArrowRight');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(_react.default.Fragment, null, _react.default.createElement(\"path\", {\n transform: \"scale(1.2, 1.2)\",\n fill: \"none\",\n d: \"M0 0h20v20H0V0z\"\n}), _react.default.createElement(\"path\", {\n transform: \"scale(1.2, 1.2)\",\n d: \"M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z\"\n})), 'Settings');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)(_react.default.createElement(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;","import {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import React from 'react';\n\nconst SvgFilter: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={18} height={18} viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M18 2V0H0v2l7 8v8l4-2v-6z\" fill=\"currentColor\" fillRule=\"nonzero\" stroke=\"none\" strokeWidth={1} />\n </svg>\n );\n};\n\nexport default SvgFilter;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n 'filterIcon--enabled': {\n color: theme.palette.primary.main\n },\n closeIcon: {\n position: 'absolute',\n right: '3px',\n bottom: '3px',\n transform: 'scale(0.5)'\n },\n button: {\n padding: '11px'\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport i18n from 'ui-i18n';\nimport {IconButton as IconButton} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport FilterIcon from '../../../../icons/Filter';\nimport {useStyles} from './styles';\n\nconst FilterButton = ({enabled, onClick}) => {\n const styles = useStyles();\n\n return (\n <Tooltip title={enabled ? i18n.text('Clear all filters') : i18n.text('Filter')}>\n <IconButton onClick={onClick} classes={{root: styles.button}}>\n {enabled ? (\n <>\n <FilterIcon className={styles['filterIcon--enabled']} />\n <CloseIcon color=\"primary\" className={styles.closeIcon} />\n </>\n ) : (\n <FilterIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n\nFilterButton.propTypes = {\n enabled: PropTypes.bool,\n onClick: PropTypes.func\n};\n\nexport default FilterButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n pagination: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: '56px',\n borderTop: '1px solid rgba(0,0,0,0.12)',\n boxShadow: 'none'\n },\n caption: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px'\n },\n selectRoot: {\n marginLeft: '5px',\n marginRight: '36px'\n },\n select: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px',\n textAlign: 'right'\n },\n actions: {\n marginLeft: '32px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {TablePagination as TablePagination} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getValue} from '../../../core/utils';\nimport {nthArg, pipe, pathOr, identity} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BasicTablePagination = ({\n classes = {},\n count,\n rowsPerPageOptions,\n page,\n onChangePage,\n rowsPerPage,\n onChangeRowsPerPage,\n basicTableRef,\n labelRowsPerPage\n}) => {\n const labelDisplayedRows = ({from, to, count}) =>\n i18n.text('${fromRow}-${toRow} of ${countRows}', {\n fromRow: i18n.number(from, '0,0'),\n toRow: i18n.number(to, '0,0'),\n countRows: i18n.number(count, '0,0')\n });\n const styles = useStyles();\n const resetScrollbarPosition = useCallback(() => {\n pathOr(identity, ['current', 'resetScrollbarPosition'], basicTableRef)();\n }, [basicTableRef]);\n const handleChangePage = useCallback(\n (value) => {\n onChangePage(value);\n resetScrollbarPosition();\n },\n [onChangePage, resetScrollbarPosition]\n );\n const handleChangeRowsPerPage = useCallback(\n (value) => {\n onChangePage(0);\n onChangeRowsPerPage(value);\n resetScrollbarPosition();\n },\n [onChangePage, onChangeRowsPerPage, resetScrollbarPosition]\n );\n return (\n <TablePagination\n classes={{\n ...classes,\n root: classnames(styles.pagination, classes.root),\n select: classnames(styles.select, classes.select),\n caption: styles.caption,\n selectRoot: styles.selectRoot,\n actions: styles.actions\n }}\n component=\"div\"\n labelRowsPerPage={labelRowsPerPage || i18n.text('Rows per page:')}\n labelDisplayedRows={labelDisplayedRows}\n count={count}\n rowsPerPageOptions={rowsPerPageOptions}\n page={page}\n onChangePage={pipe(nthArg(1), handleChangePage)}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={pipe(getValue, handleChangeRowsPerPage)}\n />\n );\n};\n\nBasicTablePagination.propTypes = {\n classes: PropTypes.object,\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n page: PropTypes.number,\n onChangePage: PropTypes.func,\n rowsPerPage: PropTypes.number,\n onChangeRowsPerPage: PropTypes.func,\n basicTableRef: PropTypes.shape({current: PropTypes.object}),\n labelRowsPerPage: PropTypes.string\n};\n\nexport default React.memo(BasicTablePagination);\n","import {always, assoc, difference, dissoc, evolve, keys, path, when} from 'ramda';\nimport {createStandardAction, toggleSortOrder} from '../../../core';\n\nconst CHANGE_COLUMNS = 'CHANGE_COLUMNS';\nconst TOGGLE_FILTERS = 'TOGGLE_FILTERS';\nconst CHANGE_FILTER = 'CHANGE_FILTER';\nconst TOGGLE_SORT = 'TOGGLE_SORT';\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS_PER_PAGE = 'CHANGE_ROWS_PER_PAGE';\n\nexport const actions = {\n changeColumns: createStandardAction(CHANGE_COLUMNS),\n toggleFilters: createStandardAction(TOGGLE_FILTERS),\n changeFilter: createStandardAction(CHANGE_FILTER),\n toggleSort: createStandardAction(TOGGLE_SORT),\n changePage: createStandardAction(CHANGE_PAGE),\n changeRowsPerPage: createStandardAction(CHANGE_ROWS_PER_PAGE)\n};\n\nexport const changeVisibleColumns = (state, nextVisibleColumns) => {\n const removedColumns = difference(state.visibleColumns, nextVisibleColumns);\n const isRemovedColumn = (columnId) => removedColumns.includes(columnId);\n return evolve(\n {\n visibleColumns: always(nextVisibleColumns),\n sorting: when(\n (sorting = {}) => isRemovedColumn(sorting.field),\n () => {\n const [nextSortField] = nextVisibleColumns;\n return {field: nextSortField, order: 'asc'};\n }\n ),\n filters: (filters) =>\n keys(filters).reduce(\n (acc, columnId) => (isRemovedColumn(columnId) ? dissoc(columnId, acc) : acc),\n filters\n )\n },\n state\n );\n};\n\nexport const reducer = (state, action) => {\n switch (action.type) {\n case CHANGE_COLUMNS: {\n const columnIds = action.payload;\n return changeVisibleColumns(state, columnIds);\n }\n case TOGGLE_FILTERS: {\n const enableFilters = !state.filters;\n return {\n ...state,\n filters: enableFilters ? {} : null,\n page: enableFilters ? state.page : 0\n };\n }\n case CHANGE_FILTER: {\n const {columnId, filter} = action.payload;\n return evolve({filters: filter ? assoc(columnId, filter) : dissoc(columnId), page: always(0)}, state);\n }\n case TOGGLE_SORT: {\n const nextSortField = action.payload;\n const prevSortField = path(['sorting', 'field'], state);\n const prevSortOrder = path(['sorting', 'order'], state);\n return {\n ...state,\n sorting: {\n field: nextSortField,\n order: toggleSortOrder(nextSortField === prevSortField ? prevSortOrder : null)\n },\n page: 0\n };\n }\n case CHANGE_PAGE:\n return {...state, page: action.payload};\n case CHANGE_ROWS_PER_PAGE:\n return {...state, rowsPerPage: action.payload};\n default:\n return state;\n }\n};\n\nexport default {\n reducer,\n actions,\n changeVisibleColumns\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n 'basic-view__paper': {\n display: 'flex',\n flexDirection: 'column',\n ...theme.basicView\n }\n}));\n","import Paper, {PaperProps} from '@material-ui/core/Paper';\nimport PropTypes from 'prop-types';\nimport React, {forwardRef, Ref} from 'react';\nimport {useStyles} from './styles';\n\nconst BasicView = forwardRef<Ref<typeof Paper>, PaperProps>(({children, className, ...otherProps}, ref) => {\n const styles = useStyles();\n return (\n <Paper ref={ref} className={className} classes={{root: styles['basic-view__paper']}} {...otherProps}>\n {children}\n </Paper>\n );\n});\n\nBasicView.displayName = 'BasicView';\n\nBasicView.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n\nexport default BasicView;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n paper: {\n minHeight: '180px'\n },\n title: {\n padding: '16px 16px 10px 16px',\n fontSize: '20px',\n fontWeight: 500,\n letterSpacing: '0.25px',\n lineHeight: '24px'\n },\n content: {\n padding: '0 16px'\n },\n contentText: {\n marginBottom: 0,\n fontSize: '16px',\n letterSpacing: '0.15px',\n lineHeight: '24px'\n },\n actionButtons: {\n display: 'flex',\n paddingTop: '4px',\n fontSize: '14px',\n fontWeight: 500,\n letterSpacing: 0,\n lineHeight: '16px',\n '& > div': {\n marginLeft: 'auto'\n }\n },\n discardButton: {\n marginRight: '8px'\n }\n});\n\nexport {useStyles};\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Button as Button} from '@material-ui/core';\nimport {Dialog as Dialog} from '@material-ui/core';\nimport {DialogActions as DialogActions} from '@material-ui/core';\nimport {DialogContent as DialogContent} from '@material-ui/core';\nimport {DialogContentText as DialogContentText} from '@material-ui/core';\nimport {DialogTitle as DialogTitle} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\nexport type Props = {\n open: boolean;\n title: React.ReactNode;\n content: React.ReactNode;\n cancelCaption?: string;\n discardCaption?: string;\n saveCaption?: string;\n disabledSave?: boolean;\n onCancel?: () => void;\n onDiscard?: () => void;\n onSave: () => void;\n};\n\nconst ConfirmationDialog = ({\n open,\n title,\n content,\n onCancel,\n cancelCaption = i18n.text('Cancel'),\n onDiscard,\n discardCaption = '',\n onSave,\n saveCaption = i18n.text('Save'),\n disabledSave = false\n}: Props) => {\n const styles = useStyles();\n\n return (\n <Dialog open={open} onClose={onCancel} classes={{paperScrollPaper: styles.paper}}>\n <DialogTitle classes={{root: styles.title}}>{title}</DialogTitle>\n <DialogContent classes={{root: styles.content}}>\n <DialogContentText classes={{root: styles.contentText}}>{content}</DialogContentText>\n </DialogContent>\n <DialogActions className={styles.actionButtons} disableSpacing>\n {onCancel && <Button onClick={onCancel}>{cancelCaption}</Button>}\n <div>\n {onDiscard && (\n <Button onClick={onDiscard} classes={{root: styles.discardButton}}>\n {discardCaption}\n </Button>\n )}\n <Button onClick={onSave} color=\"primary\" disabled={disabledSave} autoFocus>\n {saveCaption}\n </Button>\n </div>\n </DialogActions>\n </Dialog>\n );\n};\n\nexport default ConfirmationDialog;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst useStyles = makeStyles({\n 'entityType-overflow': {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n\n 'entityType-small': {\n padding: '1px 4px',\n fontSize: '10px',\n lineHeight: 'normal',\n marginRight: '12px',\n borderRadius: '2px'\n },\n 'entityType-medium': {\n padding: '2px 8px 3px',\n borderRadius: '2px',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '15px',\n marginRight: '16px'\n }\n});\n\nexport default useStyles;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport classnames from 'classnames';\nimport {Typography as Typography} from '@material-ui/core';\n\nimport {getEntityType, getEntityTypeLabel, getPropWithInheritance, theme, utils, Entity} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport useStyles from './styles';\n\ntype Props = {\n entity: Entity;\n className?: string;\n size?: 'small' | 'medium';\n};\n\nconst EntityTypeBadge = ({entity, className, size = 'small'}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entityTypeUri = entity.type;\n const entityType = getEntityType(metadata, entityTypeUri) || {};\n const entityTypeColor = getPropWithInheritance(metadata, entityType, 'typeColor') || theme.palette.primary.main;\n const entityTypeLabel = getEntityTypeLabel(metadata, entity);\n\n return (\n <ExpandedValueTooltip value={entityTypeLabel} placement=\"top\">\n <Typography\n style={{\n backgroundColor: entityTypeColor,\n color: utils.Colors.getColor(entityTypeColor) ? '#FFFFFF' : '#212121'\n }}\n className={classnames(styles[`entityType-${size}`], styles['entityType-overflow'], className)}\n component=\"div\"\n >\n {entityTypeLabel}\n </Typography>\n </ExpandedValueTooltip>\n );\n};\n\nexport default EntityTypeBadge;\n","import {makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme & {inactiveBackground: string}) => ({\n profileBandWrapper: {\n // especially for IE (overflow fix)\n flexShrink: 0\n },\n profileBand: {\n display: 'flex',\n padding: '16px 12px 16px 16px',\n alignItems: 'flex-start',\n backgroundColor: '#fff',\n boxShadow: 'inset 0 -1px 0 0 rgba(0,114,206,0.06), inset 0 1px 0 0 rgba(0,114,206,0.06);',\n\n '&:after': {\n // IE workaround for minHeight and centering items\n content: '\"\"',\n minHeight: 'inherit',\n fontSize: 0\n }\n },\n inactive: {\n background: theme.inactiveBackground\n },\n profileIcon: {\n marginRight: '12px'\n },\n imageProfileIcon: {\n width: '48px',\n height: '48px'\n },\n profileInfo: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 1 50%'\n },\n badge: {},\n label: {\n lineHeight: '1.2',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary,\n wordBreak: 'break-word',\n\n '&+ $specialInfo': {\n marginTop: '4px'\n }\n },\n secondaryLabel: {\n display: 'inline-flex',\n color: theme.palette.text.primary,\n marginTop: '2px',\n lineHeight: '16px',\n fontSize: '14px',\n fontWeight: 400,\n\n '&+ $businessCard': {\n marginLeft: '12px'\n }\n },\n businessCard: {\n color: theme.palette.text.secondary,\n display: 'inline-flex',\n fontSize: '14px',\n marginTop: '4px',\n lineHeight: '1.2'\n },\n specialInfo: {\n display: 'flex',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n marginTop: '8px'\n },\n entityType: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n entityId: {\n fontSize: '13px',\n color: theme.palette.text.secondary,\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n '&:hover': {\n textDecoration: 'underline'\n }\n }\n}));\n\nexport default useStyles;\n","import React, {ReactNode, useCallback} from 'react';\nimport classnames from 'classnames';\nimport {useSelector} from 'react-redux';\nimport {isNil} from 'ramda';\nimport {Typography as Typography} from '@material-ui/core';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nimport {getLabel, isActiveObject, getBusinessCardAttributesText, getEntityId, isTempUri, Entity} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\n\nimport EntityAvatar from '../EntityAvatar/EntityAvatar';\nimport EntityTypeBadge from '../EntityTypeBadge/EntityTypeBadge';\n\nimport useStyles from './styles';\n\ntype Props = {\n className?: string;\n entity?: Entity;\n children?: ReactNode;\n};\n\nconst ProfileBand = ({className, entity, children}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const showEntityId = useSelector(mdmModule.selectors.getShowEntityId);\n const handleCopyEntityIdToClipboard = useCallback(() => {\n navigator.clipboard.writeText(getEntityId(entity));\n }, [entity]);\n\n if (isNil(entity)) {\n return null;\n }\n\n const label = getLabel(entity.label);\n const secondaryLabel = entity.secondaryLabel;\n const businessCardText = getBusinessCardAttributesText(metadata, entity);\n const isActive = isActiveObject(entity);\n const entityUri = entity.uri;\n const entityId = getEntityId(entity);\n return (\n <div className={classnames(styles.profileBandWrapper, className)}>\n <div\n className={classnames(styles.profileBand, {\n [styles.inactive]: !isActive\n })}\n data-entity-uri={entityUri}\n >\n <EntityAvatar\n key={entity.uri}\n entity={entity}\n avatarClassName={styles.profileIcon}\n imageClassName={styles.imageProfileIcon}\n />\n <div className={styles.profileInfo}>\n <div>\n <Typography variant=\"h6\" className={styles.label}>\n {label}\n </Typography>\n {secondaryLabel && (\n <Typography variant=\"subtitle2\" className={styles.secondaryLabel}>\n {secondaryLabel}\n </Typography>\n )}\n {businessCardText && (\n <Typography variant=\"subtitle1\" className={styles.businessCard}>\n {businessCardText}\n </Typography>\n )}\n </div>\n <div className={styles.specialInfo}>\n <div className={styles.entityType}>\n <EntityTypeBadge entity={entity} size=\"medium\" className={styles.badge} />\n {!isTempUri(entityUri) && showEntityId && (\n <Tooltip title={i18n.text('Copy to clipboard')}>\n <Typography\n display=\"inline\"\n variant=\"body2\"\n className={styles.entityId}\n onClick={handleCopyEntityIdToClipboard}\n >\n {i18n.text('Entity ID')}: {entityId}\n </Typography>\n </Tooltip>\n )}\n </div>\n </div>\n </div>\n {children && <div>{children}</div>}\n </div>\n </div>\n );\n};\n\nexport default ProfileBand;\n","import React from 'react';\nimport SettingsIcon from '@material-ui/icons/Settings';\nimport i18n from 'ui-i18n';\nimport {DropDownMenuItem} from '../../types';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport DropDownMenuButton from '../DropDownMenuButton/DropDownMenuButton';\n\ntype Props = {\n items: Array<DropDownMenuItem>;\n menuId: string;\n};\n\nconst SettingsMenu = ({items, menuId}: Props) => {\n return (\n <DropDownMenuButton\n buttonComponent={SmallIconButtonWithTooltip}\n buttonProps={{\n icon: SettingsIcon,\n tooltipTitle: i18n.text('Settings'),\n size: 'L'\n }}\n menuId={menuId}\n menuItems={items}\n />\n );\n};\n\nexport default SettingsMenu;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst VerticalDivider = ({height, margin}) => (\n <div\n style={{\n width: '1px',\n height: `${height}px`,\n borderLeft: '1px solid rgba(0,0,0,0.38)',\n margin: `0 ${margin}px`,\n flexShrink: '0'\n }}\n />\n);\n\nVerticalDivider.propTypes = {\n height: PropTypes.number,\n margin: PropTypes.number\n};\n\nexport default VerticalDivider;\n","import {useMemo} from 'react';\nimport {pipe} from 'ramda';\n\ntype UseActions = ({\n actions,\n dispatch\n}: {\n actions: {\n [key: string]: <T>(payload: T) => {type: string; payload: T};\n };\n dispatch: <T>({type, payload}: {type: string; payload: T}) => void;\n}) => {\n [key in keyof typeof actions]: <T>(payload: T) => void;\n};\n\nexport const useActions: UseActions = ({actions, dispatch}) =>\n useMemo(\n () =>\n Object.entries(actions).reduce((acc, [actionName, actionCreator]) => {\n return {...acc, [actionName]: pipe(actionCreator, dispatch)};\n }, {}),\n [dispatch, actions]\n );\n","import {useCallback, useEffect, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {\n andThen,\n fromPairs,\n map,\n otherwise,\n pipe,\n props,\n uniqBy,\n prop,\n propEq,\n when,\n always,\n assocPath,\n dissocPath,\n path,\n pathOr,\n mergeRight\n} from 'ramda';\nimport {\n CollaborationObjectTypes,\n Comment,\n CommentsMap,\n createComment as createCommentRequest,\n createReply as createReplyRequest,\n getComment as getCommentRequest,\n getCommentsCount as getCommentsCountRequest,\n Reply,\n updateComment as updateCommentRequest,\n updateReply as updateReplyRequest,\n deleteComment as deleteCommentRequest,\n deleteReply as deleteReplyRequest,\n getComments as getCommentsRequest,\n isTempUri,\n CollaborationStateMap,\n CommentState\n} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\n\ntype Props = {\n objectIds?: string[];\n objectTypes?: CollaborationObjectTypes[];\n enabled?: boolean;\n};\n\nconst filterReplies = (replyId: string, replies: Reply[]) => replies.filter((reply) => reply.replyId !== replyId);\n\nconst getUpdatedReplies = (comment: Comment, reply: Reply) => {\n const changedReplyIndex = comment.replies.findIndex(({replyId}) => replyId === reply.replyId);\n const newReplies = [...comment.replies];\n newReplies[changedReplyIndex] = reply;\n return newReplies;\n};\n\nconst defaultObjectIds = [];\nconst catchErrorInRequest = (e) => console.error('Collaboration error', e);\nexport const useCollaboration = ({objectIds = defaultObjectIds, objectTypes, enabled = true}: Props) => {\n const entity = useSelector(mdm.selectors.getEntity);\n const tenant: string = useSelector(mdm.selectors.getTenant);\n const collaborationPath: string = useSelector(mdm.selectors.getCollaborationPath);\n const isCollaborationEnabled = useSelector(mdm.selectors.isCollaborationEnabled) && enabled;\n\n const [pageToken, setPageToken] = useState<string | null>(null);\n const [comments, setComments] = useState<Comment[]>([]);\n const [commentsMap, setCommentsMap] = useState<CommentsMap>(null);\n const [currentComment, setCurrentComment] = useState<Comment | null>(null);\n const [sending, setSending] = useState(false);\n const [loading, setLoading] = useState(false);\n const [collaborationStateMap, setCollaborationStateMap] = useState<CollaborationStateMap>({});\n\n const addCommentsToCommentsMap = useCallback((commentsMap: CommentsMap) => {\n setCommentsMap((currentCommentsMap) => ({\n ...currentCommentsMap,\n ...commentsMap\n }));\n }, []);\n const entityUri = entity?.uri;\n const getCommentsCount = useCallback(\n (objectIds: string[], shouldResetCommentsMap = false) => {\n if (isCollaborationEnabled && entityUri && !isTempUri(entityUri)) {\n const onError = (e) => {\n console.warn('Collaboration error', e);\n setCommentsMap(null);\n };\n pipe(\n getCommentsCountRequest,\n andThen(map(props(['objectId', 'comments']))),\n andThen(fromPairs),\n andThen(shouldResetCommentsMap ? setCommentsMap : addCommentsToCommentsMap),\n otherwise(onError)\n )({uris: objectIds, tenant, collaborationPath});\n } else {\n setCommentsMap(null);\n }\n },\n [addCommentsToCommentsMap, collaborationPath, entityUri, isCollaborationEnabled, tenant]\n );\n\n useEffect(() => {\n getCommentsCount(objectIds, true);\n }, [objectIds, getCommentsCount]);\n\n const getComments = useCallback(\n (relatedObjectUri: string, pageToken?: string) => {\n getCommentsRequest({collaborationPath, tenant, relatedObjectUri, pageToken})\n .then(({items, nextPageToken}) => {\n setComments((prevComments) => {\n if (!pageToken) {\n return items;\n }\n return uniqBy(prop('commentId'), [...prevComments, ...items]);\n });\n setPageToken(nextPageToken);\n })\n .catch(catchErrorInRequest);\n },\n [collaborationPath, tenant]\n );\n\n const getComment = useCallback(\n (commentId: string) => {\n setLoading(true);\n\n getCommentRequest({collaborationPath, tenant, commentId})\n .then(setCurrentComment)\n .catch(catchErrorInRequest)\n .finally(() => setLoading(false));\n },\n [collaborationPath, tenant]\n );\n\n const addCommentToState = (comment: Comment, uri: string) => {\n setCurrentComment(comment);\n setCommentsMap((prevCommentsMap) => {\n return {\n ...prevCommentsMap,\n [uri]: [...(prevCommentsMap[uri] || []), {commentId: comment.commentId, replies: 0, status: 'open'}]\n };\n });\n setComments((prevComments) => [comment, ...prevComments]);\n };\n const updateCommentInState = (comment: Comment) => {\n setCurrentComment(comment);\n setComments(map(when(propEq('commentId', comment.commentId), always(comment))));\n };\n const deleteCommentFromState = (commentId: string, uri: string) => {\n setCurrentComment(null);\n setCommentsMap((prevCommentsMap) => {\n const comments = prevCommentsMap[uri] || [];\n return {\n ...prevCommentsMap,\n [uri]: comments.filter((c) => c.commentId !== commentId)\n };\n });\n setComments((prevComments) => {\n return prevComments.filter((comment) => comment.commentId !== commentId);\n });\n };\n const createComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n permanentLink: ''\n };\n\n return createCommentRequest({collaborationPath, tenant, data})\n .then(([comment]) => addCommentToState(comment, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const editComment = useCallback(\n ({content, namedUsers, objectType, uri, relatedObjectUris, commentId, replies}) => {\n setSending(true);\n\n const data = {\n objectId: uri,\n content,\n relatedObjectUris,\n objectType,\n visibility: 'public',\n namedUsers,\n permanentLink: '',\n commentId,\n replies\n };\n\n return updateCommentRequest({collaborationPath, tenant, data})\n .then((comment) => updateCommentInState({...comment, replies}))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const deleteComment = useCallback(\n ({uri, commentId}) => {\n setSending(true);\n\n deleteCommentRequest({collaborationPath, tenant, commentId})\n .then(() => deleteCommentFromState(commentId, uri))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant]\n );\n\n const updateReplyInState = useCallback((reply: Reply, uri: string, commentId: string, isDeleteReply?: boolean) => {\n const newStatus = reply.action === 'resolve' ? 'resolved' : 'open';\n const {replyId} = reply;\n if (newStatus === 'resolved') {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return null;\n }\n });\n } else {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: isDeleteReply\n ? filterReplies(replyId, prevCurrentComment.replies)\n : [...prevCurrentComment.replies, reply]\n };\n }\n });\n }\n\n setCommentsMap((prevCommentsMap) => ({\n ...prevCommentsMap,\n [uri]: (prevCommentsMap[uri] || []).map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply ? comment.replies - 1 : comment.replies + 1\n };\n }\n\n return comment;\n })\n }));\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n status: newStatus,\n replies: isDeleteReply\n ? filterReplies(reply.replyId, comment.replies)\n : [...comment.replies, reply]\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const deleteReply = useCallback(\n ({uri, commentId, reply}) => {\n setSending(true);\n\n deleteReplyRequest({collaborationPath, tenant, commentId, replyId: reply.replyId})\n .then(() => updateReplyInState(reply, uri, commentId, true))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, updateReplyInState, tenant]\n );\n\n const editReplyInState = useCallback((reply: Reply, commentId: string) => {\n setCurrentComment((prevCurrentComment) => {\n if (prevCurrentComment) {\n return {\n ...prevCurrentComment,\n replies: getUpdatedReplies(prevCurrentComment, reply)\n };\n }\n });\n\n setComments((prevComments) => {\n return prevComments.map((comment) => {\n if (comment.commentId === commentId) {\n return {\n ...comment,\n replies: getUpdatedReplies(comment, reply)\n };\n }\n\n return comment;\n });\n });\n }, []);\n\n const editReply = useCallback(\n ({content, namedUsers, commentId, replyId}) => {\n setSending(true);\n const data = {\n content,\n namedUsers\n };\n return updateReplyRequest({collaborationPath, tenant, commentId, replyId, data})\n .then((reply) => editReplyInState(reply, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, editReplyInState]\n );\n\n const createReply = useCallback(\n ({content, namedUsers, commentId, action, uri}) => {\n setSending(true);\n\n const data = {\n content,\n action,\n namedUsers\n };\n\n return createReplyRequest({collaborationPath, tenant, commentId, data})\n .then(([reply]) => updateReplyInState(reply, uri, commentId))\n .catch(catchErrorInRequest)\n .finally(() => setSending(false));\n },\n [collaborationPath, tenant, updateReplyInState]\n );\n\n const resolveThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'resolve', uri});\n },\n [createReply]\n );\n\n const reOpenThread = useCallback(\n ({commentId, uri}) => {\n createReply({content: '', namedUsers: [], commentId, action: 'reopen', uri});\n },\n [createReply]\n );\n\n const clearCurrentComment = useCallback(() => {\n setCurrentComment(null);\n }, []);\n\n const getCommentState = (uri: string, commentUri: string) => pathOr({}, [uri, commentUri], collaborationStateMap);\n\n const clearCommentState = (uri: string, commentUri: string) =>\n setCollaborationStateMap(dissocPath([uri, commentUri]));\n\n const updateCommentState = (uri: string, commentUri: string, newState: CommentState) => {\n setCollaborationStateMap((prevCollaborationStateMap) => {\n const pathToCommentState = [uri, commentUri];\n const prevCommentState = path(pathToCommentState, prevCollaborationStateMap);\n return assocPath(pathToCommentState, mergeRight(prevCommentState, newState), prevCollaborationStateMap);\n });\n };\n\n return {\n clearCurrentComment,\n comments,\n commentsMap,\n getCommentState,\n updateCommentState,\n clearCommentState,\n createComment,\n createReply,\n currentComment,\n deleteComment,\n editComment,\n getComment,\n getComments,\n getCommentsCount,\n loading,\n objectTypes,\n pageToken,\n reOpenThread,\n resolveThread,\n sending,\n deleteReply,\n editReply\n };\n};\n","import {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {cond, pipe, prop, T, when, identity, times, length, ifElse, always} from 'ramda';\nimport mdm, {profile} from '@reltio/mdm-module';\nimport {\n ActivityFilter,\n addGlobalFilterToQuery,\n Entity,\n getRelationsForDataTenantEntity,\n getRelationsForEntity,\n GlobalSearchRequestOptions,\n isDataTenantEntity,\n isTempUri,\n Mode,\n wrapInArrayIfNeeded\n} from '@reltio/mdm-sdk';\nimport {useSafePromise} from './useSafePromise';\nimport {usePrevious} from './usePrevious';\n\ntype Props = {\n sorting?: {\n field: string;\n order: string;\n };\n filter?: string;\n page: number;\n rowsPerPage: number;\n config: {\n id: string;\n content: Record<string, unknown>;\n suggested?: Record<string, unknown>[] | Record<string, unknown>;\n };\n entity: Entity;\n relationActivityFilter?: ActivityFilter;\n mode: Mode;\n searchByOv?: boolean;\n};\n\nconst buildSuggestedIds = when(\n identity,\n pipe(\n wrapInArrayIfNeeded,\n length,\n times((n) => n + 1)\n )\n);\n\nexport const useRelationsLoader = ({\n sorting,\n filter,\n page,\n rowsPerPage,\n config,\n entity,\n relationActivityFilter,\n mode,\n searchByOv = false\n}: Props) => {\n const [isLoading, setIsLoading] = useState(false);\n const dispatch = useDispatch();\n const tenant = useSelector(mdm.selectors.getTenant) as string;\n const dtssPath = useSelector(mdm.selectors.getDtssPath) as string;\n const {activityFilter, globalFilter}: GlobalSearchRequestOptions =\n useSelector(mdm.selectors.getGlobalSearchRequestOptions) || {};\n const safePromise = useSafePromise();\n const suggested = config.suggested;\n const options = useMemo(\n () => ({\n searchByOv\n }),\n [searchByOv]\n );\n const loadRelations = useCallback(() => {\n if (entity?.uri) {\n const requestConfig = {\n ...config.content,\n sortBy: sorting?.field,\n order: sorting?.order,\n returnDates: true,\n returnObjects: true,\n activeness: {\n relation: relationActivityFilter || ActivityFilter.ALL,\n entity: activityFilter\n },\n max: rowsPerPage,\n offset: page * rowsPerPage,\n filter: addGlobalFilterToQuery(globalFilter, filter) || undefined,\n suggested: buildSuggestedIds(suggested)\n };\n const configs = [requestConfig].concat(\n ifElse(\n identity,\n pipe(wrapInArrayIfNeeded, (suggested) =>\n suggested.map((config, i) => ({...config, id: requestConfig.suggested[i]}))\n ),\n always([])\n )(suggested)\n );\n\n const request = cond([\n [pipe(prop('uri'), isTempUri), () => Promise.resolve([{total: 0}])],\n [\n isDataTenantEntity,\n (entity) =>\n getRelationsForDataTenantEntity({\n entityUri: entity.uri,\n configs: configs,\n customerTenant: tenant,\n dataTenant: entity.dataTenant,\n dtssPath,\n options\n })\n ],\n [T, (entity) => getRelationsForEntity(entity.uri, configs, options)]\n ]);\n setIsLoading(true);\n safePromise(request(entity))\n .then(([{connections, total}]) => {\n dispatch(profile.relations.actions.relationsLoaded({id: config.id, connections, total}));\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n activityFilter,\n config,\n dispatch,\n dtssPath,\n entity?.uri,\n entity?.dataTenant,\n filter,\n globalFilter,\n page,\n relationActivityFilter,\n rowsPerPage,\n safePromise,\n sorting,\n tenant,\n options\n ]);\n const isRequestSentRef = useRef<boolean>(false);\n isRequestSentRef.current = false;\n useEffect(() => {\n isRequestSentRef.current = true;\n loadRelations();\n }, [loadRelations]);\n const prevMode = usePrevious(mode);\n useEffect(() => {\n if (mode === Mode.Viewing && !isRequestSentRef.current && prevMode !== mode) {\n isRequestSentRef.current = true;\n loadRelations();\n }\n }, [loadRelations, mode, prevMode]);\n return {isLoading, reload: loadRelations};\n};\n","import {useEffect, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {getAllUsersForTenant} from '@reltio/mdm-sdk';\nimport mdm from '@reltio/mdm-module';\n\nexport const useUsers = () => {\n const [users, setUsers] = useState([]);\n\n const tenant = useSelector(mdm.selectors.getTenant);\n const servicesPath = useSelector(mdm.selectors.getServicesPath);\n\n const onError = (e) => {\n console.warn('Users error', e);\n setUsers([]);\n };\n\n useEffect(() => {\n getAllUsersForTenant({tenant, servicesPath})\n .then(({array}) => setUsers(array))\n .catch(onError);\n }, [tenant, servicesPath]);\n\n return users;\n};\n","import {useEffect, useState} from 'react';\nimport {useDidUpdateEffect} from '@reltio/components';\nimport {\n RelationshipsSavedState,\n RelationsTableSavedState,\n AttributesTableSavedState\n} from './../types/RelationshipsSavedState';\n\nconst DEFAULT_SAVED_STATE = {\n relationsTable: {},\n attributesTable: {}\n};\n\nconst useSavedState = ({getSavedState, saveState, entityTypeUri}) => {\n const [savedState, setSavedState] = useState<RelationshipsSavedState>(DEFAULT_SAVED_STATE);\n const [changedRelationsState, setRelationsChangedState] = useState<Record<string, RelationsTableSavedState>>(null);\n\n const saveChangesLocallyForPrevEntityType = () => {\n if (changedRelationsState) {\n setSavedState({...savedState, relationsTable: changedRelationsState});\n setRelationsChangedState(null);\n }\n };\n useDidUpdateEffect(saveChangesLocallyForPrevEntityType, [entityTypeUri]);\n\n const updateRelationsTableSavedState = (stateToSave: RelationsTableSavedState) => {\n const changedState: Record<string, RelationsTableSavedState> = {\n ...savedState.relationsTable,\n [entityTypeUri]: stateToSave\n };\n setRelationsChangedState(changedState);\n saveState({...savedState, relationsTable: changedState});\n };\n\n const updateAttributesTableSavedState = (stateToSave: AttributesTableSavedState) => {\n saveState({...savedState, attributesTable: stateToSave});\n };\n\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n getSavedState()\n .then((savedState) => {\n setSavedState(savedState || DEFAULT_SAVED_STATE);\n })\n .then((_) => setIsLoading(false))\n .catch((_) => setIsLoading(false));\n }, []); // eslint-disable-line\n return {\n isLoading,\n relationsTableSavedState: savedState.relationsTable?.[entityTypeUri],\n attributesTableSavedState: savedState.attributesTable,\n updateRelationsTableSavedState,\n updateAttributesTableSavedState\n };\n};\n\nexport default useSavedState;\n","import {\n attributeUriToSearchUri,\n DataTypes,\n getAttrDataTypeDefinition,\n getReadableAttributesList,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {adjust, assoc, concat, find, map, pipe, pluck, prop, propEq, reject, uniqBy} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {RelationshipsTableColumnData} from '../../../types';\n\nconst RELATION_TYPE_COLUMN_ID = 'relation.type';\nconst ATTRIBUTES_COLUMN_ID = 'relation.attributes';\n\nexport const DEFAULT_COLUMNS_DATA = [\n {\n id: 'entity.label',\n get label() {\n return i18n.text('Profile');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_STRING\n },\n hideable: false,\n filterable: false,\n initialWidth: 280,\n autoResize: false\n },\n {\n id: RELATION_TYPE_COLUMN_ID,\n get label() {\n return i18n.text('Type');\n }\n },\n {\n id: 'relation.label',\n get label() {\n return i18n.text('Directional Label');\n },\n filterable: false,\n dataTypeDefinition: {\n type: DataTypes.TYPE_STRING\n }\n },\n {\n id: 'relation.activeness.startDate',\n get label() {\n return i18n.text('Start Date');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_ACTIVENESS_DATE\n }\n },\n {\n id: 'relation.activeness.endDate',\n get label() {\n return i18n.text('End Date');\n },\n dataTypeDefinition: {\n type: DataTypes.TYPE_ACTIVENESS_DATE\n }\n },\n {\n id: ATTRIBUTES_COLUMN_ID,\n get label() {\n return i18n.text('Attributes');\n },\n sortable: false,\n filterable: false,\n maxAttrsToShow: 7\n }\n];\n\nexport const DEFAULT_COLUMNS = pluck('id', DEFAULT_COLUMNS_DATA);\nexport const ALL_TYPES_COLUMNS = [RELATION_TYPE_COLUMN_ID, ATTRIBUTES_COLUMN_ID];\n\nexport const ROWS_PER_PAGE_OPTIONS = [20, 50, 100];\n\nconst getColumnIdFromAttrUri = pipe(attributeUriToSearchUri, concat('relation.'));\n\nconst getColumnsDataFromRelationAttributes = pipe(\n map((attr) => ({\n id: getColumnIdFromAttrUri(attr.uri),\n label: attr.label,\n dataTypeDefinition: getAttrDataTypeDefinition(attr)\n })),\n uniqBy(prop('id'))\n);\n\nconst getRelationColumnDataType = (relationTypes: TRelationType[]) => ({\n type: DataTypes.TYPE_SELECT,\n options: relationTypes.map(({uri, label}) => ({value: uri, label}))\n});\n\nconst updateColumnData = (columnId: string, updateFn) => (columnsData: RelationshipsTableColumnData[]) =>\n adjust(columnsData.findIndex(propEq('id', columnId)), updateFn, columnsData);\n\nconst updateRelationTypeColumn = (relationTypes: TRelationType[]) =>\n updateColumnData(RELATION_TYPE_COLUMN_ID, assoc('dataTypeDefinition', getRelationColumnDataType(relationTypes)));\n\nexport const getColumnsData = (relationTypes: TRelationType[], currentRelationType: string) =>\n currentRelationType\n ? pipe(\n find((relationType: TRelationType) => relationType.uri === currentRelationType),\n getReadableAttributesList,\n getColumnsDataFromRelationAttributes,\n concat(DEFAULT_COLUMNS_DATA),\n reject(({id}) => ALL_TYPES_COLUMNS.includes(id))\n )(relationTypes)\n : updateRelationTypeColumn(relationTypes)(DEFAULT_COLUMNS_DATA);\n","import {\n assoc,\n pipe,\n evolve,\n either,\n path,\n prop,\n propOr,\n ifElse,\n always,\n without,\n concat,\n intersection,\n pick,\n unless,\n isNil,\n filter\n} from 'ramda';\nimport {useReducer} from 'react';\nimport {basicTableViewState, createStandardAction, Sorting, useActions} from '@reltio/components';\nimport {ALL_TYPES_COLUMNS, DEFAULT_COLUMNS} from '../components/RelationshipsView/helpers/tableHelpers';\nimport {validateFilterValue} from '@reltio/mdm-sdk';\n\ntype Props = {\n defaultColumns: string[];\n defaultSorting: Sorting;\n defaultRowsPerPage: number;\n};\n\nconst CHANGE_RELATION_TYPE = 'CHANGE_RELATION_TYPE';\nconst APPLY_SAVED_STATE = 'APPLY_SAVED_STATE';\nconst SAVE_CURRENT_STATE = 'SAVE_CURRENT_STATE';\n\nconst actions = {\n ...basicTableViewState.actions,\n changeRelationType: createStandardAction(CHANGE_RELATION_TYPE),\n applySavedState: createStandardAction(APPLY_SAVED_STATE),\n saveCurrentState: createStandardAction(SAVE_CURRENT_STATE)\n};\n\nconst resetPageNumber = assoc('page', 0);\n\nconst getDefaultVisibleColumnsForCurrentRelationType = (state) => {\n return pipe(\n prop('visibleColumns'),\n ifElse(always(state.currentRelationType), without(ALL_TYPES_COLUMNS), concat(ALL_TYPES_COLUMNS)),\n intersection(DEFAULT_COLUMNS)\n )(state);\n};\n\nconst getSavedVisibleColumnsForCurrentRelationType = (state) =>\n path(['visibleColumnsForRelationTypes', `${state.currentRelationType}`], state);\n\nconst changeVisibleColumnsForCurrentRelationType = (state) => {\n const nextVisibleColumns = either(\n getSavedVisibleColumnsForCurrentRelationType,\n getDefaultVisibleColumnsForCurrentRelationType\n )(state);\n return basicTableViewState.changeVisibleColumns(state, nextVisibleColumns);\n};\n\nconst getFiltersFromSavedState = pipe(\n propOr(null, 'filters'),\n unless(\n isNil,\n filter(({filter, value}) => validateFilterValue(filter, value))\n )\n);\n\nconst saveVisibleColumnsForCurrentRelationType = (state) => {\n const {currentRelationType, visibleColumns} = state;\n return evolve(\n {\n visibleColumnsForRelationTypes: assoc(`${currentRelationType}`, visibleColumns)\n },\n state\n );\n};\n\nconst getStateToSave = pipe(\n saveVisibleColumnsForCurrentRelationType,\n pick(['currentRelationType', 'visibleColumnsForRelationTypes', 'filters', 'sorting'])\n);\n\nexport const useRelationshipsTable = ({defaultColumns, defaultSorting, defaultRowsPerPage}: Props) => {\n const initState = {\n visibleColumns: defaultColumns,\n filters: null,\n sorting: defaultSorting,\n page: 0,\n rowsPerPage: defaultRowsPerPage,\n currentRelationType: null,\n stateToSave: null,\n visibleColumnsForRelationTypes: {},\n entityTypeOfAppliedSavedState: null\n };\n const [state, dispatch] = useReducer((state, action) => {\n switch (action.type) {\n case CHANGE_RELATION_TYPE: {\n const nextRelationType = action.payload;\n return pipe(\n saveVisibleColumnsForCurrentRelationType,\n assoc('currentRelationType', nextRelationType),\n changeVisibleColumnsForCurrentRelationType,\n resetPageNumber\n )(state);\n }\n case APPLY_SAVED_STATE: {\n const {savedState, entityTypeUri} = action.payload;\n const visibleColumns = savedState\n ? getSavedVisibleColumnsForCurrentRelationType(savedState)\n : state.visibleColumns;\n const filters = savedState ? getFiltersFromSavedState(savedState) : state.filters;\n return {\n ...state,\n ...savedState,\n filters,\n visibleColumns,\n entityTypeOfAppliedSavedState: entityTypeUri\n };\n }\n case SAVE_CURRENT_STATE: {\n return {\n ...state,\n stateToSave: getStateToSave(state)\n };\n }\n default:\n return basicTableViewState.reducer(state, action);\n }\n }, initState);\n const tableActions = useActions({actions, dispatch});\n return [state, tableActions];\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n select: {\n fontSize: '13px',\n color: 'rgba(0,0,0,.6)',\n paddingLeft: '15px',\n '&&': {\n paddingRight: '35px'\n }\n },\n selectMenu: {\n '& li': {\n fontSize: '13px',\n height: '32px'\n }\n },\n textField: {\n maxWidth: '100%'\n }\n});\n","import React, {useMemo} from 'react';\nimport i18n from 'ui-i18n';\nimport {map, concat, pipe} from 'ramda';\nimport {TRelationType} from '@reltio/mdm-sdk';\nimport {DropDownEditor} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: string;\n onChange: (value: string) => void;\n relationTypes: TRelationType[];\n className?: string;\n};\n\nconst RelationTypeSelector = ({value, onChange, relationTypes, className}: Props) => {\n const styles = useStyles();\n const entries = useMemo(\n () =>\n pipe(\n map(({label, uri}) => ({label, value: uri})),\n concat([{value: '', label: i18n.text('All types')}])\n )(relationTypes),\n [relationTypes]\n );\n\n return (\n <div className={className}>\n <DropDownEditor\n displayEmpty\n disableUnderline\n classes={{\n select: styles.select\n }}\n TextFieldProps={{\n classes: {\n root: styles.textField\n }\n }}\n MenuProps={{\n classes: {\n list: styles.selectMenu\n }\n }}\n value={value || ''}\n entries={entries}\n onChange={(value: string) => onChange(value || null)}\n />\n </div>\n );\n};\n\nexport default RelationTypeSelector;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n header: {\n height: '56px',\n boxSizing: 'border-box',\n paddingRight: '10px'\n },\n title: {\n fontSize: '16px'\n },\n total: {\n fontSize: '14px',\n color: theme.palette.text.secondary,\n flexShrink: 0,\n marginRight: '5px'\n },\n relationTypeSelector: {\n margin: '0px 10px 0 30px',\n overflow: 'hidden'\n }\n}));\n","import React, {memo, useMemo} from 'react';\nimport i18n from 'ui-i18n';\nimport {TRelationType} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport {\n BasicViewHeader,\n ColumnsSettings,\n DropDownMenuItem,\n FilterButton,\n SettingsMenu,\n Spacer,\n VerticalDivider\n} from '@reltio/components';\nimport RelationTypeSelector from '../RelationTypeSelector/RelationTypeSelector';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n total: number;\n filteringEnabled: boolean;\n onToggleFilters: () => void;\n columnsData: Record<string, unknown>[];\n selectedColumns: string[];\n currentRelationType: string;\n onRelationTypeChange: (value: string) => void;\n relationTypes: TRelationType[];\n onChangeColumns: (columns: string[]) => void;\n searchByOv: boolean;\n onToggleSearchByOv: () => void;\n};\n\nconst RelationshipsTableHeader = ({\n total,\n filteringEnabled,\n onToggleFilters,\n columnsData,\n selectedColumns,\n currentRelationType,\n onRelationTypeChange,\n relationTypes,\n onChangeColumns,\n searchByOv,\n onToggleSearchByOv\n}: Props) => {\n const styles = useStyles();\n\n const settingItems = useMemo<Array<DropDownMenuItem>>(() => {\n return [\n {\n selected: searchByOv,\n selectable: true,\n text: i18n.text('Search by OV only'),\n onClick: onToggleSearchByOv,\n id: 'showNonOv'\n }\n ];\n }, [onToggleSearchByOv, searchByOv]);\n\n return (\n <BasicViewHeader title={i18n.text('Relationships')} classes={{root: styles.header, title: styles.title}}>\n {relationTypes.length > 0 && (\n <RelationTypeSelector\n className={styles.relationTypeSelector}\n value={currentRelationType}\n onChange={onRelationTypeChange}\n relationTypes={relationTypes}\n />\n )}\n <VerticalDivider height={28} margin={20} />\n <Typography variant=\"caption\" className={styles.total}>\n {total === 1\n ? i18n.text('${count} record', {count: total})\n : i18n.text('${count} records', {count: total})}\n </Typography>\n <Spacer />\n <SettingsMenu items={settingItems} menuId=\"relationships-view-settings\" />\n <FilterButton enabled={filteringEnabled} onClick={onToggleFilters} />\n <VerticalDivider height={28} margin={8} />\n <ColumnsSettings\n columnsData={columnsData}\n selectedColumns={selectedColumns}\n onChangeColumns={onChangeColumns}\n />\n </BasicViewHeader>\n );\n};\n\nexport default memo(RelationshipsTableHeader);\n","import {makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n headCell: {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n width: '100%',\n fontSize: '12px',\n color: theme.palette.text.secondary,\n background: 'linear-gradient(0deg, rgba(0, 0, 0, 0.06), rgba(0, 0, 0, 0.06)), #FFFFFF'\n },\n rowCell: {\n fontSize: '13px',\n overflow: 'hidden',\n overflowWrap: 'break-word'\n },\n inactiveRowCell: {\n opacity: 0.6\n },\n defaultWrapper: {\n padding: '15px 25px 0 25px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n },\n entityCell: {\n display: 'flex',\n alignItems: 'flex-start',\n padding: '15px'\n },\n entityAvatar: {\n transform: 'scale(0.5)',\n margin: '-10px 0 -10px -10px'\n },\n inactiveEntityAvatar: {\n overflow: 'initial',\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n backgroundColor: 'rgb(209, 206, 206)',\n border: '1px solid rgba(0, 0, 0, 1)',\n borderRadius: '2px',\n width: '12px',\n right: 0,\n bottom: 0,\n height: '12px'\n },\n '& > img': {\n borderRadius: '50%',\n overflow: 'hidden'\n }\n },\n entityLabel: {\n color: theme.palette.primary.main,\n textDecoration: 'none',\n fontWeight: 500\n },\n attributesWrapper: {\n padding: '15px 25px 10px 25px',\n color: 'rgba(0,0,0,0.87)'\n },\n commentsContainer: {\n marginLeft: 'auto'\n }\n}));\n","import React from 'react';\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {withFilterAtBottom} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\nconst HeadCellRenderer = (props) => {\n const styles = useStyles();\n return (\n <div className={styles.headCell}>\n <DefaultHeadCellRenderer {...props} />\n </div>\n );\n};\n\nexport default withFilterAtBottom(HeadCellRenderer);\n","import React from 'react';\nimport classnames from 'classnames';\nimport {useSelector} from 'react-redux';\nimport {CommentsContainer, COMMENTS_CONTAINER_VISIBILITY_AREA, EntityTypeIcon, EntityUriLink} from '@reltio/components';\nimport {\n CollaborationObjectTypes,\n ConnectionEntity,\n ConnectionRelation,\n createRelatedObjectUris,\n getEntityUriForLink,\n getLabel,\n TEntityType\n} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: {\n entity: ConnectionEntity;\n relation: ConnectionRelation;\n entityType: TEntityType;\n };\n isInactiveRelation?: boolean;\n};\n\nconst EntityProfileRenderer = ({value: {entity, entityType, relation}, isInactiveRelation}: Props) => {\n const styles = useStyles();\n const currentEntityUri = useSelector(mdmModule.selectors.getEntityUri);\n return (\n <div className={classnames(styles.entityCell, COMMENTS_CONTAINER_VISIBILITY_AREA)}>\n <EntityTypeIcon\n className={classnames(styles.entityAvatar, {[styles.inactiveEntityAvatar]: isInactiveRelation})}\n entityType={entityType}\n />\n <EntityUriLink\n value={getEntityUriForLink({uri: entity.entityUri, dataTenant: entity.dataTenant})}\n className={styles.entityLabel}\n >\n {getLabel(entity.entityLabel)}\n </EntityUriLink>\n <div className={styles.commentsContainer} onClick={(e) => e.stopPropagation()}>\n <CommentsContainer\n uri={relation.relationUri}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.RELATION, {\n entityUri: currentEntityUri,\n connection: {relation, entity}\n })}\n objectType={CollaborationObjectTypes.RELATION}\n allowOnlyOneComment\n />\n </div>\n </div>\n );\n};\n\nexport default EntityProfileRenderer;\n","import React from 'react';\nimport {ReadOnlyAttributesList} from '@reltio/components';\nimport {AttributeType, RecordAttributesType} from '@reltio/mdm-sdk';\nimport {RelationshipsTableColumnData} from '../../../types';\nimport {useStyles} from './styles';\n\ntype Props = {\n columnData: RelationshipsTableColumnData;\n value: {\n attributeTypes: AttributeType[];\n attributes: RecordAttributesType;\n };\n};\n\nconst AttributesRenderer = ({columnData, value: {attributes, attributeTypes}}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.attributesWrapper} onClick={(e) => e.stopPropagation()}>\n <ReadOnlyAttributesList\n max={columnData.maxAttrsToShow}\n entity={{attributes}}\n attrTypes={attributeTypes}\n drawLines={false}\n />\n </div>\n );\n};\n\nexport default AttributesRenderer;\n","import React from 'react';\nimport {DataTypeValue} from '@reltio/components';\nimport {useStyles} from './styles';\nimport {RelationshipsTableColumnData} from '../../../types';\n\ntype Props = {\n columnData: RelationshipsTableColumnData;\n value: unknown;\n};\n\nconst DefaultCellValueRenderer = ({value, columnData: {dataTypeDefinition}}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.defaultWrapper}>\n <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} />\n </div>\n );\n};\n\nexport default DefaultCellValueRenderer;\n","import {assoc, split, slice, values, length, path, cond, map, pathEq, pipe, reduce, T} from 'ramda';\nimport {defaultGetRowCellHeight} from '@reltio/components';\nimport {Connection, getEntityType, getRelationType, getOvAttributeValuesByPath, Metadata} from '@reltio/mdm-sdk';\nimport HeadCellRenderer from './cell-renderers/HeadCellRenderer';\nimport EntityProfileRenderer from './cell-renderers/EntityProfileRenderer';\nimport AttributesRenderer from './cell-renderers/AttributesRenderer';\nimport DefaultCellValueRenderer from './cell-renderers/DefaultCellValueRenderer';\nimport {RelationshipsTableColumnData} from '../../types';\n\nconst getAttrPathFromColumnId = pipe(split('.'), slice(2, Infinity));\n\nconst getRelationAttributeValues = (attrPath, relation) =>\n pipe(path(['object', 'attributes']), getOvAttributeValuesByPath(attrPath))(relation);\n\nconst getRowValueByColumnId = (metadata: Metadata, {entity, relation}: Connection, columnId: string) => {\n switch (columnId) {\n case 'entity.label':\n return {entity, entityType: getEntityType(metadata, entity.entityType), relation};\n case 'relation.type':\n return relation.relationType;\n case 'relation.label':\n return relation.relationLabel;\n case 'relation.activeness.startDate':\n return relation.startDate;\n case 'relation.activeness.endDate':\n return relation.endDate;\n case 'relation.attributes':\n return {\n attributes: relation.object.attributes,\n attributeTypes: getRelationType(metadata, relation.relationType).attributes\n };\n default: {\n const attrPath = getAttrPathFromColumnId(columnId);\n return getRelationAttributeValues(attrPath, relation);\n }\n }\n};\n\nconst getBasicTableRowsData = (\n metadata: Metadata,\n columnsData: RelationshipsTableColumnData[],\n connections: Connection[]\n) => {\n return (connections || []).map((connection) =>\n pipe(\n reduce((acc, {id}) => assoc(id, getRowValueByColumnId(metadata, connection, id), acc), {}),\n assoc('rawValue', connection)\n )(columnsData)\n );\n};\n\nconst getNestedPathByColumnId = (columnId: string) => {\n if (columnId.startsWith('relation.attributes')) {\n const attrPath = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nconst getCellValueRenderer = (columnId: string) => {\n switch (columnId) {\n case 'entity.label':\n return EntityProfileRenderer;\n case 'relation.attributes':\n return AttributesRenderer;\n default:\n return DefaultCellValueRenderer;\n }\n};\n\nconst getColumnDataByColumnId = (columnData: RelationshipsTableColumnData) => ({\n sortable: true,\n resizable: true,\n ...columnData,\n headCellRenderer: HeadCellRenderer,\n nestedPath: getNestedPathByColumnId(columnData.id),\n rowCellValueRenderer: getCellValueRenderer(columnData.id)\n});\n\nconst getBasicTableColumnsData = map(getColumnDataByColumnId);\n\nconst calculateAttributesCellHeight = ({columnData, cell}) => {\n const attributesCount = pipe(path(['values', 0, 'attributes']), values, length)(cell);\n return attributesCount > columnData.maxAttrsToShow\n ? columnData.maxAttrsToShow * 26 + 49\n : attributesCount * 26 + 25;\n};\n\nconst getStaticRowCellHeight = cond([\n [pathEq(['columnData', 'id'], 'relation.attributes'), calculateAttributesCellHeight],\n [T, defaultGetRowCellHeight]\n]);\n\nexport {getBasicTableRowsData, getBasicTableColumnsData, getStaticRowCellHeight};\n","import React from 'react';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\ntype Props = {\n cell: {\n values: unknown[];\n };\n CellValueRenderer: React.ElementType;\n isInactiveRelation?: boolean;\n};\n\nconst RowCellRenderer = ({cell, CellValueRenderer, ...otherProps}: Props) => {\n const styles = useStyles();\n return (\n <div className={classnames(styles.rowCell, {[styles.inactiveRowCell]: otherProps.isInactiveRelation})}>\n {cell.values.map((value, index) => (\n <CellValueRenderer key={index} value={value} {...otherProps} />\n ))}\n </div>\n );\n};\n\nexport default RowCellRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n menuItem: {\n minHeight: '32px',\n color: theme.palette.text.secondary\n },\n menuText: {\n color: theme.palette.text.primary,\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 0,\n marginLeft: '16px'\n },\n buttons: {\n display: 'flex',\n alignItems: 'center',\n paddingRight: '5px'\n }\n}));\n","import React, {forwardRef, ReactNode} from 'react';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {noop, withTooltip} from '@reltio/components';\nimport {useStyles} from './styles';\n\nconst MenuItemWithTooltip = withTooltip(MenuItem);\n\ntype Item = {\n text?: string;\n disabled?: boolean;\n icon: ReactNode;\n tooltip?: string;\n onClick?: (e) => void;\n};\n\ntype Props = {\n item: Item;\n onMenuClose?: () => void;\n};\n\nconst MenuItemRenderer = forwardRef(({item, onMenuClose = noop}: Props, ref: React.Ref<HTMLLIElement>) => {\n const styles = useStyles();\n const {icon, disabled, text, tooltip, onClick} = item;\n const handleClick = (e) => {\n onMenuClose();\n onClick(e);\n };\n\n return (\n <MenuItemWithTooltip\n tooltipTitle={tooltip}\n showForDisabled={true}\n classes={{root: styles.menuItem}}\n onClick={handleClick}\n disabled={disabled}\n ref={ref}\n >\n {icon}\n <Typography classes={{root: styles.menuText}}>{text}</Typography>\n </MenuItemWithTooltip>\n );\n});\nMenuItemRenderer.displayName = 'MenuItemRenderer';\n\nexport default MenuItemRenderer;\n","import React, {useCallback, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport i18n from 'ui-i18n';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {ConfirmationDialog, DropDownMenuButton, noop, SmallIconButton} from '@reltio/components';\nimport MenuItemRenderer from './MenuItemRenderer';\nimport {checkMetadataPermission, Connection, getLabel, getRelationType, MetadataPermissions} from '@reltio/mdm-sdk';\nimport {pipe, prop} from 'ramda';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n disableDelete?: boolean;\n connection: Connection;\n onMenuOpen?: () => void;\n onMenuClose?: () => void;\n onDelete: () => void;\n};\n\nexport const RelationshipMenuButton = ({\n disableDelete,\n connection: {entity, relation},\n onMenuOpen = noop,\n onMenuClose = noop,\n onDelete\n}: Props) => {\n const styles = useStyles();\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n\n const hasDeletePermission = pipe(\n prop('relationType'),\n getRelationType(metadata),\n checkMetadataPermission(MetadataPermissions.DELETE)\n )(relation);\n\n const canDelete = !disableDelete && hasDeletePermission;\n\n const [pendingDeletion, setPendingDeletion] = useState(false);\n const showDeleteConfirmation = () => setPendingDeletion(true);\n const hideDeleteConfirmation = () => setPendingDeletion(false);\n\n const actions = [\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: showDeleteConfirmation\n }\n ];\n\n const handleMenuClose = useCallback(() => {\n if (!pendingDeletion) {\n onMenuClose();\n }\n }, [pendingDeletion, onMenuClose]);\n const truncateWithEllipsis = (text: string) => (text.length > 17 ? `${text.substring(0, 17)}...` : text);\n\n return (\n <div className={styles.buttons}>\n <DropDownMenuButton\n MenuItemRenderer={MenuItemRenderer}\n menuId={'relationships-table-actions'}\n buttonComponent={SmallIconButton}\n buttonProps={{\n icon: MoreVertIcon,\n size: 'S'\n }}\n menuItems={actions}\n onMenuOpen={onMenuOpen}\n onMenuClose={handleMenuClose}\n />\n <ConfirmationDialog\n open={pendingDeletion}\n title={i18n.text('Do you want to delete relationship \"${label}\"?', {\n label: truncateWithEllipsis(getLabel(entity.entityLabel))\n })}\n content={i18n.text(\n 'This relationship will be removed and all the values in the relationship will be permanently deleted. \\\nAre you sure you want to delete this relationship?'\n )}\n onSave={pipe(hideDeleteConfirmation, onMenuClose, onDelete)}\n onDiscard={pipe(hideDeleteConfirmation, onMenuClose)}\n saveCaption={i18n.text('Delete')}\n discardCaption={i18n.text('Cancel')}\n />\n </div>\n );\n};\n\nexport default RelationshipMenuButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n tableContainer: {\n flex: 1,\n overflow: 'hidden',\n display: 'flex',\n zIndex: 0\n },\n hoveredRowRightContentWrapper: {\n width: '100%',\n pointerEvents: 'none!important' as any\n },\n menuButtonContainer: {\n position: 'absolute',\n top: 'calc(50% - 12px)',\n right: 0,\n pointerEvents: 'all'\n },\n tooltipAnchor: {\n width: '100%',\n height: '1px'\n }\n});\n","import React, {ForwardedRef, memo, useCallback, useMemo, useState} from 'react';\nimport {Connection, isActiveObject, Metadata} from '@reltio/mdm-sdk';\nimport {\n BasicTable,\n ColumnData,\n ColumnFilter,\n RowCellAutoSizer,\n Sorting,\n useDynamicRowCellHeight\n} from '@reltio/components';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getBasicTableColumnsData, getBasicTableRowsData, getStaticRowCellHeight} from './helpers';\nimport RowCellRenderer from './cell-renderers/RowCellRenderer';\nimport {either} from 'ramda';\nimport RelationshipMenuButton from '../RelationshipMenuButton/RelationshipMenuButton';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n metadata: Metadata;\n connections: Connection[];\n columnsData: ColumnData[];\n sorting: Sorting;\n onSort: (field: string) => void;\n filters?: Record<string, ColumnFilter>;\n onFilter: (event: {columnId: string; filter: ColumnFilter}) => void;\n onRowClick: (rowIndex: number) => void;\n onDelete: (relationUri: string) => void;\n tableRef: ForwardedRef<unknown>;\n readOnly?: boolean;\n};\n\nconst RelationshipsTable = ({\n metadata,\n connections,\n columnsData,\n sorting,\n onSort,\n filters,\n onFilter,\n onRowClick,\n tableRef,\n onDelete,\n readOnly\n}: Props) => {\n const styles = useStyles();\n\n const tableRowsData = useMemo(() => getBasicTableRowsData(metadata, columnsData, connections), [\n metadata,\n connections,\n columnsData\n ]);\n const tableColumnsData = useMemo(() => getBasicTableColumnsData(columnsData), [columnsData]);\n\n const {getDynamicRowCellHeight, changeRowCellHeight} = useDynamicRowCellHeight();\n const getRowCellHeight = useCallback(either(getDynamicRowCellHeight, getStaticRowCellHeight), [\n getDynamicRowCellHeight,\n getStaticRowCellHeight\n ]);\n const [hoverRowIndex, setHoverRowIndex] = useState<number>(null);\n\n const renderRowCell = useCallback(\n (props) => {\n const isInactiveRelation = !isActiveObject(props.rowValue.rawValue.relation);\n return (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...props}>\n <RowCellRenderer {...props} isInactiveRelation={isInactiveRelation} />\n </RowCellAutoSizer>\n );\n },\n [changeRowCellHeight]\n );\n\n const [isActionsMenuOpen, setIsActionsMenuOpen] = useState(false);\n\n const handleActionsMenuOpen = useCallback(() => setIsActionsMenuOpen(true), []);\n const handleActionsMenuClose = useCallback(() => {\n setHoverRowIndex(null);\n setIsActionsMenuOpen(false);\n }, []);\n\n const onRowHover = useCallback(\n (rowIndex) => setHoverRowIndex((prevHoverRowIndex) => (isActionsMenuOpen ? prevHoverRowIndex : rowIndex)),\n [isActionsMenuOpen]\n );\n\n const hoveredRowRightContent = useMemo(() => {\n const connection: Connection = hoverRowIndex != null ? tableRowsData[hoverRowIndex].rawValue : null;\n const isInactiveRelation = !isActiveObject(connection?.relation);\n\n return (\n connection && (\n <>\n <Tooltip\n key={connection.relation.relationUri}\n open={isInactiveRelation}\n title={i18n.text('Inactive')}\n >\n <div className={styles.tooltipAnchor} />\n </Tooltip>\n <div className={styles.menuButtonContainer}>\n <RelationshipMenuButton\n disableDelete={readOnly}\n connection={connection}\n onMenuOpen={handleActionsMenuOpen}\n onMenuClose={handleActionsMenuClose}\n onDelete={() => onDelete(connection.relation.relationUri)}\n />\n </div>\n </>\n )\n );\n }, [onDelete, tableRowsData, hoverRowIndex]);\n\n return (\n <div className={styles.tableContainer}>\n <BasicTable\n fixFirstColumn={true}\n columnsData={tableColumnsData}\n rowsData={tableRowsData}\n sorting={sorting}\n onSort={onSort}\n filters={filters}\n onFilter={onFilter}\n defaultColumnWidth={250}\n defaultColumnMinWidth={200}\n headRowHeight={48}\n getRowCellHeight={getRowCellHeight}\n renderRowCell={renderRowCell}\n onRowClick={onRowClick}\n ref={tableRef}\n hoverStateEnabled={true}\n hoverRowIndex={hoverRowIndex}\n onRowHover={onRowHover}\n hoveredRowRightContent={hoveredRowRightContent}\n classes={{\n hoveredRowRightContentWrapper: styles.hoveredRowRightContentWrapper\n }}\n />\n </div>\n );\n};\n\nexport default memo(RelationshipsTable);\n","import {AttributeType, Relation} from '@reltio/mdm-sdk';\nimport {CrosswalksByTypes, groupCrosswalksByTypesAndSources} from '@reltio/components';\nimport {assoc, map, pipe, propOr} from 'ramda';\n\ntype TableRow = {\n source: string;\n crosswalksByTypes: CrosswalksByTypes;\n};\n\nexport const buildTableRowsData = (relation: Relation, selectedAttributeTypes: AttributeType[] = []): TableRow[] => {\n return pipe(\n propOr([], 'crosswalks'),\n map(assoc('ownerType', 'entity')),\n groupCrosswalksByTypesAndSources(relation.type, selectedAttributeTypes)\n )(relation);\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n tableRow: {\n '& + &': {\n marginTop: '4px'\n },\n margin: 'auto',\n maxWidth: '448px'\n }\n}));\n","import React, {memo, useCallback, useMemo, useState} from 'react';\nimport {\n AttributeType,\n checkCanDeleteCrosswalk,\n checkCanEditCrosswalk,\n getRelationType,\n Metadata,\n Relation,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {DeleteCrosswalkEvent, EditCrosswalkEvent, SourceCrosswalksRow} from '@reltio/components';\nimport {append, ifElse, includes, without} from 'ramda';\nimport {buildTableRowsData} from './helpers';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n readOnly?: boolean;\n relation: Relation;\n metadata: Metadata;\n selectedAttributeTypes?: AttributeType[];\n onDeleteCrosswalk: (event: DeleteCrosswalkEvent) => void;\n onEditCrosswalk: (event: EditCrosswalkEvent) => void;\n};\n\nconst LegendTable = ({\n readOnly,\n relation,\n metadata,\n selectedAttributeTypes,\n onDeleteCrosswalk,\n onEditCrosswalk\n}: Props) => {\n const styles = useStyles();\n\n const relationType: TRelationType = getRelationType(metadata, relation.type);\n\n const rowsData = useMemo(() => buildTableRowsData(relation, selectedAttributeTypes), [\n relation,\n selectedAttributeTypes\n ]);\n const [expandedSources, setExpandedSources] = useState<string[]>([]);\n\n const handleDelete = useCallback(\n (crosswalkId: string) => {\n onDeleteCrosswalk({entityUri: relation.uri, crosswalkId});\n },\n [onDeleteCrosswalk, relation.uri]\n );\n\n const handleEdit = useCallback(\n (event: Omit<EditCrosswalkEvent, 'entityUri'>) => {\n onEditCrosswalk({entityUri: relation.uri, ...event});\n },\n [onEditCrosswalk, relation.uri]\n );\n\n return (\n <div>\n {rowsData.map(({source, crosswalksByTypes}) => {\n return (\n <div key={source} className={styles.tableRow}>\n <SourceCrosswalksRow\n source={source}\n crosswalksByTypes={crosswalksByTypes}\n expanded={expandedSources.includes(source)}\n disableEditCrosswalk={!checkCanEditCrosswalk(relationType) || readOnly}\n disableDeleteCrosswalk={!checkCanDeleteCrosswalk(relationType) || readOnly}\n onEdit={handleEdit}\n onDelete={handleDelete}\n onToggleExpanded={() => {\n setExpandedSources(ifElse(includes(source), without([source]), append(source)));\n }}\n />\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default memo(LegendTable);\n","import {makeStyles, Theme} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme: Theme) => ({\n header: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n padding: '20px 12px',\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n },\n title: {\n fontWeight: 500,\n fontSize: '20px',\n lineHeight: '23px',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary,\n marginLeft: '12px'\n },\n hint: {\n color: theme.palette.text.secondary,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n alignSelf: 'flex-start',\n margin: '4px 14px 10px'\n },\n hintText: {\n marginLeft: '8px',\n fontSize: '12px',\n lineHeight: '16px'\n },\n buttons: {\n display: 'flex',\n padding: '8px 6px 4px'\n },\n buttonLabel: {\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '16px'\n },\n icon: {\n fontSize: '18px',\n marginRight: '8px'\n },\n editor: {\n paddingLeft: 25,\n margin: 'auto',\n maxWidth: '448px',\n boxSizing: 'border-box',\n marginBottom: '4px'\n },\n tableContainer: {\n overflowY: 'auto',\n overflowX: 'hidden',\n paddingLeft: '16px',\n paddingRight: '6px'\n }\n}));\n","import React, {memo, useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport InfoIcon from '@material-ui/icons/Info';\nimport AddIcon from '@material-ui/icons/Add';\nimport {Button as Button} from '@material-ui/core';\nimport LegendTable from '../LegendTable/LegendTable';\nimport {\n AttributeType,\n checkCanCreateCrosswalk,\n getRelationType,\n Metadata,\n Relation,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {\n AddCrosswalkEvent,\n CrosswalkEditor,\n DeleteCrosswalkEvent,\n EditCrosswalkEvent,\n withTooltip\n} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\nconst ButtonWithTooltip = withTooltip(Button);\n\ntype Props = {\n className?: string;\n readOnly?: boolean;\n relation: Relation;\n selectedAttributeTypes?: AttributeType[];\n onAddCrosswalk: (event: AddCrosswalkEvent) => void;\n onDeleteCrosswalk: (event: DeleteCrosswalkEvent) => void;\n onEditCrosswalk: (event: EditCrosswalkEvent) => void;\n};\n\nconst LegendPanel = ({\n className,\n readOnly,\n relation,\n selectedAttributeTypes,\n onAddCrosswalk,\n onDeleteCrosswalk,\n onEditCrosswalk\n}: Props) => {\n const styles = useStyles();\n\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const relationType: TRelationType = getRelationType(metadata, relation.type);\n\n const [openEditor, setOpenEditor] = useState(false);\n const canAdd = checkCanCreateCrosswalk(relationType) && !readOnly;\n\n return (\n <div className={className}>\n <div className={styles.header}>\n <span className={styles.title}>{i18n.text('Legend')}</span>\n </div>\n <div className={styles.buttons}>\n <ButtonWithTooltip\n color=\"primary\"\n showForDisabled={true}\n disabled={!canAdd}\n tooltipTitle={canAdd ? null : i18n.text(\"You don't have permissions to add crosswalk\")}\n onClick={() => setOpenEditor(true)}\n >\n <AddIcon className={styles.icon} />\n <div className={styles.buttonLabel}>{i18n.text('Crosswalk')}</div>\n </ButtonWithTooltip>\n </div>\n <div className={styles.hint}>\n <InfoIcon className={styles.icon} />\n <span className={styles.hintText}>\n {i18n.text('You can drag a crosswalk to add values to attributes swimlanes')}\n </span>\n </div>\n <div className={styles.tableContainer}>\n {openEditor && (\n <CrosswalkEditor\n className={styles.editor}\n onAdd={(crosswalk) => onAddCrosswalk({entity: relation, crosswalk})}\n onClose={() => setOpenEditor(false)}\n />\n )}\n <LegendTable\n readOnly={readOnly}\n metadata={metadata}\n relation={relation}\n selectedAttributeTypes={selectedAttributeTypes}\n onDeleteCrosswalk={onDeleteCrosswalk}\n onEditCrosswalk={onEditCrosswalk}\n />\n </div>\n </div>\n );\n};\n\nexport default memo(LegendPanel);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n entityInfo: {\n flex: '0 1 auto',\n overflow: 'hidden',\n minWidth: '100px'\n },\n entityLabelContainer: {\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden'\n },\n entityLabel: {\n lineHeight: '1.2',\n letterSpacing: '0.25px',\n color: theme.palette.text.primary\n },\n infoIcon: {\n fontSize: '16px',\n color: theme.palette.text.secondary,\n marginLeft: '5px'\n },\n profileBand: {\n margin: '-10px',\n maxWidth: '500px'\n },\n entityTypeBadge: {\n marginTop: '7px'\n }\n}));\n","import React from 'react';\nimport {Entity, getLabel} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport {ExpandedValueTooltip, LightArrowTooltip, ProfileBand, EntityTypeBadge} from '@reltio/components';\nimport InfoIcon from '@material-ui/icons/Info';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n entity: Entity;\n};\n\nconst EntityInfo = ({entity}: Props) => {\n const styles = useStyles();\n const label = getLabel(entity.label);\n return (\n <div className={styles.entityInfo}>\n <div className={styles.entityLabelContainer}>\n <ExpandedValueTooltip value={label}>\n <Typography variant=\"h6\" className={styles.entityLabel} noWrap>\n {label}\n </Typography>\n </ExpandedValueTooltip>\n <LightArrowTooltip\n title={<ProfileBand className={styles.profileBand} entity={entity} />}\n placement={'right'}\n >\n <InfoIcon className={styles.infoIcon} />\n </LightArrowTooltip>\n </div>\n <EntityTypeBadge className={styles.entityTypeBadge} entity={entity} size={'medium'} />\n </div>\n );\n};\n\nexport default EntityInfo;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n root: {\n flexShrink: 0,\n overflow: 'hidden',\n width: '110px'\n },\n label: {\n color: theme.palette.text.secondary,\n fontSize: '13px'\n }\n}));\n","import React from 'react';\nimport {ConnectionRelation} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport {ExpandedValueTooltip} from '@reltio/components';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n relation: ConnectionRelation;\n};\n\nconst RelationDirection = ({relation}: Props) => {\n const styles = useStyles();\n const {direction, relationLabel} = relation;\n return (\n <div className={styles.root}>\n <ExpandedValueTooltip value={relationLabel}>\n <Typography variant={'subtitle2'} className={styles.label} align={'center'} noWrap>\n {relationLabel}\n </Typography>\n </ExpandedValueTooltip>\n <svg width=\"110\" height=\"12\" fill=\"black\" fillOpacity=\"0.3\">\n {direction === 'out' && <polygon points=\"94 0, 110 6, 94 12, 94 9, 0 9, 0 3, 94 3\" />}\n {direction === 'bidirectional' && (\n <polygon points=\"94 0, 110 6, 94 12, 94 9, 16 9, 16 12, 0 6, 16 0, 16 3, 94 3\" />\n )}\n {direction === 'in' && <polygon points=\"16 12, 0 6, 16 0, 16 3, 110 3, 110 9, 16 9\" />}\n </svg>\n </div>\n );\n};\n\nexport default RelationDirection;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n root: {\n '&:hover $editButton': {\n visibility: 'visible'\n }\n },\n editButton: {\n visibility: 'hidden',\n marginLeft: '4px',\n marginBottom: '4px'\n },\n paper: {\n width: '150px',\n border: '3px solid rgba(0, 0, 0, 0.3)',\n borderRadius: '4px',\n boxSizing: 'border-box',\n overflow: 'hidden'\n }\n}));\n","import React, {KeyboardEvent, useRef, useState} from 'react';\nimport {formatDate} from '@reltio/mdm-sdk';\nimport {DateEditor, SmallIconButton} from '@reltio/components';\nimport EditIcon from '@material-ui/icons/Edit';\nimport {Popover as Popover} from '@material-ui/core';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n value: number;\n onChange: (value: number) => void;\n readOnly?: boolean;\n};\n\nconst RelationDate = ({value = null, onChange, readOnly}: Props) => {\n const styles = useStyles();\n const ref = useRef<HTMLSpanElement>();\n\n const [showEditor, setShowEditor] = useState(false);\n const openEditor = () => setShowEditor(true);\n const closeEditor = () => setShowEditor(false);\n\n const [editedValue, setEditedValue] = useState(value);\n\n const applyChangesAndClose = () => {\n if (editedValue !== value) {\n onChange(editedValue);\n }\n closeEditor();\n };\n\n const onKeyUp = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter') applyChangesAndClose();\n else if (event.key === 'Escape') closeEditor();\n };\n\n return (\n <span ref={ref} className={styles.root}>\n {value && formatDate(value)}\n <SmallIconButton\n disabled={readOnly}\n icon={EditIcon}\n size={'XXS'}\n className={styles.editButton}\n onClick={openEditor}\n />\n <Popover\n classes={{paper: styles.paper}}\n open={showEditor}\n anchorEl={ref.current}\n anchorOrigin={{vertical: 'top', horizontal: 'left'}}\n transformOrigin={{vertical: 14, horizontal: 20}}\n onKeyUp={onKeyUp}\n onBackdropClick={applyChangesAndClose}\n >\n <DateEditor\n InputProps={{\n autoFocus: true,\n disableUnderline: true,\n fullWidth: true\n }}\n size={'small'}\n hiddenLabel={true}\n label={undefined}\n value={editedValue && new Date(editedValue)}\n onChange={(value) => setEditedValue(value && value.valueOf())}\n />\n </Popover>\n </span>\n );\n};\n\nexport default RelationDate;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n relationBand: {\n flexShrink: 0,\n boxShadow: 'inset 0px -1px 0px rgba(0,0,0,0.06)',\n padding: '16px 19px'\n },\n inactiveRelationBand: {\n opacity: 0.6,\n background: 'rgba(185, 188, 197, 0.18)'\n },\n toolbar: {\n display: 'flex',\n alignItems: 'center',\n gap: '16px',\n marginBottom: '10px'\n },\n mainInfo: {\n display: 'flex',\n gap: '16px',\n marginLeft: '40px'\n },\n detailsInfo: {\n display: 'flex',\n gap: '34px',\n marginLeft: '40px',\n marginTop: '17px',\n color: theme.palette.text.secondary,\n fontSize: '13px'\n },\n detailTitle: {\n color: theme.palette.text.primary,\n flexShrink: 0,\n marginRight: '4px'\n },\n directionalLabel: {\n display: 'flex',\n overflow: 'hidden',\n '& span': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }\n },\n relationDate: {\n flexShrink: 0\n },\n commentsContainer: {\n marginRight: '18px'\n }\n}));\n","import React, {memo} from 'react';\nimport {CollaborationObjectTypes, Connection, createRelatedObjectUris, Entity, isActiveObject} from '@reltio/mdm-sdk';\nimport {\n CommentsContainer,\n COMMENTS_CONTAINER_VISIBILITY_AREA,\n ExpandedValueTooltip,\n SmallIconButton,\n Spacer\n} from '@reltio/components';\nimport classnames from 'classnames';\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport {Typography as Typography} from '@material-ui/core';\nimport EntityInfo from './EntityInfo/EntityInfo';\nimport RelationDirection from './RelationDirection/RelationDirection';\nimport RelationDate from './RelationDate/RelationDate';\nimport RelationshipMenuButton from '../RelationshipMenuButton/RelationshipMenuButton';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n readOnly?: boolean;\n entity: Entity;\n connection: Connection;\n onNavigateBack: () => void;\n onDelete: () => void;\n onChangeActivenessDate: (attributeName: string, value: number) => void;\n};\n\nconst RelationshipBand = ({readOnly, entity, connection, onNavigateBack, onDelete, onChangeActivenessDate}: Props) => {\n const isInactiveRelation = !isActiveObject(connection.relation);\n const styles = useStyles();\n return (\n <div\n className={classnames(styles.relationBand, COMMENTS_CONTAINER_VISIBILITY_AREA, {\n [styles.inactiveRelationBand]: isInactiveRelation\n })}\n >\n <div className={styles.toolbar}>\n <SmallIconButton icon={ArrowBackIcon} size={'S'} onClick={() => onNavigateBack()} />\n <Typography variant={'subtitle2'} display={'inline'}>\n {i18n.text('Back to relationships')}\n </Typography>\n <Spacer />\n <div className={styles.commentsContainer}>\n <CommentsContainer\n uri={connection.relation.relationUri}\n relatedObjectUris={createRelatedObjectUris(CollaborationObjectTypes.RELATION, {\n entityUri: entity?.uri,\n connection\n })}\n objectType={CollaborationObjectTypes.RELATION}\n allowOnlyOneComment\n />\n </div>\n <RelationshipMenuButton connection={connection} onDelete={onDelete} disableDelete={readOnly} />\n </div>\n <div className={styles.mainInfo}>\n <EntityInfo entity={entity} />\n <RelationDirection relation={connection.relation} />\n <EntityInfo entity={{...connection.entity.object, dataTenant: connection.entity.dataTenant}} />\n </div>\n <div className={styles.detailsInfo}>\n <div className={styles.directionalLabel}>\n <span className={styles.detailTitle}>{i18n.text('Directional label:')}</span>\n <ExpandedValueTooltip value={connection.relation.relationLabel}>\n <span>{connection.relation.relationLabel}</span>\n </ExpandedValueTooltip>\n </div>\n <div className={styles.relationDate}>\n <span className={styles.detailTitle}>{i18n.text('Start date:')}</span>\n <RelationDate\n value={connection.relation.startDate}\n onChange={(value) => onChangeActivenessDate('startDate', value)}\n readOnly={readOnly}\n />\n </div>\n <div className={styles.relationDate}>\n <span className={styles.detailTitle}>{i18n.text('End date:')}</span>\n <RelationDate\n value={connection.relation.endDate}\n onChange={(value) => onChangeActivenessDate('endDate', value)}\n readOnly={readOnly}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default memo(RelationshipBand);\n","import {ErrorPopup} from '@reltio/components';\nimport i18n from 'ui-i18n';\nimport {getRequestErrorMessage} from '@reltio/mdm-sdk';\n\nexport const showErrorMessage = (error: unknown) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: getRequestErrorMessage(error, i18n.text('Something went wrong'))\n });\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n detailsView: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'hidden'\n },\n locked: {\n pointerEvents: 'none'\n },\n resizablePanesWrapper: {\n flexGrow: 1\n },\n pane: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden'\n }\n});\n","import React, {memo, useCallback, useMemo, useState} from 'react';\nimport classnames from 'classnames';\nimport {\n ApiError,\n ApiErrorCode,\n AttributeType,\n Connection,\n deleteActivenessAttribute,\n Entity,\n getRelation,\n Relation,\n updateActivenessAttribute\n} from '@reltio/mdm-sdk';\nimport {\n AttributesTable,\n BasicView,\n CrosswalkDragLayer,\n CrosswalksDisplayProvider,\n ExpandedAttributesProvider,\n ResizablePanes,\n useCrosswalkActions,\n useModifiedEntity,\n useSafePromise\n} from '@reltio/components';\nimport LegendPanel from '../LegendPanel/LegendPanel';\nimport RelationshipBand from '../RelationshipBand/RelationshipBand';\nimport {assocPath, dissocPath, pipe} from 'ramda';\nimport {showErrorMessage} from '../../services/errors';\nimport {useCrosswalksDisplay} from '../../hooks/useCrosswalksDisplay';\nimport HTML5Backend from 'react-dnd-html5-backend';\nimport {DndProvider} from 'react-dnd';\n\nimport {useStyles} from './styles';\n\nconst MIN_PANE1_SIZE = 600;\nconst MIN_PANE2_SIZE = 480;\nconst MAX_PANE1_SIZE = -MIN_PANE2_SIZE;\n\ntype Props = {\n entity: Entity;\n connection: Connection;\n visibleColumns?: string[];\n onClose: (error?: ApiError) => void;\n onDeleteConnection: () => void;\n onChangeConnection: (connection: Connection) => void;\n onChangeVisibleColumns: (visibleColumns: string[]) => void;\n readOnly?: boolean;\n};\n\nconst RelationshipDetails = ({\n entity,\n connection,\n visibleColumns,\n onClose,\n onDeleteConnection,\n onChangeConnection,\n onChangeVisibleColumns,\n readOnly\n}: Props) => {\n const styles = useStyles();\n const displayProps = useCrosswalksDisplay();\n const [paneSize, setPaneSize] = useState(MAX_PANE1_SIZE);\n const handlePaneSizeChange = useCallback(({percentageSize}) => setPaneSize(percentageSize), []);\n\n const [selectedAttrTypes, setSelectedAttrTypes] = useState<AttributeType[]>();\n const [isLoading, setIsLoading] = useState(false);\n const relationUri = connection.relation.relationUri;\n\n const safePromise = useSafePromise();\n const onLoad = useCallback(() => setIsLoading(true), []);\n const onLoaded = useCallback(() => setIsLoading(false), []);\n const onDeleteRelation = useCallback(pipe(onDeleteConnection, onLoad), []);\n const [onError, reloadRelation] = useMemo(() => {\n const onError = (error: ApiError) => {\n if (error.errorCode === ApiErrorCode.CROSSWALK_NOT_FOUND) {\n showErrorMessage(error);\n reloadRelation();\n } else if (error.errorCode === ApiErrorCode.OBJECT_NOT_FOUND) {\n onClose(error);\n } else {\n showErrorMessage(error);\n onLoaded();\n }\n };\n const reloadRelation = () => {\n safePromise(getRelation(relationUri))\n .then((newRelation: Relation) => {\n onChangeConnection(assocPath(['relation', 'object'], newRelation, connection));\n onLoaded();\n })\n .catch(onError);\n };\n return [onError, reloadRelation];\n }, [connection, onLoaded, onChangeConnection, onClose]);\n\n const {\n modifiedEntity,\n crosswalksMap,\n newlyCreatedAttributes,\n onPinAttribute,\n onIgnoreAttribute,\n onAddAttribute,\n onEditAttribute,\n onDeleteAttribute\n } = useModifiedEntity({\n entity: connection.relation.object,\n onModify: reloadRelation,\n onError,\n onLoad\n });\n\n const {addCrosswalk, deleteCrosswalk, editCrosswalk} = useCrosswalkActions({\n onSuccess: reloadRelation,\n onError,\n onLoad\n });\n\n const onChangeActivenessDate = useCallback(\n (attributeName: string, value: number) => {\n onLoad();\n const request = value\n ? updateActivenessAttribute({entityUri: relationUri, attributeName, value}).then(() =>\n onChangeConnection(assocPath(['relation', attributeName], value, connection))\n )\n : deleteActivenessAttribute({entityUri: relationUri, attributeName}).then(() =>\n onChangeConnection(dissocPath(['relation', attributeName], connection))\n );\n request.then(onLoaded).catch(onError);\n },\n [connection, onLoad, onLoaded, onError]\n );\n\n return (\n <BasicView className={styles.detailsView}>\n <CrosswalksDisplayProvider {...displayProps}>\n <DndProvider backend={HTML5Backend}>\n <CrosswalkDragLayer />\n <ResizablePanes\n className={classnames(styles.resizablePanesWrapper, {[styles.locked]: isLoading})}\n orientation={'vertical'}\n size={paneSize}\n minSize={MIN_PANE1_SIZE}\n maxSize={MAX_PANE1_SIZE}\n allowResize={true}\n onChange={handlePaneSizeChange}\n >\n <div className={styles.pane}>\n <RelationshipBand\n readOnly={readOnly}\n entity={entity}\n connection={connection}\n onNavigateBack={onClose}\n onDelete={onDeleteRelation}\n onChangeActivenessDate={onChangeActivenessDate}\n />\n <ExpandedAttributesProvider attributeUris={newlyCreatedAttributes}>\n <AttributesTable\n readOnly={readOnly}\n entity={modifiedEntity}\n crosswalksMap={crosswalksMap}\n isLoading={isLoading}\n onPin={onPinAttribute}\n onIgnore={onIgnoreAttribute}\n onEdit={onEditAttribute}\n onAdd={onAddAttribute}\n onDelete={onDeleteAttribute}\n selectedAttributeTypes={selectedAttrTypes}\n onSelectAttributeTypes={setSelectedAttrTypes}\n visibleColumns={visibleColumns}\n onChangeVisibleColumns={onChangeVisibleColumns}\n />\n </ExpandedAttributesProvider>\n </div>\n <LegendPanel\n readOnly={readOnly}\n className={styles.pane}\n relation={connection.relation.object}\n selectedAttributeTypes={selectedAttrTypes}\n onAddCrosswalk={addCrosswalk}\n onDeleteCrosswalk={deleteCrosswalk}\n onEditCrosswalk={editCrosswalk}\n />\n </ResizablePanes>\n </DndProvider>\n </CrosswalksDisplayProvider>\n </BasicView>\n );\n};\n\nexport default memo(RelationshipDetails);\n","import {useCallback, useMemo, useState, useRef} from 'react';\nimport {CrosswalkBase, debounce, eqCrosswalks} from '@reltio/mdm-sdk';\nimport {any, concat} from 'ramda';\n\nexport const useCrosswalksDisplay = () => {\n const [highlightedCrosswalks, setHighlightedCrosswalks] = useState<CrosswalkBase[]>([]);\n const highlightedCrosswalksCache = useRef([]);\n const applyHighlightedCrosswalks = useCallback(\n debounce(() => {\n setHighlightedCrosswalks([...highlightedCrosswalksCache.current]);\n }, 50),\n []\n );\n const cacheHighlightedCrosswalks = useCallback(\n (arr) => {\n highlightedCrosswalksCache.current = arr;\n applyHighlightedCrosswalks(arr);\n },\n [applyHighlightedCrosswalks]\n );\n\n const setCrosswalkHighlighted = useCallback(\n (crosswalk: CrosswalkBase, highlighted: boolean) => {\n if (!crosswalk) return;\n if (highlighted) {\n cacheHighlightedCrosswalks([crosswalk]);\n } else {\n cacheHighlightedCrosswalks([]);\n }\n },\n [cacheHighlightedCrosswalks]\n );\n\n const [focusedCrosswalks, setFocusedCrosswalks] = useState<CrosswalkBase[]>([]);\n const calculateFocusedCrosswalks = (prev: CrosswalkBase[], next: CrosswalkBase[]) =>\n concat(\n prev.filter((prevCrosswalk) => !any(eqCrosswalks(prevCrosswalk), next)),\n next.filter((nextCrosswalk) => !any(eqCrosswalks(nextCrosswalk), prev))\n );\n\n const toggleCrosswalkFocus = useCallback((crosswalk: CrosswalkBase) => {\n if (!crosswalk) return;\n setFocusedCrosswalks((prevValue) => calculateFocusedCrosswalks([crosswalk], prevValue));\n }, []);\n\n return {\n highlightedCrosswalks: useMemo(() => [...highlightedCrosswalks, ...focusedCrosswalks], [\n highlightedCrosswalks,\n focusedCrosswalks\n ]),\n focusedCrosswalks,\n toggleCrosswalkFocus,\n setCrosswalkHighlighted\n };\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n relationshipsView: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflowX: 'hidden',\n overflowY: 'auto',\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif',\n display: 'flex',\n flexDirection: 'column'\n },\n '@global div[role=tooltip]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n '@global div[role=presentation]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n pane: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'hidden',\n position: 'relative'\n }\n});\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport {Dispatch} from 'redux';\nimport {connect} from 'react-redux';\nimport {\n always,\n andThen,\n both,\n either,\n equals,\n filter,\n identity,\n map,\n otherwise,\n pipe,\n prop,\n propEq,\n update,\n when,\n not\n} from 'ramda';\nimport mdmModule, {profile} from '@reltio/mdm-module';\nimport {\n ApiError,\n ApiErrorCode,\n checkMetadataPermission,\n CollaborationObjectTypes,\n Connection,\n Entity,\n getEntitiesMapForConnections,\n getInheritancePath,\n getRelationshipsObjectIdsForCollaboration,\n isDataTenantEntity,\n Metadata,\n MetadataPermissions,\n Mode,\n RelationshipsPerspectiveConfig,\n removeRelation,\n TRelationType\n} from '@reltio/mdm-sdk';\nimport {\n BasicTablePagination,\n CollaborationContext,\n EntitiesMapContext,\n LinearLoadIndicator,\n ProfileBand,\n ProfileBandNavigation,\n useCollaboration,\n useDidUpdateEffect,\n useRelationsLoader,\n UsersContext,\n useUsers\n} from '@reltio/components';\nimport useSavedState from '../../hooks/useSavedState';\nimport {useRelationshipsTable} from '../../hooks/useRelationshipsTable';\nimport {RelationshipsSavedState} from '../../types';\nimport {DEFAULT_COLUMNS, getColumnsData, ROWS_PER_PAGE_OPTIONS} from './helpers/tableHelpers';\nimport {buildRelationshipsFilter} from './helpers/filtersHelpers';\nimport RelationshipsTableHeader from '../RelationshipsTableHeader/RelationshipsTableHeader';\nimport RelationshipsTable from '../RelationshipsTable/RelationshipsTable';\nimport RelationshipDetails from '../RelationshipDetails/RelationshipDetails';\nimport {showErrorMessage} from '../../services/errors';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: RelationshipsPerspectiveConfig;\n entity: Entity;\n metadata: Metadata;\n connections: Connection[];\n total: number;\n saveState: (state: RelationshipsSavedState) => void;\n getSavedState: () => Promise<RelationshipsSavedState>;\n dispatch: Dispatch;\n};\n\nconst RelationshipsView = ({\n config,\n entity,\n metadata,\n connections,\n total,\n saveState,\n getSavedState,\n dispatch\n}: Props) => {\n const styles = useStyles();\n const tableRef = useRef();\n const users = useUsers();\n\n const isDTEntity = isDataTenantEntity(entity);\n\n const [searchByOv, setSearchByOv] = useState(false);\n\n const {type: entityTypeUri} = entity || {};\n const [\n {\n visibleColumns,\n filters,\n page,\n rowsPerPage,\n sorting,\n currentRelationType,\n stateToSave,\n entityTypeOfAppliedSavedState\n },\n {\n changeColumns,\n toggleFilters,\n changeFilter,\n changePage,\n changeRowsPerPage,\n toggleSort,\n changeRelationType,\n saveCurrentState,\n applySavedState\n }\n ] = useRelationshipsTable({\n defaultColumns: DEFAULT_COLUMNS,\n defaultRowsPerPage: ROWS_PER_PAGE_OPTIONS[0],\n defaultSorting: {\n field: DEFAULT_COLUMNS[0],\n order: 'asc'\n }\n });\n\n const isSavedStateApplied = entityTypeOfAppliedSavedState === entityTypeUri;\n\n const {\n isLoading: isSavedStateLoading,\n relationsTableSavedState,\n attributesTableSavedState,\n updateRelationsTableSavedState,\n updateAttributesTableSavedState\n } = useSavedState({\n getSavedState,\n saveState,\n entityTypeUri\n });\n\n const [attributesTableVisibleColumns, setAttributesTableVisibleColumns] = useState<string[]>();\n\n useEffect(() => {\n if (!isSavedStateLoading) {\n applySavedState({savedState: relationsTableSavedState, entityTypeUri});\n }\n }, [isSavedStateLoading, entityTypeUri]); // eslint-disable-line\n\n useEffect(() => {\n if (!isSavedStateLoading) {\n setAttributesTableVisibleColumns(attributesTableSavedState?.visibleColumns);\n }\n }, [isSavedStateLoading]); // eslint-disable-line\n\n useDidUpdateEffect(() => {\n if (isSavedStateApplied) {\n updateRelationsTableSavedState(stateToSave);\n }\n }, [stateToSave]);\n\n const resetPage = () => {\n changePage(0);\n };\n useDidUpdateEffect(resetPage, [entity]);\n\n const [detailedConnectionIndex, setDetailedConnectionIndex] = useState<number>();\n const hideConnectionDetails = useCallback(() => {\n setDetailedConnectionIndex(null);\n }, []);\n\n const relationTypes: TRelationType[] = useMemo(() => {\n const inheritancePath = getInheritancePath(metadata, entityTypeUri);\n const isRelatedToEntityType = ({startObject, endObject}) =>\n inheritancePath.some(either(equals(startObject.objectTypeURI), equals(endObject.objectTypeURI)));\n return metadata.relationTypes.filter(\n both(checkMetadataPermission(MetadataPermissions.READ), isRelatedToEntityType)\n );\n }, [metadata, entityTypeUri]);\n\n const columnsData = useMemo(() => getColumnsData(relationTypes, currentRelationType), [\n relationTypes,\n currentRelationType\n ]);\n const visibleColumnsData = useMemo(\n () => visibleColumns.map((id) => columnsData.find(propEq('id', id))).filter(identity),\n [visibleColumns, columnsData]\n );\n\n const relationsConfig = useMemo(() => {\n const relations = pipe(\n when(always(currentRelationType), filter(propEq('uri', currentRelationType))),\n map(prop('uri'))\n )(relationTypes);\n return {\n id: config.id,\n content: {\n inRelations: relations,\n outRelations: relations\n }\n };\n }, [config.id, currentRelationType, relationTypes]);\n\n const relationFilter = useMemo(() => buildRelationshipsFilter(filters, visibleColumnsData), [\n filters,\n visibleColumnsData\n ]);\n\n const {isLoading: isRelationsLoading, reload: reloadRelations} = useRelationsLoader({\n page,\n rowsPerPage,\n config: relationsConfig,\n entity: isSavedStateApplied ? entity : null,\n filter: relationFilter,\n mode: Mode.Viewing,\n sorting,\n searchByOv\n });\n\n const isLoading = !isSavedStateApplied || isRelationsLoading;\n\n const onSort = useCallback(pipe(toggleSort, saveCurrentState), [toggleSort, saveCurrentState]);\n const onFilter = useCallback(pipe(changeFilter, saveCurrentState), [changeFilter, saveCurrentState]);\n const onToggleFilters = useCallback(pipe(toggleFilters, saveCurrentState), [toggleFilters, saveCurrentState]);\n const onChangeColumns = useCallback(pipe(changeColumns, saveCurrentState), [changeColumns, saveCurrentState]);\n const onRelationTypeChange = useCallback(pipe(changeRelationType, saveCurrentState), [\n changeRelationType,\n saveCurrentState\n ]);\n const onChangeDetailedColumns = useCallback(\n (visibleColumns: string[]) => {\n setAttributesTableVisibleColumns(visibleColumns);\n updateAttributesTableSavedState({visibleColumns});\n },\n [updateAttributesTableSavedState]\n );\n\n const detailedConnection = connections?.[detailedConnectionIndex];\n const onChangeDetailedConnection = useCallback(\n (newConnection: Connection) => {\n dispatch(\n profile.relations.actions.relationsLoaded({\n id: config.id,\n connections: update(detailedConnectionIndex, newConnection, connections),\n total\n })\n );\n },\n [detailedConnection]\n );\n const [objectIds, objectTypes] = useMemo(() => {\n return [getRelationshipsObjectIdsForCollaboration(connections), [CollaborationObjectTypes.RELATION]];\n }, [connections]);\n\n const collaboration = useCollaboration({objectIds, objectTypes, enabled: !isDTEntity});\n const entitiesMap = useMemo(() => getEntitiesMapForConnections(connections), [connections]);\n\n const handleError = useCallback(\n (error: ApiError) => {\n showErrorMessage(error);\n if (error.errorCode === ApiErrorCode.OBJECT_NOT_FOUND) {\n reloadRelations();\n }\n },\n [reloadRelations]\n );\n\n const deleteRelation = useCallback(\n (relationUri: string) => {\n pipe(removeRelation, andThen(reloadRelations), otherwise(handleError))(relationUri);\n },\n [reloadRelations, handleError]\n );\n\n const deleteRelationAndCloseDetails = useCallback(() => {\n pipe(\n removeRelation,\n andThen(pipe(hideConnectionDetails, reloadRelations)),\n otherwise((error: ApiError) => {\n if (error.errorCode === ApiErrorCode.OBJECT_NOT_FOUND) {\n hideConnectionDetails();\n }\n handleError(error);\n })\n )(detailedConnection.relation.relationUri);\n }, [detailedConnection, reloadRelations, hideConnectionDetails, handleError]);\n\n const onCloseConnectionDetails = useCallback(\n (error?: ApiError) => {\n if (error) handleError(error);\n hideConnectionDetails();\n },\n [handleError, hideConnectionDetails]\n );\n\n const onToggleSearchByOv = useCallback(() => {\n setSearchByOv(not);\n }, [setSearchByOv]);\n return (\n <UsersContext.Provider value={users}>\n <CollaborationContext.Provider value={collaboration}>\n <EntitiesMapContext.Provider value={entitiesMap}>\n <div className={styles.relationshipsView}>\n <ProfileBand entity={entity}>\n <ProfileBandNavigation />\n </ProfileBand>\n <RelationshipsTableHeader\n total={total}\n filteringEnabled={!!filters}\n onToggleFilters={onToggleFilters}\n columnsData={columnsData}\n selectedColumns={visibleColumns}\n onChangeColumns={onChangeColumns}\n relationTypes={relationTypes}\n currentRelationType={currentRelationType}\n onRelationTypeChange={onRelationTypeChange}\n searchByOv={searchByOv}\n onToggleSearchByOv={onToggleSearchByOv}\n />\n <div className={styles.pane}>\n {isLoading && <LinearLoadIndicator />}\n <RelationshipsTable\n readOnly={isDTEntity}\n metadata={metadata}\n connections={connections}\n columnsData={visibleColumnsData}\n sorting={sorting}\n onSort={onSort}\n filters={filters}\n onFilter={onFilter}\n onRowClick={setDetailedConnectionIndex}\n tableRef={tableRef}\n onDelete={deleteRelation}\n />\n <BasicTablePagination\n count={total}\n rowsPerPageOptions={ROWS_PER_PAGE_OPTIONS}\n page={page}\n onChangePage={changePage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n basicTableRef={tableRef}\n />\n </div>\n {detailedConnection && (\n <RelationshipDetails\n readOnly={isDTEntity}\n entity={entity}\n visibleColumns={attributesTableVisibleColumns}\n onChangeVisibleColumns={onChangeDetailedColumns}\n connection={detailedConnection}\n onClose={onCloseConnectionDetails}\n onDeleteConnection={deleteRelationAndCloseDetails}\n onChangeConnection={onChangeDetailedConnection}\n />\n )}\n </div>\n </EntitiesMapContext.Provider>\n </CollaborationContext.Provider>\n </UsersContext.Provider>\n );\n};\n\nconst mapStateToProps = (state, {config: {id}}) => {\n return {\n entity: mdmModule.selectors.getEntity(state),\n metadata: mdmModule.selectors.getMetadata(state),\n connections: mdmModule.selectors.getConnectionsByViewId(state, id),\n total: mdmModule.selectors.getTotalByViewId(state, id)\n };\n};\n\nexport default connect(mapStateToProps)(RelationshipsView);\n","import {buildColumnsFilter, ColumnFilter} from '@reltio/components';\nimport {FilterBuilder} from '@reltio/mdm-sdk';\nimport {RelationshipsTableColumnData} from '../../../types';\n\nexport const buildRelationshipsFilter = (\n filters: Record<string, ColumnFilter>,\n columnsData: RelationshipsTableColumnData[]\n) => {\n const filtersClause = buildColumnsFilter(columnsData, filters);\n\n return new FilterBuilder().addClause(filtersClause).build();\n};\n","import React, {useCallback} from 'react';\nimport {Provider} from 'react-redux';\nimport {Store} from 'redux';\n\nimport MomentUtils from '@date-io/moment';\nimport {createGenerateClassName, StylesProvider} from '@material-ui/core/styles';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\nimport {ErrorPopup, ViewIdContext} from '@reltio/components';\nimport {RelationshipsSavedState} from '../../types';\nimport RelationshipsView from './RelationshipsView';\nimport {promisifyCallback, RelationshipsPerspectiveConfig} from '@reltio/mdm-sdk';\n\nconst generateClassName = createGenerateClassName({\n productionPrefix: 'relationshipsPerspective',\n disableGlobal: true\n});\n\ntype Props = {\n config: RelationshipsPerspectiveConfig;\n store: Store<unknown>;\n onResize?: (width: number, height: number) => void;\n saveState: (state: RelationshipsSavedState) => void;\n getSavedState: (clb: (state: RelationshipsSavedState) => void) => void;\n};\n\nconst RelationshipsPerspective = ({config, store, onResize, saveState, getSavedState}: Props) => {\n const getSavedStatePromisified: () => Promise<RelationshipsSavedState> = useCallback(\n promisifyCallback(getSavedState),\n [getSavedState]\n );\n\n return (\n <Provider store={store}>\n <ViewIdContext.Provider value={config.id}>\n <StylesProvider generateClassName={generateClassName}>\n <MuiPickersUtilsProvider utils={MomentUtils}>\n <ReactResizeDetector\n handleHeight\n onResize={(width, height) => onResize?.(Math.floor(width), Math.floor(height))}\n />\n {config && (\n <RelationshipsView\n config={config}\n saveState={saveState}\n getSavedState={getSavedStatePromisified}\n />\n )}\n <ErrorPopup />\n </MuiPickersUtilsProvider>\n </StylesProvider>\n </ViewIdContext.Provider>\n </Provider>\n );\n};\n\nexport default RelationshipsPerspective;\n","import {RelationshipsView} from '@reltio/relationships';\n\nexport default RelationshipsView;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n"],"names":["MomentUtils","_a","_b","locale","instance","moment","this","yearFormat","yearMonthFormat","dateTime12hFormat","dateTime24hFormat","time12hFormat","time24hFormat","dateFormat","prototype","parse","value","format","date","isValid","isNull","getDiff","comparing","diff","isAfter","isBefore","isAfterDay","isBeforeDay","isBeforeYear","isAfterYear","startOfDay","clone","startOf","endOfDay","endOf","formatString","formatNumber","numberToFormat","getHours","get","addDays","count","subtract","Math","abs","add","setHours","hours","getMinutes","setMinutes","minutes","getSeconds","setSeconds","seconds","getMonth","isSameDay","isSame","isSameMonth","isSameYear","isSameHour","setMonth","month","getMeridiemText","ampm","startOfMonth","endOfMonth","getNextMonth","getPreviousMonth","getMonthArray","monthArray","length","prevMonth","push","getYear","setYear","year","set","mergeDateAndTime","time","getWeekdays","weekdaysShort","isEqual","getWeekArray","start","end","current","nestedWeeks","weekNumber","floor","getYearRange","startDate","endDate","years","getCalendarHeaderText","getYearText","getDatePickerHeaderText","getDateTimePickerHeaderText","getMonthText","getDayText","getHourText","getMinuteText","getSecondText","_interopRequireDefault","exports","_react","_default","default","createElement","d","Fragment","transform","fill","contextSelector","CellRenderer","withContext","TableContext","props","width","height","viewBox","xmlns","fillRule","stroke","strokeWidth","useStyles","makeStyles","theme","color","palette","primary","main","closeIcon","position","right","bottom","button","padding","FilterButton","enabled","onClick","styles","Tooltip","title","i18n","IconButton","classes","root","Filter","className","Close","propTypes","PropTypes","pagination","display","alignItems","justifyContent","borderTop","boxShadow","caption","fontSize","lineHeight","selectRoot","marginLeft","marginRight","select","textAlign","actions","BasicTablePagination","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","resetScrollbarPosition","useCallback","pathOr","identity","handleChangePage","handleChangeRowsPerPage","TablePagination","classnames","component","labelDisplayedRows","from","to","fromRow","toRow","countRows","pipe","nthArg","getValue","React","CHANGE_COLUMNS","TOGGLE_FILTERS","CHANGE_FILTER","TOGGLE_SORT","CHANGE_PAGE","CHANGE_ROWS_PER_PAGE","changeColumns","createStandardAction","toggleFilters","changeFilter","toggleSort","changePage","changeRowsPerPage","changeVisibleColumns","state","nextVisibleColumns","removedColumns","difference","visibleColumns","isRemovedColumn","columnId","includes","evolve","always","sorting","when","field","nextSortField","order","filters","keys","reduce","acc","dissoc","reducer","action","type","columnIds","payload","enableFilters","filter","assoc","prevSortField","path","prevSortOrder","toggleSortOrder","flexDirection","basicView","BasicView","forwardRef","ref","children","otherProps","Paper","displayName","paper","minHeight","fontWeight","letterSpacing","content","contentText","marginBottom","actionButtons","paddingTop","discardButton","open","onCancel","cancelCaption","onDiscard","discardCaption","onSave","saveCaption","disabledSave","Dialog","onClose","paperScrollPaper","DialogTitle","DialogContent","DialogContentText","DialogActions","disableSpacing","Button","disabled","autoFocus","textOverflow","overflow","whiteSpace","borderRadius","entity","size","metadata","useSelector","mdmModule","entityTypeUri","entityType","getEntityType","entityTypeColor","getPropWithInheritance","entityTypeLabel","getEntityTypeLabel","ExpandedValueTooltip","placement","Typography","style","backgroundColor","utils","profileBandWrapper","flexShrink","profileBand","inactive","background","inactiveBackground","profileIcon","imageProfileIcon","profileInfo","flex","badge","label","text","wordBreak","marginTop","secondaryLabel","businessCard","secondary","specialInfo","flexWrap","entityId","cursor","textDecoration","showEntityId","handleCopyEntityIdToClipboard","navigator","clipboard","writeText","getEntityId","isNil","getLabel","businessCardText","getBusinessCardAttributesText","isActive","isActiveObject","entityUri","uri","EntityAvatar","key","avatarClassName","imageClassName","variant","EntityTypeBadge","isTempUri","items","menuId","buttonComponent","SmallIconButtonWithTooltip","buttonProps","icon","SettingsIcon","tooltipTitle","menuItems","VerticalDivider","margin","borderLeft","useActions","dispatch","useMemo","Object","entries","actionName","actionCreator","filterReplies","replyId","replies","reply","getUpdatedReplies","comment","changedReplyIndex","findIndex","newReplies","defaultObjectIds","catchErrorInRequest","e","console","error","useCollaboration","objectIds","objectTypes","mdm","tenant","collaborationPath","isCollaborationEnabled","pageToken","setPageToken","useState","comments","setComments","commentsMap","setCommentsMap","currentComment","setCurrentComment","sending","setSending","loading","setLoading","collaborationStateMap","setCollaborationStateMap","addCommentsToCommentsMap","currentCommentsMap","getCommentsCount","shouldResetCommentsMap","onError","warn","getCommentsCountRequest","andThen","map","fromPairs","otherwise","uris","useEffect","getComments","relatedObjectUri","getCommentsRequest","then","nextPageToken","prevComments","uniqBy","prop","catch","getComment","commentId","getCommentRequest","finally","createComment","namedUsers","objectType","relatedObjectUris","data","objectId","visibility","permanentLink","createCommentRequest","prevCommentsMap","status","addCommentToState","editComment","updateCommentRequest","propEq","updateCommentInState","deleteComment","deleteCommentRequest","c","deleteCommentFromState","updateReplyInState","isDeleteReply","newStatus","prevCurrentComment","deleteReply","deleteReplyRequest","editReplyInState","editReply","updateReplyRequest","createReply","createReplyRequest","resolveThread","reOpenThread","clearCurrentComment","getCommentState","commentUri","updateCommentState","newState","prevCollaborationStateMap","pathToCommentState","prevCommentState","assocPath","mergeRight","clearCommentState","dissocPath","buildSuggestedIds","wrapInArrayIfNeeded","times","n","useRelationsLoader","config","relationActivityFilter","mode","searchByOv","isLoading","setIsLoading","useDispatch","dtssPath","activityFilter","globalFilter","safePromise","useSafePromise","suggested","options","loadRelations","requestConfig","sortBy","returnDates","returnObjects","activeness","relation","ActivityFilter","max","offset","addGlobalFilterToQuery","undefined","configs","concat","ifElse","i","id","request","cond","Promise","resolve","total","isDataTenantEntity","getRelationsForDataTenantEntity","customerTenant","dataTenant","T","getRelationsForEntity","connections","profile","isRequestSentRef","useRef","prevMode","usePrevious","Mode","reload","useUsers","users","setUsers","servicesPath","getAllUsersForTenant","array","DEFAULT_SAVED_STATE","relationsTable","attributesTable","RELATION_TYPE_COLUMN_ID","ATTRIBUTES_COLUMN_ID","DEFAULT_COLUMNS_DATA","dataTypeDefinition","DataTypes","hideable","filterable","initialWidth","autoResize","sortable","maxAttrsToShow","DEFAULT_COLUMNS","pluck","ALL_TYPES_COLUMNS","ROWS_PER_PAGE_OPTIONS","getColumnIdFromAttrUri","attributeUriToSearchUri","getColumnsDataFromRelationAttributes","attr","getAttrDataTypeDefinition","CHANGE_RELATION_TYPE","APPLY_SAVED_STATE","SAVE_CURRENT_STATE","basicTableViewState","changeRelationType","applySavedState","saveCurrentState","resetPageNumber","getDefaultVisibleColumnsForCurrentRelationType","currentRelationType","without","intersection","getSavedVisibleColumnsForCurrentRelationType","changeVisibleColumnsForCurrentRelationType","either","getFiltersFromSavedState","propOr","unless","validateFilterValue","saveVisibleColumnsForCurrentRelationType","visibleColumnsForRelationTypes","getStateToSave","pick","paddingLeft","paddingRight","selectMenu","textField","maxWidth","onChange","relationTypes","DropDownEditor","displayEmpty","disableUnderline","TextFieldProps","MenuProps","list","header","boxSizing","relationTypeSelector","memo","filteringEnabled","onToggleFilters","columnsData","selectedColumns","onRelationTypeChange","onChangeColumns","onToggleSearchByOv","settingItems","selected","selectable","BasicViewHeader","Spacer","SettingsMenu","ColumnsSettings","headCell","rowCell","overflowWrap","inactiveRowCell","opacity","defaultWrapper","paddingBottom","entityCell","entityAvatar","inactiveEntityAvatar","border","entityLabel","attributesWrapper","commentsContainer","withFilterAtBottom","DefaultHeadCellRenderer","isInactiveRelation","currentEntityUri","COMMENTS_CONTAINER_VISIBILITY_AREA","EntityTypeIcon","EntityUriLink","getEntityUriForLink","stopPropagation","CommentsContainer","relationUri","createRelatedObjectUris","CollaborationObjectTypes","connection","allowOnlyOneComment","columnData","attributes","attributeTypes","attrTypes","drawLines","DataTypeValue","getAttrPathFromColumnId","split","slice","Infinity","getNestedPathByColumnId","startsWith","attrPath","getCellValueRenderer","EntityProfileRenderer","AttributesRenderer","DefaultCellValueRenderer","getBasicTableColumnsData","resizable","headCellRenderer","HeadCellRenderer","nestedPath","rowCellValueRenderer","getStaticRowCellHeight","pathEq","cell","attributesCount","values","defaultGetRowCellHeight","CellValueRenderer","index","menuItem","menuText","buttons","MenuItemWithTooltip","withTooltip","MenuItem","MenuItemRenderer","item","onMenuClose","noop","tooltip","showForDisabled","disableDelete","onMenuOpen","onDelete","hasDeletePermission","getRelationType","checkMetadataPermission","MetadataPermissions","canDelete","pendingDeletion","setPendingDeletion","hideDeleteConfirmation","Delete","handleMenuClose","DropDownMenuButton","SmallIconButton","MoreVertIcon","ConfirmationDialog","substring","tableContainer","zIndex","hoveredRowRightContentWrapper","pointerEvents","menuButtonContainer","top","tooltipAnchor","onSort","onFilter","onRowClick","tableRef","readOnly","tableRowsData","relationType","relationLabel","object","getOvAttributeValuesByPath","getRelationAttributeValues","getRowValueByColumnId","getBasicTableRowsData","tableColumnsData","getDynamicRowCellHeight","changeRowCellHeight","useDynamicRowCellHeight","getRowCellHeight","hoverRowIndex","setHoverRowIndex","renderRowCell","rowValue","rawValue","RowCellAutoSizer","onChangeHeight","isActionsMenuOpen","setIsActionsMenuOpen","handleActionsMenuOpen","handleActionsMenuClose","onRowHover","rowIndex","prevHoverRowIndex","hoveredRowRightContent","BasicTable","fixFirstColumn","rowsData","defaultColumnWidth","defaultColumnMinWidth","headRowHeight","hoverStateEnabled","tableRow","selectedAttributeTypes","onDeleteCrosswalk","onEditCrosswalk","groupCrosswalksByTypesAndSources","buildTableRowsData","expandedSources","setExpandedSources","handleDelete","crosswalkId","handleEdit","event","source","crosswalksByTypes","SourceCrosswalksRow","expanded","disableEditCrosswalk","checkCanEditCrosswalk","disableDeleteCrosswalk","checkCanDeleteCrosswalk","onEdit","onToggleExpanded","append","borderBottom","hint","alignSelf","hintText","buttonLabel","editor","overflowY","overflowX","ButtonWithTooltip","onAddCrosswalk","openEditor","setOpenEditor","canAdd","checkCanCreateCrosswalk","Add","Info","CrosswalkEditor","onAdd","crosswalk","entityInfo","minWidth","entityLabelContainer","infoIcon","entityTypeBadge","noWrap","LightArrowTooltip","ProfileBand","direction","align","fillOpacity","points","editButton","showEditor","setShowEditor","closeEditor","editedValue","setEditedValue","applyChangesAndClose","formatDate","EditIcon","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","onKeyUp","onBackdropClick","DateEditor","InputProps","fullWidth","hiddenLabel","Date","valueOf","relationBand","inactiveRelationBand","toolbar","gap","mainInfo","detailsInfo","detailTitle","directionalLabel","relationDate","onNavigateBack","onChangeActivenessDate","ArrowBackIcon","showErrorMessage","ErrorPopup","message","getRequestErrorMessage","detailsView","left","locked","resizablePanesWrapper","flexGrow","pane","onDeleteConnection","onChangeConnection","onChangeVisibleColumns","displayProps","highlightedCrosswalks","setHighlightedCrosswalks","highlightedCrosswalksCache","applyHighlightedCrosswalks","debounce","cacheHighlightedCrosswalks","arr","setCrosswalkHighlighted","highlighted","focusedCrosswalks","setFocusedCrosswalks","toggleCrosswalkFocus","prevValue","calculateFocusedCrosswalks","prev","next","prevCrosswalk","any","eqCrosswalks","nextCrosswalk","useCrosswalksDisplay","paneSize","setPaneSize","handlePaneSizeChange","percentageSize","selectedAttrTypes","setSelectedAttrTypes","onLoad","onLoaded","onDeleteRelation","reloadRelation","errorCode","ApiErrorCode","getRelation","newRelation","modifiedEntity","crosswalksMap","newlyCreatedAttributes","onPinAttribute","onIgnoreAttribute","onAddAttribute","onEditAttribute","onDeleteAttribute","useModifiedEntity","onModify","addCrosswalk","deleteCrosswalk","editCrosswalk","useCrosswalkActions","onSuccess","attributeName","updateActivenessAttribute","deleteActivenessAttribute","DndProvider","backend","HTML5Backend","CrosswalkDragLayer","ResizablePanes","orientation","minSize","maxSize","allowResize","attributeUris","AttributesTable","onPin","onIgnore","onSelectAttributeTypes","relationshipsView","fontFamily","connect","saveState","getSavedState","isDTEntity","setSearchByOv","stateToSave","entityTypeOfAppliedSavedState","defaultColumns","defaultSorting","defaultRowsPerPage","initState","useReducer","nextRelationType","savedState","useRelationshipsTable","isSavedStateApplied","isSavedStateLoading","relationsTableSavedState","attributesTableSavedState","updateRelationsTableSavedState","updateAttributesTableSavedState","setSavedState","changedRelationsState","setRelationsChangedState","useDidUpdateEffect","_","changedState","useSavedState","attributesTableVisibleColumns","setAttributesTableVisibleColumns","detailedConnectionIndex","setDetailedConnectionIndex","hideConnectionDetails","inheritancePath","getInheritancePath","both","startObject","endObject","some","equals","objectTypeURI","find","getReadableAttributesList","reject","updateColumnData","updateFn","getRelationColumnDataType","adjust","updateRelationTypeColumn","getColumnsData","visibleColumnsData","relationsConfig","relations","inRelations","outRelations","relationFilter","filtersClause","buildColumnsFilter","FilterBuilder","addClause","build","buildRelationshipsFilter","isRelationsLoading","reloadRelations","onChangeDetailedColumns","detailedConnection","onChangeDetailedConnection","newConnection","update","getRelationshipsObjectIdsForCollaboration","collaboration","entitiesMap","getEntitiesMapForConnections","handleError","deleteRelation","removeRelation","deleteRelationAndCloseDetails","onCloseConnectionDetails","not","UsersContext","CollaborationContext","EntitiesMapContext","ProfileBandNavigation","LinearLoadIndicator","generateClassName","createGenerateClassName","productionPrefix","disableGlobal","store","onResize","getSavedStatePromisified","promisifyCallback","Provider","ViewIdContext","StylesProvider","MuiPickersUtilsProvider","handleHeight","componentWillMount","constructor","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","name","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning"],"sourceRoot":""}