@reltio/components 1.4.1723 → 1.4.1724

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.
@@ -0,0 +1,10 @@
1
+ import { Connection, Metadata, Mode, RelationsViewConfig } from '@reltio/mdm-sdk';
2
+ type Props = {
3
+ connectionsToEdit: Connection[];
4
+ config: RelationsViewConfig;
5
+ metadata: Metadata;
6
+ mode: Mode;
7
+ pageConnections: Connection[];
8
+ };
9
+ declare const ExternalInvalidRelations: ({ connectionsToEdit, config, metadata, mode, pageConnections }: Props) => any;
10
+ export default ExternalInvalidRelations;
@@ -0,0 +1,53 @@
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
+ var index_1 = require("../index");
30
+ var react_1 = __importStar(require("react"));
31
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
32
+ var contexts_1 = require("../../contexts");
33
+ var Divider_1 = __importDefault(require("@mui/material/Divider"));
34
+ var styles_1 = require("./styles");
35
+ var ExternalInvalidRelations = function (_a) {
36
+ var connectionsToEdit = _a.connectionsToEdit, config = _a.config, metadata = _a.metadata, mode = _a.mode, pageConnections = _a.pageConnections;
37
+ var profileErrors = (0, contexts_1.useMdmProfileErrors)();
38
+ var styles = (0, styles_1.useStyles)();
39
+ var allInvalidConnections = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.getInvalidConnections)(profileErrors, connectionsToEdit); }, [profileErrors, connectionsToEdit]);
40
+ var invalidConnections = allInvalidConnections.filter(function (connection) {
41
+ return !pageConnections.some(function (existingConnection) {
42
+ return (0, mdm_sdk_1.getRelationUriFromConnection)(existingConnection) === (0, mdm_sdk_1.getRelationUriFromConnection)(connection);
43
+ });
44
+ });
45
+ return invalidConnections.map(function (connection, index) {
46
+ var _a;
47
+ var itemKey = "".concat((0, mdm_sdk_1.getRelationUriFromConnection)(connection), "-").concat((_a = connection === null || connection === void 0 ? void 0 : connection.relation) === null || _a === void 0 ? void 0 : _a.direction);
48
+ return (react_1.default.createElement(react_1.default.Fragment, { key: itemKey },
49
+ react_1.default.createElement(index_1.RelationEditor, { connection: connection, config: config, mode: mode, metadata: metadata }),
50
+ index === invalidConnections.length - 1 && react_1.default.createElement(Divider_1.default, { className: styles.divider })));
51
+ });
52
+ };
53
+ exports.default = ExternalInvalidRelations;
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"divider">;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useStyles = void 0;
4
+ var styles_1 = require("@mui/styles");
5
+ exports.useStyles = (0, styles_1.makeStyles)({
6
+ divider: {
7
+ margin: '0 0 8px',
8
+ borderColor: 'rgba(0,0,0,0.12)'
9
+ }
10
+ });
@@ -102,12 +102,12 @@ var RelationEditor = function (_a) {
102
102
  var attributeListEntity = (0, react_1.useMemo)(function () { return (__assign({ attributes: __assign({}, (0, mdm_sdk_1.getRelationAttributesFromConnection)(connection)) }, (0, mdm_sdk_1.getActivenessAttributes)(connection.relation))); }, [connection]);
103
103
  var relatedTempEntities = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.findRelatedTemporaryEntities)(allModifiedEntities, modifiedEntity); }, [allModifiedEntities, modifiedEntity]);
104
104
  var relatedTempEntitiesUrisHistory = (0, react_1.useRef)([]);
