@reltio/components 1.4.1385 → 1.4.1387
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.
|
@@ -60,7 +60,7 @@ var areRelatedEntitiesChanged = function (initial, actual) {
|
|
|
60
60
|
};
|
|
61
61
|
var RelationEditor = function (_a) {
|
|
62
62
|
var _b;
|
|
63
|
-
var connection = _a.connection, modifiedEntity = _a.modifiedEntity, allModifiedEntities = _a.allModifiedEntities, dispatch = _a.dispatch, config = _a.config, mode = _a.mode, metadata = _a.metadata, globalSearchRequestOptions = _a.globalSearchRequestOptions, error = _a.error, highlightedError = _a.highlightedError;
|
|
63
|
+
var connection = _a.connection, modifiedEntity = _a.modifiedEntity, initialConnection = _a.initialConnection, initialModifiedEntity = _a.initialModifiedEntity, allModifiedEntities = _a.allModifiedEntities, dispatch = _a.dispatch, config = _a.config, mode = _a.mode, metadata = _a.metadata, globalSearchRequestOptions = _a.globalSearchRequestOptions, error = _a.error, highlightedError = _a.highlightedError;
|
|
64
64
|
var _c = connection.relation, relationUri = _c.relationUri, relationType = _c.relationType, direction = _c.direction;
|
|
65
65
|
var isNew = connection.isNew;
|
|
66
66
|
var styles = (0, styles_1.useStyles)();
|
|
@@ -76,17 +76,23 @@ var RelationEditor = function (_a) {
|
|
|
76
76
|
}, [config, direction, relationType, mode, metadata, connection.parentEntityUri]), _f = _e.inRelations, inRelationTypes = _f === void 0 ? [] : _f, _g = _e.outRelations, outRelationTypes = _g === void 0 ? [] : _g;
|
|
77
77
|
var firstLevelRelationAttrTypes = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.getRelationAttributesList)(metadata, relationType); }, [relationType, metadata]);
|
|
78
78
|
var attributeListEntity = (0, react_1.useMemo)(function () { return (__assign({ attributes: __assign({}, mdm_module_1.profile.relations.selectors.getRelationAttributesFromConnection(connection)) }, (0, mdm_sdk_1.getActivenessAttributes)(connection.relation))); }, [connection]);
|
|
79
|
-
var initialConnection = (0, react_1.useRef)(connection);
|
|
80
|
-
var initialModifiedEntity = (0, react_1.useRef)(modifiedEntity);
|
|
81
79
|
var relatedTempEntities = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.findRelatedTemporaryEntities)(allModifiedEntities, modifiedEntity); }, [allModifiedEntities, modifiedEntity]);
|
|
82
80
|
var relatedTempEntitiesUrisHistory = (0, react_1.useRef)([]);
|
|
81
|
+
var setInitialInfo = (0, react_1.useCallback)(function (entity, connection) {
|
|
82
|
+
dispatch(mdm_module_1.profile.relations.actions.setInitialInfo(config.id, relationUri, entity, connection));
|
|
83
|
+
}, [dispatch]);
|
|
84
|
+
(0, react_1.useEffect)(function () {
|
|
85
|
+
if (!initialConnection) {
|
|
86
|
+
setInitialInfo(modifiedEntity, connection);
|
|
87
|
+
}
|
|
88
|
+
}, []);
|
|
83
89
|
(0, react_1.useEffect)(function () {
|
|
84
90
|
relatedTempEntitiesUrisHistory.current = (0, ramda_1.pipe)((0, ramda_1.concat)(relatedTempEntities.map((0, ramda_1.prop)('uri'))), ramda_1.uniq)(relatedTempEntitiesUrisHistory.current);
|
|
85
91
|
}, [relatedTempEntities]);
|
|
86
92
|
var initialRelatedTempEntities = (0, react_1.useRef)(relatedTempEntities);
|
|
87
93
|
var defaultRelationType = (0, mdm_sdk_1.getDefaultRelationTypeObject)(inRelationTypes, outRelationTypes);
|
|
88
|
-
var hasChanges = initialConnection.
|
|
89
|
-
initialModifiedEntity
|
|
94
|
+
var hasChanges = !(0, ramda_1.equals)((0, ramda_1.pick)(['entity', 'relation'], initialConnection || {}), (0, ramda_1.pick)(['entity', 'relation'], connection)) ||
|
|
95
|
+
!(0, ramda_1.equals)(initialModifiedEntity, modifiedEntity) ||
|
|
90
96
|
areRelatedEntitiesChanged(initialRelatedTempEntities.current, relatedTempEntities) ||
|
|
91
97
|
(connection.isNew && !(0, mdm_sdk_1.isEmptyValue)((0, ramda_1.path)(['relation', 'object', 'attributes'], connection)));
|
|
92
98
|
var applyAction = isNew ? mdm_module_1.profile.relations.actions.addRelation : mdm_module_1.profile.relations.actions.editRelation;
|
|
@@ -116,13 +122,12 @@ var RelationEditor = function (_a) {
|
|
|
116
122
|
return errors.length === 0;
|
|
117
123
|
}, [connection, metadata, allModifiedEntities, dispatch]);
|
|
118
124
|
var resetErrors = (0, react_1.useCallback)(function () { return dispatch(mdm_module_1.profile.errors.actions.errorsSet([])); }, [dispatch]);
|
|
119
|
-
var onApply = (0, react_1.useCallback)((0, ramda_1.pipe)((0, ramda_1.always)(connection), (0, ramda_1.when)(validate, (0, ramda_1.pipe)(mdm_sdk_1.omitMarks, updateModifiedEntityLabel, applyAction(config.id), dispatch, (0, ramda_1.always)((0, ramda_1.differenceWith)(ramda_1.equals, relatedTempEntitiesUrisHistory.current, relatedTempEntities.map((0, ramda_1.prop)('uri')))), (0, ramda_1.forEach)(deleteModifiedEntity), handleClose))), [connection, config, dispatch, updateModifiedEntityLabel, validate, relatedTempEntities]);
|
|
125
|
+
var onApply = (0, react_1.useCallback)((0, ramda_1.pipe)((0, ramda_1.always)(connection), (0, ramda_1.when)(validate, (0, ramda_1.pipe)(mdm_sdk_1.omitMarks, updateModifiedEntityLabel, (0, ramda_1.omit)(['initial']), applyAction(config.id), dispatch, (0, ramda_1.always)((0, ramda_1.differenceWith)(ramda_1.equals, relatedTempEntitiesUrisHistory.current, relatedTempEntities.map((0, ramda_1.prop)('uri')))), (0, ramda_1.forEach)(deleteModifiedEntity), handleClose))), [connection, config, dispatch, updateModifiedEntityLabel, validate, relatedTempEntities]);
|
|
120
126
|
var onCancel = (0, react_1.useCallback)(function () {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
if (modifiedEntity && modifiedEntity.uri !== initialEntity.uri) {
|
|
127
|
+
if (modifiedEntity !== initialModifiedEntity) {
|
|
128
|
+
if (initialModifiedEntity) {
|
|
129
|
+
setModifiedEntity(initialModifiedEntity);
|
|
130
|
+
if (modifiedEntity && modifiedEntity.uri !== initialModifiedEntity.uri) {
|
|
126
131
|
deleteModifiedEntity(modifiedEntity.uri);
|
|
127
132
|
}
|
|
128
133
|
}
|
|
@@ -136,7 +141,7 @@ var RelationEditor = function (_a) {
|
|
|
136
141
|
initialTempEntities.forEach(setModifiedEntity);
|
|
137
142
|
resetErrors();
|
|
138
143
|
handleClose();
|
|
139
|
-
}, [handleClose, setModifiedEntity, deleteModifiedEntity, resetErrors, modifiedEntity]);
|
|
144
|
+
}, [handleClose, setModifiedEntity, deleteModifiedEntity, resetErrors, modifiedEntity, initialModifiedEntity]);
|
|
140
145
|
var onAddAttributes = (0, react_1.useCallback)(function (params) {
|
|
141
146
|
return (0, ramda_1.pipe)(mdm_module_1.profile.actions.addAttributes, dispatch)(params.map(function (param) { return (__assign(__assign({}, param), { viewId: config.id })); }));
|
|
142
147
|
}, [config.id, dispatch]);
|
|
@@ -183,6 +188,8 @@ var RelationEditor = function (_a) {
|
|
|
183
188
|
RelationEditor.propTypes = {
|
|
184
189
|
connection: mdm_sdk_1.ConnectionType,
|
|
185
190
|
modifiedEntity: mdm_sdk_1.EntityType,
|
|
191
|
+
initialConnection: mdm_sdk_1.ConnectionType,
|
|
192
|
+
initialModifiedEntity: mdm_sdk_1.EntityType,
|
|
186
193
|
allModifiedEntities: prop_types_1.default.object,
|
|
187
194
|
dispatch: prop_types_1.default.func,
|
|
188
195
|
config: mdm_sdk_1.RelationsConfigType,
|
|
@@ -33,10 +33,14 @@ var mdm_module_1 = __importStar(require("@reltio/mdm-module"));
|
|
|
33
33
|
var react_redux_1 = require("react-redux");
|
|
34
34
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
35
35
|
var getConnectionEntityUri = function (props) { return mdm_module_1.profile.relations.selectors.getEntityUriFromConnection(props.connection); };
|
|
36
|
+
var getConnectionRelationUri = function (props) { return mdm_module_1.profile.relations.selectors.getRelationUriFromConnection(props.connection); };
|
|
36
37
|
var mapStateToProps = function (state, ownProps) {
|
|
37
38
|
var entityUri = getConnectionEntityUri(ownProps);
|
|
39
|
+
var relationUri = getConnectionRelationUri(ownProps);
|
|
38
40
|
var isTempEntity = (0, mdm_sdk_1.isTempUri)(entityUri);
|
|
39
41
|
return {
|
|
42
|
+
initialConnection: mdm_module_1.default.selectors.getInitialConnection(state, ownProps.config.id, relationUri),
|
|
43
|
+
initialModifiedEntity: mdm_module_1.default.selectors.getInitialConnectionTempEntity(state, ownProps.config.id, relationUri),
|
|
40
44
|
modifiedEntity: isTempEntity ? mdm_module_1.default.selectors.getModifiedEntity(state, entityUri) : null,
|
|
41
45
|
allModifiedEntities: isTempEntity ? mdm_module_1.default.selectors.getModifiedEntities(state) : null,
|
|
42
46
|
globalSearchRequestOptions: mdm_module_1.default.selectors.getGlobalSearchRequestOptions(state, ['ovOnly']),
|
|
@@ -13,7 +13,7 @@ import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
|
13
13
|
import i18n from 'ui-i18n';
|
|
14
14
|
import PropTypes from 'prop-types';
|
|
15
15
|
import classnames from 'classnames';
|
|
16
|
-
import { allPass, always, concat, differenceWith, equals, forEach, path, pipe, prop, when, uniq, propEq } from 'ramda';
|
|
16
|
+
import { allPass, always, concat, differenceWith, equals, forEach, omit, path, pick, pipe, prop, when, uniq, propEq } from 'ramda';
|
|
17
17
|
import Button from '@material-ui/core/Button';
|
|
18
18
|
import Divider from '@material-ui/core/Divider';
|
|
19
19
|
import Typography from '@material-ui/core/Typography';
|
|
@@ -32,7 +32,7 @@ var areRelatedEntitiesChanged = function (initial, actual) {
|
|
|
32
32
|
};
|
|
33
33
|
var RelationEditor = function (_a) {
|
|
34
34
|
var _b;
|
|
35
|
-
var connection = _a.connection, modifiedEntity = _a.modifiedEntity, allModifiedEntities = _a.allModifiedEntities, dispatch = _a.dispatch, config = _a.config, mode = _a.mode, metadata = _a.metadata, globalSearchRequestOptions = _a.globalSearchRequestOptions, error = _a.error, highlightedError = _a.highlightedError;
|
|
35
|
+
var connection = _a.connection, modifiedEntity = _a.modifiedEntity, initialConnection = _a.initialConnection, initialModifiedEntity = _a.initialModifiedEntity, allModifiedEntities = _a.allModifiedEntities, dispatch = _a.dispatch, config = _a.config, mode = _a.mode, metadata = _a.metadata, globalSearchRequestOptions = _a.globalSearchRequestOptions, error = _a.error, highlightedError = _a.highlightedError;
|
|
36
36
|
var _c = connection.relation, relationUri = _c.relationUri, relationType = _c.relationType, direction = _c.direction;
|
|
37
37
|
var isNew = connection.isNew;
|
|
38
38
|
var styles = useStyles();
|
|
@@ -48,17 +48,23 @@ var RelationEditor = function (_a) {
|
|
|
48
48
|
}, [config, direction, relationType, mode, metadata, connection.parentEntityUri]), _f = _e.inRelations, inRelationTypes = _f === void 0 ? [] : _f, _g = _e.outRelations, outRelationTypes = _g === void 0 ? [] : _g;
|
|
49
49
|
var firstLevelRelationAttrTypes = useMemo(function () { return getRelationAttributesList(metadata, relationType); }, [relationType, metadata]);
|
|
50
50
|
var attributeListEntity = useMemo(function () { return (__assign({ attributes: __assign({}, profile.relations.selectors.getRelationAttributesFromConnection(connection)) }, getActivenessAttributes(connection.relation))); }, [connection]);
|
|
51
|
-
var initialConnection = useRef(connection);
|
|
52
|
-
var initialModifiedEntity = useRef(modifiedEntity);
|
|
53
51
|
var relatedTempEntities = useMemo(function () { return findRelatedTemporaryEntities(allModifiedEntities, modifiedEntity); }, [allModifiedEntities, modifiedEntity]);
|
|
54
52
|
var relatedTempEntitiesUrisHistory = useRef([]);
|
|
53
|
+
var setInitialInfo = useCallback(function (entity, connection) {
|
|
54
|
+
dispatch(profile.relations.actions.setInitialInfo(config.id, relationUri, entity, connection));
|
|
55
|
+
}, [dispatch]);
|
|
56
|
+
useEffect(function () {
|
|
57
|
+
if (!initialConnection) {
|
|
58
|
+
setInitialInfo(modifiedEntity, connection);
|
|
59
|
+
}
|
|
60
|
+
}, []);
|
|
55
61
|
useEffect(function () {
|
|
56
62
|
relatedTempEntitiesUrisHistory.current = pipe(concat(relatedTempEntities.map(prop('uri'))), uniq)(relatedTempEntitiesUrisHistory.current);
|
|
57
63
|
}, [relatedTempEntities]);
|
|
58
64
|
var initialRelatedTempEntities = useRef(relatedTempEntities);
|
|
59
65
|
var defaultRelationType = getDefaultRelationTypeObject(inRelationTypes, outRelationTypes);
|
|
60
|
-
var hasChanges = initialConnection
|
|
61
|
-
initialModifiedEntity
|
|
66
|
+
var hasChanges = !equals(pick(['entity', 'relation'], initialConnection || {}), pick(['entity', 'relation'], connection)) ||
|
|
67
|
+
!equals(initialModifiedEntity, modifiedEntity) ||
|
|
62
68
|
areRelatedEntitiesChanged(initialRelatedTempEntities.current, relatedTempEntities) ||
|
|
63
69
|
(connection.isNew && !isEmptyValue(path(['relation', 'object', 'attributes'], connection)));
|
|
64
70
|
var applyAction = isNew ? profile.relations.actions.addRelation : profile.relations.actions.editRelation;
|
|
@@ -88,13 +94,12 @@ var RelationEditor = function (_a) {
|
|
|
88
94
|
return errors.length === 0;
|
|
89
95
|
}, [connection, metadata, allModifiedEntities, dispatch]);
|
|
90
96
|
var resetErrors = useCallback(function () { return dispatch(profile.errors.actions.errorsSet([])); }, [dispatch]);
|
|
91
|
-
var onApply = useCallback(pipe(always(connection), when(validate, pipe(omitMarks, updateModifiedEntityLabel, applyAction(config.id), dispatch, always(differenceWith(equals, relatedTempEntitiesUrisHistory.current, relatedTempEntities.map(prop('uri')))), forEach(deleteModifiedEntity), handleClose))), [connection, config, dispatch, updateModifiedEntityLabel, validate, relatedTempEntities]);
|
|
97
|
+
var onApply = useCallback(pipe(always(connection), when(validate, pipe(omitMarks, updateModifiedEntityLabel, omit(['initial']), applyAction(config.id), dispatch, always(differenceWith(equals, relatedTempEntitiesUrisHistory.current, relatedTempEntities.map(prop('uri')))), forEach(deleteModifiedEntity), handleClose))), [connection, config, dispatch, updateModifiedEntityLabel, validate, relatedTempEntities]);
|
|
92
98
|
var onCancel = useCallback(function () {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
if (modifiedEntity && modifiedEntity.uri !== initialEntity.uri) {
|
|
99
|
+
if (modifiedEntity !== initialModifiedEntity) {
|
|
100
|
+
if (initialModifiedEntity) {
|
|
101
|
+
setModifiedEntity(initialModifiedEntity);
|
|
102
|
+
if (modifiedEntity && modifiedEntity.uri !== initialModifiedEntity.uri) {
|
|
98
103
|
deleteModifiedEntity(modifiedEntity.uri);
|
|
99
104
|
}
|
|
100
105
|
}
|
|
@@ -108,7 +113,7 @@ var RelationEditor = function (_a) {
|
|
|
108
113
|
initialTempEntities.forEach(setModifiedEntity);
|
|
109
114
|
resetErrors();
|
|
110
115
|
handleClose();
|
|
111
|
-
}, [handleClose, setModifiedEntity, deleteModifiedEntity, resetErrors, modifiedEntity]);
|
|
116
|
+
}, [handleClose, setModifiedEntity, deleteModifiedEntity, resetErrors, modifiedEntity, initialModifiedEntity]);
|
|
112
117
|
var onAddAttributes = useCallback(function (params) {
|
|
113
118
|
return pipe(profile.actions.addAttributes, dispatch)(params.map(function (param) { return (__assign(__assign({}, param), { viewId: config.id })); }));
|
|
114
119
|
}, [config.id, dispatch]);
|
|
@@ -155,6 +160,8 @@ var RelationEditor = function (_a) {
|
|
|
155
160
|
RelationEditor.propTypes = {
|
|
156
161
|
connection: ConnectionType,
|
|
157
162
|
modifiedEntity: EntityType,
|
|
163
|
+
initialConnection: ConnectionType,
|
|
164
|
+
initialModifiedEntity: EntityType,
|
|
158
165
|
allModifiedEntities: PropTypes.object,
|
|
159
166
|
dispatch: PropTypes.func,
|
|
160
167
|
config: RelationsConfigType,
|
|
@@ -3,10 +3,14 @@ import mdmModule, { profile } from '@reltio/mdm-module';
|
|
|
3
3
|
import { connect } from 'react-redux';
|
|
4
4
|
import { getRelationEditorActiveError, isTempUri } from '@reltio/mdm-sdk';
|
|
5
5
|
var getConnectionEntityUri = function (props) { return profile.relations.selectors.getEntityUriFromConnection(props.connection); };
|
|
6
|
+
var getConnectionRelationUri = function (props) { return profile.relations.selectors.getRelationUriFromConnection(props.connection); };
|
|
6
7
|
var mapStateToProps = function (state, ownProps) {
|
|
7
8
|
var entityUri = getConnectionEntityUri(ownProps);
|
|
9
|
+
var relationUri = getConnectionRelationUri(ownProps);
|
|
8
10
|
var isTempEntity = isTempUri(entityUri);
|
|
9
11
|
return {
|
|
12
|
+
initialConnection: mdmModule.selectors.getInitialConnection(state, ownProps.config.id, relationUri),
|
|
13
|
+
initialModifiedEntity: mdmModule.selectors.getInitialConnectionTempEntity(state, ownProps.config.id, relationUri),
|
|
10
14
|
modifiedEntity: isTempEntity ? mdmModule.selectors.getModifiedEntity(state, entityUri) : null,
|
|
11
15
|
allModifiedEntities: isTempEntity ? mdmModule.selectors.getModifiedEntities(state) : null,
|
|
12
16
|
globalSearchRequestOptions: mdmModule.selectors.getGlobalSearchRequestOptions(state, ['ovOnly']),
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reltio/components",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.1387",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE FILE",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./esm/index.js",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@date-io/moment": "^1.3.5",
|
|
9
9
|
"@react-google-maps/api": "2.7.0",
|
|
10
|
-
"@reltio/mdm-module": "^1.4.
|
|
11
|
-
"@reltio/mdm-sdk": "^1.4.
|
|
10
|
+
"@reltio/mdm-module": "^1.4.1387",
|
|
11
|
+
"@reltio/mdm-sdk": "^1.4.1387",
|
|
12
12
|
"classnames": "^2.2.5",
|
|
13
13
|
"d3-cloud": "^1.2.5",
|
|
14
14
|
"d3-geo": "^2.0.1",
|