@reltio/components 1.4.2207 → 1.4.2209

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/AttributesErrorsPanel/components/Error/Error.js +2 -2
  2. package/cjs/AttributesErrorsPanel/components/Error/Error.js +2 -2
  3. package/cjs/contexts/MdmModuleContext/context.d.ts +2 -0
  4. package/cjs/contexts/MdmModuleContext/hooks.d.ts +1 -0
  5. package/cjs/contexts/MdmModuleContext/hooks.js +3 -1
  6. package/cjs/contexts/MdmModuleContext/index.d.ts +1 -1
  7. package/cjs/contexts/MdmModuleContext/index.js +2 -1
  8. package/cjs/features/workflow/ChangeRequestEditor/ChangeRequestEditor.js +1 -2
  9. package/cjs/features/workflow/ChangeRequestEditor/components/ChangeItemEditor/ChangeItemEditor.js +2 -1
  10. package/cjs/features/workflow/ChangeRequestEditor/components/ChangeItemLabel/ChangeItemLabel.js +8 -3
  11. package/cjs/features/workflow/ChangeRequestEditor/components/ChangeItemRow/ChangeItemRow.js +49 -8
  12. package/cjs/features/workflow/ChangeRequestEditor/components/ChangeItemRow/ChangeItemRow.module.css.js +2 -2
  13. package/cjs/features/workflow/ChangeRequestEditor/components/DCRValueEditor/DCRValueEditor.d.ts +1 -1
  14. package/cjs/features/workflow/ChangeRequestEditor/components/DCRValueEditorFactory/DCRValueEditorFactory.d.ts +1 -1
  15. package/cjs/features/workflow/ChangeRequestEditor/hooks/useChangeRequestEditor.d.ts +2 -1
  16. package/cjs/features/workflow/ChangeRequestEditor/hooks/useChangeRequestEditor.js +14 -8
  17. package/cjs/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.d.ts +2 -0
  18. package/cjs/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.js +44 -0
  19. package/cjs/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.module.css.js +9 -0
  20. package/cjs/features/workflow/ReviewDCRDialog/ReviewDCRDialog.js +12 -7
  21. package/cjs/features/workflow/TaskActionButtons/TaskActionButtons.js +6 -4
  22. package/cjs/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.js +10 -3
  23. package/cjs/features/workflow/WorkflowTaskCard/components/GenericWorkflowTaskCard/GenericWorkflowTaskCard.js +6 -4
  24. package/cjs/features/workflow/{ChangeRequestEditor/context → contexts/ChangeRequestEditorContext}/index.d.ts +20 -10
  25. package/cjs/features/workflow/{ChangeRequestEditor/context → contexts/ChangeRequestEditorContext}/index.js +40 -2
  26. package/cjs/features/workflow/helpers/dcr.d.ts +8 -1
  27. package/cjs/features/workflow/helpers/dcr.js +186 -1
  28. package/cjs/features/workflow/helpers/merge.js +3 -3
  29. package/cjs/features/workflow/helpers/validation.d.ts +17 -0
  30. package/cjs/features/workflow/helpers/validation.js +333 -0
  31. package/cjs/features/workflow/hooks/useApplyDcrChanges.d.ts +3 -0
  32. package/cjs/features/workflow/hooks/useApplyDcrChanges.js +155 -0
  33. package/cjs/features/workflow/hooks/useDCRValidation.d.ts +5 -0
  34. package/cjs/features/workflow/hooks/useDCRValidation.js +153 -0
  35. package/cjs/features/workflow/hooks/useWorkflowActions.d.ts +7 -2
  36. package/cjs/features/workflow/hooks/useWorkflowActions.js +31 -8
  37. package/cjs/features/workflow/types.d.ts +12 -1
  38. package/cjs/hooks/useScrollToAttributeError/useScrollToAttributeError.d.ts +2 -1
  39. package/cjs/hooks/useScrollToAttributeError/useScrollToAttributeError.js +2 -2
  40. package/contexts/MdmModuleContext/context.d.ts +2 -0
  41. package/contexts/MdmModuleContext/hooks.d.ts +1 -0
  42. package/contexts/MdmModuleContext/hooks.js +1 -0
  43. package/contexts/MdmModuleContext/index.d.ts +1 -1
  44. package/contexts/MdmModuleContext/index.js +1 -1
  45. package/features/workflow/ChangeRequestEditor/ChangeRequestEditor.js +1 -2
  46. package/features/workflow/ChangeRequestEditor/components/ChangeItemEditor/ChangeItemEditor.js +2 -1
  47. package/features/workflow/ChangeRequestEditor/components/ChangeItemLabel/ChangeItemLabel.js +8 -3
  48. package/features/workflow/ChangeRequestEditor/components/ChangeItemRow/ChangeItemRow.js +23 -5
  49. package/features/workflow/ChangeRequestEditor/components/ChangeItemRow/ChangeItemRow.module.css.js +2 -2
  50. package/features/workflow/ChangeRequestEditor/components/DCRValueEditor/DCRValueEditor.d.ts +1 -1
  51. package/features/workflow/ChangeRequestEditor/components/DCRValueEditorFactory/DCRValueEditorFactory.d.ts +1 -1
  52. package/features/workflow/ChangeRequestEditor/hooks/useChangeRequestEditor.d.ts +2 -1
  53. package/features/workflow/ChangeRequestEditor/hooks/useChangeRequestEditor.js +8 -2
  54. package/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.d.ts +2 -0
  55. package/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.js +14 -0
  56. package/features/workflow/ReviewDCRDialog/DCRErrorsPanel/DCRErrorsPanel.module.css.js +9 -0
  57. package/features/workflow/ReviewDCRDialog/ReviewDCRDialog.js +12 -7
  58. package/features/workflow/TaskActionButtons/TaskActionButtons.js +6 -4
  59. package/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.js +11 -4
  60. package/features/workflow/WorkflowTaskCard/components/GenericWorkflowTaskCard/GenericWorkflowTaskCard.js +6 -4
  61. package/features/workflow/{ChangeRequestEditor/context → contexts/ChangeRequestEditorContext}/index.d.ts +20 -10
  62. package/features/workflow/{ChangeRequestEditor/context → contexts/ChangeRequestEditorContext}/index.js +41 -3
  63. package/features/workflow/helpers/dcr.d.ts +8 -1
  64. package/features/workflow/helpers/dcr.js +186 -2
  65. package/features/workflow/helpers/merge.js +3 -3
  66. package/features/workflow/helpers/validation.d.ts +17 -0
  67. package/features/workflow/helpers/validation.js +326 -0
  68. package/features/workflow/hooks/useApplyDcrChanges.d.ts +3 -0
  69. package/features/workflow/hooks/useApplyDcrChanges.js +151 -0
  70. package/features/workflow/hooks/useDCRValidation.d.ts +5 -0
  71. package/features/workflow/hooks/useDCRValidation.js +149 -0
  72. package/features/workflow/hooks/useWorkflowActions.d.ts +7 -2
  73. package/features/workflow/hooks/useWorkflowActions.js +31 -8
  74. package/features/workflow/types.d.ts +12 -1
  75. package/hooks/useScrollToAttributeError/useScrollToAttributeError.d.ts +2 -1
  76. package/hooks/useScrollToAttributeError/useScrollToAttributeError.js +2 -2
  77. 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 && isEditableMode && (React.createElement(SmallIconButtonWithTooltip, { icon: HyperlinkIcon, size: "XXS", onClick: function () { return highlightError(error); }, tooltipTitle: i18n.text('Go to error'), className: styles.goToIcon }))),
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 && isEditableMode && (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 }))),
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; } });
@@ -34,7 +34,6 @@ var Typography_1 = __importDefault(require("@mui/material/Typography"));
34
34
  var helpers_1 = require("./helpers/helpers");
