@reltio/components 1.4.911 → 1.4.912

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/cjs/components/workflow/cards/DataChangeRequestTaskCard/DataChangeRequestTaskCard.js +6 -30
  2. package/cjs/components/workflow/components/AttributesChanges/AttributesChanges.d.ts +7 -4
  3. package/cjs/components/workflow/components/AttributesChanges/AttributesChanges.js +19 -9
  4. package/cjs/components/workflow/components/AttributesChanges/components/ChangeView/ChangeView.d.ts +4 -4
  5. package/cjs/components/workflow/components/AttributesChanges/components/ChangeView/styles.js +3 -9
  6. package/cjs/components/workflow/components/AttributesChanges/components/DCRChangesList/DCRChangesList.d.ts +2 -2
  7. package/cjs/components/workflow/components/AttributesChanges/components/DCRChangesList/DCRChangesList.js +4 -1
  8. package/cjs/components/workflow/components/AttributesChanges/components/DCRChangesList/styles.d.ts +1 -0
  9. package/cjs/components/workflow/components/AttributesChanges/components/DCRChangesList/styles.js +13 -0
  10. package/cjs/components/workflow/components/AttributesChanges/components/DiffRenderer/DiffRenderer.d.ts +2 -13
  11. package/cjs/components/workflow/components/AttributesChanges/components/DiffRenderer/DiffRenderer.js +25 -9
  12. package/cjs/components/workflow/components/AttributesChanges/components/DiffRenderer/styles.d.ts +1 -1
  13. package/cjs/components/workflow/components/AttributesChanges/components/DiffRenderer/styles.js +14 -2
  14. package/cjs/components/workflow/components/AttributesChanges/contexts/AttributesChangesContext.d.ts +1 -1
  15. package/cjs/components/workflow/components/AttributesChanges/helpers/attributesHelpers.d.ts +3 -2
  16. package/cjs/components/workflow/components/AttributesChanges/helpers/attributesHelpers.js +35 -6
  17. package/cjs/components/workflow/components/AttributesChanges/helpers/helpers.d.ts +4 -6
  18. package/cjs/components/workflow/components/AttributesChanges/helpers/helpers.js +4 -26
  19. package/cjs/components/workflow/components/AttributesChanges/helpers/mergeHelpers.d.ts +3 -2
  20. package/cjs/components/workflow/components/AttributesChanges/helpers/mergeHelpers.js +109 -28
  21. package/cjs/components/workflow/components/AttributesChanges/hooks/useCollapsibleList.d.ts +3 -2
  22. package/cjs/components/workflow/components/AttributesChanges/hooks/useCollapsibleList.js +4 -4
  23. package/cjs/components/workflow/components/AttributesChanges/types/diffTypes.d.ts +16 -0
  24. package/cjs/components/workflow/components/AttributesChanges/types/{DCRTypes.js → diffTypes.js} +0 -0
  25. package/cjs/components/workflow/components/LineDecorator/LineDecorator.d.ts +2 -1
  26. package/cjs/components/workflow/components/LineDecorator/LineDecorator.js +5 -2
  27. package/cjs/components/workflow/components/LineDecorator/styles.d.ts +1 -1
  28. package/cjs/components/workflow/components/LineDecorator/styles.js +4 -1
  29. package/cjs/components/workflow/{components/AttributesChanges/constants → constants}/operations.d.ts +0 -0
  30. package/cjs/components/workflow/{components/AttributesChanges/constants → constants}/operations.js +0 -0
  31. package/cjs/components/workflow/helpers/dcrHelpers.d.ts +7 -0
  32. package/cjs/components/workflow/helpers/dcrHelpers.js +48 -0
  33. package/cjs/components/workflow/hooks/useChangeRequest.d.ts +5 -0
  34. package/cjs/components/workflow/hooks/useChangeRequest.js +58 -0
  35. package/{esm/components/workflow/components/AttributesChanges/types/DCRTypes.d.ts → cjs/components/workflow/types/dcrTypes.d.ts} +22 -16
  36. package/cjs/components/workflow/types/dcrTypes.js +2 -0
  37. package/esm/components/workflow/cards/DataChangeRequestTaskCard/DataChangeRequestTaskCard.js +6 -11
  38. package/esm/components/workflow/components/AttributesChanges/AttributesChanges.d.ts +7 -4
  39. package/esm/components/workflow/components/AttributesChanges/AttributesChanges.js +19 -9
  40. package/esm/components/workflow/components/AttributesChanges/components/ChangeView/ChangeView.d.ts +4 -4
  41. package/esm/components/workflow/components/AttributesChanges/components/ChangeView/styles.js +3 -9
  42. package/esm/components/workflow/components/AttributesChanges/components/DCRChangesList/DCRChangesList.d.ts +2 -2
  43. package/esm/components/workflow/components/AttributesChanges/components/DCRChangesList/DCRChangesList.js +4 -1
  44. package/esm/components/workflow/components/AttributesChanges/components/DCRChangesList/styles.d.ts +1 -0
  45. package/esm/components/workflow/components/AttributesChanges/components/DCRChangesList/styles.js +10 -0
  46. package/esm/components/workflow/components/AttributesChanges/components/DiffRenderer/DiffRenderer.d.ts +2 -13
  47. package/esm/components/workflow/components/AttributesChanges/components/DiffRenderer/DiffRenderer.js +26 -10
  48. package/esm/components/workflow/components/AttributesChanges/components/DiffRenderer/styles.d.ts +1 -1
  49. package/esm/components/workflow/components/AttributesChanges/components/DiffRenderer/styles.js +14 -2
  50. package/esm/components/workflow/components/AttributesChanges/contexts/AttributesChangesContext.d.ts +1 -1
  51. package/esm/components/workflow/components/AttributesChanges/helpers/attributesHelpers.d.ts +3 -2
  52. package/esm/components/workflow/components/AttributesChanges/helpers/attributesHelpers.js +35 -7
  53. package/esm/components/workflow/components/AttributesChanges/helpers/helpers.d.ts +4 -6
  54. package/esm/components/workflow/components/AttributesChanges/helpers/helpers.js +4 -25
  55. package/esm/components/workflow/components/AttributesChanges/helpers/mergeHelpers.d.ts +3 -2
  56. package/esm/components/workflow/components/AttributesChanges/helpers/mergeHelpers.js +112 -31
  57. package/esm/components/workflow/components/AttributesChanges/hooks/useCollapsibleList.d.ts +3 -2
  58. package/esm/components/workflow/components/AttributesChanges/hooks/useCollapsibleList.js +4 -4
  59. package/esm/components/workflow/components/AttributesChanges/types/diffTypes.d.ts +16 -0
  60. package/esm/components/workflow/components/AttributesChanges/types/{DCRTypes.js → diffTypes.js} +0 -0
  61. package/esm/components/workflow/components/LineDecorator/LineDecorator.d.ts +2 -1
  62. package/esm/components/workflow/components/LineDecorator/LineDecorator.js +5 -2
  63. package/esm/components/workflow/components/LineDecorator/styles.d.ts +1 -1
  64. package/esm/components/workflow/components/LineDecorator/styles.js +4 -1
  65. package/esm/components/workflow/{components/AttributesChanges/constants → constants}/operations.d.ts +0 -0
  66. package/esm/components/workflow/{components/AttributesChanges/constants → constants}/operations.js +0 -0
  67. package/esm/components/workflow/helpers/dcrHelpers.d.ts +7 -0
  68. package/esm/components/workflow/helpers/dcrHelpers.js +43 -0
  69. package/esm/components/workflow/hooks/useChangeRequest.d.ts +5 -0
  70. package/esm/components/workflow/hooks/useChangeRequest.js +54 -0
  71. package/{cjs/components/workflow/components/AttributesChanges/types/DCRTypes.d.ts → esm/components/workflow/types/dcrTypes.d.ts} +22 -16
  72. package/esm/components/workflow/types/dcrTypes.js +1 -0
  73. package/package.json +3 -3
