@reltio/components 1.4.1847 → 1.4.1849

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.
@@ -7,6 +7,7 @@ type Props = {
7
7
  onNodeClick: (nodeId: string) => void;
8
8
  selectedEdge: string;
9
9
  onEdgeLabelClick: (edgeId: string, event: MouseEvent) => void;
10
+ hideInteractionTypes?: boolean;
10
11
  };
11
- export declare const DataModelGraph: ({ graph, children, selectedNode, onNodeClick, selectedEdge, onEdgeLabelClick }: Props) => JSX.Element;
12
+ export declare const DataModelGraph: ({ graph, children, selectedNode, onNodeClick, selectedEdge, onEdgeLabelClick, hideInteractionTypes }: Props) => JSX.Element;
12
13
  export default DataModelGraph;
@@ -14,12 +14,12 @@ var settings = {
14
14
  zIndex: true
15
15
  };
16
16
  var DataModelGraph = function (_a) {
17
- var graph = _a.graph, children = _a.children, selectedNode = _a.selectedNode, onNodeClick = _a.onNodeClick, selectedEdge = _a.selectedEdge, onEdgeLabelClick = _a.onEdgeLabelClick;
17
+ var graph = _a.graph, children = _a.children, selectedNode = _a.selectedNode, onNodeClick = _a.onNodeClick, selectedEdge = _a.selectedEdge, onEdgeLabelClick = _a.onEdgeLabelClick, hideInteractionTypes = _a.hideInteractionTypes;
18
18
  var styles = (0, styles_1.useStyles)();
19
19
  return (react_1.default.createElement("div", { className: styles.wrapper },
20
20
  react_1.default.createElement("div", { className: styles.graph }, graph && (react_1.default.createElement(SigmaGraphContainer_1.SigmaGraphContainer, { initialSettings: settings },
21
21
  react_1.default.createElement(react_1.default.Fragment, null,
22
- react_1.default.createElement(DataModelCircleLayuot_1.DataModelCircleLayuot, { graph: graph, selectedNode: selectedNode, onNodeClick: onNodeClick, selectedEdge: selectedEdge, onEdgeLabelClick: onEdgeLabelClick }),
22
+ react_1.default.createElement(DataModelCircleLayuot_1.DataModelCircleLayuot, { graph: graph, selectedNode: selectedNode, onNodeClick: onNodeClick, selectedEdge: selectedEdge, onEdgeLabelClick: onEdgeLabelClick, hideInteractionTypes: hideInteractionTypes }),
23
23
  react_1.default.createElement("div", { className: styles.rightBottomControls },
24
24
  react_1.default.createElement(ZoomSlider_1.ZoomSlider, { className: styles.zoomSlider, min: 30, max: 300 })))))),
25
25
  children));
@@ -42,7 +42,7 @@ describe('DataModelGraph tests', function () {
42
42
  var selectedEdge = 'edge1';
43
43
  var onEdgeLabelClick = jest.fn();
44
44
  var setUp = function () {
45
- (0, react_2.render)(react_1.default.createElement(DataModelGraph_1.DataModelGraph, { graph: graph, selectedNode: selectedNode, onNodeClick: onNodeClick, selectedEdge: selectedEdge, onEdgeLabelClick: onEdgeLabelClick }));
45
+ (0, react_2.render)(react_1.default.createElement(DataModelGraph_1.DataModelGraph, { graph: graph, selectedNode: selectedNode, onNodeClick: onNodeClick, selectedEdge: selectedEdge, onEdgeLabelClick: onEdgeLabelClick, hideInteractionTypes: false }));
46
46
  };
47
47
  afterEach(function () {
48
48
  jest.clearAllMocks();
@@ -5,7 +5,8 @@ type Props = {
5
5
  onNodeClick: (nodeId: string) => void;
6
6
  selectedEdge: string;
7
7
  onEdgeLabelClick: (edgeId: string, event: MouseEvent) => void;
8
+ hideInteractionTypes?: boolean;
8
9
  };
9
10
  export declare const LAYOUT_ANIMATION_DURATION = 3000;
10
- export declare const DataModelCircleLayuot: ({ graph, selectedNode, onNodeClick, selectedEdge, onEdgeLabelClick }: Props) => any;
11
+ export declare const DataModelCircleLayuot: ({ graph, selectedNode, onNodeClick, selectedEdge, onEdgeLabelClick, hideInteractionTypes }: Props) => any;
11
12
  export {};
@@ -6,7 +6,7 @@ var useFakeCenterNode_1 = require("../../hooks/useFakeCenterNode");
6
6
  var useDataModelGraphAppearance_1 = require("../../hooks/useDataModelGraphAppearance");
7
7
  exports.LAYOUT_ANIMATION_DURATION = 3000;
8
8
  var DataModelCircleLayuot = function (_a) {
9
- var graph = _a.graph, selectedNode = _a.selectedNode, onNodeClick = _a.onNodeClick, selectedEdge = _a.selectedEdge, onEdgeLabelClick = _a.onEdgeLabelClick;
9
+ var graph = _a.graph, selectedNode = _a.selectedNode, onNodeClick = _a.onNodeClick, selectedEdge = _a.selectedEdge, onEdgeLabelClick = _a.onEdgeLabelClick, hideInteractionTypes = _a.hideInteractionTypes;
10
10
  (0, useFakeCenterNode_1.useFakeCenterNode)({ graph: graph, timeout: exports.LAYOUT_ANIMATION_DURATION + 100 });
11
11
  (0, useCircleLayout_1.useCircleLayout)({ graph: graph, animationDuration: exports.LAYOUT_ANIMATION_DURATION });
12
12
  (0, useDataModelGraphAppearance_1.useDataModelGraphAppearance)({
@@ -14,7 +14,8 @@ var DataModelCircleLayuot = function (_a) {
14
14
  selectedNode: selectedNode,
15
15
  selectedEdge: selectedEdge,
16
16
  onNodeClick: onNodeClick,
17
- onEdgeLabelClick: onEdgeLabelClick
17
+ onEdgeLabelClick: onEdgeLabelClick,
18
+ hideInteractionTypes: hideInteractionTypes
18
19
  });
19
20
  return null;
20
21
  };
@@ -12,6 +12,7 @@ type Props = {
12
12
  selectedEdge: string;
13
13
  onNodeClick: (node: string) => void;
14
14
  onEdgeLabelClick: (edgeId: string, event: MouseEvent) => void;
15
+ hideInteractionTypes?: boolean;
15
16
  };
16
- export declare const useDataModelGraphAppearance: ({ graph, selectedNode, selectedEdge, onNodeClick, onEdgeLabelClick }: Props) => void;
17
+ export declare const useDataModelGraphAppearance: ({ graph, selectedNode, selectedEdge, onNodeClick, onEdgeLabelClick, hideInteractionTypes }: Props) => void;
17
18
  export {};
@@ -46,7 +46,7 @@ exports.RELATED_EDGE_COLOR = 'rgba(130, 130, 130, 1)';
46
46
  exports.RELATED_DASHED_EDGE_COLOR = 'rgba(79, 79, 79, 1)';
47
47
  exports.INACTIVE_LABEL_COLOR = 'rgba(0, 0, 0, 0.38)';
48
48
  var useDataModelGraphAppearance = function (_a) {
49
- var graph = _a.graph, selectedNode = _a.selectedNode, selectedEdge = _a.selectedEdge, onNodeClick = _a.onNodeClick, onEdgeLabelClick = _a.onEdgeLabelClick;
49
+ var graph = _a.graph, selectedNode = _a.selectedNode, selectedEdge = _a.selectedEdge, onNodeClick = _a.onNodeClick, onEdgeLabelClick = _a.onEdgeLabelClick, hideInteractionTypes = _a.hideInteractionTypes;
50
50
  var sigma = (0, core_2.useSigma)();
51
51
  var container = (0, core_1.useSigmaContext)().container;
52
52
  var _b = (0, react_1.useState)(null), hoveredNode = _b[0], setHoveredNode = _b[1];
@@ -107,6 +107,9 @@ var useDataModelGraphAppearance = function (_a) {
107
107
  if (hoveredNode !== node && !isSelectedNode) {
108
108
  delete newData.secondaryLabel;
109
109
  }
110
+ if (data.nodeType === graphDataTypes_1.DataModelGraphNodeType.interactionType && hideInteractionTypes) {
111
+ newData.hidden = true;
112
+ }
110
113
  return newData;
111
114
  },
112
115
  edgeReducer: function (edge, data) {
@@ -134,6 +137,6 @@ var useDataModelGraphAppearance = function (_a) {
134
137
  return newData;
135
138
  }
136
139
  });
137
- }, [sigma, setSettings, selectedNode, selectedEdge, hoveredEdge, hoveredNode]);
140
+ }, [sigma, setSettings, selectedNode, selectedEdge, hoveredEdge, hoveredNode, hideInteractionTypes]);
138
141
  };
139
142
  exports.useDataModelGraphAppearance = useDataModelGraphAppearance;
@@ -88,7 +88,7 @@ describe('useDataModelGraphAppearance tests', function () {
88
88
  getGraph: function () { return graph; }
89
89
  });
90
90
  return __assign({ graph: graph }, (0, react_hooks_1.renderHook)(useDataModelGraphAppearance_1.useDataModelGraphAppearance, {
91
- initialProps: __assign({ graph: graph, selectedNode: null, onNodeClick: jest.fn(), selectedEdge: null, onEdgeLabelClick: jest.fn() }, props)
91
+ initialProps: __assign({ graph: graph, selectedNode: null, onNodeClick: jest.fn(), selectedEdge: null, onEdgeLabelClick: jest.fn(), hideInteractionTypes: false }, props)
92
92
  }));
93
93
  };