35
35
  var SuggestedChanges_1 = __importDefault(require("../../../icons/SuggestedChanges"));
36
36
  var EntityChangesGroup_1 = require("./components/EntityChangesGroup");
37
- var context_1 = require("./context");
38
37
  var ChangeRequestEditor_module_css_1 = __importDefault(require("./ChangeRequestEditor.module.css"));
39
38
  var ChangeRequestEditor = function (_a) {
40
39
  var dcr = _a.dcr, task = _a.task, groupedObjects = _a.groupedObjects;
@@ -52,6 +51,6 @@ var ChangeRequestEditor = function (_a) {
52
51
  react_1.default.createElement("div", { className: ChangeRequestEditor_module_css_1.default.suggestedChangesIcon },
53
52
  react_1.default.createElement(SuggestedChanges_1.default, null)),
54
53
  react_1.default.createElement(Typography_1.default, { variant: "h6", className: ChangeRequestEditor_module_css_1.default.suggestedChangesTitle }, ui_i18n_1.default.text('Suggested changes'))),
55
- dcrLoaded ? (react_1.default.createElement(context_1.ChangeRequestEditorProvider, null, groupedObjects.map(function (object, index) { return (react_1.default.createElement(EntityChangesGroup_1.EntityChangesGroup, { key: "entity-".concat(index), entityInfo: object.entity, relationsInfo: object.relations, task: task, dcr: enrichedDCR })); }))) : (react_1.default.createElement(EntityChangesGroup_1.SkeletonEntityChangesGroupLoader, null))));
54
+ dcrLoaded ? (groupedObjects.map(function (object, index) { return (react_1.default.createElement(EntityChangesGroup_1.EntityChangesGroup, { key: "entity-".concat(index), entityInfo: object.entity, relationsInfo: object.relations, task: task, dcr: enrichedDCR })); })) : (react_1.default.createElement(EntityChangesGroup_1.SkeletonEntityChangesGroupLoader, null))));
56
55
  };