@@ -1,46 +1,22 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
22
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
4
  };
24
5
  Object.defineProperty(exports, "__esModule", { value: true });
25
- var react_1 = __importStar(require("react"));
26
- var mdm_sdk_1 = require("@reltio/mdm-sdk");
6
+ var react_1 = __importDefault(require("react"));
27
7
  var GenericWorkflowTaskCard_1 = __importDefault(require("../GenericWorkflowTaskCard/GenericWorkflowTaskCard"));
28
8
  var LineDecorator_1 = __importDefault(require("../../components/LineDecorator/LineDecorator"));
29
9
  var helpers_1 = require("../../helpers");
30
10
  var DcrTaskIcon_1 = __importDefault(require("../../../../icons/DcrTaskIcon"));
31
- var AttributesChangesContext_1 = require("../../components/AttributesChanges/contexts/AttributesChangesContext");
32
- var helpers_2 = require("../../components/AttributesChanges/helpers/helpers");
33
11
  var AttributesChanges_1 = __importDefault(require("../../components/AttributesChanges/AttributesChanges"));
12
+ var useChangeRequest_1 = require("../../hooks/useChangeRequest");
34
13
  var DataChangeRequestTaskCard = function (_a) {
35
14
  var task = _a.task;
36
15
  var objectURIs = task.objectURIs;
37
16
  var dcrUri = helpers_1.getDCRUri(objectURIs);
38
- var _b = react_1.useState(null), dcr = _b[0], setDcr = _b[1];
39
- react_1.useEffect(function () {
40
- mdm_sdk_1.getDataChangeRequest(dcrUri).then(setDcr);
41
- }, [dcrUri]);
42
- var objectsWithChanges = react_1.useMemo(function () { return (dcr ? helpers_2.extractObjectsFromChangeRequest(dcr) : []); }, [dcr]);
43
- return (react_1.default.createElement(GenericWorkflowTaskCard_1.default, { task: task, Icon: DcrTaskIcon_1.default }, dcr && (react_1.default.createElement(AttributesChangesContext_1.AttributesChangesContext.Provider, { value: dcr.objectsInfo },
44
- react_1.default.createElement(LineDecorator_1.default, { last: true }, objectsWithChanges.map(function (object) { return (react_1.default.createElement(AttributesChanges_1.default, { key: object.uri, changes: dcr.changes[object.uri], objectInfo: object })); }))))));
17
+ var _b = useChangeRequest_1.useChangeRequest(dcrUri), dcr = _b.dcr, groupedObjects = _b.groupedObjects;
18
+ return (react_1.default.createElement(GenericWorkflowTaskCard_1.default, { task: task, Icon: DcrTaskIcon_1.default }, dcr &&
19
+ groupedObjects.map(function (object, index) { return (react_1.default.createElement(LineDecorator_1.default, { key: index, last: index === groupedObjects.length - 1, divider: true },
20
+ react_1.default.createElement(AttributesChanges_1.default, { entityInfo: object.entity, relationsInfo: object.relations, changes: dcr.changes, objectsInfo: dcr.objectsInfo }))); })));
45
21
  };
