@reltio/components 1.4.882 → 1.4.886
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/cjs/components/RelationEditor/RelationEditor.d.ts +31 -0
- package/cjs/components/RelationEditor/RelationEditor.js +175 -0
- package/cjs/components/RelationEditor/index.d.ts +142 -0
- package/cjs/components/RelationEditor/index.js +42 -0
- package/cjs/components/RelationEditor/styles.d.ts +1 -0
- package/cjs/components/RelationEditor/styles.js +36 -0
- package/cjs/components/attributes/editMode/AttributesPager/SpecialRenderer.js +1 -1
- package/cjs/components/attributes/editMode/Tags/Tags.d.ts +7 -0
- package/cjs/components/attributes/editMode/Tags/Tags.js +62 -0
- package/cjs/components/attributes/editMode/Tags/index.d.ts +1 -0
- package/cjs/components/attributes/editMode/Tags/index.js +8 -0
- package/cjs/components/editors/TypeaheadEditor/TypeaheadEditor.d.ts +1 -1
- package/cjs/components/editors/TypeaheadEditor/TypeaheadEditor.js +7 -6
- package/cjs/components/editors/TypeaheadEditor/styles.d.ts +1 -1
- package/cjs/components/editors/TypeaheadEditor/styles.js +15 -0
- package/cjs/components/index.d.ts +1 -0
- package/cjs/components/index.js +3 -1
- package/cjs/components/workflow/cards/GenericWorkflowTaskCard/GenericWorkflowTaskCard.js +6 -6
- package/cjs/components/workflow/components/AssigneeSelector/AssigneeSelector.d.ts +4 -2
- package/cjs/components/workflow/components/AssigneeSelector/AssigneeSelector.js +3 -2
- package/cjs/components/workflow/components/DueDateField/DueDateField.d.ts +2 -1
- package/cjs/components/workflow/components/DueDateField/DueDateField.js +6 -2
- package/cjs/components/workflow/components/PrioritySelector/PrioritySelector.d.ts +2 -1
- package/cjs/components/workflow/components/PrioritySelector/PrioritySelector.js +6 -2
- package/cjs/components/workflow/components/TaskActions/TaskActions.d.ts +4 -2
- package/cjs/components/workflow/components/TaskActions/TaskActions.js +7 -2
- package/cjs/components/workflow/components/WorkflowComments/WorkflowComments.d.ts +2 -1
- package/cjs/components/workflow/components/WorkflowComments/WorkflowComments.js +6 -2
- package/cjs/components/workflow/helpers/index.d.ts +3 -1
- package/cjs/components/workflow/helpers/index.js +3 -1
- package/cjs/components/workflow/hooks/useWorkflowActions.d.ts +1 -1
- package/cjs/components/workflow/hooks/useWorkflowActions.js +4 -3
- package/cjs/components/workflow/hooks/useWorkflowAssignee.d.ts +1 -1
- package/cjs/components/workflow/hooks/useWorkflowAssignee.js +3 -2
- package/cjs/components/workflow/hooks/useWorkflowComments.d.ts +1 -1
- package/cjs/components/workflow/hooks/useWorkflowComments.js +3 -2
- package/cjs/components/workflow/hooks/useWorkflowDueDate.d.ts +1 -1
- package/cjs/components/workflow/hooks/useWorkflowDueDate.js +3 -2
- package/cjs/components/workflow/hooks/useWorkflowPriority.d.ts +1 -1
- package/cjs/components/workflow/hooks/useWorkflowPriority.js +3 -2
- package/cjs/{hooks → components/workflow/hooks}/useWorkflowTasks.d.ts +7 -1
- package/cjs/{hooks → components/workflow/hooks}/useWorkflowTasks.js +28 -17
- package/cjs/components/workflow/index.d.ts +1 -0
- package/cjs/components/workflow/index.js +3 -1
- package/cjs/hooks/index.d.ts +0 -1
- package/cjs/hooks/index.js +1 -3
- package/esm/components/RelationEditor/RelationEditor.d.ts +31 -0
- package/esm/components/RelationEditor/RelationEditor.js +151 -0
- package/esm/components/RelationEditor/index.d.ts +142 -0
- package/esm/components/RelationEditor/index.js +17 -0
- package/esm/components/RelationEditor/styles.d.ts +1 -0
- package/esm/components/RelationEditor/styles.js +33 -0
- package/esm/components/attributes/editMode/AttributesPager/SpecialRenderer.js +1 -1
- package/esm/components/attributes/editMode/Tags/Tags.d.ts +7 -0
- package/esm/components/attributes/editMode/Tags/Tags.js +38 -0
- package/esm/components/attributes/editMode/Tags/index.d.ts +1 -0
- package/esm/components/attributes/editMode/Tags/index.js +1 -0
- package/esm/components/editors/TypeaheadEditor/TypeaheadEditor.d.ts +1 -1
- package/esm/components/editors/TypeaheadEditor/TypeaheadEditor.js +7 -6
- package/esm/components/editors/TypeaheadEditor/styles.d.ts +1 -1
- package/esm/components/editors/TypeaheadEditor/styles.js +15 -0
- package/esm/components/index.d.ts +1 -0
- package/esm/components/index.js +1 -0
- package/esm/components/workflow/cards/GenericWorkflowTaskCard/GenericWorkflowTaskCard.js +6 -6
- package/esm/components/workflow/components/AssigneeSelector/AssigneeSelector.d.ts +4 -2
- package/esm/components/workflow/components/AssigneeSelector/AssigneeSelector.js +3 -2
- package/esm/components/workflow/components/DueDateField/DueDateField.d.ts +2 -1
- package/esm/components/workflow/components/DueDateField/DueDateField.js +6 -2
- package/esm/components/workflow/components/PrioritySelector/PrioritySelector.d.ts +2 -1
- package/esm/components/workflow/components/PrioritySelector/PrioritySelector.js +6 -2
- package/esm/components/workflow/components/TaskActions/TaskActions.d.ts +4 -2
- package/esm/components/workflow/components/TaskActions/TaskActions.js +7 -2
- package/esm/components/workflow/components/WorkflowComments/WorkflowComments.d.ts +2 -1
- package/esm/components/workflow/components/WorkflowComments/WorkflowComments.js +6 -2
- package/esm/components/workflow/helpers/index.d.ts +3 -1
- package/esm/components/workflow/helpers/index.js +2 -1
- package/esm/components/workflow/hooks/useWorkflowActions.d.ts +1 -1
- package/esm/components/workflow/hooks/useWorkflowActions.js +4 -3
- package/esm/components/workflow/hooks/useWorkflowAssignee.d.ts +1 -1
- package/esm/components/workflow/hooks/useWorkflowAssignee.js +3 -2
- package/esm/components/workflow/hooks/useWorkflowComments.d.ts +1 -1
- package/esm/components/workflow/hooks/useWorkflowComments.js +3 -2
- package/esm/components/workflow/hooks/useWorkflowDueDate.d.ts +1 -1
- package/esm/components/workflow/hooks/useWorkflowDueDate.js +3 -2
- package/esm/components/workflow/hooks/useWorkflowPriority.d.ts +1 -1
- package/esm/components/workflow/hooks/useWorkflowPriority.js +3 -2
- package/esm/{hooks → components/workflow/hooks}/useWorkflowTasks.d.ts +7 -1
- package/esm/{hooks → components/workflow/hooks}/useWorkflowTasks.js +28 -17
- package/esm/components/workflow/index.d.ts +1 -0
- package/esm/components/workflow/index.js +1 -0
- package/esm/hooks/index.d.ts +0 -1
- package/esm/hooks/index.js +0 -1
- package/package.json +3 -3
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
13
|
+
import PropTypes from 'prop-types';
|
|
14
|
+
import Button from '@material-ui/core/Button';
|
|
15
|
+
import Typography from '@material-ui/core/Typography';
|
|
16
|
+
import i18n from 'ui-i18n';
|
|
17
|
+
import classnames from 'classnames';
|
|
18
|
+
import { always, concat, differenceWith, equals, forEach, path, pipe, prop, when, uniq } from 'ramda';
|
|
19
|
+
import { useStyles } from './styles';
|
|
20
|
+
import { AttributeErrorType, ConnectionType, createTemporaryEntity, EntityType, findRelatedTemporaryEntities, getActivenessAttributes, getCreatableAttributeTypes, getEntityType, getErrorMessage, getErrorId, MetadataType, omitMarks, relationEditorAttributeTypesSelectionStrategy, RelationsConfigType, validateConnection, updateConnectionEntityLabel, isTempUri, isEmptyValue, getRelationAttributesList, getDefaultRelationTypeObject, getInOutRelations } from '@reltio/mdm-sdk';
|
|
21
|
+
import { profile } from '@reltio/mdm-module';
|
|
22
|
+
import Divider from '@material-ui/core/Divider';
|
|
23
|
+
import ConnectionRelationTypeSelector from '../ConnectionRelationTypeSelector/ConnectionRelationTypeSelector';
|
|
24
|
+
import ErrorWrapper from '../ErrorWrapper/ErrorWrapper';
|
|
25
|
+
import EntitySelector from '../attributes/editMode/EntitySelector/EntitySelector';
|
|
26
|
+
import AttributesList from '../attributes/editMode/AttributesList';
|
|
27
|
+
var areRelatedEntitiesChanged = function (initial, actual) {
|
|
28
|
+
return initial.length !== actual.length || initial.some(function (_, i) { return initial[i] !== actual[i]; });
|
|
29
|
+
};
|
|
30
|
+
var RelationEditor = function (_a) {
|
|
31
|
+
var _b;
|
|
32
|
+
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;
|
|
33
|
+
var _c = connection.relation, relationUri = _c.relationUri, relationType = _c.relationType, direction = _c.direction;
|
|
34
|
+
var isNew = connection.isNew;
|
|
35
|
+
var styles = useStyles();
|
|
36
|
+
var _d = useMemo(function () { return getInOutRelations({ config: config, direction: direction, relationType: relationType, mode: mode, metadata: metadata }); }, [config, direction, relationType, mode, metadata]), _e = _d.inRelations, inRelationTypes = _e === void 0 ? [] : _e, _f = _d.outRelations, outRelationTypes = _f === void 0 ? [] : _f;
|
|
37
|
+
var firstLevelRelationAttrTypes = useMemo(function () { return getRelationAttributesList(metadata, relationType); }, [
|
|
38
|
+
relationType,
|
|
39
|
+
metadata
|
|
40
|
+
]);
|
|
41
|
+
var attributeListEntity = useMemo(function () { return (__assign({ attributes: __assign({}, profile.relations.selectors.getRelationAttributesFromConnection(connection)) }, getActivenessAttributes(connection.relation))); }, [connection]);
|
|
42
|
+
var initialConnection = useRef(connection);
|
|
43
|
+
var initialModifiedEntity = useRef(modifiedEntity);
|
|
44
|
+
var relatedTempEntities = useMemo(function () { return findRelatedTemporaryEntities(allModifiedEntities, modifiedEntity); }, [
|
|
45
|
+
allModifiedEntities,
|
|
46
|
+
modifiedEntity
|
|
47
|
+
]);
|
|
48
|
+
var relatedTempEntitiesUrisHistory = useRef([]);
|
|
49
|
+
useEffect(function () {
|
|
50
|
+
relatedTempEntitiesUrisHistory.current = pipe(concat(relatedTempEntities.map(prop('uri'))), uniq)(relatedTempEntitiesUrisHistory.current);
|
|
51
|
+
}, [relatedTempEntities]);
|
|
52
|
+
var initialRelatedTempEntities = useRef(relatedTempEntities);
|
|
53
|
+
var defaultRelationType = getDefaultRelationTypeObject(inRelationTypes, outRelationTypes);
|
|
54
|
+
var hasChanges = initialConnection.current !== connection ||
|
|
55
|
+
initialModifiedEntity.current !== modifiedEntity ||
|
|
56
|
+
areRelatedEntitiesChanged(initialRelatedTempEntities.current, relatedTempEntities) ||
|
|
57
|
+
(connection.isNew && !isEmptyValue(path(['relation', 'object', 'attributes'], connection)));
|
|
58
|
+
var applyAction = isNew ? profile.relations.actions.addRelation : profile.relations.actions.editRelation;
|
|
59
|
+
var onRelationTypeChange = useCallback(pipe(profile.relations.actions.setRelationType(config.id, relationUri), dispatch), [config, relationUri, dispatch]);
|
|
60
|
+
var handleClose = useCallback(function () { return pipe(profile.relations.actions.closeRelationEditor, dispatch)(config.id, relationUri); }, [config, relationUri, dispatch]);
|
|
61
|
+
var updateModifiedEntityLabel = useCallback(function (connection) {
|
|
62
|
+
if (modifiedEntity) {
|
|
63
|
+
var entityType = getEntityType(metadata, modifiedEntity.type);
|
|
64
|
+
return updateConnectionEntityLabel(entityType, modifiedEntity, connection);
|
|
65
|
+
}
|
|
66
|
+
return connection;
|
|
67
|
+
}, [modifiedEntity, metadata]);
|
|
68
|
+
var setModifiedEntity = useCallback(function (entity) { return dispatch(profile.modifiedEntities.actions.entityCreated(entity)); }, [dispatch]);
|
|
69
|
+
var deleteModifiedEntity = useCallback(function (entityUri) { return dispatch(profile.modifiedEntities.actions.entityDeleted(entityUri)); }, [dispatch]);
|
|
70
|
+
var onChangeEntity = useCallback(function (entity) {
|
|
71
|
+
if (modifiedEntity) {
|
|
72
|
+
deleteModifiedEntity(modifiedEntity.uri);
|
|
73
|
+
}
|
|
74
|
+
dispatch(profile.relations.actions.setRelationEntity(config.id, relationUri, entity));
|
|
75
|
+
if (error) {
|
|
76
|
+
dispatch(profile.errors.actions.errorDeactivated(getErrorId(error)));
|
|
77
|
+
}
|
|
78
|
+
}, [config.id, relationUri, dispatch, modifiedEntity, deleteModifiedEntity, error]);
|
|
79
|
+
var validate = useCallback(function () {
|
|
80
|
+
var errors = validateConnection(metadata, allModifiedEntities, connection);
|
|
81
|
+
dispatch(profile.errors.actions.errorsSet(errors));
|
|
82
|
+
return errors.length === 0;
|
|
83
|
+
}, [connection, metadata, allModifiedEntities, dispatch]);
|
|
84
|
+
var resetErrors = useCallback(function () { return dispatch(profile.errors.actions.errorsSet([])); }, [dispatch]);
|
|
85
|
+
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]);
|
|
86
|
+
var onCancel = useCallback(function () {
|
|
87
|
+
var initialEntity = initialModifiedEntity.current;
|
|
88
|
+
if (modifiedEntity !== initialEntity) {
|
|
89
|
+
if (initialEntity) {
|
|
90
|
+
setModifiedEntity(initialEntity);
|
|
91
|
+
if (modifiedEntity && modifiedEntity.uri !== initialEntity.uri) {
|
|
92
|
+
deleteModifiedEntity(modifiedEntity.uri);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
deleteModifiedEntity(modifiedEntity.uri);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
var initialTempEntities = initialRelatedTempEntities.current;
|
|
100
|
+
var entitiesUrisToDelete = differenceWith(equals, relatedTempEntitiesUrisHistory.current, initialTempEntities.map(prop('uri')));
|
|
101
|
+
entitiesUrisToDelete.forEach(deleteModifiedEntity);
|
|
102
|
+
initialTempEntities.forEach(setModifiedEntity);
|
|
103
|
+
resetErrors();
|
|
104
|
+
handleClose();
|
|
105
|
+
}, [handleClose, setModifiedEntity, deleteModifiedEntity, resetErrors, modifiedEntity]);
|
|
106
|
+
var onAddAttributes = useCallback(function (params) {
|
|
107
|
+
return pipe(profile.actions.addAttributes, dispatch)(params.map(function (param) { return (__assign(__assign({}, param), { viewId: config.id })); }));
|
|
108
|
+
}, [config.id, dispatch]);
|
|
109
|
+
var onChangeAttribute = useCallback(function (params) { return pipe(profile.actions.modifyAttribute, dispatch)(__assign(__assign({}, params), { viewId: config.id })); }, [config.id, dispatch]);
|
|
110
|
+
var onDeleteAttribute = useCallback(function (params) { return pipe(profile.actions.removeAttribute, dispatch)(__assign(__assign({}, params), { viewId: config.id })); }, [config.id, dispatch]);
|
|
111
|
+
var onCreateEntity = useCallback(function (entityTypeUri, initValue) {
|
|
112
|
+
var entityType = getEntityType(metadata, entityTypeUri);
|
|
113
|
+
var newEntityAttrTypes = pipe(relationEditorAttributeTypesSelectionStrategy, getCreatableAttributeTypes(mode))(entityType);
|
|
114
|
+
var newEntity = createTemporaryEntity({
|
|
115
|
+
entityTypeUri: entityTypeUri,
|
|
116
|
+
initValue: initValue,
|
|
117
|
+
attributeTypes: newEntityAttrTypes,
|
|
118
|
+
metadata: metadata,
|
|
119
|
+
mode: mode
|
|
120
|
+
});
|
|
121
|
+
onChangeEntity(newEntity);
|
|
122
|
+
setModifiedEntity(newEntity);
|
|
123
|
+
}, [setModifiedEntity, onChangeEntity, mode, metadata]);
|
|
124
|
+
var errorMessage = getErrorMessage(error);
|
|
125
|
+
return (React.createElement(React.Fragment, null,
|
|
126
|
+
React.createElement("div", { className: styles.editor },
|
|
127
|
+
React.createElement(Typography, { className: styles.title }, isNew ? i18n.text('Add new item') : i18n.text('Edit item')),
|
|
128
|
+
defaultRelationType === null && (React.createElement(ConnectionRelationTypeSelector, { className: styles.item, relation: connection.relation, inRelationTypes: inRelationTypes, outRelationTypes: outRelationTypes, onChange: onRelationTypeChange })),
|
|
129
|
+
Boolean(relationType) && (React.createElement(React.Fragment, null,
|
|
130
|
+
React.createElement(ErrorWrapper, { errorMessage: errorMessage },
|
|
131
|
+
React.createElement(EntitySelector, { className: classnames(styles.item, (_b = {},
|
|
132
|
+
_b[styles.dense] = errorMessage || (connection.entity && isTempUri(connection.entity.entityUri)),
|
|
133
|
+
_b)), entity: connection.entity || {}, entityTypesUris: config.content.entityTypes || [], max: config.max || 20, globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, onChange: onChangeEntity, onCreate: onCreateEntity, metadata: metadata, attributeTypesSelectionStrategy: relationEditorAttributeTypesSelectionStrategy })),
|
|
134
|
+
React.createElement(AttributesList, { className: styles.item, attrTypes: firstLevelRelationAttrTypes, entity: attributeListEntity, showEmptyEditors: true, crosswalks: connection.crosswalks, mode: mode, parentUri: relationUri, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onDeleteAttribute })))),
|
|
135
|
+
React.createElement("div", { className: styles.actionButtons },
|
|
136
|
+
React.createElement(Button, { onClick: onCancel }, i18n.text('Cancel')),
|
|
137
|
+
React.createElement(Button, { color: "primary", disabled: !hasChanges, onClick: onApply }, i18n.text('Apply'))),
|
|
138
|
+
React.createElement(Divider, null)));
|
|
139
|
+
};
|
|
140
|
+
RelationEditor.propTypes = {
|
|
141
|
+
connection: ConnectionType,
|
|
142
|
+
modifiedEntity: EntityType,
|
|
143
|
+
allModifiedEntities: PropTypes.object,
|
|
144
|
+
dispatch: PropTypes.func,
|
|
145
|
+
config: RelationsConfigType,
|
|
146
|
+
mode: PropTypes.string,
|
|
147
|
+
metadata: MetadataType,
|
|
148
|
+
globalSearchRequestOptions: PropTypes.object,
|
|
149
|
+
error: AttributeErrorType
|
|
150
|
+
};
|
|
151
|
+
export default RelationEditor;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
export { RelationEditor };
|
|
2
|
+
declare var _default: import("react-redux").ConnectedComponent<{
|
|
3
|
+
({ connection, modifiedEntity, allModifiedEntities, dispatch, config, mode, metadata, globalSearchRequestOptions, error }: {
|
|
4
|
+
connection: any;
|
|
5
|
+
modifiedEntity: any;
|
|
6
|
+
allModifiedEntities: any;
|
|
7
|
+
dispatch: any;
|
|
8
|
+
config: any;
|
|
9
|
+
mode: any;
|
|
10
|
+
metadata: any;
|
|
11
|
+
globalSearchRequestOptions: any;
|
|
12
|
+
error: any;
|
|
13
|
+
}): JSX.Element;
|
|
14
|
+
propTypes: {
|
|
15
|
+
connection: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
16
|
+
entity: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
17
|
+
entityUri: import("prop-types").Requireable<string>;
|
|
18
|
+
entityType: import("prop-types").Requireable<string>;
|
|
19
|
+
entityLabel: import("prop-types").Requireable<string>;
|
|
20
|
+
object: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
21
|
+
uri: import("prop-types").Requireable<string>;
|
|
22
|
+
type: import("prop-types").Requireable<string>;
|
|
23
|
+
}>>;
|
|
24
|
+
}>>;
|
|
25
|
+
relation: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
26
|
+
relationUri: import("prop-types").Requireable<string>;
|
|
27
|
+
relationType: import("prop-types").Requireable<string>;
|
|
28
|
+
relationLabel: import("prop-types").Requireable<string>;
|
|
29
|
+
direction: import("prop-types").Requireable<string>;
|
|
30
|
+
object: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
31
|
+
uri: import("prop-types").Requireable<string>;
|
|
32
|
+
type: import("prop-types").Requireable<string>;
|
|
33
|
+
}>>;
|
|
34
|
+
}>>;
|
|
35
|
+
}>>;
|
|
36
|
+
modifiedEntity: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
37
|
+
uri: import("prop-types").Requireable<string>;
|
|
38
|
+
type: import("prop-types").Requireable<string>;
|
|
39
|
+
}>>;
|
|
40
|
+
allModifiedEntities: import("prop-types").Requireable<object>;
|
|
41
|
+
dispatch: import("prop-types").Requireable<(...args: any[]) => any>;
|
|
42
|
+
config: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
43
|
+
id: import("prop-types").Requireable<string>;
|
|
44
|
+
content: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
45
|
+
inRelations: import("prop-types").Requireable<(string | object)[]>;
|
|
46
|
+
outRelations: import("prop-types").Requireable<(string | object)[]>;
|
|
47
|
+
groups: import("prop-types").Requireable<string[]>;
|
|
48
|
+
entityTypes: import("prop-types").Requireable<string[]>;
|
|
49
|
+
nextEntry: import("prop-types").Requireable<object>;
|
|
50
|
+
}>>;
|
|
51
|
+
allowOnlyCreateNew: import("prop-types").Requireable<boolean>;
|
|
52
|
+
sortColumn: import("prop-types").Requireable<string>;
|
|
53
|
+
sortOrder: import("prop-types").Requireable<string>;
|
|
54
|
+
'text-empty': import("prop-types").Requireable<string>;
|
|
55
|
+
max: import("prop-types").Requireable<number>;
|
|
56
|
+
icon: import("prop-types").Requireable<string>;
|
|
57
|
+
caption: import("prop-types").Requireable<string>;
|
|
58
|
+
canCreate: import("prop-types").Requireable<boolean>;
|
|
59
|
+
canRead: import("prop-types").Requireable<boolean>;
|
|
60
|
+
canUpdate: import("prop-types").Requireable<boolean>;
|
|
61
|
+
canDelete: import("prop-types").Requireable<boolean>;
|
|
62
|
+
editingEnabled: import("prop-types").Requireable<boolean>;
|
|
63
|
+
}>>;
|
|
64
|
+
mode: import("prop-types").Requireable<string>;
|
|
65
|
+
metadata: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
66
|
+
uri: import("prop-types").Requireable<string>;
|
|
67
|
+
description: import("prop-types").Requireable<string>;
|
|
68
|
+
label: import("prop-types").Requireable<string>;
|
|
69
|
+
schemaVersion: import("prop-types").Requireable<string>;
|
|
70
|
+
entityTypes: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
71
|
+
typeColor: import("prop-types").Requireable<string>;
|
|
72
|
+
typeIcon: import("prop-types").Requireable<string>;
|
|
73
|
+
typeImage: import("prop-types").Requireable<string>;
|
|
74
|
+
label: import("prop-types").Requireable<string>;
|
|
75
|
+
uri: import("prop-types").Requireable<string>;
|
|
76
|
+
attributes: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
77
|
+
label: import("prop-types").Requireable<string>;
|
|
78
|
+
name: import("prop-types").Requireable<string>;
|
|
79
|
+
description: import("prop-types").Requireable<string>;
|
|
80
|
+
type: import("prop-types").Requireable<string>;
|
|
81
|
+
hidden: import("prop-types").Requireable<boolean>;
|
|
82
|
+
faceted: import("prop-types").Requireable<boolean>;
|
|
83
|
+
searchable: import("prop-types").Requireable<boolean>;
|
|
84
|
+
uri: import("prop-types").Requireable<string>;
|
|
85
|
+
access: import("prop-types").Requireable<string[]>;
|
|
86
|
+
cardinality: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
87
|
+
minValue: import("prop-types").Requireable<number>;
|
|
88
|
+
maxValue: import("prop-types").Requireable<number>;
|
|
89
|
+
}>>;
|
|
90
|
+
}>[]>;
|
|
91
|
+
}>[]>;
|
|
92
|
+
roles: import("prop-types").Requireable<object[]>;
|
|
93
|
+
groupTypes: import("prop-types").Requireable<object[]>;
|
|
94
|
+
relationTypes: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
95
|
+
label: import("prop-types").Requireable<string>;
|
|
96
|
+
uri: import("prop-types").Requireable<string>;
|
|
97
|
+
typeColor: import("prop-types").Requireable<string>;
|
|
98
|
+
direction: import("prop-types").Requireable<string>;
|
|
99
|
+
startObject: import("prop-types").Requireable<object>;
|
|
100
|
+
endObject: import("prop-types").Requireable<object>;
|
|
101
|
+
}>[]>;
|
|
102
|
+
graphTypes: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
103
|
+
uri: import("prop-types").Requireable<string>;
|
|
104
|
+
label: import("prop-types").Requireable<string>;
|
|
105
|
+
extendsTypeUri: import("prop-types").Requireable<string>;
|
|
106
|
+
relationshipTypeURIs: import("prop-types").Requireable<string[]>;
|
|
107
|
+
}>[]>;
|
|
108
|
+
interactionTypes: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
109
|
+
uri: import("prop-types").Requireable<string>;
|
|
110
|
+
label: import("prop-types").Requireable<string>;
|
|
111
|
+
memberTypes: import("prop-types").Requireable<any[]>;
|
|
112
|
+
extendsTypeUri: import("prop-types").Requireable<string>;
|
|
113
|
+
attributes: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
114
|
+
label: import("prop-types").Requireable<string>;
|
|
115
|
+
name: import("prop-types").Requireable<string>;
|
|
116
|
+
description: import("prop-types").Requireable<string>;
|
|
117
|
+
type: import("prop-types").Requireable<string>;
|
|
118
|
+
hidden: import("prop-types").Requireable<boolean>;
|
|
119
|
+
faceted: import("prop-types").Requireable<boolean>;
|
|
120
|
+
searchable: import("prop-types").Requireable<boolean>;
|
|
121
|
+
uri: import("prop-types").Requireable<string>;
|
|
122
|
+
access: import("prop-types").Requireable<string[]>;
|
|
123
|
+
cardinality: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
124
|
+
minValue: import("prop-types").Requireable<number>;
|
|
125
|
+
maxValue: import("prop-types").Requireable<number>;
|
|
126
|
+
}>>;
|
|
127
|
+
}>[]>;
|
|
128
|
+
}>[]>;
|
|
129
|
+
sources: import("prop-types").Requireable<object[]>;
|
|
130
|
+
}>>;
|
|
131
|
+
globalSearchRequestOptions: import("prop-types").Requireable<object>;
|
|
132
|
+
error: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
133
|
+
type: import("prop-types").Validator<import("@reltio/mdm-sdk").ErrorType>;
|
|
134
|
+
attributeTypeUri: import("prop-types").Validator<string>;
|
|
135
|
+
parentUri: import("prop-types").Validator<string>;
|
|
136
|
+
uri: import("prop-types").Requireable<string>;
|
|
137
|
+
message: import("prop-types").Requireable<string>;
|
|
138
|
+
}>>;
|
|
139
|
+
};
|
|
140
|
+
}, any>;
|
|
141
|
+
export default _default;
|
|
142
|
+
import RelationEditor from "./RelationEditor";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import RelationEditor from './RelationEditor';
|
|
2
|
+
import mdmModule, { profile } from '@reltio/mdm-module';
|
|
3
|
+
import { connect } from 'react-redux';
|
|
4
|
+
import { getRelationEditorActiveError, isTempUri } from '@reltio/mdm-sdk';
|
|
5
|
+
var getConnectionEntityUri = function (props) { return profile.relations.selectors.getEntityUriFromConnection(props.connection); };
|
|
6
|
+
var mapStateToProps = function (state, ownProps) {
|
|
7
|
+
var entityUri = getConnectionEntityUri(ownProps);
|
|
8
|
+
var isTempEntity = isTempUri(entityUri);
|
|
9
|
+
return {
|
|
10
|
+
modifiedEntity: isTempEntity ? mdmModule.selectors.getModifiedEntity(state, entityUri) : null,
|
|
11
|
+
allModifiedEntities: isTempEntity ? mdmModule.selectors.getModifiedEntities(state) : null,
|
|
12
|
+
globalSearchRequestOptions: mdmModule.selectors.getGlobalSearchRequestOptions(state, ['ovOnly']),
|
|
13
|
+
error: getRelationEditorActiveError(ownProps.connection, mdmModule.selectors.getProfileErrors(state))
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export { RelationEditor };
|
|
17
|
+
export default connect(mapStateToProps)(RelationEditor);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"title" | "item" | "dense" | "editor" | "actionButtons">;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
2
|
+
export var useStyles = makeStyles({
|
|
3
|
+
editor: {
|
|
4
|
+
display: 'flex',
|
|
5
|
+
flexDirection: 'column',
|
|
6
|
+
padding: '0 24px 5px'
|
|
7
|
+
},
|
|
8
|
+
title: {
|
|
9
|
+
color: 'rgba(0, 0, 0, 0.6)',
|
|
10
|
+
fontSize: '16px',
|
|
11
|
+
letterSpacing: '0.15px',
|
|
12
|
+
lineHeight: '24px',
|
|
13
|
+
margin: '17px 0 24px'
|
|
14
|
+
},
|
|
15
|
+
item: {
|
|
16
|
+
marginBottom: '20px'
|
|
17
|
+
},
|
|
18
|
+
dense: {
|
|
19
|
+
marginBottom: 0
|
|
20
|
+
},
|
|
21
|
+
actionButtons: {
|
|
22
|
+
display: 'flex',
|
|
23
|
+
justifyContent: 'flex-end',
|
|
24
|
+
margin: '0 8px 10px',
|
|
25
|
+
'& > button': {
|
|
26
|
+
fontSize: '14px',
|
|
27
|
+
lineHeight: '16px',
|
|
28
|
+
marginLeft: '8px',
|
|
29
|
+
padding: '10px 8px',
|
|
30
|
+
backgroundColor: 'rgba(98, 2, 238, 0)'
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
@@ -27,7 +27,7 @@ import Title from '../../../Title/Title';
|
|
|
27
27
|
import Cardinality from './CardinalityMessage';
|
|
28
28
|
import ErrorMessage from '../../../ErrorWrapper/ErrorMessage';
|
|
29
29
|
import Attribute from '../AttributesFactory/Attribute';
|
|
30
|
-
import Tags from '
|
|
30
|
+
import Tags from '../Tags';
|
|
31
31
|
import Roles from '../../readMode/SpecialAttributes/Roles'; //TODO: should be edit mode
|
|
32
32
|
import { useStyles } from './styles';
|
|
33
33
|
var SpecialRenderer = function (_a) {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { useDispatch, useSelector } from 'react-redux';
|
|
3
|
+
import mdmModule, { profile } from '@reltio/mdm-module';
|
|
4
|
+
import { getFacets, EntityAttrTypes, buildFilterQueryString } from '@reltio/mdm-sdk';
|
|
5
|
+
import TypeaheadEditor from '../../../editors/TypeaheadEditor/TypeaheadEditor';
|
|
6
|
+
var filtersWithSearch = function (searchQuery) { return [
|
|
7
|
+
{
|
|
8
|
+
filter: 'containsWordStartingWith',
|
|
9
|
+
fieldName: 'tags',
|
|
10
|
+
values: [searchQuery]
|
|
11
|
+
}
|
|
12
|
+
]; };
|
|
13
|
+
var getQuery = function (searchQuery) {
|
|
14
|
+
return searchQuery ? "?filter=" + buildFilterQueryString()(filtersWithSearch(searchQuery)) : '';
|
|
15
|
+
};
|
|
16
|
+
var body = [
|
|
17
|
+
{
|
|
18
|
+
fieldName: 'tags',
|
|
19
|
+
orderType: 'reversedCount'
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
var getSuggestions = function (searchQuery) {
|
|
23
|
+
return getFacets({ query: getQuery(searchQuery), body: body }).then(function (response) { return Object.keys(response.tags); });
|
|
24
|
+
};
|
|
25
|
+
var Tags = function (_a) {
|
|
26
|
+
var className = _a.className, values = _a.values;
|
|
27
|
+
var dispatch = useDispatch();
|
|
28
|
+
var entityUri = useSelector(mdmModule.selectors.getEntityUri);
|
|
29
|
+
var onChange = useCallback(function (tags) {
|
|
30
|
+
return dispatch(profile.actions.modifyAttribute({
|
|
31
|
+
value: tags,
|
|
32
|
+
attributeType: EntityAttrTypes.tags,
|
|
33
|
+
uri: entityUri
|
|
34
|
+
}));
|
|
35
|
+
}, [dispatch, entityUri]);
|
|
36
|
+
return (React.createElement(TypeaheadEditor, { fullWidth: true, multiple: true, variant: "filled", className: className, value: values, onChange: onChange, getSuggestions: getSuggestions }));
|
|
37
|
+
};
|
|
38
|
+
export default Tags;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './Tags';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './Tags';
|
|
@@ -26,6 +26,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
|
26
26
|
return to;
|
|
27
27
|
};
|
|
28
28
|
import Autosuggest from 'react-autosuggest';
|
|
29
|
+
import AutosizeInput from 'react-input-autosize';
|
|
29
30
|
import classnames from 'classnames';
|
|
30
31
|
import TextField from '@material-ui/core/TextField';
|
|
31
32
|
import MenuItem from '@material-ui/core/MenuItem';
|
|
@@ -42,9 +43,9 @@ import ExpandedValueTooltip from '../../ExpandedValueTooltip/ExpandedValueToolti
|
|
|
42
43
|
import ValueChip from '../../ValueChip/ValueChip';
|
|
43
44
|
var FETCH_DEBOUNCE_INTERVAL = 300;
|
|
44
45
|
var TypeaheadEditor = function (_a) {
|
|
45
|
-
var value = _a.value, getSuggestions = _a.getSuggestions, onChange = _a.onChange, multiple = _a.multiple, fullWidth = _a.fullWidth,
|
|
46
|
-
var
|
|
47
|
-
var
|
|
46
|
+
var value = _a.value, getSuggestions = _a.getSuggestions, onChange = _a.onChange, multiple = _a.multiple, fullWidth = _a.fullWidth, _b = _a.InputProps, InputProps = _b === void 0 ? {} : _b, inputProps = __rest(_a, ["value", "getSuggestions", "onChange", "multiple", "fullWidth", "InputProps"]);
|
|
47
|
+
var _c = useState([]), suggestions = _c[0], setSuggestions = _c[1];
|
|
48
|
+
var _d = useState(false), isPlaceholderVisible = _d[0], setPlaceholderVisibility = _d[1];
|
|
48
49
|
var inputRef = useRef();
|
|
49
50
|
var styles = useStyles();
|
|
50
51
|
var isFocused = function () { var _a; return ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.querySelector('input')) === document.activeElement; };
|
|
@@ -53,8 +54,8 @@ var TypeaheadEditor = function (_a) {
|
|
|
53
54
|
getSuggestions
|
|
54
55
|
]);
|
|
55
56
|
value = defaultTo(multiple ? [] : '', value);
|
|
56
|
-
var
|
|
57
|
-
var
|
|
57
|
+
var _e = useState(''), currentValue = _e[0], setCurrentValue = _e[1];
|
|
58
|
+
var _f = useState(false), hasHighlightedItem = _f[0], setHasHighlightedItem = _f[1];
|
|
58
59
|
var onInputChange = function (_a) {
|
|
59
60
|
var newValue = _a.newValue, method = _a.method;
|
|
60
61
|
switch (method) {
|
|
@@ -99,7 +100,7 @@ var TypeaheadEditor = function (_a) {
|
|
|
99
100
|
underline: classnames((_b = {}, _b[styles['input__underline']] = isEmptyValue(value), _b)),
|
|
100
101
|
input: classnames(styles['rawInput'], path(['classes', 'input'], InputProps))
|
|
101
102
|
};
|
|
102
|
-
return multiple ? (React.createElement(TextField, __assign({}, otherProps, { ref: inputRef, inputRef: ref, InputProps: __assign(__assign({}, InputProps), { startAdornment: value.map(function (item, index) { return (React.createElement(ValueChip, { key: item, label: item, onDelete: function () { return onChange(remove(index, 1, value)); } })); }), classes: __assign({ root: classnames(styles['multiple-input__input'], path(['classes', 'root'], InputProps)), adornedStart: styles['multiple-input__adornedStart'] }
|
|
103
|
+
return multiple ? (React.createElement(TextField, __assign({}, otherProps, { ref: inputRef, inputRef: ref, InputProps: __assign(__assign({}, InputProps), { startAdornment: value.map(function (item, index) { return (React.createElement(ValueChip, { key: item, label: item, onDelete: function () { return onChange(remove(index, 1, value)); } })); }), inputComponent: AutosizeInput, classes: __assign(__assign({ root: classnames(styles['multiple-input__input'], path(['classes', 'root'], InputProps)) }, commonClasses), { input: classnames(styles.autosizeInput, commonClasses.input), adornedStart: styles['multiple-input__adornedStart'] }) }), value: currentValue, onChange: onInputChange, classes: { root: styles['multiple-input__root'] } }))) : (React.createElement(TextField, __assign({}, otherProps, { ref: inputRef, inputRef: ref, value: value, onChange: pipe(tap(onInputChange), getValue, onChange), InputProps: __assign(__assign({}, InputProps), { classes: __assign({ root: classnames(styles['input__root'], path(['classes', 'root'], InputProps)) }, commonClasses) }) })));
|
|
103
104
|
}, renderSuggestionsContainer: function (_a) {
|
|
104
105
|
var children = _a.children, _b = _a.containerProps, ref = _b.ref, restContainerProps = __rest(_b, ["ref"]);
|
|
105
106
|
return (React.createElement(Popper, { anchorEl: inputRef.current, open: Boolean(children) || isPlaceholderVisible },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"typeahead__suggestions-placeholder" | "typeahead__suggestions-container--open" | "typeahead__suggestions-list" | "typeahead__suggestions-menuItem" | "input__root" | "rawInput" | "multiple-input__root" | "multiple-input__input" | "multiple-input__adornedStart" | "input__underline" | "typeahead__suggestions-container" | "menuItem--item">;
|
|
1
|
+
export const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"autosizeInput" | "typeahead__suggestions-placeholder" | "typeahead__suggestions-container--open" | "typeahead__suggestions-list" | "typeahead__suggestions-menuItem" | "input__root" | "rawInput" | "multiple-input__root" | "multiple-input__input" | "multiple-input__adornedStart" | "input__underline" | "typeahead__suggestions-container" | "menuItem--item">;
|
|
@@ -21,6 +21,21 @@ export var useStyles = makeStyles({
|
|
|
21
21
|
color: 'rgba(0,0,0,0.87)',
|
|
22
22
|
fontSize: '14px'
|
|
23
23
|
},
|
|
24
|
+
autosizeInput: {
|
|
25
|
+
width: 'auto',
|
|
26
|
+
paddingTop: '10px',
|
|
27
|
+
paddingBottom: '11px',
|
|
28
|
+
marginLeft: '5px',
|
|
29
|
+
overflow: 'hidden',
|
|
30
|
+
'& input': {
|
|
31
|
+
background: '0px center',
|
|
32
|
+
border: 0,
|
|
33
|
+
fontSize: 'inherit',
|
|
34
|
+
outline: 0,
|
|
35
|
+
padding: 0,
|
|
36
|
+
color: 'inherit'
|
|
37
|
+
}
|
|
38
|
+
},
|
|
24
39
|
rawInput: {
|
|
25
40
|
height: '19px'
|
|
26
41
|
},
|
|
@@ -119,4 +119,5 @@ export { ReltioMap } from './ReltioMap';
|
|
|
119
119
|
export { default as ErrorMessage } from './ErrorWrapper/ErrorMessage';
|
|
120
120
|
export * from './history';
|
|
121
121
|
export { default as OvIcon } from './attributes/OvIcon';
|
|
122
|
+
export { default as RelationEditor } from './RelationEditor';
|
|
122
123
|
export * from './workflow';
|
package/esm/components/index.js
CHANGED
|
@@ -118,4 +118,5 @@ export { ReltioMap } from './ReltioMap';
|
|
|
118
118
|
export { default as ErrorMessage } from './ErrorWrapper/ErrorMessage';
|
|
119
119
|
export * from './history';
|
|
120
120
|
export { default as OvIcon } from './attributes/OvIcon';
|
|
121
|
+
export { default as RelationEditor } from './RelationEditor';
|
|
121
122
|
export * from './workflow';
|
|
@@ -18,7 +18,7 @@ import CollaborationIcon from '../../../../icons/CollaborationIcon';
|
|
|
18
18
|
var GenericWorkflowTaskCard = function (_a) {
|
|
19
19
|
var _b;
|
|
20
20
|
var task = _a.task, children = _a.children, actions = _a.actions, Icon = _a.Icon;
|
|
21
|
-
var taskId = task.taskId, dueDate = task.dueDate, priority = task.priority, assignee = task.assignee, createdBy = task.createdBy, createTime = task.createTime, step = task.displayName, processDefinitionDisplayName = task.processDefinitionDisplayName, objectURIs = task.objectURIs, processInstanceComments = task.processInstanceComments, possibleActions = task.possibleActions;
|
|
21
|
+
var taskId = task.taskId, dueDate = task.dueDate, priority = task.priority, assignee = task.assignee, createdBy = task.createdBy, createTime = task.createTime, step = task.displayName, processDefinitionDisplayName = task.processDefinitionDisplayName, objectURIs = task.objectURIs, processInstanceComments = task.processInstanceComments, possibleActions = task.possibleActions, isTaskOpen = task.isOpen;
|
|
22
22
|
var dcrId = getDCRId(objectURIs);
|
|
23
23
|
var color = useWorkflowColor({ processDefinitionDisplayName: processDefinitionDisplayName });
|
|
24
24
|
var styles = useStyles({ color: color });
|
|
@@ -61,16 +61,16 @@ var GenericWorkflowTaskCard = function (_a) {
|
|
|
61
61
|
canViewComments && (processInstanceComments === null || processInstanceComments === void 0 ? void 0 : processInstanceComments.length) > 0 && (React.createElement("div", { className: styles.commentsInfo },
|
|
62
62
|
React.createElement(CollaborationIcon, { className: styles.commentsIcon }),
|
|
63
63
|
React.createElement("div", { className: styles.infoValue }, processInstanceComments.length)))),
|
|
64
|
-
actions || (React.createElement(TaskActions, { taskId: taskId, possibleActions: possibleActions, assignee: assignee })))))),
|
|
64
|
+
actions || (React.createElement(TaskActions, { taskId: taskId, possibleActions: possibleActions, assignee: assignee, isTaskOpen: isTaskOpen })))))),
|
|
65
65
|
isExpanded && (React.createElement(LineDecorator, { plain: true },
|
|
66
66
|
React.createElement("div", { className: styles.controlsBox },
|
|
67
67
|
React.createElement("div", { className: styles.controlsInRow },
|
|
68
|
-
React.createElement(DueDateField, { taskId: taskId, dueDate: dueDate }),
|
|
69
|
-
React.createElement(PrioritySelector, { taskId: taskId, priority: priority, className: styles.priority })),
|
|
70
|
-
React.createElement(AssigneeSelector, { taskId: taskId, assignee: assignee }))))),
|
|
68
|
+
React.createElement(DueDateField, { taskId: taskId, dueDate: dueDate, isTaskOpen: isTaskOpen }),
|
|
69
|
+
React.createElement(PrioritySelector, { taskId: taskId, priority: priority, className: styles.priority, isTaskOpen: isTaskOpen })),
|
|
70
|
+
React.createElement(AssigneeSelector, { taskId: taskId, assignee: assignee, isTaskOpen: isTaskOpen }))))),
|
|
71
71
|
isExpanded && (React.createElement(React.Fragment, null,
|
|
72
72
|
children,
|
|
73
73
|
canViewComments && (React.createElement("div", { className: styles.comments },
|
|
74
|
-
React.createElement(WorkflowComments, { taskId: taskId, processInstanceComments: processInstanceComments })))))));
|
|
74
|
+
React.createElement(WorkflowComments, { taskId: taskId, processInstanceComments: processInstanceComments, isTaskOpen: isTaskOpen })))))));
|
|
75
75
|
};
|
|
76
76
|
export default GenericWorkflowTaskCard;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { WorkflowTaskData } from '@reltio/mdm-sdk';
|
|
3
|
-
declare type Props = Pick<WorkflowTaskData, 'taskId' | 'assignee'
|
|
4
|
-
|
|
3
|
+
declare type Props = Pick<WorkflowTaskData, 'taskId' | 'assignee'> & {
|
|
4
|
+
isTaskOpen?: WorkflowTaskData['isOpen'];
|
|
5
|
+
};
|
|
6
|
+
declare const AssigneeSelector: ({ taskId, assignee, isTaskOpen }: Props) => JSX.Element;
|
|
5
7
|
export default AssigneeSelector;
|
|
@@ -3,10 +3,11 @@ import i18n from 'ui-i18n';
|
|
|
3
3
|
import DropDownSelector from '../../../DropDownSelector/DropDownSelector';
|
|
4
4
|
import { useWorkflowAssignee } from '../../hooks/useWorkflowAssignee';
|
|
5
5
|
var AssigneeSelector = function (_a) {
|
|
6
|
-
var taskId = _a.taskId, assignee = _a.assignee;
|
|
6
|
+
var taskId = _a.taskId, assignee = _a.assignee, isTaskOpen = _a.isTaskOpen;
|
|
7
7
|
var _b = useWorkflowAssignee({
|
|
8
8
|
taskId: taskId,
|
|
9
|
-
assignee: assignee
|
|
9
|
+
assignee: assignee,
|
|
10
|
+
isOpen: isTaskOpen
|
|
10
11
|
}), currentAssignee = _b.assignee, getAssignees = _b.getAssignees, updateAssignee = _b.updateAssignee, updateRequestIsInProgress = _b.updateRequestIsInProgress, readOnly = _b.readOnly;
|
|
11
12
|
var disabled = updateRequestIsInProgress || readOnly;
|
|
12
13
|
return (React.createElement(DropDownSelector, { isDisabled: disabled, getOptions: getAssignees, onChange: updateAssignee, hideSelectedOptions: false, label: i18n.text('Assigned to'), value: currentAssignee, defaultOptions: true, TextFieldProps: { disabled: disabled }, height: 40 }));
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { WorkflowTaskData } from '@reltio/mdm-sdk';
|
|
3
3
|
declare type Props = Pick<WorkflowTaskData, 'taskId' | 'dueDate'> & {
|
|
4
|
+
isTaskOpen?: WorkflowTaskData['isOpen'];
|
|
4
5
|
className?: string;
|
|
5
6
|
};
|
|
6
|
-
declare const DueDateField: ({ taskId, dueDate, className }: Props) => JSX.Element;
|
|
7
|
+
declare const DueDateField: ({ taskId, dueDate, isTaskOpen, className }: Props) => JSX.Element;
|
|
7
8
|
export default DueDateField;
|
|
@@ -6,9 +6,13 @@ import { useStyles } from './styles';
|
|
|
6
6
|
import { DateEditor } from '../../../editors';
|
|
7
7
|
import { useWorkflowDueDate } from '../../hooks/useWorkflowDueDate';
|
|
8
8
|
var DueDateField = function (_a) {
|
|
9
|
-
var taskId = _a.taskId, dueDate = _a.dueDate, className = _a.className;
|
|
9
|
+
var taskId = _a.taskId, dueDate = _a.dueDate, isTaskOpen = _a.isTaskOpen, className = _a.className;
|
|
10
10
|
var styles = useStyles();
|
|
11
|
-
var _b = useWorkflowDueDate({
|
|
11
|
+
var _b = useWorkflowDueDate({
|
|
12
|
+
dueDate: dueDate,
|
|
13
|
+
taskId: taskId,
|
|
14
|
+
isOpen: isTaskOpen
|
|
15
|
+
}), updateDueDate = _b.updateDueDate, updateRequestIsInProgress = _b.updateRequestIsInProgress, readOnly = _b.readOnly;
|
|
12
16
|
return (React.createElement(DateEditor, { className: classnames(styles.dueDate, className), disabled: updateRequestIsInProgress || readOnly, value: dueDate, label: i18n.text('Due date'), onChange: pipe(function (date) { return date && date.getTime(); }, updateDueDate), margin: "dense", InputProps: { className: styles.dueDateInput }, InputLabelProps: { classes: { root: styles.inputLabel } } }));
|
|
13
17
|
};
|
|
14
18
|
export default DueDateField;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { WorkflowTaskData } from '@reltio/mdm-sdk';
|
|
3
3
|
declare type Props = Pick<WorkflowTaskData, 'taskId' | 'priority'> & {
|
|
4
|
+
isTaskOpen?: WorkflowTaskData['isOpen'];
|
|
4
5
|
className?: string;
|
|
5
6
|
};
|
|
6
|
-
declare const PrioritySelector: ({ taskId, priority, className }: Props) => JSX.Element;
|
|
7
|
+
declare const PrioritySelector: ({ taskId, priority, isTaskOpen, className }: Props) => JSX.Element;
|
|
7
8
|
export default PrioritySelector;
|