57
56
  exports.ChangeRequestEditor = ChangeRequestEditor;
@@ -50,7 +50,7 @@ var ChangeItemEditor = function (_a) {
50
50
  var _b, _c, _d;
51
51
  var change = _a.change, _e = _a.editable, editable = _e === void 0 ? true : _e, classes = _a.classes;
52
52
  var metadata = (0, MdmModuleContext_1.useMdmMetadata)();
53
- var _f = (0, useChangeRequestEditor_1.useChangeRequestEditor)({ change: change }), handleChange = _f.handleChange, handleReject = _f.handleReject, handleRevert = _f.handleRevert, lineData = _f.lineData, isLineRejected = _f.isLineRejected, isParentLineRejected = _f.isParentLineRejected, isUpdated = _f.isUpdated, hasChangeId = _f.hasChangeId;
53
+ var _f = (0, useChangeRequestEditor_1.useChangeRequestEditor)({ change: change }), handleChange = _f.handleChange, handleReject = _f.handleReject, handleRevert = _f.handleRevert, lineData = _f.lineData, isLineRejected = _f.isLineRejected, isParentLineRejected = _f.isParentLineRejected, isUpdated = _f.isUpdated, hasChangeId = _f.hasChangeId, isSubAttributeOfDeletedAttribute = _f.isSubAttributeOfDeletedAttribute;
54
54
  var entity = (0, MdmModuleContext_1.useMdmEntity)();
55
55
  var entityType = (0, mdm_sdk_1.getEntityType)(metadata, entity === null || entity === void 0 ? void 0 : entity.type);
56
56
  var isUpdateOperation = change.operation === mdm_sdk_1.DCROperationTypes.EDITED;
@@ -77,6 +77,7 @@ var ChangeItemEditor = function (_a) {
77
77
  !isUpdated &&
78
78
  !isParentLineRejected &&
79
79
  hasChangeId &&
80
+ !isSubAttributeOfDeletedAttribute &&
80
81
  !(change.isReferenceSubAttribute && !editable);
81
82
  var showStatusChips = !isParentLineRejected;
82
83
  var isRejected = isLineRejected || isParentLineRejected;
@@ -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 change = _a.change, className = _a.className, _b = _a.showLabel, showLabel = _b === void 0 ? true : _b;
13
- var _c = change.level, level = _c === void 0 ? 0 : _c, label = change.label;
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 && label));
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,39 +1,80 @@
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 = __importDefault(require("react"));
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
- var context_1 = require("../../context");
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;
18
44
  var change = _a.change, entityInfo = _a.entityInfo;
19
45
  var lineIds = change.lineIds || (0, merge_1.extractLineIds)(change === null || change === void 0 ? void 0 : change.newValue);
20
- var isParentLineRejected = (0, react_context_selector_1.useContextSelector)(context_1.ChangeRequestEditorContext, function (context) {
46
+ var isParentLineRejected = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) {
21
47
  return context.getIsParentLineRejected(lineIds === null || lineIds === void 0 ? void 0 : lineIds[0]);
22
48
  });
23
- var isLineRejected = (0, react_context_selector_1.useContextSelector)(context_1.ChangeRequestEditorContext, function (context) {
49
+ var isLineRejected = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) {
24
50
  return context.getIsLineRejected(lineIds === null || lineIds === void 0 ? void 0 : lineIds[0]);
25
51
  });