46
22
  exports.default = DataChangeRequestTaskCard;
@@ -1,8 +1,11 @@
1
1
  /// <reference types="react" />
2
- import { DCRChange, EntityInfo } from './types/DCRTypes';
2
+ import { DCRChanges, DCRObjectsInfo, EntityInfo, RelationInfo } from '../../types/dcrTypes';
3
3
  declare type Props = {
4
- changes: DCRChange[];
5
- objectInfo: EntityInfo;
4
+ changes: DCRChanges;
5
+ objectsInfo: DCRObjectsInfo;
6
+ entityInfo: EntityInfo;
7
+ relationsInfo?: RelationInfo[];
8
+ max?: number;
6
9
  };
7
- declare const AttributesChanges: ({ changes, objectInfo }: Props) => JSX.Element;
10
+ declare const AttributesChanges: ({ changes, objectsInfo, entityInfo, relationsInfo, max }: Props) => JSX.Element;
8
11
  export default AttributesChanges;
@@ -24,24 +24,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  var react_1 = __importStar(require("react"));
26
26
  var react_redux_1 = require("react-redux");
27
+ var ui_i18n_1 = __importDefault(require("ui-i18n"));
28
+ var ramda_1 = require("ramda");
27
29
  var mdm_module_1 = __importDefault(require("@reltio/mdm-module"));
28
30
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
29
31
  var mergeHelpers_1 = require("./helpers/mergeHelpers");
30
- var EntityUriLink_1 = __importDefault(require("../../../EntityUriLink/EntityUriLink"));
31
32
  var ShowMoreLink_1 = __importDefault(require("./components/ShowMoreLink/ShowMoreLink"));
32
33
  var DCRChangesList_1 = __importDefault(require("./components/DCRChangesList/DCRChangesList"));
34
+ var AttributesChangesContext_1 = require("./contexts/AttributesChangesContext");
33
35
  var useCollapsibleList_1 = require("./hooks/useCollapsibleList");
36
+ var EntityUriLink_1 = __importDefault(require("../../../EntityUriLink/EntityUriLink"));
34
37
  var styles_1 = require("./styles");