94
94
  var setSettings = jest.fn();
@@ -159,6 +159,12 @@ describe('useDataModelGraphAppearance tests', function () {
159
159
  expect(nodeReducer('prescriptions', graph.getNodeAttributes('prescriptions'))).toEqual(__assign(__assign({}, getDefaultNodeAttributes(graph.getNodeAttributes('prescriptions'))), { hasBorder: true, image: expect.stringContaining('data:image/svg+xml'), label: 'Prescriptions', nodeType: graphDataTypes_1.DataModelGraphNodeType.interactionType, inactive: true, labelColor: useDataModelGraphAppearance_1.INACTIVE_LABEL_COLOR, secondaryLabelColor: useDataModelGraphAppearance_1.INACTIVE_LABEL_COLOR }));
160
160
  expect(result.error).toBeUndefined();
161
161
  });
162
+ it('should hide interaction types when hideInteractionTypes is true', function () {
163
+ var _a = setUp({ hideInteractionTypes: true }), graph = _a.graph, result = _a.result;
164
+ var nodeReducer = getNodeReducer();
165
+ expect(nodeReducer('prescriptions', graph.getNodeAttributes('prescriptions'))).toEqual(__assign(__assign({}, getDefaultNodeAttributes(graph.getNodeAttributes('prescriptions'))), { hasBorder: true, image: expect.stringContaining('data:image/svg+xml'), label: 'Prescriptions', nodeType: graphDataTypes_1.DataModelGraphNodeType.interactionType, hidden: true }));
166
+ expect(result.error).toBeUndefined();
167
+ });
162
168
  });