26
- var isUpdated = (0, react_context_selector_1.useContextSelector)(context_1.ChangeRequestEditorContext, function (context) {
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
- isEditedOperation && react_1.default.createElement(ChangeItemEditor_1.ChangeItemOldValue, { change: change }),
37
- react_1.default.createElement(ChangeItemEditor_1.ChangeItemEditor, { change: change, editable: editable, classes: { rejectButton: ChangeItemRow_module_css_1.default.rejectButton } })));
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;
@@ -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 '../../context';
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 '../../context';
3
+ import { LineDataValue } from '../../../types';
4
4
  type Props = {
5
5
  attributeType: AttributeType;
6
6
  value: LineDataValue | ChangeValue;
@@ -7,10 +7,11 @@ 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("../context").LineData;
10
+ lineData: import("../../types").LineData;
11
11
  isLineRejected: boolean;
12
12
  isParentLineRejected: boolean;
13
13
  isUpdated: boolean;
14
14
  hasChangeId: boolean;
15
+ isSubAttributeOfDeletedAttribute: any;
15
16
  };
16
17
  export {};
@@ -3,22 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useChangeRequestEditor = void 0;
4
4
  var react_1 = require("react");
5
5
  var react_context_selector_1 = require("@fluentui/react-context-selector");
6
- var context_1 = require("../context");
6
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
7
+ var ChangeRequestEditorContext_1 = require("../../contexts/ChangeRequestEditorContext");
7
8
  var merge_1 = require("../../helpers/merge");
8
9
  var emptyLineIds = [];
9
10
  var useChangeRequestEditor = function (_a) {
10
11
  var change = _a.change;
11
12
  var lineIds = change.lineIds || (0, merge_1.extractLineIds)(change === null || change === void 0 ? void 0 : change.newValue) || emptyLineIds;
12
- var lineData = (0, react_context_selector_1.useContextSelector)(context_1.ChangeRequestEditorContext, function (context) { return context.getLineData(lineIds[0]); });
13
- var updateChange = (0, react_context_selector_1.useContextSelector)(context_1.ChangeRequestEditorContext, function (context) { return context.updateChange; });
14
- var rejectChange = (0, react_context_selector_1.useContextSelector)(context_1.ChangeRequestEditorContext, function (context) { return context.rejectChange; });
15
- var revertChangeUpdateOrReject = (0, react_context_selector_1.useContextSelector)(context_1.ChangeRequestEditorContext, function (context) { return context.revertChangeUpdateOrReject; });
16
- var isParentLineRejected = (0, react_context_selector_1.useContextSelector)(context_1.ChangeRequestEditorContext, function (context) {
13
+ var lineData = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) { return context.getLineData(lineIds[0]); });
14
+ var updateChange = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) { return context.updateChange; });
15
+ var rejectChange = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) { return context.rejectChange; });
16
+ var revertChangeUpdateOrReject = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) { return context.revertChangeUpdateOrReject; });
17
+ var isParentLineRejected = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) {
17
18
  return context.getIsParentLineRejected(lineIds[0]);
18
19
  });
19
- var isUpdated = (0, react_context_selector_1.useContextSelector)(context_1.ChangeRequestEditorContext, function (context) { return context.getIsLineUpdated(lineIds[0]); });
20
+ var isUpdated = (0, react_context_selector_1.useContextSelector)(ChangeRequestEditorContext_1.ChangeRequestEditorContext, function (context) { return context.getIsLineUpdated(lineIds[0]); });
20
21
  var isLineRejected = lineData === null || lineData === void 0 ? void 0 : lineData.isRejected;
21
22
  var hasChangeId = lineIds.length > 0;
23
+ var isSubAttributeOfDeletedAttribute = change.operation === mdm_sdk_1.DCROperationTypes.DELETED &&
24
+ change.level > 0 &&
25
+ lineIds.length > 0 &&
26
+ lineIds[0].includes('/value/');
22
27
  var handleChange = (0, react_1.useCallback)(function (newValue) {
23
28
  updateChange(lineIds, typeof newValue === 'object' && 'value' in newValue ? newValue : { value: newValue });
24
29
  }, [lineIds, updateChange]);