35
38
  var AttributesChanges = function (_a) {
36
- var changes = _a.changes, objectInfo = _a.objectInfo;
39
+ var changes = _a.changes, objectsInfo = _a.objectsInfo, entityInfo = _a.entityInfo, relationsInfo = _a.relationsInfo, max = _a.max;
37
40
  var styles = styles_1.useStyles();
38
41
  var metadata = react_redux_1.useSelector(mdm_module_1.default.selectors.getMetadata);
39
- var mergedChanges = react_1.useMemo(function () { return mergeHelpers_1.mergeChanges(metadata, changes, objectInfo); }, [metadata, changes, objectInfo]);
40
- var _b = useCollapsibleList_1.useCollapsibleList(mergedChanges), isExpanded = _b.isExpanded, onToggle = _b.onToggle, itemsToShow = _b.itemsToShow, collapsedSuggestionsCount = _b.collapsedSuggestionsCount;
41
- return (react_1.default.createElement("div", { className: styles.container },
42
- react_1.default.createElement(EntityUriLink_1.default, { className: styles.uri, value: mdm_sdk_1.getEntityUriForLink(objectInfo) },
43
- react_1.default.createElement("div", { className: styles.label }, mdm_sdk_1.getLabel(objectInfo.label))),
44
- react_1.default.createElement(DCRChangesList_1.default, { changes: itemsToShow }),
45
- collapsedSuggestionsCount > 0 && (react_1.default.createElement(ShowMoreLink_1.default, { onClick: onToggle, suggestionsCount: collapsedSuggestionsCount, isExpanded: isExpanded, className: styles.showMoreLink }))));
42
+ var _b = react_1.useMemo(function () { return mergeHelpers_1.mergeChanges(metadata, changes, entityInfo, relationsInfo); }, [metadata, changes, entityInfo, relationsInfo]), mergedEntityChanges = _b[0], mergedRelationsChanges = _b[1];
43
+ var changesList = react_1.useMemo(function () {
44
+ var relationshipTitle = { label: ui_i18n_1.default.text('Relationships') };
45
+ return mergedRelationsChanges.length > 0
46
+ ? ramda_1.flatten([mergedEntityChanges, relationshipTitle, mergedRelationsChanges])
47
+ : mergedEntityChanges;
48
+ }, [mergedEntityChanges, mergedRelationsChanges]);
49
+ var _c = useCollapsibleList_1.useCollapsibleList(changesList, max), isExpanded = _c.isExpanded, onToggle = _c.onToggle, itemsToShow = _c.itemsToShow, collapsedSuggestionsCount = _c.collapsedSuggestionsCount;
50
+ return (react_1.default.createElement(AttributesChangesContext_1.AttributesChangesContext.Provider, { value: objectsInfo },
51
+ react_1.default.createElement("div", { className: styles.container },
52
+ react_1.default.createElement(EntityUriLink_1.default, { className: styles.uri, value: mdm_sdk_1.getEntityUriForLink(entityInfo) },
53
+ react_1.default.createElement("div", { className: styles.label }, mdm_sdk_1.getLabel(entityInfo.label))),
54
+ react_1.default.createElement(DCRChangesList_1.default, { changes: itemsToShow }),
55
+ collapsedSuggestionsCount > 0 && (react_1.default.createElement(ShowMoreLink_1.default, { onClick: onToggle, suggestionsCount: collapsedSuggestionsCount, isExpanded: isExpanded, className: styles.showMoreLink })))));
46
56
  };
47
57
  exports.default = AttributesChanges;
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { OperationTypes } from '../../constants/operations';
2
+ import { OperationTypes } from '../../../../constants/operations';
3
3
  declare type Props = {
4
- label: React.ReactElement;
5
- oldValue?: React.ReactElement;
6
- newValue?: React.ReactElement;
4
+ label: React.ReactNode;
5
+ oldValue?: React.ReactNode;
6
+ newValue?: React.ReactNode;
7
7
  operation?: OperationTypes;
8
8
  className?: string;
9
9
  };