105
- var setInitialInfo = (0, react_1.useCallback)(function (entity, connection) {
106
- mdmSetInitialInfo(config.id, relationUri, entity, connection);
105
+ var setInitialInfo = (0, react_1.useCallback)(function (entity) {
106
+ mdmSetInitialInfo(config.id, relationUri, entity);
107
107
  }, [mdmSetInitialInfo]);
108
108
  (0, react_1.useEffect)(function () {
109
- if (!initialConnection) {
110
- setInitialInfo(modifiedEntity, connection);
109
+ if (modifiedEntity && !initialModifiedEntity) {
110
+ setInitialInfo(modifiedEntity);
111
111
  }
112
112
  }, []);
113
113
  (0, react_1.useEffect)(function () {
@@ -149,7 +149,7 @@ var RelationEditor = function (_a) {
149
149
  return errors.length === 0;
150
150
  }, [connection, metadata, allModifiedEntities, errorsSet]);
151
151
  var resetErrors = (0, react_1.useCallback)(function () { return errorsSet([]); }, [errorsSet]);
152
- var onApply = (0, react_1.useCallback)((0, ramda_1.pipe)((0, ramda_1.always)(connection), (0, ramda_1.when)(validate, (0, ramda_1.pipe)(mdm_sdk_1.omitMarks, updateModifiedEntityLabel, (0, ramda_1.omit)(['initial']), applyAction(config.id), (0, ramda_1.always)((0, ramda_1.differenceWith)(ramda_1.equals, relatedTempEntitiesUrisHistory.current, relatedTempEntities.map((0, ramda_1.prop)('uri')))), (0, ramda_1.forEach)(deleteModifiedEntity), handleClose))), [connection, config, updateModifiedEntityLabel, validate, relatedTempEntities]);
152
+ var onApply = (0, react_1.useCallback)((0, ramda_1.pipe)((0, ramda_1.always)(connection), (0, ramda_1.when)(validate, (0, ramda_1.pipe)(mdm_sdk_1.omitMarks, updateModifiedEntityLabel, applyAction(config.id), (0, ramda_1.always)((0, ramda_1.differenceWith)(ramda_1.equals, relatedTempEntitiesUrisHistory.current, relatedTempEntities.map((0, ramda_1.prop)('uri')))), (0, ramda_1.forEach)(deleteModifiedEntity), handleClose))), [connection, config, updateModifiedEntityLabel, validate, relatedTempEntities]);
153
153
  var onCancel = (0, react_1.useCallback)(function () {
154
154
  if (modifiedEntity !== initialModifiedEntity) {
155
155
  if (initialModifiedEntity) {
@@ -61,6 +61,7 @@ export { AttributesErrorsPanel } from './AttributesErrorsPanel/AttributesErrorsP
61
61
  export { default as ErrorPopup } from './ErrorPopup/ErrorPopup';
62
62
  export { default as ErrorWrapper } from './ErrorWrapper/ErrorWrapper';
63
63
  export { default as ExpandedValueTooltip } from './ExpandedValueTooltip/ExpandedValueTooltip';
64
+ export { default as ExternalInvalidRelations } from './ExternalInvalidRelations/ExternalInvalidRelations';
64
65
  export { default as FacetViewHeader } from './FacetViewHeader/FacetViewHeader';
65
66
  export { default as FlipCard } from './FlipCard/FlipCard';
66
67
  export { default as HideOnShrink } from './HideOnShrink/HideOnShrink';
@@ -18,9 +18,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.EmptyState = exports.NoResults = exports.NoData = exports.DropDownSelector = exports.DropDownMenuButton = exports.Drawer = exports.DataTypeValue = exports.ConnectionRelationTypeSelector = exports.ConfigureColumnsPopup = exports.MenuWithPopper = exports.MenuList = exports.LoadMoreButton = exports.DropdownIndicatorWithIconButton = exports.DropdownIndicator = exports.CommentsContainer = exports.ColorBar = exports.CollapseButton = exports.CollaborationItem = exports.ClickAwayProvider = exports.BasicViewHeader = exports.BasicViewContent = exports.BasicView = exports.ScreenProfileBand = exports.ProfileBandNavigation = exports.AvatarWithFallback = exports.AutoSizeList = exports.ReadOnlyAttributesPager = exports.SimpleAttribute = exports.ReferenceAttribute = exports.NestedAttribute = exports.EditableImageAttributesLine = exports.ImageAttributesLine = exports.ReadOnlyAttributesList = exports.ReadOnlyAttributeValuesBlock = exports.EditableAttribute = exports.ReadOnlyAttribute = exports.CardinalityMessage = exports.AttributesPager = exports.SimpleAttributeEditor = exports.RelationTypeSelector = exports.ReferenceAttributeEditor = exports.NestedAttributeEditor = exports.MoreAttributesButton = exports.EntitySelector = exports.EntityCreator = exports.AttributesList = exports.BranchDecorator = exports.DescriptionIcon = exports.AttributesView = exports.AttributeListItem = void 0;
21
- exports.SelectionPopup = exports.useKeyboardNavigation = exports.WhiteSearchInput = exports.SearchInput = exports.ProfileResizablePanes = exports.ResizablePanes = exports.ReltioGridLayout = exports.ReactSortableTreeUtils = exports.ReactSortableTreeHandlers = exports.ReactSortableTree = exports.ReactSelectOptionFilters = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = exports.PotentialMatchReviewCard = exports.PopupWithArrow = exports.Popper = exports.MultipleInput = exports.ModeSwitcherSelect = exports.ModeSwitcher = exports.TransitiveMatchBlock = exports.SimpleMatchRulesBlock = exports.MatchRuleVariant = exports.MatchRulesBlock = exports.LoadingSpinner = exports.Link = exports.LinearLoadIndicator = exports.ImportModes = exports.ImportButton = exports.ImageGalleryDialog = exports.Highlighter = exports.HierarchicalAttributeTooltip = exports.HideOnShrink = exports.FlipCard = exports.FacetViewHeader = exports.ExpandedValueTooltip = exports.ErrorWrapper = exports.ErrorPopup = exports.AttributesErrorsPanel = exports.ErrorBoundary = exports.EntityUriLink = exports.RelationTypesSelector = exports.EntityTypesSelector = exports.EntityTypeIcon = exports.EntityTypeBadge = exports.EntityAvatar = exports.EMPTY_STATE_VARIANTS = exports.EMPTY_STATE_ICONS = void 0;
22
- exports.RelevanceScoreBadge = exports.RequiredMark = exports.HierarchyNodeTitle = exports.DataTenantBadge = exports.SettingsMenu = exports.TenantsDropDownSelector = exports.TenantIcon = exports.SourceSystemsSelector = exports.MatchRulesSelector = exports.MultiValueSelector = exports.DragAndDrop = exports.ConnectionEditor = exports.AttributesFiltersBuilder = exports.AttributesFiltersButton = exports.AttributeGroupIcon = exports.BasicAttributeSelector = exports.ProfilesList = exports.ActionButtonMode = exports.ActionButton = exports.NotMatchButton = exports.MergeButton = exports.ProfileMatchCard = exports.RelationEditor = exports.OvIcon = exports.ErrorMessage = exports.ReltioMap = exports.ConfirmDeleteDialog = exports.ConfirmationDialog = exports.Marginator = exports.LightArrowTooltip = exports.ArrowExpandButton = exports.ScrollableTabs = exports.ExpandableSearchInput = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.ColoredSourceIcon = exports.SourceIcon = exports.SmallIconButtonWithTooltip = exports.SmallIconButton = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = exports.SidePanelEmptyState = exports.SideButtonsPanel = exports.SelectorWithOnlyOptionAutoSelect = exports.SelectionPopupPopper = void 0;
23
- exports.TableSkeleton = exports.StepNavigation = exports.TenantLabel = exports.MultilineMenuItem = void 0;
21
+ exports.useKeyboardNavigation = exports.WhiteSearchInput = exports.SearchInput = exports.ProfileResizablePanes = exports.ResizablePanes = exports.ReltioGridLayout = exports.ReactSortableTreeUtils = exports.ReactSortableTreeHandlers = exports.ReactSortableTree = exports.ReactSelectOptionFilters = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = exports.PotentialMatchReviewCard = exports.PopupWithArrow = exports.Popper = exports.MultipleInput = exports.ModeSwitcherSelect = exports.ModeSwitcher = exports.TransitiveMatchBlock = exports.SimpleMatchRulesBlock = exports.MatchRuleVariant = exports.MatchRulesBlock = exports.LoadingSpinner = exports.Link = exports.LinearLoadIndicator = exports.ImportModes = exports.ImportButton = exports.ImageGalleryDialog = exports.Highlighter = exports.HierarchicalAttributeTooltip = exports.HideOnShrink = exports.FlipCard = exports.FacetViewHeader = exports.ExternalInvalidRelations = exports.ExpandedValueTooltip = exports.ErrorWrapper = exports.ErrorPopup = exports.AttributesErrorsPanel = exports.ErrorBoundary = exports.EntityUriLink = exports.RelationTypesSelector = exports.EntityTypesSelector = exports.EntityTypeIcon = exports.EntityTypeBadge = exports.EntityAvatar = exports.EMPTY_STATE_VARIANTS = exports.EMPTY_STATE_ICONS = void 0;
22
+ exports.RequiredMark = exports.HierarchyNodeTitle = exports.DataTenantBadge = exports.SettingsMenu = exports.TenantsDropDownSelector = exports.TenantIcon = exports.SourceSystemsSelector = exports.MatchRulesSelector = exports.MultiValueSelector = exports.DragAndDrop = exports.ConnectionEditor = exports.AttributesFiltersBuilder = exports.AttributesFiltersButton = exports.AttributeGroupIcon = exports.BasicAttributeSelector = exports.ProfilesList = exports.ActionButtonMode = exports.ActionButton = exports.NotMatchButton = exports.MergeButton = exports.ProfileMatchCard = exports.RelationEditor = exports.OvIcon = exports.ErrorMessage = exports.ReltioMap = exports.ConfirmDeleteDialog = exports.ConfirmationDialog = exports.Marginator = exports.LightArrowTooltip = exports.ArrowExpandButton = exports.ScrollableTabs = exports.ExpandableSearchInput = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.ColoredSourceIcon = exports.SourceIcon = exports.SmallIconButtonWithTooltip = exports.SmallIconButton = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = exports.SidePanelEmptyState = exports.SideButtonsPanel = exports.SelectorWithOnlyOptionAutoSelect = exports.SelectionPopupPopper = exports.SelectionPopup = void 0;
23
+ exports.TableSkeleton = exports.StepNavigation = exports.TenantLabel = exports.MultilineMenuItem = exports.RelevanceScoreBadge = void 0;
24
24
  __exportStar(require("./activityLog"), exports);
25
25
  var AttributeListItem_1 = require("./AttributeListItem/AttributeListItem");
26
26
  Object.defineProperty(exports, "AttributeListItem", { enumerable: true, get: function () { return __importDefault(AttributeListItem_1).default; } });
@@ -147,6 +147,8 @@ var ErrorWrapper_1 = require("./ErrorWrapper/ErrorWrapper");
147
147
  Object.defineProperty(exports, "ErrorWrapper", { enumerable: true, get: function () { return __importDefault(ErrorWrapper_1).default; } });
148
148
  var ExpandedValueTooltip_1 = require("./ExpandedValueTooltip/ExpandedValueTooltip");
149
149
  Object.defineProperty(exports, "ExpandedValueTooltip", { enumerable: true, get: function () { return __importDefault(ExpandedValueTooltip_1).default; } });
150
+ var ExternalInvalidRelations_1 = require("./ExternalInvalidRelations/ExternalInvalidRelations");
151
+ Object.defineProperty(exports, "ExternalInvalidRelations", { enumerable: true, get: function () { return __importDefault(ExternalInvalidRelations_1).default; } });
150
152
  var FacetViewHeader_1 = require("./FacetViewHeader/FacetViewHeader");
151
153
  Object.defineProperty(exports, "FacetViewHeader", { enumerable: true, get: function () { return __importDefault(FacetViewHeader_1).default; } });
152
154
  var FlipCard_1 = require("./FlipCard/FlipCard");
@@ -111,7 +111,7 @@ export type MdmModuleActionsContextProps = Partial<{
111
111
  }) => void;
112
112
  lookupsListResolved: (payload: Lookups[]) => void;
113
113
  relationsLoaded: (payload: RelationsLoadedPayload) => void;
114
- setInitialInfo: (id: string, relationUri: string, tempEntity: Entity, connection: Connection) => void;
114
+ setInitialInfo: (id: string, relationUri: string, tempEntity: Entity) => void;
115
115
  setRelationType: (id: string, relationUri: string, relationType: CompactRelationType) => void;
116
116
  closeRelationEditor: (id: string, relationUri: string) => void;
117
117
  openRelationEditor: (id: string, connection: Connection) => void;
@@ -183,7 +183,7 @@ export declare const MdmModuleActionsContext: import("@fluentui/react-context-se
183
183
  }) => void;
184
184
  lookupsListResolved: (payload: Lookups[]) => void;
185
185
  relationsLoaded: (payload: RelationsLoadedPayload) => void;
186
- setInitialInfo: (id: string, relationUri: string, tempEntity: Entity, connection: Connection) => void;
186
+ setInitialInfo: (id: string, relationUri: string, tempEntity: Entity) => void;
187
187
  setRelationType: (id: string, relationUri: string, relationType: CompactRelationType) => void;
188
188
  closeRelationEditor: (id: string, relationUri: string) => void;
189
189
  openRelationEditor: (id: string, connection: Connection) => void;
@@ -128,7 +128,7 @@ export declare const useMdmAction: <T extends "openSearch" | "openHistoryEvent"
128
128
  }) => void;
129
129
  lookupsListResolved: (payload: import("@reltio/mdm-sdk").Lookups[]) => void;
130
130
  relationsLoaded: (payload: import("@reltio/mdm-sdk").RelationsLoadedPayload) => void;
131
- setInitialInfo: (id: string, relationUri: string, tempEntity: import("@reltio/mdm-sdk").Entity, connection: import("@reltio/mdm-sdk").Connection) => void;
131
+ setInitialInfo: (id: string, relationUri: string, tempEntity: import("@reltio/mdm-sdk").Entity) => void;
132
132
  setRelationType: (id: string, relationUri: string, relationType: import("@reltio/mdm-sdk").CompactRelationType) => void;
133
133
  closeRelationEditor: (id: string, relationUri: string) => void;
134
134
  openRelationEditor: (id: string, connection: import("@reltio/mdm-sdk").Connection) => void;
@@ -14,19 +14,6 @@ var ramda_1 = require("ramda");
14
14
  var react_1 = require("react");
15
15
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
16
16
  var contexts_1 = require("../contexts");
17
- var isConnectionHasError = (0, ramda_1.curry)(function (errors, connection) {
18
- var relationUri = (0, ramda_1.path)(['relation', 'relationUri'], connection);
19
- return errors.some(function (error) {
20
- return (0, mdm_sdk_1.areOneHierarchyUris)((0, ramda_1.prop)('uri', error), relationUri) ||
21
- (0, mdm_sdk_1.areOneHierarchyUris)((0, ramda_1.prop)('parentUri', error), relationUri) ||
22
- (error.path || []).some(function (errorPath) { return (0, ramda_1.path)(['value', 'relation', 'relationUri'], errorPath) === relationUri; });
23
- });
24
- });
25
- var getInvalidConnections = function (errors, connections) {
26
- if (errors === void 0) { errors = []; }
27
- if (connections === void 0) { connections = []; }
28
- return (0, ramda_1.filter)(isConnectionHasError(errors), connections);
29
- };
30
17
  var useExpandInvalidRelations = function (configId) {
31
18
  var openRelationEditor = (0, contexts_1.useMdmAction)('openRelationEditor');
32
19
  var mode = (0, contexts_1.useMdmMode)();
@@ -38,7 +25,7 @@ var useExpandInvalidRelations = function (configId) {
38
25
  var preparedConnectionsList = (0, ramda_1.reject)(function (draftConnection) {
39
26
  return relationsToAddAndEdit.some((0, ramda_1.eqBy)((0, ramda_1.path)(['relation', 'relationUri']), draftConnection));
40
27
  }, __spreadArray(__spreadArray([], addedConnections.map(mdm_sdk_1.markNew), true), editedConnections.map(mdm_sdk_1.markEdited), true));
41
- var invalidConnections = (0, react_1.useMemo)(function () { return getInvalidConnections(profileErrors, preparedConnectionsList); }, [profileErrors, preparedConnectionsList]);
28
+ var invalidConnections = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.getInvalidConnections)(profileErrors, preparedConnectionsList); }, [profileErrors, preparedConnectionsList]);
42
29
  var expandInvalidRelatonsListener = (0, contexts_1.useMdmListener)('expandInvalidRelatonsListener');
43
30
  var setShouldOpenInvalidEditors = function (shouldOpen) { return (shouldOpenInvalidEditors.current = shouldOpen); };
44
31
  var listenerCallback = expandInvalidRelatonsListener(function () { return setShouldOpenInvalidEditors(true); });
@@ -0,0 +1,10 @@
1
+ import { Connection, Metadata, Mode, RelationsViewConfig } from '@reltio/mdm-sdk';
2
+ type Props = {
3
+ connectionsToEdit: Connection[];
4
+ config: RelationsViewConfig;
5
+ metadata: Metadata;
6
+ mode: Mode;
7
+ pageConnections: Connection[];
8
+ };
9
+ declare const ExternalInvalidRelations: ({ connectionsToEdit, config, metadata, mode, pageConnections }: Props) => any;
10
+ export default ExternalInvalidRelations;
@@ -0,0 +1,25 @@
1
+ import { RelationEditor } from '../index';
2
+ import React, { useMemo } from 'react';
3
+ import { getInvalidConnections, getRelationUriFromConnection } from '@reltio/mdm-sdk';
4
+ import { useMdmProfileErrors } from '../../contexts';
5
+ import Divider from '@mui/material/Divider';
6
+ import { useStyles } from './styles';
7
+ var ExternalInvalidRelations = function (_a) {
8
+ var connectionsToEdit = _a.connectionsToEdit, config = _a.config, metadata = _a.metadata, mode = _a.mode, pageConnections = _a.pageConnections;
9
+ var profileErrors = useMdmProfileErrors();
10
+ var styles = useStyles();
11
+ var allInvalidConnections = useMemo(function () { return getInvalidConnections(profileErrors, connectionsToEdit); }, [profileErrors, connectionsToEdit]);
12
+ var invalidConnections = allInvalidConnections.filter(function (connection) {
13
+ return !pageConnections.some(function (existingConnection) {
14
+ return getRelationUriFromConnection(existingConnection) === getRelationUriFromConnection(connection);
15
+ });
16
+ });
17
+ return invalidConnections.map(function (connection, index) {
18
+ var _a;
19
+ var itemKey = "".concat(getRelationUriFromConnection(connection), "-").concat((_a = connection === null || connection === void 0 ? void 0 : connection.relation) === null || _a === void 0 ? void 0 : _a.direction);
20
+ return (React.createElement(React.Fragment, { key: itemKey },
21
+ React.createElement(RelationEditor, { connection: connection, config: config, mode: mode, metadata: metadata }),
22
+ index === invalidConnections.length - 1 && React.createElement(Divider, { className: styles.divider })));
23
+ });
24
+ };
25
+ export default ExternalInvalidRelations;
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"divider">;
@@ -0,0 +1,7 @@
1
+ import { makeStyles } from '@mui/styles';
2
+ export var useStyles = makeStyles({
3
+ divider: {
4
+ margin: '0 0 8px',
5
+ borderColor: 'rgba(0,0,0,0.12)'
6
+ }
7
+ });
@@ -12,7 +12,7 @@ var __assign = (this && this.__assign) || function () {
12
12
  import React, { useCallback, useEffect, useMemo, useRef } from 'react';
13
13
  import i18n from 'ui-i18n';
14
14
  import classnames from 'classnames';
15
- import { always, concat, differenceWith, equals, forEach, omit, path, pick, pipe, prop, when, uniq, curry } from 'ramda';
15
+ import { always, concat, differenceWith, equals, forEach, path, pick, pipe, prop, when, uniq, curry } from 'ramda';
16
16
  import Button from '@mui/material/Button';
17
17
  import Typography from '@mui/material/Typography';
18
18
  import { createTemporaryEntity, findRelatedTemporaryEntities, getActivenessAttributes, getCreatableAttributeTypes, getEntityType, getErrorMessage, getErrorId, omitMarks, relationEditorAttributeTypesSelectionStrategy, validateConnection, updateConnectionEntityLabel, isTempUri, isEmptyValue, getRelationAttributesList, getDefaultRelationTypeObject, getInOutRelations, isSuggestMode, isAttributeTypeError, getRelationUriFromConnection, getRelationEditorActiveError, getRelationAttributesFromConnection, getEntityUriFromConnection } from '@reltio/mdm-sdk';
@@ -74,12 +74,12 @@ var RelationEditor = function (_a) {
74
74
  var attributeListEntity = useMemo(function () { return (__assign({ attributes: __assign({}, getRelationAttributesFromConnection(connection)) }, getActivenessAttributes(connection.relation))); }, [connection]);
75
75
  var relatedTempEntities = useMemo(function () { return findRelatedTemporaryEntities(allModifiedEntities, modifiedEntity); }, [allModifiedEntities, modifiedEntity]);
76
76
  var relatedTempEntitiesUrisHistory = useRef([]);
77
- var setInitialInfo = useCallback(function (entity, connection) {
78
- mdmSetInitialInfo(config.id, relationUri, entity, connection);
77
+ var setInitialInfo = useCallback(function (entity) {
78
+ mdmSetInitialInfo(config.id, relationUri, entity);
79
79
  }, [mdmSetInitialInfo]);
80
80
  useEffect(function () {
81
- if (!initialConnection) {
82
- setInitialInfo(modifiedEntity, connection);
81
+ if (modifiedEntity && !initialModifiedEntity) {
82
+ setInitialInfo(modifiedEntity);
83
83
  }
84
84
  }, []);
85
85
  useEffect(function () {
@@ -121,7 +121,7 @@ var RelationEditor = function (_a) {
121
121
  return errors.length === 0;
122
122
  }, [connection, metadata, allModifiedEntities, errorsSet]);
123
123
  var resetErrors = useCallback(function () { return errorsSet([]); }, [errorsSet]);
124
- var onApply = useCallback(pipe(always(connection), when(validate, pipe(omitMarks, updateModifiedEntityLabel, omit(['initial']), applyAction(config.id), always(differenceWith(equals, relatedTempEntitiesUrisHistory.current, relatedTempEntities.map(prop('uri')))), forEach(deleteModifiedEntity), handleClose))), [connection, config, updateModifiedEntityLabel, validate, relatedTempEntities]);
124
+ var onApply = useCallback(pipe(always(connection), when(validate, pipe(omitMarks, updateModifiedEntityLabel, applyAction(config.id), always(differenceWith(equals, relatedTempEntitiesUrisHistory.current, relatedTempEntities.map(prop('uri')))), forEach(deleteModifiedEntity), handleClose))), [connection, config, updateModifiedEntityLabel, validate, relatedTempEntities]);
125
125
  var onCancel = useCallback(function () {
126
126
  if (modifiedEntity !== initialModifiedEntity) {
127
127
  if (initialModifiedEntity) {
@@ -61,6 +61,7 @@ export { AttributesErrorsPanel } from './AttributesErrorsPanel/AttributesErrorsP
61
61
  export { default as ErrorPopup } from './ErrorPopup/ErrorPopup';
62
62
  export { default as ErrorWrapper } from './ErrorWrapper/ErrorWrapper';
63
63
  export { default as ExpandedValueTooltip } from './ExpandedValueTooltip/ExpandedValueTooltip';
64
+ export { default as ExternalInvalidRelations } from './ExternalInvalidRelations/ExternalInvalidRelations';
64
65
  export { default as FacetViewHeader } from './FacetViewHeader/FacetViewHeader';
65
66
  export { default as FlipCard } from './FlipCard/FlipCard';
66
67
  export { default as HideOnShrink } from './HideOnShrink/HideOnShrink';
@@ -61,6 +61,7 @@ export { AttributesErrorsPanel } from './AttributesErrorsPanel/AttributesErrorsP
61
61
  export { default as ErrorPopup } from './ErrorPopup/ErrorPopup';
62
62
  export { default as ErrorWrapper } from './ErrorWrapper/ErrorWrapper';
63
63
  export { default as ExpandedValueTooltip } from './ExpandedValueTooltip/ExpandedValueTooltip';
64
+ export { default as ExternalInvalidRelations } from './ExternalInvalidRelations/ExternalInvalidRelations';
64
65
  export { default as FacetViewHeader } from './FacetViewHeader/FacetViewHeader';
65
66
  export { default as FlipCard } from './FlipCard/FlipCard';
66
67
  export { default as HideOnShrink } from './HideOnShrink/HideOnShrink';
@@ -111,7 +111,7 @@ export type MdmModuleActionsContextProps = Partial<{
111
111
  }) => void;
112
112
  lookupsListResolved: (payload: Lookups[]) => void;
113
113
  relationsLoaded: (payload: RelationsLoadedPayload) => void;
114
- setInitialInfo: (id: string, relationUri: string, tempEntity: Entity, connection: Connection) => void;
114
+ setInitialInfo: (id: string, relationUri: string, tempEntity: Entity) => void;
115
115
  setRelationType: (id: string, relationUri: string, relationType: CompactRelationType) => void;
116
116
  closeRelationEditor: (id: string, relationUri: string) => void;
117
117
  openRelationEditor: (id: string, connection: Connection) => void;
@@ -183,7 +183,7 @@ export declare const MdmModuleActionsContext: import("@fluentui/react-context-se
183
183
  }) => void;
184
184
  lookupsListResolved: (payload: Lookups[]) => void;
185
185
  relationsLoaded: (payload: RelationsLoadedPayload) => void;
186
- setInitialInfo: (id: string, relationUri: string, tempEntity: Entity, connection: Connection) => void;
186
+ setInitialInfo: (id: string, relationUri: string, tempEntity: Entity) => void;
187
187
  setRelationType: (id: string, relationUri: string, relationType: CompactRelationType) => void;
188
188
  closeRelationEditor: (id: string, relationUri: string) => void;
189
189
  openRelationEditor: (id: string, connection: Connection) => void;
@@ -128,7 +128,7 @@ export declare const useMdmAction: <T extends "openSearch" | "openHistoryEvent"
128
128
  }) => void;
129
129
  lookupsListResolved: (payload: import("@reltio/mdm-sdk").Lookups[]) => void;
130
130
  relationsLoaded: (payload: import("@reltio/mdm-sdk").RelationsLoadedPayload) => void;
131
- setInitialInfo: (id: string, relationUri: string, tempEntity: import("@reltio/mdm-sdk").Entity, connection: import("@reltio/mdm-sdk").Connection) => void;
131
+ setInitialInfo: (id: string, relationUri: string, tempEntity: import("@reltio/mdm-sdk").Entity) => void;
132
132
  setRelationType: (id: string, relationUri: string, relationType: import("@reltio/mdm-sdk").CompactRelationType) => void;
133
133
  closeRelationEditor: (id: string, relationUri: string) => void;
134
134
  openRelationEditor: (id: string, connection: import("@reltio/mdm-sdk").Connection) => void;
@@ -7,23 +7,10 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
7
7
  }
8
8
  return to.concat(ar || Array.prototype.slice.call(from));
9
9
  };
10
- import { curry, eqBy, filter, path, prop, reject } from 'ramda';
10
+ import { eqBy, path, reject } from 'ramda';
11
11
  import { useEffect, useMemo, useRef } from 'react';
12
- import { areOneHierarchyUris, isEditableMode, markEdited, markNew } from '@reltio/mdm-sdk';
12
+ import { isEditableMode, getInvalidConnections, markEdited, markNew } from '@reltio/mdm-sdk';
13
13
  import { useActionsHook, useMdmAction, useMdmAllRelationsToAddAndEdit, useMdmMode, useMdmProfileErrors, useMdmRelationsDrafts, useMdmListener } from '../contexts';
14
- var isConnectionHasError = curry(function (errors, connection) {
15
- var relationUri = path(['relation', 'relationUri'], connection);
16
- return errors.some(function (error) {
17
- return areOneHierarchyUris(prop('uri', error), relationUri) ||
18
- areOneHierarchyUris(prop('parentUri', error), relationUri) ||
19
- (error.path || []).some(function (errorPath) { return path(['value', 'relation', 'relationUri'], errorPath) === relationUri; });
20
- });
21
- });
22
- var getInvalidConnections = function (errors, connections) {
23
- if (errors === void 0) { errors = []; }
24
- if (connections === void 0) { connections = []; }
25
- return filter(isConnectionHasError(errors), connections);
26
- };
27
14
  export var useExpandInvalidRelations = function (configId) {
28
15
  var openRelationEditor = useMdmAction('openRelationEditor');
29
16
  var mode = useMdmMode();
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.1723",
3
+ "version": "1.4.1724",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
7
7
  "dependencies": {
8
8
  "@fluentui/react-context-selector": "^9.1.26",
9
9
  "@react-google-maps/api": "2.7.0",
10
- "@reltio/mdm-sdk": "^1.4.1712",
10
+ "@reltio/mdm-sdk": "^1.4.1713",
11
11
  "classnames": "^2.2.5",
12
12
  "d3-cloud": "^1.2.5",
13
13
  "d3-geo": "^2.0.1",