@@ -36,7 +41,8 @@ var useChangeRequestEditor = function (_a) {
36
41
  isLineRejected: isLineRejected,
37
42
  isParentLineRejected: isParentLineRejected,
38
43
  isUpdated: isUpdated,
39
- hasChangeId: hasChangeId
44
+ hasChangeId: hasChangeId,
45
+ isSubAttributeOfDeletedAttribute: isSubAttributeOfDeletedAttribute
40
46
  };
41
47
  };
42
48
  exports.useChangeRequestEditor = useChangeRequestEditor;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const DCRErrorsPanel: () => React.JSX.Element;
@@ -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;
@@ -15,7 +15,6 @@ var ui_i18n_1 = __importDefault(require("ui-i18n"));
15
15
  var useWorkflowCheckPermission_1 = require("../hooks/useWorkflowCheckPermission");
16
16
  var useWorkflowActions_1 = require("../hooks/useWorkflowActions");
17
17
  var MdmModuleContext_1 = require("../../../contexts/MdmModuleContext");
18
- var context_1 = require("../ChangeRequestEditor/context");
19
18
  var ProfileBand_1 = require("../../../ProfileBand");
20
19
  var DueDateField_1 = require("../DueDateField");
21
20
  var PrioritySelector_1 = require("../PrioritySelector");
@@ -24,17 +23,23 @@ var WorkflowComments_1 = require("../WorkflowComments");
24
23
  var WorkflowActionButtons_1 = require("../WorkflowActionButtons");
25
24
  var DCRSummaryInfo_1 = require("./components/DCRSummaryInfo/DCRSummaryInfo");
26
25
  var ChangeRequestEditor_1 = require("../ChangeRequestEditor");
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;
30
31
  var entity = (0, MdmModuleContext_1.useMdmEntity)();
31
32
  var checkWorkflowPermission = (0, useWorkflowCheckPermission_1.useWorkflowCheckPermission)();
32
33
  var canViewComments = checkWorkflowPermission('VIEW_PROCESS_INSTANCE_COMMENTS');
34
+ var applyDcrChanges = (0, useApplyDcrChanges_1.useApplyDcrChanges)(dcr);
33
35
  var _b = (0, useWorkflowActions_1.useWorkflowActions)({
34
- taskId: task.taskId,
35
- possibleActions: task.possibleActions,
36
- assignee: task.assignee,
37
- isOpen: task.isOpen
36
+ task: {
37
+ taskId: task.taskId,
38
+ possibleActions: task.possibleActions,
39
+ assignee: task.assignee,
40
+ isOpen: task.isOpen
41
+ },
42
+ beforeAction: applyDcrChanges
38
43
  }), workflowActions = _b.actions, actionRequestIsInProgress = _b.actionRequestIsInProgress;