@@ -8,20 +8,15 @@ exports.useStyles = styles_1.makeStyles(function (theme) { return ({
8
8
  lineHeight: '20px',
9
9
  color: theme.palette.text.primary,
10
10
  marginTop: '6px',
11
- display: 'flex',
12
- flexWrap: 'wrap',
13
- overflow: 'hidden'
11
+ overflow: 'hidden',
12
+ wordBreak: 'break-word'
14
13
  },
15
14
  fieldName: {
16
- display: 'flex',
17
- alignItems: 'center',
18
15
  color: theme.palette.text.secondary,
19
16
  marginRight: '8px'
20
17
  },
21
18
  difference: {
22
- display: 'flex',
23
- alignItems: 'center',
24
- flexDirection: 'row'
19
+ marginRight: '8px'
25
20
  },
26
21
  arrow: {
27
22
  margin: '0 4px',
@@ -34,7 +29,6 @@ exports.useStyles = styles_1.makeStyles(function (theme) { return ({
34
29
  fontWeight: 500,
35
30
  lineHeight: '16px',
36
31
  letterSpacing: 0,
37
- marginLeft: '8px',
38
32
  flexShrink: 0,
39
33
  textTransform: 'capitalize',
40
34
  color: theme.palette.primary.main,
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { Props as Change } from '../DiffRenderer/DiffRenderer';
2
+ import { Diff, Title } from '../../types/diffTypes';
3
3
  declare type Props = {
4
- changes: Change[];
4
+ changes: (Diff | Title)[];
5
5
  };
6
6
  declare const DCRChangesList: ({ changes }: Props) => JSX.Element;
7
7
  export default DCRChangesList;
@@ -15,11 +15,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  var react_1 = __importDefault(require("react"));
18
+ var ramda_1 = require("ramda");
18
19
  var DiffRenderer_1 = __importDefault(require("../DiffRenderer/DiffRenderer"));
20
+ var styles_1 = require("./styles");
19
21
  var DCRChangesList = function (_a) {
20
22
  var changes = _a.changes;
23
+ var styles = styles_1.useStyles();
21
24
  return (react_1.default.createElement(react_1.default.Fragment, null, changes.map(function (change, index) {
22
- return react_1.default.createElement(DiffRenderer_1.default, __assign({}, change, { key: index }));
25
+ return ramda_1.has('level', change) ? (react_1.default.createElement(DiffRenderer_1.default, __assign({}, change, { key: index }))) : (react_1.default.createElement("div", { className: styles.title, key: index }, change.label));
23
26
  })));
24
27
  };
25
28
  exports.default = DCRChangesList;
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"title">;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useStyles = void 0;
4
+ var styles_1 = require("@material-ui/core/styles");
5
+ exports.useStyles = styles_1.makeStyles({
6
+ title: {
7
+ fontSize: '12px',
8
+ letterSpacing: 0,
9
+ lineHeight: '16px',
10
+ fontWeight: 500,
11
+ marginTop: '8px'
12
+ }
13
+ });
@@ -1,15 +1,4 @@
1
1
  /// <reference types="react" />
2
- import { AttributeType } from '@reltio/mdm-sdk';
3
- import { OperationTypes } from '../../constants/operations';
4
- import { ChangeValue, DCRAttributeValue } from '../../types/DCRTypes';
5
- export declare type Props = {
6
- level: number;
7
- label: string;
8
- attributeType: AttributeType;
9
- attributeValue?: DCRAttributeValue;
10
- newValue?: ChangeValue;
11
- oldValue?: ChangeValue;
12
- operation?: OperationTypes;
13
- };
14
- declare const DiffRenderer: ({ label, level, attributeType, attributeValue, oldValue, newValue, operation }: Props) => JSX.Element;
2
+ import { Diff } from '../../types/diffTypes';
3
+ declare const DiffRenderer: ({ label, level, attributeType, attributeValue, oldValue, newValue, operation }: Diff) => JSX.Element;
15
4
  export default DiffRenderer;
@@ -25,30 +25,46 @@ Object.defineProperty(exports, "__esModule", { value: true });
25
25
  var react_1 = __importStar(require("react"));
26
26
  var react_redux_1 = require("react-redux");
27
27
  var ramda_1 = require("ramda");
28
+ var classnames_1 = __importDefault(require("classnames"));
28
29
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
29
30
  var mdm_module_1 = __importDefault(require("@reltio/mdm-module"));
30
31
  var ChangeView_1 = __importDefault(require("../ChangeView/ChangeView"));
31
- var helpers_1 = require("../../helpers/helpers");
32
- var EntityUriLink_1 = __importDefault(require("../../../../../EntityUriLink/EntityUriLink"));
33
32
  var AttributesChangesContext_1 = require("../../contexts/AttributesChangesContext");
33
+ var helpers_1 = require("../../helpers/helpers");
34
34
  var DataTypeValue_1 = __importDefault(require("../../../../../DataTypeValue/DataTypeValue"));
35
+ var EntityUriLink_1 = __importDefault(require("../../../../../EntityUriLink/EntityUriLink"));
35
36
  var styles_1 = require("./styles");
36
37
  var DiffRenderer = function (_a) {
37
38
  var label = _a.label, level = _a.level, attributeType = _a.attributeType, attributeValue = _a.attributeValue, oldValue = _a.oldValue, newValue = _a.newValue, operation = _a.operation;
38
39
  var styles = styles_1.useStyles({ level: level });
39
- var entity = react_redux_1.useSelector(mdm_module_1.default.selectors.getEntity);
40
+ var entityUri = react_redux_1.useSelector(mdm_module_1.default.selectors.getEntityUri);
40
41
  var objectsInfo = react_1.useContext(AttributesChangesContext_1.AttributesChangesContext);
41
- var renderLink = react_1.useCallback(function () {
42
+ var getLinkDescription = react_1.useCallback(function () {
42
43
  if (mdm_sdk_1.isReference(attributeType)) {
43
44
  var value = ramda_1.when(ramda_1.anyPass([ramda_1.hasPath(['value', 'newValue']), ramda_1.hasPath(['value', 'oldValue'])]), ramda_1.ifElse(ramda_1.hasPath(['value', 'newValue']), ramda_1.path(['value', 'newValue']), ramda_1.path(['value', 'oldValue'])))(attributeValue);
44
- var _a = helpers_1.getAttributeDescription(attributeType, value, entity.uri, objectsInfo), objectUri = _a.objectUri, objectLabel = _a.objectLabel;
45
- return (react_1.default.createElement(EntityUriLink_1.default, { value: objectUri, className: styles.uri },
46
- react_1.default.createElement("span", null, mdm_sdk_1.getLabel(objectLabel))));
45
+ return helpers_1.getAttributeDescription(attributeType, value, entityUri, objectsInfo);
46
+ }
47
+ else if ('endObject' in attributeType) {
48
+ var _a = attributeValue, endObjectUri = _a.endObjectUri, endObjectLabel = _a.endObjectLabel;
49
+ return {
50
+ objectUri: endObjectUri,
51
+ objectLabel: endObjectLabel
52
+ };
53
+ }
54
+ }, [attributeType, attributeValue, entityUri, objectsInfo]);
55
+ var renderLink = react_1.useCallback(function () {
56
+ var _a, _b;
57
+ var _c;
58
+ var _d = getLinkDescription() || {}, objectUri = _d.objectUri, objectLabel = _d.objectLabel;
59
+ if (!ramda_1.isNil(objectUri) && !ramda_1.isNil(objectLabel)) {
60
+ var isNotExist = ((_c = objectsInfo[objectUri]) === null || _c === void 0 ? void 0 : _c.isExist) === false;
61
+ return (react_1.default.createElement(EntityUriLink_1.default, { value: objectUri, className: classnames_1.default(styles.linkContainer, (_a = {}, _a[styles.disabledLink] = isNotExist, _a)) },
62
+ react_1.default.createElement("span", { className: classnames_1.default(styles.linkLabel, (_b = {}, _b[styles.label] = isNotExist, _b)) }, mdm_sdk_1.getLabel(objectLabel))));
47
63
  }
48
64
  return null;
49
- }, [attributeType, attributeValue, entity.uri, objectsInfo, styles.uri]);
65
+ }, [getLinkDescription, objectsInfo, styles]);
50
66
  var changeLabel = react_1.useMemo(function () {
51
- return (react_1.default.createElement("div", null,
67
+ return (react_1.default.createElement("span", null,
52
68
  label,
53
69
  renderLink()));
54
70
  }, [label, renderLink]);
@@ -1,5 +1,5 @@
1
1
  declare type StylesProps = {
2
2
  level: number;
3
3
  };
4
- export declare const useStyles: (props: StylesProps) => import("@material-ui/core/styles/withStyles").ClassNameMap<"uri" | "change">;
4
+ export declare const useStyles: (props: StylesProps) => import("@material-ui/core/styles/withStyles").ClassNameMap<"label" | "change" | "linkLabel" | "linkContainer" | "disabledLink">;
5
5
  export {};
@@ -3,12 +3,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useStyles = void 0;
4
4
  var styles_1 = require("@material-ui/core/styles");
5
5
  exports.useStyles = styles_1.makeStyles(function (theme) { return ({
6
- uri: {
7
- color: theme.palette.primary.main,
6
+ linkContainer: {
8
7
  textDecoration: 'none',
9
8
  cursor: 'pointer',
10
9
  marginLeft: '4px'
11
10
  },
11
+ linkLabel: {
12
+ color: theme.palette.primary.main,
13
+ fontSize: '12px',
14
+ letterSpacing: 0,
15
+ lineHeight: '16px'
16
+ },
17
+ disabledLink: {
18
+ pointerEvents: 'none',
19
+ cursor: 'default'
20
+ },
21
+ label: {
22
+ color: theme.palette.text.primary
23
+ },
12
24
  change: function (_a) {
13
25
  var _b = _a.level, level = _b === void 0 ? 0 : _b;
14
26
  return ({
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { DCRObjectsInfo } from '../types/DCRTypes';
2
+ import { DCRObjectsInfo } from '../../../types/dcrTypes';
3
3
  export declare const AttributesChangesContext: React.Context<DCRObjectsInfo>;
@@ -1,2 +1,3 @@
1
- declare const getChanges: any;
2
- export { getChanges };
1
+ declare const getEntityChanges: any;
2
+ declare const getRelationChanges: any;
3
+ export { getEntityChanges, getRelationChanges };
@@ -1,11 +1,22 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getChanges = void 0;
14
+ exports.getRelationChanges = exports.getEntityChanges = void 0;
4
15
  var ramda_1 = require("ramda");
5
16
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
6
17
  var attributesView_1 = require("../../../../attributes/helpers/attributesView");
7
18
  var helpers_1 = require("./helpers");
8
- var operations_1 = require("../constants/operations");
19
+ var operations_1 = require("../../../constants/operations");
9
20
  var getValues = function (attributes, attrType) {
10
21
  if ('newValue' in attributes || 'oldValue' in attributes) {
11
22
  var newValue = attributes.newValue, oldValue = attributes.oldValue, type_1 = attributes.type;
@@ -24,11 +35,25 @@ var getValues = function (attributes, attrType) {
24
35
  var values = attributes[attrType.name];
25
36
  return values ? [values] : [];
26
37
  };
27
- var getChanges = ramda_1.curry(function (metadata, objectInfo, changes) {
28
- var attrTypes = attributesView_1.getFilteredAttrTypes(metadata, objectInfo.type, [], []);
38
+ var getEntityChanges = ramda_1.curry(function (metadata, entityInfo, changes) {
39
+ var attrTypes = attributesView_1.getFilteredAttrTypes(metadata, entityInfo.type, [], []);
29
40
  return getAttributesList(metadata, attrTypes, changes);
30
41
  });
31
- exports.getChanges = getChanges;
42
+ exports.getEntityChanges = getEntityChanges;
43
+ var getRelationChanges = ramda_1.curry(function (metadata, relationInfo, changes) {
44
+ var relationType = mdm_sdk_1.getRelationType(metadata, relationInfo.type);
45
+ var attrTypes = mdm_sdk_1.getRelationAttributesList(metadata, relationInfo.type);
46
+ return ramda_1.flatten([
47
+ {
48
+ level: 1,
49
+ label: ramda_1.propOr('', 'label', relationType),
50
+ attributeType: relationType,
51
+ attributeValue: __assign(__assign({}, relationInfo), changes)
52
+ },
53
+ getAttributesList(metadata, attrTypes, changes, 2)
54
+ ]);
55
+ });
56
+ exports.getRelationChanges = getRelationChanges;
32
57
  var getAttributesList = function (metadata, attrTypes, attributes, level) {
33
58
  if (level === void 0) { level = 0; }
34
59
  return ramda_1.flatten(attrTypes
@@ -41,6 +66,10 @@ var getAttributesList = function (metadata, attrTypes, attributes, level) {
41
66
  })
42
67
  .filter(ramda_1.complement(ramda_1.isEmpty)));
43
68
  };
69
+ var getSimpleAttributeValue = function (attributeType, attributeValue) {
70
+ var value = mdm_sdk_1.isSpecialAttribute(attributeType) ? attributeValue : attributeValue.value;
71
+ return ramda_1.is(Object, value) ? value : { newValue: attributeValue, type: operations_1.DCRTypes.INSERT_ATTRIBUTE };
72
+ };
44
73
  var dcrAttributesFactory = function (metadata, attributeType, attributeValue, level) {
45
74
  switch (attributeType.type) {
46
75
  case mdm_sdk_1.DataTypes.TYPE_NESTED:
@@ -49,7 +78,7 @@ var dcrAttributesFactory = function (metadata, attributeType, attributeValue, le
49
78
  case mdm_sdk_1.DataTypes.TYPE_REFERENCE:
50
79
  return getReferenceAttributeChange(metadata, attributeType, attributeValue, level);
51
80
  default: {
52
- var value = mdm_sdk_1.isSpecialAttribute(attributeType) ? attributeValue : attributeValue.value;
81
+ var value = getSimpleAttributeValue(attributeType, attributeValue);
53
82
  return getSimpleAttributeChange(attributeType, value, level);
54
83
  }
55
84
  }
@@ -1,12 +1,10 @@
1
1
  import { AttributeType } from '@reltio/mdm-sdk';
2
- import { OperationTypes } from '../constants/operations';
3
- import { ChangeRequest, DCRAttributeValue, DCRObjectsInfo, Value } from '../types/DCRTypes';
2
+ import { OperationTypes } from '../../../constants/operations';
3
+ import { DCRAttributeValue, DCRObjectsInfo, Value } from '../../../types/dcrTypes';
4
4
  export declare const getOperationType: (type: string, oldValue?: DCRAttributeValue) => OperationTypes;
5
5
  export declare const getOperationLabel: (operation: OperationTypes) => string;
6
6
  export declare const getAttributeDescription: (attrType: AttributeType, value: DCRAttributeValue, currentEntityUri: string, objectsInfo?: DCRObjectsInfo) => {
7
- objectUri: any;
8
- objectLabel: any;
9
- entityTypeUri: any;
7
+ objectUri: string;
8
+ objectLabel: string;
10
9
  };
11
- export declare const extractObjectsFromChangeRequest: ({ objectsInfo, changes }: ChangeRequest) => any;
12
10
  export declare const getDataTypeDefinition: (attributeType: AttributeType, attributeValue: Value) => any;
@@ -1,24 +1,13 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.getDataTypeDefinition = exports.extractObjectsFromChangeRequest = exports.getAttributeDescription = exports.getOperationLabel = exports.getOperationType = void 0;
6
+ exports.getDataTypeDefinition = exports.getAttributeDescription = exports.getOperationLabel = exports.getOperationType = void 0;
18
7
  var ui_i18n_1 = __importDefault(require("ui-i18n"));
19
8
  var ramda_1 = require("ramda");
20
9
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
21
- var operations_1 = require("../constants/operations");
10
+ var operations_1 = require("../../../constants/operations");
22
11
  var getOperationType = function (type, oldValue) {
23
12
  switch (type) {
24
13
  case operations_1.DCRTypes.CREATE_RELATIONSHIP:
@@ -54,7 +43,7 @@ var getOperationLabel = function (operation) {
54
43
  exports.getOperationLabel = getOperationLabel;
55
44
  var getAttributeDescription = function (attrType, value, currentEntityUri, objectsInfo) {
56
45
  if (objectsInfo === void 0) { objectsInfo = {}; }
57
- var objectLabel, objectUri, entityTypeUri;
46
+ var objectLabel, objectUri;
58
47
  var relation = objectsInfo[value.refObjectURI];
59
48
  if (relation) {
60
49
  objectUri = currentEntityUri === relation.startObjectUri ? relation.endObjectUri : relation.startObjectUri;
@@ -65,23 +54,12 @@ var getAttributeDescription = function (attrType, value, currentEntityUri, objec
65
54
  objectUri = value.refEntity.objectURI;
66
55
  objectLabel = objectsInfo[objectUri].label;
67
56
  }
68
- if (objectUri && objectLabel) {
69
- var objectInfo = objectsInfo[objectUri];
70
- entityTypeUri = objectInfo ? objectInfo.type : attrType.referencedEntityTypeURI;
71
- }
72
57
  return {
73
58
  objectUri: objectUri,
74
- objectLabel: objectLabel,
75
- entityTypeUri: entityTypeUri
59
+ objectLabel: objectLabel
76
60
  };
77
61
  };
78
62
  exports.getAttributeDescription = getAttributeDescription;
79
- var extractObjectsFromChangeRequest = function (_a) {
80
- var _b = _a.objectsInfo, objectsInfo = _b === void 0 ? {} : _b, _c = _a.changes, changes = _c === void 0 ? {} : _c;
81
- var getChange = function (key) { return ramda_1.prop([key], changes); };
82
- return ramda_1.pipe(ramda_1.keys, ramda_1.filter(getChange), ramda_1.map(function (key) { return (__assign(__assign({}, objectsInfo[key]), { uri: key })); }))(objectsInfo);
83
- };
84
- exports.extractObjectsFromChangeRequest = extractObjectsFromChangeRequest;
85
63
  var getDataTypeDefinition = function (attributeType, attributeValue) {
86
64
  return ramda_1.when(ramda_1.allPass([ramda_1.pipe(ramda_1.prop('type'), ramda_1.equals(mdm_sdk_1.DataTypes.TYPE_STRING)), function () { return mdm_sdk_1.isUrl(attributeValue); }]), ramda_1.evolve({ type: ramda_1.always(mdm_sdk_1.DataTypes.TYPE_URL) }))(mdm_sdk_1.getAttrDataTypeDefinition(attributeType));
87
65
  };
@@ -1,4 +1,5 @@
1
1
  import { Metadata } from '@reltio/mdm-sdk';
2
- import { DCRChange, DCRObjectInfo } from '../types/DCRTypes';
3
- declare const mergeChanges: (metadata: Metadata, changes: DCRChange[], objectInfo: DCRObjectInfo) => any;
2
+ import { Diff } from '../types/diffTypes';
3
+ import { DCRChanges, EntityInfo, RelationInfo } from '../../../types/dcrTypes';
4
+ declare const mergeChanges: (metadata: Metadata, changes: DCRChanges, entityInfo: EntityInfo, relationsInfo: RelationInfo[]) => [Diff[], Diff[]];
4
5
  export { mergeChanges };