163
169
  describe('edges reducer behavior', function () {
164
170
  var defaultEdgeStyle = {
@@ -7,6 +7,7 @@ type Props = {
7
7
  onNodeClick: (nodeId: string) => void;
8
8
  selectedEdge: string;
9
9
  onEdgeLabelClick: (edgeId: string, event: MouseEvent) => void;
10
+ hideInteractionTypes?: boolean;
10
11
  };
11
- export declare const DataModelGraph: ({ graph, children, selectedNode, onNodeClick, selectedEdge, onEdgeLabelClick }: Props) => JSX.Element;
12
+ export declare const DataModelGraph: ({ graph, children, selectedNode, onNodeClick, selectedEdge, onEdgeLabelClick, hideInteractionTypes }: Props) => JSX.Element;
12
13
  export default DataModelGraph;
@@ -8,12 +8,12 @@ var settings = {
8
8
  zIndex: true
9
9
  };
10
10
  export var DataModelGraph = function (_a) {
11
- var graph = _a.graph, children = _a.children, selectedNode = _a.selectedNode, onNodeClick = _a.onNodeClick, selectedEdge = _a.selectedEdge, onEdgeLabelClick = _a.onEdgeLabelClick;
11
+ var graph = _a.graph, children = _a.children, selectedNode = _a.selectedNode, onNodeClick = _a.onNodeClick, selectedEdge = _a.selectedEdge, onEdgeLabelClick = _a.onEdgeLabelClick, hideInteractionTypes = _a.hideInteractionTypes;
12
12
  var styles = useStyles();
13
13
  return (React.createElement("div", { className: styles.wrapper },
14
14
  React.createElement("div", { className: styles.graph }, graph && (React.createElement(SigmaGraphContainer, { initialSettings: settings },
15
15
  React.createElement(React.Fragment, null,
16
- React.createElement(DataModelCircleLayuot, { graph: graph, selectedNode: selectedNode, onNodeClick: onNodeClick, selectedEdge: selectedEdge, onEdgeLabelClick: onEdgeLabelClick }),
16
+ React.createElement(DataModelCircleLayuot, { graph: graph, selectedNode: selectedNode, onNodeClick: onNodeClick, selectedEdge: selectedEdge, onEdgeLabelClick: onEdgeLabelClick, hideInteractionTypes: hideInteractionTypes }),
17
17
  React.createElement("div", { className: styles.rightBottomControls },
18
18
  React.createElement(ZoomSlider, { className: styles.zoomSlider, min: 30, max: 300 })))))),
19
19
  children));
@@ -37,7 +37,7 @@ describe('DataModelGraph tests', function () {
37
37
  var selectedEdge = 'edge1';
38
38
  var onEdgeLabelClick = jest.fn();
39
39
  var setUp = function () {
40
- render(React.createElement(DataModelGraph, { graph: graph, selectedNode: selectedNode, onNodeClick: onNodeClick, selectedEdge: selectedEdge, onEdgeLabelClick: onEdgeLabelClick }));
40
+ render(React.createElement(DataModelGraph, { graph: graph, selectedNode: selectedNode, onNodeClick: onNodeClick, selectedEdge: selectedEdge, onEdgeLabelClick: onEdgeLabelClick, hideInteractionTypes: false }));
41
41
  };
42
42
  afterEach(function () {
43
43
  jest.clearAllMocks();
@@ -5,7 +5,8 @@ type Props = {
5
5
  onNodeClick: (nodeId: string) => void;
6
6
  selectedEdge: string;
7
7
  onEdgeLabelClick: (edgeId: string, event: MouseEvent) => void;
8
+ hideInteractionTypes?: boolean;
8
9
  };
9
10
  export declare const LAYOUT_ANIMATION_DURATION = 3000;
10
- export declare const DataModelCircleLayuot: ({ graph, selectedNode, onNodeClick, selectedEdge, onEdgeLabelClick }: Props) => any;
11
+ export declare const DataModelCircleLayuot: ({ graph, selectedNode, onNodeClick, selectedEdge, onEdgeLabelClick, hideInteractionTypes }: Props) => any;
11
12
  export {};
@@ -3,7 +3,7 @@ import { useFakeCenterNode } from '../../hooks/useFakeCenterNode';
3
3
  import { useDataModelGraphAppearance } from '../../hooks/useDataModelGraphAppearance';
4
4
  export var LAYOUT_ANIMATION_DURATION = 3000;
5
5
  export var DataModelCircleLayuot = function (_a) {
6
- var graph = _a.graph, selectedNode = _a.selectedNode, onNodeClick = _a.onNodeClick, selectedEdge = _a.selectedEdge, onEdgeLabelClick = _a.onEdgeLabelClick;
6
+ var graph = _a.graph, selectedNode = _a.selectedNode, onNodeClick = _a.onNodeClick, selectedEdge = _a.selectedEdge, onEdgeLabelClick = _a.onEdgeLabelClick, hideInteractionTypes = _a.hideInteractionTypes;
7
7
  useFakeCenterNode({ graph: graph, timeout: LAYOUT_ANIMATION_DURATION + 100 });
8
8
  useCircleLayout({ graph: graph, animationDuration: LAYOUT_ANIMATION_DURATION });
9
9
  useDataModelGraphAppearance({
@@ -11,7 +11,8 @@ export var DataModelCircleLayuot = function (_a) {
11
11
  selectedNode: selectedNode,
12
12
  selectedEdge: selectedEdge,
13
13
  onNodeClick: onNodeClick,
14
- onEdgeLabelClick: onEdgeLabelClick
14
+ onEdgeLabelClick: onEdgeLabelClick,
15
+ hideInteractionTypes: hideInteractionTypes
15
16
  });
16
17
  return null;
17
18
  };
@@ -12,6 +12,7 @@ type Props = {
12
12
  selectedEdge: string;
13
13
  onNodeClick: (node: string) => void;
14
14
  onEdgeLabelClick: (edgeId: string, event: MouseEvent) => void;
15
+ hideInteractionTypes?: boolean;
15
16
  };
16
- export declare const useDataModelGraphAppearance: ({ graph, selectedNode, selectedEdge, onNodeClick, onEdgeLabelClick }: Props) => void;
17
+ export declare const useDataModelGraphAppearance: ({ graph, selectedNode, selectedEdge, onNodeClick, onEdgeLabelClick, hideInteractionTypes }: Props) => void;
17
18
  export {};
@@ -43,7 +43,7 @@ export var RELATED_EDGE_COLOR = 'rgba(130, 130, 130, 1)';
43
43
  export var RELATED_DASHED_EDGE_COLOR = 'rgba(79, 79, 79, 1)';
44
44
  export var INACTIVE_LABEL_COLOR = 'rgba(0, 0, 0, 0.38)';
45
45
  export var useDataModelGraphAppearance = function (_a) {
46
- var graph = _a.graph, selectedNode = _a.selectedNode, selectedEdge = _a.selectedEdge, onNodeClick = _a.onNodeClick, onEdgeLabelClick = _a.onEdgeLabelClick;
46
+ var graph = _a.graph, selectedNode = _a.selectedNode, selectedEdge = _a.selectedEdge, onNodeClick = _a.onNodeClick, onEdgeLabelClick = _a.onEdgeLabelClick, hideInteractionTypes = _a.hideInteractionTypes;
47
47
  var sigma = useSigma();
48
48
  var container = useSigmaContext().container;
49
49
  var _b = useState(null), hoveredNode = _b[0], setHoveredNode = _b[1];
@@ -104,6 +104,9 @@ export var useDataModelGraphAppearance = function (_a) {
104
104
  if (hoveredNode !== node && !isSelectedNode) {
105
105
  delete newData.secondaryLabel;
106
106
  }
107
+ if (data.nodeType === DataModelGraphNodeType.interactionType && hideInteractionTypes) {
108
+ newData.hidden = true;
109
+ }
107
110
  return newData;
108
111
  },
109
112
  edgeReducer: function (edge, data) {
@@ -131,5 +134,5 @@ export var useDataModelGraphAppearance = function (_a) {
131
134
  return newData;
132
135
  }
133
136
  });
134
- }, [sigma, setSettings, selectedNode, selectedEdge, hoveredEdge, hoveredNode]);
137
+ }, [sigma, setSettings, selectedNode, selectedEdge, hoveredEdge, hoveredNode, hideInteractionTypes]);
135
138
  };
@@ -86,7 +86,7 @@ describe('useDataModelGraphAppearance tests', function () {
86
86
  getGraph: function () { return graph; }
87
87
  });
88
88
  return __assign({ graph: graph }, renderHook(useDataModelGraphAppearance, {
89
- initialProps: __assign({ graph: graph, selectedNode: null, onNodeClick: jest.fn(), selectedEdge: null, onEdgeLabelClick: jest.fn() }, props)
89
+ initialProps: __assign({ graph: graph, selectedNode: null, onNodeClick: jest.fn(), selectedEdge: null, onEdgeLabelClick: jest.fn(), hideInteractionTypes: false }, props)
90
90
  }));
91
91
  };
92
92
  var setSettings = jest.fn();
@@ -157,6 +157,12 @@ describe('useDataModelGraphAppearance tests', function () {
157
157
  expect(nodeReducer('prescriptions', graph.getNodeAttributes('prescriptions'))).toEqual(__assign(__assign({}, getDefaultNodeAttributes(graph.getNodeAttributes('prescriptions'))), { hasBorder: true, image: expect.stringContaining('data:image/svg+xml'), label: 'Prescriptions', nodeType: DataModelGraphNodeType.interactionType, inactive: true, labelColor: INACTIVE_LABEL_COLOR, secondaryLabelColor: INACTIVE_LABEL_COLOR }));
158
158
  expect(result.error).toBeUndefined();
159
159
  });
160
+ it('should hide interaction types when hideInteractionTypes is true', function () {
161
+ var _a = setUp({ hideInteractionTypes: true }), graph = _a.graph, result = _a.result;
162
+ var nodeReducer = getNodeReducer();
163
+ expect(nodeReducer('prescriptions', graph.getNodeAttributes('prescriptions'))).toEqual(__assign(__assign({}, getDefaultNodeAttributes(graph.getNodeAttributes('prescriptions'))), { hasBorder: true, image: expect.stringContaining('data:image/svg+xml'), label: 'Prescriptions', nodeType: DataModelGraphNodeType.interactionType, hidden: true }));
164
+ expect(result.error).toBeUndefined();
165
+ });
160
166
  });
161
167
  describe('edges reducer behavior', function () {
162
168
  var defaultEdgeStyle = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.1847",
3
+ "version": "1.4.1849",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -8,7 +8,7 @@
8
8
  "@fluentui/react-context-selector": "^9.1.26",
9
9
  "@react-google-maps/api": "2.7.0",
10
10
  "@react-sigma/core": "3.4.0",
11
- "@reltio/mdm-sdk": "^1.4.1797",
11
+ "@reltio/mdm-sdk": "^1.4.1798",
12
12
  "classnames": "^2.2.5",
13
13
  "d3-cloud": "^1.2.5",
14
14
  "d3-geo": "^2.0.1",