39
44
  return (react_1.default.createElement(Dialog_1.default, { open: open, onClose: onClose, fullScreen: true },
40
45
  react_1.default.createElement(DialogTitle_1.default, { className: ReviewDCRDialog_module_css_1.default.dialogTitle },
@@ -45,6 +50,7 @@ var ReviewDCRDialog = function (_a) {
45
50
  react_1.default.createElement(DialogContent_1.default, { classes: { root: ReviewDCRDialog_module_css_1.default.content } },
46
51
  react_1.default.createElement("div", { className: ReviewDCRDialog_module_css_1.default.leftSection },
47
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),
48
54
  react_1.default.createElement(DCRSummaryInfo_1.DCRSummaryInfo, { dcr: dcr, task: task, groupedObjects: groupedObjects }),
49
55
  react_1.default.createElement("div", { className: ReviewDCRDialog_module_css_1.default.editableSection },
50
56
  react_1.default.createElement("div", { className: ReviewDCRDialog_module_css_1.default.editableGrid },
@@ -55,8 +61,7 @@ var ReviewDCRDialog = function (_a) {
55
61
  react_1.default.createElement("div", { className: ReviewDCRDialog_module_css_1.default.editableItem },
56
62
  react_1.default.createElement(AssigneeSelector_1.AssigneeSelector, { taskId: task.taskId, assignee: task.assignee, isTaskOpen: task.isOpen })))),
57
63
  react_1.default.createElement("div", { className: ReviewDCRDialog_module_css_1.default.changesSection },
58
- react_1.default.createElement(context_1.ChangeRequestEditorProvider, null,
59
- react_1.default.createElement(ChangeRequestEditor_1.ChangeRequestEditor, { dcr: dcr, task: task, groupedObjects: groupedObjects })))),
64
+ react_1.default.createElement(ChangeRequestEditor_1.ChangeRequestEditor, { dcr: dcr, task: task, groupedObjects: groupedObjects }))),
60
65
  canViewComments && (react_1.default.createElement(WorkflowComments_1.WorkflowComments, { workflowActions: workflowActions, actionRequestIsInProgress: actionRequestIsInProgress, preferredAction: task.preferredAction, taskId: task.taskId, processInstanceComments: task.processInstanceComments, isTaskOpen: task.isOpen, showActionButtons: false, alwaysExpanded: true, classes: {
61
66
  container: ReviewDCRDialog_module_css_1.default.commentsRootContainer,
62
67
  commentsContainer: ReviewDCRDialog_module_css_1.default.commentsContainer
@@ -12,10 +12,12 @@ var TaskActionButtons = function (_a) {
12
12
  var task = _a.task;
13
13
  var taskId = task.taskId, possibleActions = task.possibleActions, assignee = task.assignee, isOpen = task.isOpen, preferredAction = task.preferredAction;
14
14
  var _b = (0, useWorkflowActions_1.useWorkflowActions)({
15
- taskId: taskId,
16
- possibleActions: possibleActions,
17
- assignee: assignee,
18
- isOpen: isOpen
15
+ task: {
16
+ taskId: taskId,
17
+ possibleActions: possibleActions,
18
+ assignee: assignee,
19
+ isOpen: isOpen
20
+ }
19
21
  }), actions = _b.actions, disabled = _b.actionRequestIsInProgress;
20
22
  var _c = (0, ramda_1.partition)((0, ramda_1.propEq)('text', preferredAction === null || preferredAction === void 0 ? void 0 : preferredAction.label), actions), preferredActions = _c[0], otherActions = _c[1];
21
23
  return (react_1.default.createElement(react_1.default.Fragment, null,
@@ -29,6 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.DataChangeRequestTaskCard = void 0;
30
30
  var react_1 = __importStar(require("react"));
31
31
  var ramda_1 = require("ramda");
32
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
32
33
  var DcrTaskIcon_1 = __importDefault(require("../../../../../icons/DcrTaskIcon"));
33
34
  var MdmModuleContext_1 = require("../../../../../contexts/MdmModuleContext");
34
35
  var GenericWorkflowTaskCard_1 = require("../GenericWorkflowTaskCard");
@@ -38,11 +39,15 @@ var useChangeRequest_1 = require("../../../hooks/useChangeRequest");
38
39
  var common_1 = require("../../../helpers/common");
39
40
  var ReviewDCRDialog_1 = require("../../../ReviewDCRDialog");
40
41
  var ReviewDCRButton_1 = require("../../../ReviewDCRButton");
42
+ var ChangeRequestEditorContext_1 = require("../../../contexts/ChangeRequestEditorContext");
41
43
  var WorkflowTasksContext_1 = require("../../../../../contexts/WorkflowTasksContext");
44
+ var ScrollToElementContext_1 = require("../../../../../contexts/ScrollToElementContext");
42
45
  var DataChangeRequestTaskCard = function (_a) {
43
46
  var task = _a.task;
44
47
  var reviewDCREnabledByEntityType = ((0, react_1.useContext)(WorkflowTasksContext_1.WorkflowTasksContext) || {}).reviewDCR;
45
48
  var reviewDCREnabled = (0, MdmModuleContext_1.useMdmReviewDCREnabled)();
49
+ var entity = (0, MdmModuleContext_1.useMdmEntity)();
50
+ var isDCREntity = (0, mdm_sdk_1.isDCRUri)(entity === null || entity === void 0 ? void 0 : entity.uri);
46
51
  var isReviewDCREnabled = (0, ramda_1.isNil)(reviewDCREnabledByEntityType) ? reviewDCREnabled : reviewDCREnabledByEntityType;
47
52
  var username = (0, MdmModuleContext_1.useMdmUsername)();
48
53
  var _b = (0, react_1.useState)(false), isReviewDCRDialogOpen = _b[0], setIsReviewDCRDialogOpen = _b[1];
@@ -55,13 +60,15 @@ var DataChangeRequestTaskCard = function (_a) {
55
60
  var handleCloseReviewDCRDialog = (0, react_1.useCallback)(function () {
56
61
  setIsReviewDCRDialogOpen(false);
57
62
  }, []);
58
- var showReviewDCRButton = isReviewDCREnabled && assignee == username;
59
- var showReviewDialog = isReviewDCRDialogOpen && (showReviewDCRButton || isReviewDCREnabled);
63
+ var showReviewDCRButton = !isDCREntity && isReviewDCREnabled && assignee == username;
64
+ var showReviewDialog = !isDCREntity && isReviewDCRDialogOpen && (showReviewDCRButton || isReviewDCREnabled);
60
65
  var customActionsSlot = (0, react_1.useMemo)(function () { return showReviewDCRButton && react_1.default.createElement(ReviewDCRButton_1.ReviewDCRButton, { onClick: handleReviewDCR }); }, [showReviewDCRButton, handleReviewDCR]);
61
66
  return (react_1.default.createElement(react_1.default.Fragment, null,
62
67
  react_1.default.createElement(GenericWorkflowTaskCard_1.GenericWorkflowTaskCard, { task: task, Icon: DcrTaskIcon_1.default, customActionsSlot: customActionsSlot }, dcr &&
63
68
  groupedObjects.map(function (object, index) { return (react_1.default.createElement(LineDecorator_1.LineDecorator, { key: index, last: index === groupedObjects.length - 1, divider: true },
64
69
  react_1.default.createElement(AttributesChanges_1.AttributesChanges, { entityInfo: object.entity, relationsInfo: object.relations, changes: dcr.changes, objectsInfo: dcr.objectsInfo, dcrUri: dcrUri }))); })),
65
- showReviewDialog && (react_1.default.createElement(ReviewDCRDialog_1.ReviewDCRDialog, { open: isReviewDCRDialogOpen, onClose: handleCloseReviewDCRDialog, dcr: dcr, groupedObjects: groupedObjects, task: task }))));
70
+ showReviewDialog && (react_1.default.createElement(ChangeRequestEditorContext_1.ChangeRequestEditorProvider, null,
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 }))))));
66
73
  };
67
74
  exports.DataChangeRequestTaskCard = DataChangeRequestTaskCard;
@@ -55,10 +55,12 @@ var GenericWorkflowTaskCard = function (_a) {
55
55
  var checkWorkflowPermission = (0, useWorkflowCheckPermission_1.useWorkflowCheckPermission)();
56
56
  var canViewComments = checkWorkflowPermission('VIEW_PROCESS_INSTANCE_COMMENTS');
57
57
  var _d = (0, useWorkflowActions_1.useWorkflowActions)({
58
- taskId: taskId,
59
- possibleActions: possibleActions,
60
- assignee: assignee,
61
- isOpen: isTaskOpen
58
+ task: {
59
+ taskId: taskId,
60
+ possibleActions: possibleActions,
61
+ assignee: assignee,
62
+ isOpen: isTaskOpen
63
+ }
62
64
  }), workflowActions = _d.actions, actionRequestIsInProgress = _d.actionRequestIsInProgress;
63
65
  return (react_1.default.createElement("div", { className: GenericWorkflowTaskCard_module_css_1.default.card },
64
66
  react_1.default.createElement("div", { className: (0, classnames_1.default)((_b = {}, _b[GenericWorkflowTaskCard_module_css_1.default.withBackground] = isExpanded, _b)) },
@@ -1,23 +1,33 @@
1
1
  import React from 'react';
2
- import { SimpleAttributeValue, PrimitiveValue } from '@reltio/mdm-sdk';
3
- export type LineDataValue = SimpleAttributeValue | {
4
- value: string[] | PrimitiveValue;
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;
7
+ getLinesByChangeId: (changeId: string) => Array<[string, LineData]>;
13
8
  rejectChange: (lineIds: string[]) => void;
14
9
  revertChangeUpdateOrReject: (lineIds: string[]) => void;
15
10
  getIsParentLineRejected: (lineId: string) => boolean;
16
11
  getIsLineRejected: (lineId: string) => boolean;
17
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
+ }[];
18
29
  };
19
30
  export declare const ChangeRequestEditorContext: import("@fluentui/react-context-selector").Context<ChangeRequestEditorContextType>;
20
31
  export declare const ChangeRequestEditorProvider: ({ children }: {
21
32
  children: React.ReactNode;
22
33
  }) => React.JSX.Element;
23
- export {};