@reltio/components 1.4.2208 → 1.4.2210
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/AttributesErrorsPanel/components/Error/Error.js +2 -2
- package/cjs/AttributesErrorsPanel/components/Error/Error.js +2 -2
- package/cjs/contexts/MdmModuleContext/context.d.ts +2 -0
- package/cjs/contexts/MdmModuleContext/hooks.d.ts +1 -0
- package/cjs/contexts/MdmModuleContext/hooks.js +3 -1
- package/cjs/contexts/MdmModuleContext/index.d.ts +1 -1
- package/cjs/contexts/MdmModuleContext/index.js +2 -1
- package/cjs/features/workflow/ChangeRequestEditor/components/ChangeItemLabel/ChangeItemLabel.js +8 -3
- package/cjs/features/workflow/ChangeRequestEditor/components/ChangeItemRow/ChangeItemRow.js +45 -4
- package/cjs/features/workflow/ChangeRequestEditor/components/ChangeItemRow/ChangeItemRow.module.css.js +2 -2
- package/cjs/features/workflow/ChangeRequestEditor/components/DCRValueEditor/DCRValueEditor.d.ts +1 -1
- package/cjs/features/workflow/ChangeRequestEditor/components/DCRValueEditorFactory/DCRValueEditorFactory.d.ts +1 -1
- package/cjs/features/workflow/ChangeRequestEditor/hooks/useChangeRequestEditor.d.ts +1 -1
- package/cjs/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.d.ts +2 -0
- package/cjs/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.js +44 -0
- package/cjs/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.module.css.js +9 -0
- package/cjs/features/workflow/ReviewDCRDialog/ReviewDCRDialog.js +2 -0
- package/cjs/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.js +3 -1
- package/cjs/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +15 -7
- package/cjs/features/workflow/contexts/ChangeRequestEditorContext/index.d.ts +19 -10
- package/cjs/features/workflow/contexts/ChangeRequestEditorContext/index.js +28 -2
- package/cjs/features/workflow/helpers/dcr.d.ts +1 -1
- package/cjs/features/workflow/helpers/merge.js +3 -3
- package/cjs/features/workflow/helpers/validation.d.ts +17 -0
- package/cjs/features/workflow/helpers/validation.js +333 -0
- package/cjs/features/workflow/hooks/useApplyDcrChanges.js +34 -24
- package/cjs/features/workflow/hooks/useDCRValidation.d.ts +5 -0
- package/cjs/features/workflow/hooks/useDCRValidation.js +153 -0
- package/cjs/features/workflow/types.d.ts +8 -1
- package/cjs/hooks/useScrollToAttributeError/useScrollToAttributeError.d.ts +2 -1
- package/cjs/hooks/useScrollToAttributeError/useScrollToAttributeError.js +2 -2
- package/contexts/MdmModuleContext/context.d.ts +2 -0
- package/contexts/MdmModuleContext/hooks.d.ts +1 -0
- package/contexts/MdmModuleContext/hooks.js +1 -0
- package/contexts/MdmModuleContext/index.d.ts +1 -1
- package/contexts/MdmModuleContext/index.js +1 -1
- package/features/workflow/ChangeRequestEditor/components/ChangeItemLabel/ChangeItemLabel.js +8 -3
- package/features/workflow/ChangeRequestEditor/components/ChangeItemRow/ChangeItemRow.js +22 -4
- package/features/workflow/ChangeRequestEditor/components/ChangeItemRow/ChangeItemRow.module.css.js +2 -2
- package/features/workflow/ChangeRequestEditor/components/DCRValueEditor/DCRValueEditor.d.ts +1 -1
- package/features/workflow/ChangeRequestEditor/components/DCRValueEditorFactory/DCRValueEditorFactory.d.ts +1 -1
- package/features/workflow/ChangeRequestEditor/hooks/useChangeRequestEditor.d.ts +1 -1
- package/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.d.ts +2 -0
- package/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.js +14 -0
- package/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.module.css.js +9 -0
- package/features/workflow/ReviewDCRDialog/ReviewDCRDialog.js +2 -0
- package/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.js +3 -1
- package/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +16 -8
- package/features/workflow/contexts/ChangeRequestEditorContext/index.d.ts +19 -10
- package/features/workflow/contexts/ChangeRequestEditorContext/index.js +28 -2
- package/features/workflow/helpers/dcr.d.ts +1 -1
- package/features/workflow/helpers/merge.js +3 -3
- package/features/workflow/helpers/validation.d.ts +17 -0
- package/features/workflow/helpers/validation.js +326 -0
- package/features/workflow/hooks/useApplyDcrChanges.js +34 -24
- package/features/workflow/hooks/useDCRValidation.d.ts +5 -0
- package/features/workflow/hooks/useDCRValidation.js +149 -0
- package/features/workflow/types.d.ts +8 -1
- package/hooks/useScrollToAttributeError/useScrollToAttributeError.d.ts +2 -1
- package/hooks/useScrollToAttributeError/useScrollToAttributeError.js +2 -2
- package/package.json +2 -2
|
@@ -18,7 +18,7 @@ export var Error = memo(function (_a) {
|
|
|
18
18
|
var displayedErrorPath = getDisplayedErrorPath(error);
|
|
19
19
|
var displayedAttributeTypesPath = getDisplayedAttributeTypesPath(error);
|
|
20
20
|
var highlightError = useContext(ScrollToElementContext).highlightError;
|
|
21
|
-
var showLink = error.uri || (error.parentUri && error.attributeTypeUri);
|
|
21
|
+
var showLink = (error.uri || (error.parentUri && error.attributeTypeUri)) && (isEditableMode || error.alwaysShow);
|
|
22
22
|
return (React.createElement("div", { className: styles.errorListItem },
|
|
23
23
|
React.createElement("div", { className: styles.listItemMarker }, error.type === ErrorType.rdmIssueInReference ? (React.createElement(Tooltip, { title: i18n.text('This error is visible only in view mode') },
|
|
24
24
|
React.createElement("span", null,
|
|
@@ -27,7 +27,7 @@ export var Error = memo(function (_a) {
|
|
|
27
27
|
displayedAttributeTypesPath && (React.createElement("span", { className: styles.attributeTypesPath }, displayedAttributeTypesPath)),
|
|
28
28
|
React.createElement("span", { className: styles.errorTitle },
|
|
29
29
|
displayedMessage,
|
|
30
|
-
showLink &&
|
|
30
|
+
showLink && (React.createElement(SmallIconButtonWithTooltip, { icon: HyperlinkIcon, size: "XXS", onClick: function () { return highlightError(error); }, tooltipTitle: i18n.text('Go to error'), className: styles.goToIcon }))),
|
|
31
31
|
displayedErrorPath && React.createElement("span", { className: styles.parents }, displayedErrorPath))));
|
|
32
32
|
});
|
|
33
33
|
Error.displayName = 'Error';
|
|
@@ -47,7 +47,7 @@ exports.Error = (0, react_1.memo)(function (_a) {
|
|
|
47
47
|
var displayedErrorPath = (0, helpers_1.getDisplayedErrorPath)(error);
|
|
48
48
|
var displayedAttributeTypesPath = (0, helpers_1.getDisplayedAttributeTypesPath)(error);
|
|
49
49
|
var highlightError = (0, react_1.useContext)(ScrollToElementContext_1.ScrollToElementContext).highlightError;
|
|
50
|
-
var showLink = error.uri || (error.parentUri && error.attributeTypeUri);
|
|
50
|
+
var showLink = (error.uri || (error.parentUri && error.attributeTypeUri)) && (isEditableMode || error.alwaysShow);
|
|
51
51
|
return (react_1.default.createElement("div", { className: styles.errorListItem },
|
|
52
52
|
react_1.default.createElement("div", { className: styles.listItemMarker }, error.type === mdm_sdk_1.ErrorType.rdmIssueInReference ? (react_1.default.createElement(Tooltip_1.default, { title: ui_i18n_1.default.text('This error is visible only in view mode') },
|
|
53
53
|
react_1.default.createElement("span", null,
|
|
@@ -56,7 +56,7 @@ exports.Error = (0, react_1.memo)(function (_a) {
|
|
|
56
56
|
displayedAttributeTypesPath && (react_1.default.createElement("span", { className: styles.attributeTypesPath }, displayedAttributeTypesPath)),
|
|
57
57
|
react_1.default.createElement("span", { className: styles.errorTitle },
|
|
58
58
|
displayedMessage,
|
|
59
|
-
showLink &&
|
|
59
|
+
showLink && (react_1.default.createElement(SmallIconButton_1.SmallIconButtonWithTooltip, { icon: Hyperlink_1.default, size: "XXS", onClick: function () { return highlightError(error); }, tooltipTitle: ui_i18n_1.default.text('Go to error'), className: styles.goToIcon }))),
|
|
60
60
|
displayedErrorPath && react_1.default.createElement("span", { className: styles.parents }, displayedErrorPath))));
|
|
61
61
|
});
|
|
62
62
|
exports.Error.displayName = 'Error';
|
|
@@ -58,6 +58,7 @@ export type MdmModuleValuesContextProps = Partial<{
|
|
|
58
58
|
uiConfigProfile: Profile;
|
|
59
59
|
showMasking: boolean;
|
|
60
60
|
reviewDCREnabled: boolean;
|
|
61
|
+
dcrReviewValidation: boolean;
|
|
61
62
|
}>;
|
|
62
63
|
export type MdmModuleActionsContextProps = Partial<{
|
|
63
64
|
openSearch: (payload: SearchState) => void;
|
|
@@ -264,6 +265,7 @@ export declare const MdmModuleValuesContext: import("@fluentui/react-context-sel
|
|
|
264
265
|
uiConfigProfile: Profile;
|
|
265
266
|
showMasking: boolean;
|
|
266
267
|
reviewDCREnabled: boolean;
|
|
268
|
+
dcrReviewValidation: boolean;
|
|
267
269
|
}>>;
|
|
268
270
|
export declare const MdmModuleListenersContext: import("@fluentui/react-context-selector").Context<Partial<{
|
|
269
271
|
expandInvalidRelatonsListener: (callback: () => void) => (action: any) => void;
|
|
@@ -153,3 +153,4 @@ export declare const useMdmHiddenAttributes: () => Record<string, string[]>;
|
|
|
153
153
|
export declare const useMdmControlAttributes: () => string[];
|
|
154
154
|
export declare const useMdmShowMasking: () => boolean;
|
|
155
155
|
export declare const useMdmReviewDCREnabled: () => boolean;
|
|
156
|
+
export declare const useMdmDcrReviewValidation: () => boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useMdmIsCollaborationEnabled = exports.useMdmSearchProviderData = exports.useMdmSearchNavigationData = exports.useMdmDataTenants = exports.useMdmEnvironment = exports.useMdmTenantName = exports.useMdmTenant = exports.useMdmTenantObject = exports.useMdmUserRoles = exports.useMdmUsername = exports.useMdmUser = exports.useMdmMetadata = exports.useMdmDependentLookups = exports.useMdmLookups = exports.useMdmProfileLastLoadedTime = exports.useMdmHistoryEvent = exports.useMdmHistorySlice = exports.useMdmHistoryMode = exports.useMdmHistoryDiff = exports.useMdmIsEditableMode = exports.useMdmIsViewMode = exports.useMdmMode = exports.useMdmEntityUriWithDataTenant = exports.useMdmEntityWithDiff = exports.useMdmEntityUri = exports.useMdmEntity = exports.useMdmModifiedEntities = exports.useMdmLookupAutocomplete = exports.useMdmAttributesSortingStrategy = exports.useMdmMaxValuesInResponse = exports.useMdmAttributesPresentation = exports.useMdmDateTimeMask = exports.useMdmDateMask = exports.useMdmPivotingAttributes = exports.useMdmShowEntityId = exports.useMdmImageAttributesFieldsOrder = exports.useMdmCollaborationPath = exports.useMdmImagePath = exports.useMdmApiPath = exports.useMdmReltioPath = exports.useMdmImageServicePath = exports.useMdmWorkflowPath = exports.useMdmServicesPath = exports.useMdmDtssPath = exports.useMdmUiPath = exports.useMdmAbsoluteImagePath = exports.useMdmExportPath = exports.useMdmWorkflowEnvironmentUrl = exports.useMdmUiError = exports.useMdmAutoCloseInterval = void 0;
|
|
4
|
-
exports.useMdmReviewDCREnabled = exports.useMdmShowMasking = exports.useMdmControlAttributes = exports.useMdmHiddenAttributes = exports.useMdmListener = exports.useMdmAction = exports.useMdmAuthoringItemsByEntityType = exports.useMdmGlobalSearchRequestOptions = exports.useMdmDependentLookupEditorContext = exports.useMdmRelationsDrafts = exports.useMdmAllRelationsToAddAndEdit = exports.useMdmDependentLookupsStructureNode = exports.useMdmActiveErrorsForAttributesPager = exports.useMdmDependentLookupEditorState = exports.useMdmInitialConnection = exports.useMdmInitialConnectionTempEntity = exports.useMdmModifiedEntity = exports.useMdmModifiedEntityDefaultProfilePic = exports.useMdmIsSourcesScreenEnabled = exports.useMdmProfileErrors = exports.useMdmIsWorkflowEnabled = void 0;
|
|
4
|
+
exports.useMdmDcrReviewValidation = exports.useMdmReviewDCREnabled = exports.useMdmShowMasking = exports.useMdmControlAttributes = exports.useMdmHiddenAttributes = exports.useMdmListener = exports.useMdmAction = exports.useMdmAuthoringItemsByEntityType = exports.useMdmGlobalSearchRequestOptions = exports.useMdmDependentLookupEditorContext = exports.useMdmRelationsDrafts = exports.useMdmAllRelationsToAddAndEdit = exports.useMdmDependentLookupsStructureNode = exports.useMdmActiveErrorsForAttributesPager = exports.useMdmDependentLookupEditorState = exports.useMdmInitialConnection = exports.useMdmInitialConnectionTempEntity = exports.useMdmModifiedEntity = exports.useMdmModifiedEntityDefaultProfilePic = exports.useMdmIsSourcesScreenEnabled = exports.useMdmProfileErrors = exports.useMdmIsWorkflowEnabled = void 0;
|
|
5
5
|
var react_context_selector_1 = require("@fluentui/react-context-selector");
|
|
6
6
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
7
7
|
var context_1 = require("./context");
|
|
@@ -237,3 +237,5 @@ var useMdmShowMasking = function () { return useMdmModuleValuesContext(function
|
|
|
237
237
|
exports.useMdmShowMasking = useMdmShowMasking;
|
|
238
238
|
var useMdmReviewDCREnabled = function () { return useMdmModuleValuesContext(function (context) { return context.reviewDCREnabled; }); };
|
|
239
239
|
exports.useMdmReviewDCREnabled = useMdmReviewDCREnabled;
|
|
240
|
+
var useMdmDcrReviewValidation = function () { return useMdmModuleValuesContext(function (context) { return context.dcrReviewValidation; }); };
|
|
241
|
+
exports.useMdmDcrReviewValidation = useMdmDcrReviewValidation;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { MdmModuleProvider } from './provider';
|
|
2
|
-
export { useMdmAutoCloseInterval, useMdmUiError, useMdmWorkflowEnvironmentUrl, useMdmExportPath, useMdmAbsoluteImagePath, useMdmUiPath, useMdmDtssPath, useMdmServicesPath, useMdmWorkflowPath, useMdmImageServicePath, useMdmReltioPath, useMdmApiPath, useMdmCollaborationPath, useMdmImageAttributesFieldsOrder, useMdmShowEntityId, useMdmPivotingAttributes, useMdmDateMask, useMdmDateTimeMask, useMdmAttributesPresentation, useMdmMaxValuesInResponse, useMdmAttributesSortingStrategy, useMdmLookupAutocomplete, useMdmModifiedEntities, useMdmEntity, useMdmEntityUri, useMdmEntityWithDiff, useMdmEntityUriWithDataTenant, useMdmMode, useMdmIsViewMode, useMdmIsEditableMode, useMdmHistoryDiff, useMdmHistoryMode, useMdmHistorySlice, useMdmHistoryEvent, useMdmProfileLastLoadedTime, useMdmLookups, useMdmDependentLookups, useMdmMetadata, useMdmUser, useMdmUsername, useMdmUserRoles, useMdmTenantObject, useMdmTenant, useMdmTenantName, useMdmEnvironment, useMdmDataTenants, useMdmSearchNavigationData, useMdmSearchProviderData, useMdmIsCollaborationEnabled, useMdmIsWorkflowEnabled, useMdmProfileErrors, useMdmRelationsDrafts, useMdmModifiedEntityDefaultProfilePic, useMdmModifiedEntity, useMdmInitialConnectionTempEntity, useMdmInitialConnection, useMdmDependentLookupEditorState, useMdmActiveErrorsForAttributesPager, useMdmDependentLookupsStructureNode, useMdmAllRelationsToAddAndEdit, useMdmDependentLookupEditorContext, useMdmGlobalSearchRequestOptions, useMdmAuthoringItemsByEntityType, useMdmAction, useMdmListener, useMdmIsSourcesScreenEnabled, useMdmHiddenAttributes, useMdmControlAttributes, useMdmShowMasking, useMdmReviewDCREnabled, useMdmImagePath } from './hooks';
|
|
2
|
+
export { useMdmAutoCloseInterval, useMdmUiError, useMdmWorkflowEnvironmentUrl, useMdmExportPath, useMdmAbsoluteImagePath, useMdmUiPath, useMdmDtssPath, useMdmServicesPath, useMdmWorkflowPath, useMdmImageServicePath, useMdmReltioPath, useMdmApiPath, useMdmCollaborationPath, useMdmImageAttributesFieldsOrder, useMdmShowEntityId, useMdmPivotingAttributes, useMdmDateMask, useMdmDateTimeMask, useMdmAttributesPresentation, useMdmMaxValuesInResponse, useMdmAttributesSortingStrategy, useMdmLookupAutocomplete, useMdmModifiedEntities, useMdmEntity, useMdmEntityUri, useMdmEntityWithDiff, useMdmEntityUriWithDataTenant, useMdmMode, useMdmIsViewMode, useMdmIsEditableMode, useMdmHistoryDiff, useMdmHistoryMode, useMdmHistorySlice, useMdmHistoryEvent, useMdmProfileLastLoadedTime, useMdmLookups, useMdmDependentLookups, useMdmMetadata, useMdmUser, useMdmUsername, useMdmUserRoles, useMdmTenantObject, useMdmTenant, useMdmTenantName, useMdmEnvironment, useMdmDataTenants, useMdmSearchNavigationData, useMdmSearchProviderData, useMdmIsCollaborationEnabled, useMdmIsWorkflowEnabled, useMdmProfileErrors, useMdmRelationsDrafts, useMdmModifiedEntityDefaultProfilePic, useMdmModifiedEntity, useMdmInitialConnectionTempEntity, useMdmInitialConnection, useMdmDependentLookupEditorState, useMdmActiveErrorsForAttributesPager, useMdmDependentLookupsStructureNode, useMdmAllRelationsToAddAndEdit, useMdmDependentLookupEditorContext, useMdmGlobalSearchRequestOptions, useMdmAuthoringItemsByEntityType, useMdmAction, useMdmListener, useMdmIsSourcesScreenEnabled, useMdmHiddenAttributes, useMdmControlAttributes, useMdmShowMasking, useMdmReviewDCREnabled, useMdmDcrReviewValidation, useMdmImagePath } from './hooks';
|
|
3
3
|
export type { MdmModuleActionsContextProps, MdmModuleValuesContextProps, MdmModuleListenersContextProps } from './context';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useMdmIsCollaborationEnabled = exports.useMdmSearchProviderData = exports.useMdmSearchNavigationData = exports.useMdmDataTenants = exports.useMdmEnvironment = exports.useMdmTenantName = exports.useMdmTenant = exports.useMdmTenantObject = exports.useMdmUserRoles = exports.useMdmUsername = exports.useMdmUser = exports.useMdmMetadata = exports.useMdmDependentLookups = exports.useMdmLookups = exports.useMdmProfileLastLoadedTime = exports.useMdmHistoryEvent = exports.useMdmHistorySlice = exports.useMdmHistoryMode = exports.useMdmHistoryDiff = exports.useMdmIsEditableMode = exports.useMdmIsViewMode = exports.useMdmMode = exports.useMdmEntityUriWithDataTenant = exports.useMdmEntityWithDiff = exports.useMdmEntityUri = exports.useMdmEntity = exports.useMdmModifiedEntities = exports.useMdmLookupAutocomplete = exports.useMdmAttributesSortingStrategy = exports.useMdmMaxValuesInResponse = exports.useMdmAttributesPresentation = exports.useMdmDateTimeMask = exports.useMdmDateMask = exports.useMdmPivotingAttributes = exports.useMdmShowEntityId = exports.useMdmImageAttributesFieldsOrder = exports.useMdmCollaborationPath = exports.useMdmApiPath = exports.useMdmReltioPath = exports.useMdmImageServicePath = exports.useMdmWorkflowPath = exports.useMdmServicesPath = exports.useMdmDtssPath = exports.useMdmUiPath = exports.useMdmAbsoluteImagePath = exports.useMdmExportPath = exports.useMdmWorkflowEnvironmentUrl = exports.useMdmUiError = exports.useMdmAutoCloseInterval = exports.MdmModuleProvider = void 0;
|
|
4
|
-
exports.useMdmImagePath = exports.useMdmReviewDCREnabled = exports.useMdmShowMasking = exports.useMdmControlAttributes = exports.useMdmHiddenAttributes = exports.useMdmIsSourcesScreenEnabled = exports.useMdmListener = exports.useMdmAction = exports.useMdmAuthoringItemsByEntityType = exports.useMdmGlobalSearchRequestOptions = exports.useMdmDependentLookupEditorContext = exports.useMdmAllRelationsToAddAndEdit = exports.useMdmDependentLookupsStructureNode = exports.useMdmActiveErrorsForAttributesPager = exports.useMdmDependentLookupEditorState = exports.useMdmInitialConnection = exports.useMdmInitialConnectionTempEntity = exports.useMdmModifiedEntity = exports.useMdmModifiedEntityDefaultProfilePic = exports.useMdmRelationsDrafts = exports.useMdmProfileErrors = exports.useMdmIsWorkflowEnabled = void 0;
|
|
4
|
+
exports.useMdmImagePath = exports.useMdmDcrReviewValidation = exports.useMdmReviewDCREnabled = exports.useMdmShowMasking = exports.useMdmControlAttributes = exports.useMdmHiddenAttributes = exports.useMdmIsSourcesScreenEnabled = exports.useMdmListener = exports.useMdmAction = exports.useMdmAuthoringItemsByEntityType = exports.useMdmGlobalSearchRequestOptions = exports.useMdmDependentLookupEditorContext = exports.useMdmAllRelationsToAddAndEdit = exports.useMdmDependentLookupsStructureNode = exports.useMdmActiveErrorsForAttributesPager = exports.useMdmDependentLookupEditorState = exports.useMdmInitialConnection = exports.useMdmInitialConnectionTempEntity = exports.useMdmModifiedEntity = exports.useMdmModifiedEntityDefaultProfilePic = exports.useMdmRelationsDrafts = exports.useMdmProfileErrors = exports.useMdmIsWorkflowEnabled = void 0;
|
|
5
5
|
var provider_1 = require("./provider");
|
|
6
6
|
Object.defineProperty(exports, "MdmModuleProvider", { enumerable: true, get: function () { return provider_1.MdmModuleProvider; } });
|
|
7
7
|
var hooks_1 = require("./hooks");
|
|
@@ -75,4 +75,5 @@ Object.defineProperty(exports, "useMdmHiddenAttributes", { enumerable: true, get
|
|
|
75
75
|
Object.defineProperty(exports, "useMdmControlAttributes", { enumerable: true, get: function () { return hooks_1.useMdmControlAttributes; } });
|
|
76
76
|
Object.defineProperty(exports, "useMdmShowMasking", { enumerable: true, get: function () { return hooks_1.useMdmShowMasking; } });
|
|
77
77
|
Object.defineProperty(exports, "useMdmReviewDCREnabled", { enumerable: true, get: function () { return hooks_1.useMdmReviewDCREnabled; } });
|
|
78
|
+
Object.defineProperty(exports, "useMdmDcrReviewValidation", { enumerable: true, get: function () { return hooks_1.useMdmDcrReviewValidation; } });
|
|
78
79
|
Object.defineProperty(exports, "useMdmImagePath", { enumerable: true, get: function () { return hooks_1.useMdmImagePath; } });
|
package/cjs/features/workflow/ChangeRequestEditor/components/ChangeItemLabel/ChangeItemLabel.js
CHANGED
|
@@ -7,13 +7,18 @@ exports.ChangeItemLabel = void 0;
|
|
|
7
7
|
var react_1 = __importDefault(require("react"));
|
|
8
8
|
var classnames_1 = __importDefault(require("classnames"));
|
|
9
9
|
var useCssVariableStyles_1 = require("../../../../../hooks/useCssVariableStyles");
|
|
10
|
+
var RequiredMark_1 = require("../../../../../RequiredMark");
|
|
10
11
|
var ChangeItemLabel_module_css_1 = __importDefault(require("./ChangeItemLabel.module.css"));
|
|
11
12
|
var ChangeItemLabel = function (_a) {
|
|
12
|
-
var
|
|
13
|
-
var
|
|
13
|
+
var _b;
|
|
14
|
+
var change = _a.change, className = _a.className, _c = _a.showLabel, showLabel = _c === void 0 ? true : _c;
|
|
15
|
+
var _d = change.level, level = _d === void 0 ? 0 : _d, label = change.label;
|
|
16
|
+
var isRequired = (_b = change === null || change === void 0 ? void 0 : change.attributeType) === null || _b === void 0 ? void 0 : _b.required;
|
|
14
17
|
var variableStyles = (0, useCssVariableStyles_1.useCssVariableStyles)({
|
|
15
18
|
'--level': level
|
|
16
19
|
});
|
|
17
|
-
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(ChangeItemLabel_module_css_1.default.changeLabel, className), style: variableStyles }, showLabel &&
|
|
20
|
+
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(ChangeItemLabel_module_css_1.default.changeLabel, className), style: variableStyles }, showLabel && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
21
|
+
label,
|
|
22
|
+
isRequired && react_1.default.createElement(RequiredMark_1.RequiredMark, null)))));
|
|
18
23
|
};
|
|
19
24
|
exports.ChangeItemLabel = ChangeItemLabel;
|
|
@@ -1,17 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.ChangeItemRow = void 0;
|
|
7
30
|
var classnames_1 = __importDefault(require("classnames"));
|
|
8
|
-
var react_1 =
|
|
31
|
+
var react_1 = __importStar(require("react"));
|
|
9
32
|
var react_context_selector_1 = require("@fluentui/react-context-selector");
|
|
10
33
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
11
34
|
var helpers_1 = require("../../helpers/helpers");
|
|
12
35
|
var ChangeRequestEditorContext_1 = require("../../../contexts/ChangeRequestEditorContext");
|
|
13
36
|
var ChangeItemEditor_1 = require("../ChangeItemEditor");
|
|
14
37
|
var merge_1 = require("../../../helpers/merge");
|
|
38
|
+
var ErrorWrapper_1 = require("../../../../../ErrorWrapper");
|
|
39
|
+
var ScrollToElementContext_1 = require("../../../../../contexts/ScrollToElementContext");
|
|
40
|
+
var useScrollToAttributeError_1 = require("../../../../../hooks/useScrollToAttributeError");
|
|
15
41
|
var ChangeItemRow_module_css_1 = __importDefault(require("./ChangeItemRow.module.css"));
|
|
16
42
|
var ChangeItemRow = function (_a) {
|
|
17
43
|
var _b;
|
|
@@ -26,14 +52,29 @@ var ChangeItemRow = function (_a) {
|
|
|
26
52
|
var isUpdated = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) {
|
|
27
53
|
return context.getIsLineUpdated(lineIds === null || lineIds === void 0 ? void 0 : lineIds[0]);
|
|
28
54
|
});
|
|
55
|
+
var errorByLineId = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) {
|
|
56
|
+
return context.getErrorByLineId(lineIds === null || lineIds === void 0 ? void 0 : lineIds[0]);
|
|
57
|
+
});
|
|
58
|
+
var error = errorByLineId === null || errorByLineId === void 0 ? void 0 : errorByLineId.error;
|
|
59
|
+
var errorLineIds = (errorByLineId === null || errorByLineId === void 0 ? void 0 : errorByLineId.lineIds) || [];
|
|
60
|
+
var scrollToElementContext = (0, react_1.useContext)(ScrollToElementContext_1.ScrollToElementContext);
|
|
61
|
+
var highlightedError = scrollToElementContext === null || scrollToElementContext === void 0 ? void 0 : scrollToElementContext.element;
|
|
62
|
+
var isHighlighted = (0, ScrollToElementContext_1.isHighlightedErrorType)(scrollToElementContext === null || scrollToElementContext === void 0 ? void 0 : scrollToElementContext.type) &&
|
|
63
|
+
highlightedError &&
|
|
64
|
+
errorLineIds.includes(highlightedError.uri);
|
|
65
|
+
var _c = (0, useScrollToAttributeError_1.useScrollToAttributeError)({
|
|
66
|
+
highlightedError: isHighlighted ? scrollToElementContext : null,
|
|
67
|
+
className: ChangeItemRow_module_css_1.default.changeItemRowWithError
|
|
68
|
+
}), ref = _c.ref, errorClassName = _c.errorClassName;
|
|
29
69
|
var isEditedOperation = change.operation === mdm_sdk_1.DCROperationTypes.EDITED;
|
|
30
70
|
var editable = (0, helpers_1.isEditableChange)(change, entityInfo);
|
|
31
|
-
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(ChangeItemRow_module_css_1.default.changeItemRow, (_b = {},
|
|
71
|
+
return (react_1.default.createElement("div", { ref: ref, className: (0, classnames_1.default)(ChangeItemRow_module_css_1.default.changeItemRow, errorClassName, (_b = {},
|
|
32
72
|
_b[ChangeItemRow_module_css_1.default.editableRow] = editable,
|
|
33
73
|
_b[ChangeItemRow_module_css_1.default.changedRow] = isUpdated,
|
|
34
74
|
_b[ChangeItemRow_module_css_1.default.rejectedRow] = isLineRejected || isParentLineRejected,
|
|
35
75
|
_b)) },
|
|
36
|
-
|
|
37
|
-
|
|
76
|
+
react_1.default.createElement(ErrorWrapper_1.ErrorWrapper, { errorMessage: error === null || error === void 0 ? void 0 : error.message, classes: { helperText: ChangeItemRow_module_css_1.default.errorText } },
|
|
77
|
+
isEditedOperation && react_1.default.createElement(ChangeItemEditor_1.ChangeItemOldValue, { change: change }),
|
|
78
|
+
react_1.default.createElement(ChangeItemEditor_1.ChangeItemEditor, { change: change, editable: editable, classes: { rejectButton: ChangeItemRow_module_css_1.default.rejectButton } }))));
|
|
38
79
|
};
|
|
39
80
|
exports.ChangeItemRow = ChangeItemRow;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const styles = {"changeItemRow":"ChangeItemRow-changeItemRow--oF9hn","rejectButton":"ChangeItemRow-rejectButton--iNbfM","changedRow":"ChangeItemRow-changedRow--32zBa","rejectedRow":"ChangeItemRow-rejectedRow--RqKQc"};
|
|
1
|
+
const styles = {"changeItemRow":"ChangeItemRow-changeItemRow--oF9hn","changeItemRowWithError":"ChangeItemRow-changeItemRowWithError--oS1li","rejectButton":"ChangeItemRow-rejectButton--iNbfM","changedRow":"ChangeItemRow-changedRow--32zBa","rejectedRow":"ChangeItemRow-rejectedRow--RqKQc","errorText":"ChangeItemRow-errorText--EybHm"};
|
|
2
2
|
if (typeof document !== 'undefined') {
|
|
3
3
|
const head = document.head || document.getElementsByTagName('head')[0]
|
|
4
4
|
const style = document.createElement('style');
|
|
5
5
|
style.type = 'text/css'
|
|
6
|
-
style.innerHTML = `.ChangeItemRow-changeItemRow--oF9hn{display:flex;flex-direction:column;gap:8px;transition:background-color .2s ease}.ChangeItemRow-rejectButton--iNbfM{opacity:0}.ChangeItemRow-changeItemRow--oF9hn:hover{background:var(--mui-palette-action-hover)}.ChangeItemRow-changeItemRow--oF9hn:hover .ChangeItemRow-rejectButton--iNbfM{opacity:1}.ChangeItemRow-changedRow--32zBa{background-color:#e5eff7}.ChangeItemRow-changedRow--32zBa:hover{background-color:rgba(229,239,247,.8)}.ChangeItemRow-rejectedRow--RqKQc{background-color:#f6e7e7}.ChangeItemRow-rejectedRow--RqKQc:hover{background-color:hsla(0,45%,94%,.8)}`;
|
|
6
|
+
style.innerHTML = `.ChangeItemRow-changeItemRow--oF9hn{display:flex;flex-direction:column;gap:8px;position:relative;transition:background-color .2s ease}.ChangeItemRow-changeItemRow--oF9hn.ChangeItemRow-changeItemRowWithError--oS1li:before{bottom:-4px;height:auto;left:-8px;right:-8px;top:-4px;width:auto}.ChangeItemRow-rejectButton--iNbfM{opacity:0}.ChangeItemRow-changeItemRow--oF9hn:hover{background:var(--mui-palette-action-hover)}.ChangeItemRow-changeItemRow--oF9hn:hover .ChangeItemRow-rejectButton--iNbfM{opacity:1}.ChangeItemRow-changedRow--32zBa{background-color:#e5eff7}.ChangeItemRow-changedRow--32zBa:hover{background-color:rgba(229,239,247,.8)}.ChangeItemRow-rejectedRow--RqKQc{background-color:#f6e7e7}.ChangeItemRow-rejectedRow--RqKQc:hover{background-color:hsla(0,45%,94%,.8)}.ChangeItemRow-errorText--EybHm{padding:0 0 4px 180px}`;
|
|
7
7
|
head.appendChild(style);
|
|
8
8
|
}
|
|
9
9
|
module.exports = styles;
|
package/cjs/features/workflow/ChangeRequestEditor/components/DCRValueEditor/DCRValueEditor.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AttributeType, ChangeValue, PrimitiveValue, SimpleAttributeValue } from '@reltio/mdm-sdk';
|
|
3
|
-
import { LineDataValue } from '../../../
|
|
3
|
+
import { LineDataValue } from '../../../types';
|
|
4
4
|
type Props = {
|
|
5
5
|
attributeType: AttributeType;
|
|
6
6
|
value: LineDataValue | ChangeValue;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AttributeType, ChangeValue, DataTypeDefinition, PrimitiveValue, SimpleAttributeValue } from '@reltio/mdm-sdk';
|
|
3
|
-
import { LineDataValue } from '../../../
|
|
3
|
+
import { LineDataValue } from '../../../types';
|
|
4
4
|
type Props = {
|
|
5
5
|
attributeType: AttributeType;
|
|
6
6
|
value: LineDataValue | ChangeValue;
|
|
@@ -7,7 +7,7 @@ export declare const useChangeRequestEditor: ({ change }: Props) => {
|
|
|
7
7
|
handleChange: (newValue: SimpleAttributeValue | string[] | PrimitiveValue) => void;
|
|
8
8
|
handleReject: () => void;
|
|
9
9
|
handleRevert: () => void;
|
|
10
|
-
lineData: import("../../
|
|
10
|
+
lineData: import("../../types").LineData;
|
|
11
11
|
isLineRejected: boolean;
|
|
12
12
|
isParentLineRejected: boolean;
|
|
13
13
|
isUpdated: boolean;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.DCRErrorsPanel = void 0;
|
|
30
|
+
var react_1 = __importStar(require("react"));
|
|
31
|
+
var react_context_selector_1 = require("@fluentui/react-context-selector");
|
|
32
|
+
var ChangeRequestEditorContext_1 = require("../../contexts/ChangeRequestEditorContext");
|
|
33
|
+
var AttributesErrorsPanel_1 = require("../../../../AttributesErrorsPanel");
|
|
34
|
+
var DCRErrorsPanel_module_css_1 = __importDefault(require("./DCRErrorsPanel.module.css"));
|
|
35
|
+
var DCRErrorsPanel = function () {
|
|
36
|
+
var errors = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) { return context.getErrors(); });
|
|
37
|
+
var validationErrors = (0, react_1.useMemo)(function () { return errors.map(function (error) { return error.error; }); }, [errors]);
|
|
38
|
+
if (validationErrors.length === 0) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
return (react_1.default.createElement("div", { className: DCRErrorsPanel_module_css_1.default.DCRErrorsPanel },
|
|
42
|
+
react_1.default.createElement(AttributesErrorsPanel_1.AttributesErrorsPanel, { attributesWithErrors: validationErrors })));
|
|
43
|
+
};
|
|
44
|
+
exports.DCRErrorsPanel = DCRErrorsPanel;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const styles = {"DCRErrorsPanel":"DCRErrorsPanel-DCRErrorsPanel--7zw3p"};
|
|
2
|
+
if (typeof document !== 'undefined') {
|
|
3
|
+
const head = document.head || document.getElementsByTagName('head')[0]
|
|
4
|
+
const style = document.createElement('style');
|
|
5
|
+
style.type = 'text/css'
|
|
6
|
+
style.innerHTML = `.DCRErrorsPanel-DCRErrorsPanel--7zw3p{margin-bottom:16px}`;
|
|
7
|
+
head.appendChild(style);
|
|
8
|
+
}
|
|
9
|
+
module.exports = styles;
|
|
@@ -24,6 +24,7 @@ var WorkflowActionButtons_1 = require("../WorkflowActionButtons");
|
|
|
24
24
|
var DCRSummaryInfo_1 = require("./components/DCRSummaryInfo/DCRSummaryInfo");
|
|
25
25
|
var ChangeRequestEditor_1 = require("../ChangeRequestEditor");
|
|
26
26
|
var useApplyDcrChanges_1 = require("../hooks/useApplyDcrChanges");
|
|
27
|
+
var DCRErrorsPanel_1 = require("./DCRErrorsPanel/DCRErrorsPanel");
|
|
27
28
|
var ReviewDCRDialog_module_css_1 = __importDefault(require("./ReviewDCRDialog.module.css"));
|
|
28
29
|
var ReviewDCRDialog = function (_a) {
|
|
29
30
|
var open = _a.open, onClose = _a.onClose, dcr = _a.dcr, task = _a.task, groupedObjects = _a.groupedObjects;
|
|
@@ -49,6 +50,7 @@ var ReviewDCRDialog = function (_a) {
|
|
|
49
50
|
react_1.default.createElement(DialogContent_1.default, { classes: { root: ReviewDCRDialog_module_css_1.default.content } },
|
|
50
51
|
react_1.default.createElement("div", { className: ReviewDCRDialog_module_css_1.default.leftSection },
|
|
51
52
|
react_1.default.createElement(ProfileBand_1.ProfileBand, { entity: entity, className: ReviewDCRDialog_module_css_1.default.profileBandRoot, classes: { profileBand: ReviewDCRDialog_module_css_1.default.profileBand } }),
|
|
53
|
+
react_1.default.createElement(DCRErrorsPanel_1.DCRErrorsPanel, null),
|
|
52
54
|
react_1.default.createElement(DCRSummaryInfo_1.DCRSummaryInfo, { dcr: dcr, task: task, groupedObjects: groupedObjects }),
|
|
53
55
|
react_1.default.createElement("div", { className: ReviewDCRDialog_module_css_1.default.editableSection },
|
|
54
56
|
react_1.default.createElement("div", { className: ReviewDCRDialog_module_css_1.default.editableGrid },
|
|
@@ -41,6 +41,7 @@ var ReviewDCRDialog_1 = require("../../../ReviewDCRDialog");
|
|
|
41
41
|
var ReviewDCRButton_1 = require("../../../ReviewDCRButton");
|
|
42
42
|
var ChangeRequestEditorContext_1 = require("../../../contexts/ChangeRequestEditorContext");
|
|
43
43
|
var WorkflowTasksContext_1 = require("../../../../../contexts/WorkflowTasksContext");
|
|
44
|
+
var ScrollToElementContext_1 = require("../../../../../contexts/ScrollToElementContext");
|
|
44
45
|
var DataChangeRequestTaskCard = function (_a) {
|
|
45
46
|
var task = _a.task;
|
|
46
47
|
var reviewDCREnabledByEntityType = ((0, react_1.useContext)(WorkflowTasksContext_1.WorkflowTasksContext) || {}).reviewDCR;
|
|
@@ -67,6 +68,7 @@ var DataChangeRequestTaskCard = function (_a) {
|
|
|
67
68
|
groupedObjects.map(function (object, index) { return (react_1.default.createElement(LineDecorator_1.LineDecorator, { key: index, last: index === groupedObjects.length - 1, divider: true },
|
|
68
69
|
react_1.default.createElement(AttributesChanges_1.AttributesChanges, { entityInfo: object.entity, relationsInfo: object.relations, changes: dcr.changes, objectsInfo: dcr.objectsInfo, dcrUri: dcrUri }))); })),
|
|
69
70
|
showReviewDialog && (react_1.default.createElement(ChangeRequestEditorContext_1.ChangeRequestEditorProvider, null,
|
|
70
|
-
react_1.default.createElement(
|
|
71
|
+
react_1.default.createElement(ScrollToElementContext_1.ScrollToElementProvider, null,
|
|
72
|
+
react_1.default.createElement(ReviewDCRDialog_1.ReviewDCRDialog, { open: isReviewDCRDialogOpen, onClose: handleCloseReviewDCRDialog, dcr: dcr, groupedObjects: groupedObjects, task: task }))))));
|
|
71
73
|
};
|
|
72
74
|
exports.DataChangeRequestTaskCard = DataChangeRequestTaskCard;
|
|
@@ -71,7 +71,6 @@ var CommentDialogContext_1 = require("../../../../../contexts/CommentDialogConte
|
|
|
71
71
|
var DataChangeRequestTaskCard_1 = require("./DataChangeRequestTaskCard");
|
|
72
72
|
var WorkflowTasksContext_1 = require("../../../../../contexts/WorkflowTasksContext");
|
|
73
73
|
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getDataChangeRequest: jest.fn(), getEntitiesByUris: jest.fn(), runTaskAction: jest.fn() })); });
|
|
74
|
-
jest.mock('../../../../../contexts/MdmModuleContext', function () { return (__assign(__assign({}, jest.requireActual('../../../../../contexts/MdmModuleContext')), { useMdmMetadata: jest.fn() })); });
|
|
75
74
|
var onActionSuccess = jest.fn();
|
|
76
75
|
var workflowTaskContextValue = { onActionSuccess: onActionSuccess };
|
|
77
76
|
describe('DataChangeRequestTaskCard tests', function () {
|
|
@@ -266,16 +265,18 @@ describe('DataChangeRequestTaskCard tests', function () {
|
|
|
266
265
|
var tenant = { id: 't1', name: 't1' };
|
|
267
266
|
var workflowPath = 'workflowPath';
|
|
268
267
|
var workflowEnvironmentUrl = 'workflowEnvironmentUrl';
|
|
269
|
-
var
|
|
268
|
+
var mdmDefaultValues = {
|
|
269
|
+
metadata: metadata,
|
|
270
270
|
user: {
|
|
271
271
|
username: userName
|
|
272
272
|
},
|
|
273
273
|
tenant: tenant,
|
|
274
274
|
workflowPath: workflowPath,
|
|
275
|
-
workflowEnvironmentUrl: workflowEnvironmentUrl
|
|
275
|
+
workflowEnvironmentUrl: workflowEnvironmentUrl,
|
|
276
|
+
entity: { uri: entityUri }
|
|
276
277
|
};
|
|
277
278
|
var setUp = function (_a) {
|
|
278
|
-
var _b = _a === void 0 ? {} : _a, _c = _b.task, task = _c === void 0 ? defaultTask : _c;
|
|
279
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.task, task = _c === void 0 ? defaultTask : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? mdmDefaultValues : _d;
|
|
279
280
|
var user = user_event_1.default.setup();
|
|
280
281
|
var Providers = function (_a) {
|
|
281
282
|
var children = _a.children;
|
|
@@ -290,9 +291,6 @@ describe('DataChangeRequestTaskCard tests', function () {
|
|
|
290
291
|
mdm_sdk_1.getEntitiesByUris.mockResolvedValue(entities);
|
|
291
292
|
mdm_sdk_1.runTaskAction.mockResolvedValue(null);
|
|
292
293
|
});
|
|
293
|
-
beforeEach(function () {
|
|
294
|
-
MdmModuleContext_1.useMdmMetadata.mockReturnValue(metadata);
|
|
295
|
-
});
|
|
296
294
|
afterEach(function () {
|
|
297
295
|
jest.clearAllMocks();
|
|
298
296
|
});
|
|
@@ -488,6 +486,16 @@ describe('DataChangeRequestTaskCard tests', function () {
|
|
|
488
486
|
}
|
|
489
487
|
});
|
|
490
488
|
}); });
|
|
489
|
+
it('should not show Review DCR button when current entity is a new created entity by DCR', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
490
|
+
var mdmValues;
|
|
491
|
+
return __generator(this, function (_a) {
|
|
492
|
+
mdmValues = __assign(__assign({}, mdmDefaultValues), { reviewDCREnabled: true, entity: { uri: "".concat(dcrUri, "/changes/").concat(entityUri) } });
|
|
493
|
+
mdm_sdk_1.getDataChangeRequest.mockResolvedValue(dcr);
|
|
494
|
+
setUp({ mdmValues: mdmValues });
|
|
495
|
+
expect(react_2.screen.queryByRole('button', { name: 'Review DCR' })).not.toBeInTheDocument();
|
|
496
|
+
return [2 /*return*/];
|
|
497
|
+
});
|
|
498
|
+
}); });
|
|
491
499
|
it('should create correct link for new entity', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
492
500
|
var changesWithNewEntity, dcrWithNewEntity, user, linkElement, href;
|
|
493
501
|
var _a;
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
export type LineData = {
|
|
7
|
-
value?: LineDataValue;
|
|
8
|
-
isRejected?: boolean;
|
|
9
|
-
};
|
|
10
|
-
type ChangeRequestEditorContextType = {
|
|
2
|
+
import { AttributeError } from '@reltio/mdm-sdk';
|
|
3
|
+
import { LineData, LineDataValue } from '../../types';
|
|
4
|
+
export type ChangeRequestEditorContextType = {
|
|
11
5
|
updateChange: (lineIds: string[], data: LineDataValue) => void;
|
|
12
6
|
getLineData: (lineId: string) => LineData | undefined;
|
|
13
7
|
getLinesByChangeId: (changeId: string) => Array<[string, LineData]>;
|
|
@@ -16,9 +10,24 @@ type ChangeRequestEditorContextType = {
|
|
|
16
10
|
getIsParentLineRejected: (lineId: string) => boolean;
|
|
17
11
|
getIsLineRejected: (lineId: string) => boolean;
|
|
18
12
|
getIsLineUpdated: (lineId: string) => boolean;
|
|
13
|
+
getAllChanges: () => {
|
|
14
|
+
lineId: string;
|
|
15
|
+
data: LineData;
|
|
16
|
+
}[];
|
|
17
|
+
setErrors: (errors: {
|
|
18
|
+
error: AttributeError;
|
|
19
|
+
lineIds: string[];
|
|
20
|
+
}[]) => void;
|
|
21
|
+
getErrorByLineId: (lineId: string) => {
|
|
22
|
+
error: AttributeError;
|
|
23
|
+
lineIds: string[];
|
|
24
|
+
} | undefined;
|
|
25
|
+
getErrors: () => {
|
|
26
|
+
error: AttributeError;
|
|
27
|
+
lineIds: string[];
|
|
28
|
+
}[];
|
|
19
29
|
};
|
|
20
30
|
export declare const ChangeRequestEditorContext: import("@fluentui/react-context-selector").Context<ChangeRequestEditorContextType>;
|
|
21
31
|
export declare const ChangeRequestEditorProvider: ({ children }: {
|
|
22
32
|
children: React.ReactNode;
|
|
23
33
|
}) => React.JSX.Element;
|
|
24
|
-
export {};
|
|
@@ -35,12 +35,18 @@ exports.ChangeRequestEditorContext = (0, react_context_selector_1.createContext)
|
|
|
35
35
|
revertChangeUpdateOrReject: undefined,
|
|
36
36
|
getIsParentLineRejected: undefined,
|
|
37
37
|
getIsLineRejected: undefined,
|
|
38
|
-
getIsLineUpdated: undefined
|
|
38
|
+
getIsLineUpdated: undefined,
|
|
39
|
+
getAllChanges: undefined,
|
|
40
|
+
setErrors: undefined,
|
|
41
|
+
getErrorByLineId: undefined,
|
|
42
|
+
getErrors: undefined
|
|
39
43
|
});
|
|
44
|
+
var emptyArray = [];
|
|
40
45
|
var ChangeRequestEditorProvider = function (_a) {
|
|
41
46
|
var children = _a.children;
|
|
42
47
|
var _b = (0, react_1.useState)(new Map()), lineDataMap = _b[0], setLineDataMap = _b[1];
|
|
43
48
|
var lineDataMapRef = (0, react_1.useRef)(lineDataMap);
|
|
49
|
+
var _c = (0, react_1.useState)([]), errors = _c[0], setErrors = _c[1];
|
|
44
50
|
var updateChange = (0, react_1.useCallback)(function (lineIds, data) {
|
|
45
51
|
setLineDataMap(function (prevMap) {
|
|
46
52
|
var newMap = new Map(prevMap);
|
|
@@ -96,9 +102,25 @@ var ChangeRequestEditorProvider = function (_a) {
|
|
|
96
102
|
return key.split('/')[1] === changeId;
|
|
97
103
|
});
|
|
98
104
|
}, []);
|
|
105
|
+
var getAllChanges = (0, react_1.useCallback)(function () {
|
|
106
|
+
var changes = Array.from(lineDataMapRef.current).map(function (_a) {
|
|
107
|
+
var lineId = _a[0], data = _a[1];
|
|
108
|
+
return ({ lineId: lineId, data: data });
|
|
109
|
+
});
|
|
110
|
+
return changes.length > 0 ? changes : emptyArray;
|
|
111
|
+
}, []);
|
|
99
112
|
(0, react_1.useEffect)(function () {
|
|
100
113
|
lineDataMapRef.current = lineDataMap;
|
|
101
114
|
}, [lineDataMap]);
|
|
115
|
+
var getErrorByLineId = (0, react_1.useCallback)(function (lineId) {
|
|
116
|
+
return errors.find(function (_a) {
|
|
117
|
+
var lineIds = _a.lineIds;
|
|
118
|
+
return lineIds.includes(lineId);
|
|
119
|
+
});
|
|
120
|
+
}, [errors]);
|
|
121
|
+
var getErrors = (0, react_1.useCallback)(function () {
|
|
122
|
+
return errors;
|
|
123
|
+
}, [errors]);
|
|
102
124
|
var contextValue = {
|
|
103
125
|
updateChange: updateChange,
|
|
104
126
|
getLineData: getLineData,
|
|
@@ -107,7 +129,11 @@ var ChangeRequestEditorProvider = function (_a) {
|
|
|
107
129
|
revertChangeUpdateOrReject: revertChangeUpdateOrReject,
|
|
108
130
|
getIsParentLineRejected: getIsParentLineRejected,
|
|
109
131
|
getIsLineRejected: getIsLineRejected,
|
|
110
|
-
getIsLineUpdated: getIsLineUpdated
|
|
132
|
+
getIsLineUpdated: getIsLineUpdated,
|
|
133
|
+
getAllChanges: getAllChanges,
|
|
134
|
+
setErrors: setErrors,
|
|
135
|
+
getErrorByLineId: getErrorByLineId,
|
|
136
|
+
getErrors: getErrors
|
|
111
137
|
};
|
|
112
138
|
return react_1.default.createElement(exports.ChangeRequestEditorContext.Provider, { value: contextValue }, children);
|
|
113
139
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AttributeDelete, ChangeRequest, DCRChange, DCRChanges, DCRObjectInfo, DCRObjectsInfo, GroupedObjectsInfo, Metadata } from '@reltio/mdm-sdk';
|
|
2
|
-
import { LineData } from '../
|
|
2
|
+
import { LineData } from '../types';
|
|
3
3
|
export declare const getEntitiesObjects: any;
|
|
4
4
|
export declare const getRelationsObjects: any;
|
|
5
5
|
export declare const extractObjectsFromChangeRequest: (changes: DCRChanges, objectsInfo: DCRObjectsInfo) => DCRObjectInfo[];
|
|
@@ -73,7 +73,7 @@ var prepareStartOrEndDate = function (_a) {
|
|
|
73
73
|
];
|
|
74
74
|
}
|
|
75
75
|
};
|
|
76
|
-
var prepareRolesOrTags = function (
|
|
76
|
+
var prepareRolesOrTags = function (change) {
|
|
77
77
|
var _a = change.newValue, newValue = _a === void 0 ? [] : _a, _b = change.oldValue, oldValue = _b === void 0 ? [] : _b;
|
|
78
78
|
var preparedNewValue = 'value' in newValue ? newValue.value : newValue;
|
|
79
79
|
var preparedOldValue = 'value' in oldValue ? oldValue.value : oldValue;
|
|
@@ -201,10 +201,10 @@ var mergeAttributesInChange = function (metadata, objectInfo, change, container)
|
|
|
201
201
|
container['defaultProfilePicValue'] = [change.newValue];
|
|
202
202
|
break;
|
|
203
203
|
case mdm_sdk_1.DCRTypes.UPDATE_TAGS:
|
|
204
|
-
container[mdm_sdk_1.EntityAttrTypes.tags.name] = prepareRolesOrTags(
|
|
204
|
+
container[mdm_sdk_1.EntityAttrTypes.tags.name] = prepareRolesOrTags(change);
|
|
205
205
|
break;
|
|
206
206
|
case mdm_sdk_1.DCRTypes.UPDATE_ROLES: {
|
|
207
|
-
container[mdm_sdk_1.EntityAttrTypes.roles.name] = prepareRolesOrTags(
|
|
207
|
+
container[mdm_sdk_1.EntityAttrTypes.roles.name] = prepareRolesOrTags(change);
|
|
208
208
|
break;
|
|
209
209
|
}
|
|
210
210
|
case mdm_sdk_1.DCRTypes.UPDATE_START_DATE:
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AttributeError, DCRChanges, Entity, Metadata, Relation } from '@reltio/mdm-sdk';
|
|
2
|
+
import { LineData } from '../types';
|
|
3
|
+
type UserChange = {
|
|
4
|
+
lineId: string;
|
|
5
|
+
data: LineData;
|
|
6
|
+
};
|
|
7
|
+
type ValidationError = {
|
|
8
|
+
error: AttributeError;
|
|
9
|
+
lineIds: string[];
|
|
10
|
+
};
|
|
11
|
+
export declare const getValidationErrors: ({ changes, userChanges, entitiesOrRelations, metadata }: {
|
|
12
|
+
changes: DCRChanges;
|
|
13
|
+
userChanges: UserChange[];
|
|
14
|
+
entitiesOrRelations: Record<string, Entity | Relation>;
|
|
15
|
+
metadata: Metadata;
|
|
16
|
+
}) => ValidationError[];
|
|
17
|
+
export {};
|