@reltio/components 1.4.2078 → 1.4.2079
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SimpleAttribute/IntegrationSimpleAttribute.test.js +109 -4
- package/cjs/SimpleAttribute/IntegrationSimpleAttribute.test.js +108 -3
- package/cjs/hooks/useMaskedAttribute/helpers.d.ts +6 -0
- package/cjs/hooks/useMaskedAttribute/helpers.js +72 -0
- package/cjs/hooks/useMaskedAttribute/useMaskedAttribute.d.ts +4 -3
- package/cjs/hooks/useMaskedAttribute/useMaskedAttribute.js +58 -4
- package/hooks/useMaskedAttribute/helpers.d.ts +6 -0
- package/hooks/useMaskedAttribute/helpers.js +68 -0
- package/hooks/useMaskedAttribute/useMaskedAttribute.d.ts +4 -3
- package/hooks/useMaskedAttribute/useMaskedAttribute.js +60 -6
- package/package.json +2 -2
|
@@ -49,11 +49,11 @@ import React from 'react';
|
|
|
49
49
|
import { dissoc } from 'ramda';
|
|
50
50
|
import { act, render, screen } from '@testing-library/react';
|
|
51
51
|
import userEvent from '@testing-library/user-event';
|
|
52
|
-
import { Mode, getUnmaskedAttributeValue } from '@reltio/mdm-sdk';
|
|
52
|
+
import { Mode, getUnmaskedAttributeValue, createActivity } from '@reltio/mdm-sdk';
|
|
53
53
|
import { MaskedAttributesProvider } from '../contexts/MaskedAttributesContext';
|
|
54
54
|
import { MdmModuleProvider } from '../contexts/MdmModuleContext';
|
|
55
55
|
import { SimpleAttribute } from './SimpleAttribute';
|
|
56
|
-
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getUnmaskedAttributeValue: jest.fn() })); });
|
|
56
|
+
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getUnmaskedAttributeValue: jest.fn(), createActivity: jest.fn() })); });
|
|
57
57
|
describe('masking/unmasking behaviour', function () {
|
|
58
58
|
beforeAll(function () {
|
|
59
59
|
getUnmaskedAttributeValue.mockResolvedValue({
|
|
@@ -67,11 +67,48 @@ describe('masking/unmasking behaviour', function () {
|
|
|
67
67
|
attributeType: defaultAttributeType,
|
|
68
68
|
attributeValue: defaultAttributeValue
|
|
69
69
|
};
|
|
70
|
+
var store = {
|
|
71
|
+
entity: {
|
|
72
|
+
uri: 'entities/16U21B8f',
|
|
73
|
+
type: 'configuration/entityTypes/HCP',
|
|
74
|
+
label: 'Test Entity'
|
|
75
|
+
},
|
|
76
|
+
metadata: {
|
|
77
|
+
entityTypes: [
|
|
78
|
+
{
|
|
79
|
+
uri: 'configuration/entityTypes/HCP',
|
|
80
|
+
attributes: [
|
|
81
|
+
{
|
|
82
|
+
uri: 'configuration/entityTypes/HCP/attributes/Nested',
|
|
83
|
+
name: 'Name',
|
|
84
|
+
label: 'Nested',
|
|
85
|
+
type: 'Nested',
|
|
86
|
+
attributes: [
|
|
87
|
+
{
|
|
88
|
+
uri: 'configuration/entityTypes/HCP/attributes/Nested/attributes/TextField',
|
|
89
|
+
label: 'Name Label',
|
|
90
|
+
type: 'String',
|
|
91
|
+
name: 'Name'
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
uri: 'configuration/entityTypes/HCP/attributes/RDMLookup',
|
|
97
|
+
type: 'Reference',
|
|
98
|
+
label: 'RDMLookup Label',
|
|
99
|
+
name: 'RDMLookup'
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
mode: Mode.Viewing
|
|
106
|
+
};
|
|
70
107
|
var setUp = function (props) {
|
|
71
108
|
if (props === void 0) { props = defaultProps; }
|
|
72
109
|
var Providers = function (_a) {
|
|
73
110
|
var children = _a.children;
|
|
74
|
-
return (React.createElement(MdmModuleProvider, { values:
|
|
111
|
+
return (React.createElement(MdmModuleProvider, { values: store },
|
|
75
112
|
React.createElement(MaskedAttributesProvider, null, children)));
|
|
76
113
|
};
|
|
77
114
|
var user = userEvent.setup();
|
|
@@ -79,6 +116,9 @@ describe('masking/unmasking behaviour', function () {
|
|
|
79
116
|
wrapper: Providers
|
|
80
117
|
}));
|
|
81
118
|
};
|
|
119
|
+
afterEach(function () {
|
|
120
|
+
jest.clearAllMocks();
|
|
121
|
+
});
|
|
82
122
|
it('should not render MaskingSwitcher if attribute should not be masked', function () {
|
|
83
123
|
var attributeType = dissoc('masking', defaultAttributeType);
|
|
84
124
|
var container = setUp(__assign(__assign({}, defaultProps), { attributeType: attributeType })).container;
|
|
@@ -146,7 +186,7 @@ describe('masking/unmasking behaviour', function () {
|
|
|
146
186
|
return __generator(this, function (_b) {
|
|
147
187
|
switch (_b.label) {
|
|
148
188
|
case 0:
|
|
149
|
-
getUnmaskedAttributeValue.
|
|
189
|
+
getUnmaskedAttributeValue.mockImplementationOnce(function () { return new Promise(function (resolve) { return (resolveGetUnmaskedAttributeValue = resolve); }); });
|
|
150
190
|
_a = setUp(), container = _a.container, user = _a.user;
|
|
151
191
|
switcher = container.querySelector('.switcherWrapper');
|
|
152
192
|
return [4 /*yield*/, user.click(switcher)];
|
|
@@ -184,4 +224,69 @@ describe('masking/unmasking behaviour', function () {
|
|
|
184
224
|
setUp({ attributeType: attributeType, attributeValue: attributeValue });
|
|
185
225
|
expect(screen.getByText('**********0000')).toBeInTheDocument();
|
|
186
226
|
});
|
|
227
|
+
it('should call createActivity with correct arguments when MaskingSwitcher is clicked to unmask', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
228
|
+
var attributeType, attributeValue, _a, container, user, switcher;
|
|
229
|
+
return __generator(this, function (_b) {
|
|
230
|
+
switch (_b.label) {
|
|
231
|
+
case 0:
|
|
232
|
+
attributeType = __assign(__assign({}, defaultAttributeType), { uri: 'configuration/entityTypes/HCP/attributes/Nested/attributes/TextField' });
|
|
233
|
+
attributeValue = __assign(__assign({}, defaultAttributeValue), { uri: 'entities/02ZRRE9/attributes/Nested/1bgW4Wj3/TextField/1bgW4nm5' });
|
|
234
|
+
_a = setUp({ attributeType: attributeType, attributeValue: attributeValue }), container = _a.container, user = _a.user;
|
|
235
|
+
switcher = container.querySelector('.switcherWrapper');
|
|
236
|
+
return [4 /*yield*/, user.click(switcher)];
|
|
237
|
+
case 1:
|
|
238
|
+
_b.sent();
|
|
239
|
+
expect(createActivity).toHaveBeenCalledWith({
|
|
240
|
+
label: 'ATTRIBUTE_UNMASKED',
|
|
241
|
+
description: JSON.stringify({
|
|
242
|
+
uri: 'entities/16U21B8f',
|
|
243
|
+
label: 'Test Entity: Nested / Name Label - Masked value'
|
|
244
|
+
}),
|
|
245
|
+
items: [{ objectUri: 'entities/16U21B8f' }]
|
|
246
|
+
});
|
|
247
|
+
return [2 /*return*/];
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}); });
|
|
251
|
+
it('should not call createActivity if attribute is already unmasked', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
252
|
+
var unmaskedAttributeValue, _a, container, user, switcher;
|
|
253
|
+
return __generator(this, function (_b) {
|
|
254
|
+
switch (_b.label) {
|
|
255
|
+
case 0:
|
|
256
|
+
unmaskedAttributeValue = {
|
|
257
|
+
value: 'Unmasked value',
|
|
258
|
+
uri: defaultAttributeValue.uri
|
|
259
|
+
};
|
|
260
|
+
getUnmaskedAttributeValue.mockResolvedValue(unmaskedAttributeValue);
|
|
261
|
+
_a = setUp(), container = _a.container, user = _a.user;
|
|
262
|
+
switcher = container.querySelector('.switcherWrapper');
|
|
263
|
+
return [4 /*yield*/, user.click(switcher)];
|
|
264
|
+
case 1:
|
|
265
|
+
_b.sent();
|
|
266
|
+
return [4 /*yield*/, user.click(switcher)];
|
|
267
|
+
case 2:
|
|
268
|
+
_b.sent();
|
|
269
|
+
expect(createActivity).toHaveBeenCalledTimes(1);
|
|
270
|
+
return [2 /*return*/];
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
}); });
|
|
274
|
+
it('should log an error if createActivity request fails', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
275
|
+
var consoleErrorSpy, _a, container, user, switcher;
|
|
276
|
+
return __generator(this, function (_b) {
|
|
277
|
+
switch (_b.label) {
|
|
278
|
+
case 0:
|
|
279
|
+
consoleErrorSpy = jest.spyOn(console, 'warn').mockImplementation();
|
|
280
|
+
createActivity.mockRejectedValue(new Error('API Error'));
|
|
281
|
+
_a = setUp(), container = _a.container, user = _a.user;
|
|
282
|
+
switcher = container.querySelector('.switcherWrapper');
|
|
283
|
+
return [4 /*yield*/, user.click(switcher)];
|
|
284
|
+
case 1:
|
|
285
|
+
_b.sent();
|
|
286
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(new Error('API Error'));
|
|
287
|
+
consoleErrorSpy.mockRestore();
|
|
288
|
+
return [2 /*return*/];
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
}); });
|
|
187
292
|
});
|
|
@@ -58,7 +58,7 @@ var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
|
58
58
|
var MaskedAttributesContext_1 = require("../contexts/MaskedAttributesContext");
|
|
59
59
|
var MdmModuleContext_1 = require("../contexts/MdmModuleContext");
|
|
60
60
|
var SimpleAttribute_1 = require("./SimpleAttribute");
|
|
61
|
-
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getUnmaskedAttributeValue: jest.fn() })); });
|
|
61
|
+
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getUnmaskedAttributeValue: jest.fn(), createActivity: jest.fn() })); });
|
|
62
62
|
describe('masking/unmasking behaviour', function () {
|
|
63
63
|
beforeAll(function () {
|
|
64
64
|
mdm_sdk_1.getUnmaskedAttributeValue.mockResolvedValue({
|
|
@@ -72,11 +72,48 @@ describe('masking/unmasking behaviour', function () {
|
|
|
72
72
|
attributeType: defaultAttributeType,
|
|
73
73
|
attributeValue: defaultAttributeValue
|
|
74
74
|
};
|
|
75
|
+
var store = {
|
|
76
|
+
entity: {
|
|
77
|
+
uri: 'entities/16U21B8f',
|
|
78
|
+
type: 'configuration/entityTypes/HCP',
|
|
79
|
+
label: 'Test Entity'
|
|
80
|
+
},
|
|
81
|
+
metadata: {
|
|
82
|
+
entityTypes: [
|
|
83
|
+
{
|
|
84
|
+
uri: 'configuration/entityTypes/HCP',
|
|
85
|
+
attributes: [
|
|
86
|
+
{
|
|
87
|
+
uri: 'configuration/entityTypes/HCP/attributes/Nested',
|
|
88
|
+
name: 'Name',
|
|
89
|
+
label: 'Nested',
|
|
90
|
+
type: 'Nested',
|
|
91
|
+
attributes: [
|
|
92
|
+
{
|
|
93
|
+
uri: 'configuration/entityTypes/HCP/attributes/Nested/attributes/TextField',
|
|
94
|
+
label: 'Name Label',
|
|
95
|
+
type: 'String',
|
|
96
|
+
name: 'Name'
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
uri: 'configuration/entityTypes/HCP/attributes/RDMLookup',
|
|
102
|
+
type: 'Reference',
|
|
103
|
+
label: 'RDMLookup Label',
|
|
104
|
+
name: 'RDMLookup'
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
mode: mdm_sdk_1.Mode.Viewing
|
|
111
|
+
};
|
|
75
112
|
var setUp = function (props) {
|
|
76
113
|
if (props === void 0) { props = defaultProps; }
|
|
77
114
|
var Providers = function (_a) {
|
|
78
115
|
var children = _a.children;
|
|
79
|
-
return (react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values:
|
|
116
|
+
return (react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: store },
|
|
80
117
|
react_1.default.createElement(MaskedAttributesContext_1.MaskedAttributesProvider, null, children)));
|
|
81
118
|
};
|
|
82
119
|
var user = user_event_1.default.setup();
|
|
@@ -84,6 +121,9 @@ describe('masking/unmasking behaviour', function () {
|
|
|
84
121
|
wrapper: Providers
|
|
85
122
|
}));
|
|
86
123
|
};
|
|
124
|
+
afterEach(function () {
|
|
125
|
+
jest.clearAllMocks();
|
|
126
|
+
});
|
|
87
127
|
it('should not render MaskingSwitcher if attribute should not be masked', function () {
|
|
88
128
|
var attributeType = (0, ramda_1.dissoc)('masking', defaultAttributeType);
|
|
89
129
|
var container = setUp(__assign(__assign({}, defaultProps), { attributeType: attributeType })).container;
|
|
@@ -151,7 +191,7 @@ describe('masking/unmasking behaviour', function () {
|
|
|
151
191
|
return __generator(this, function (_b) {
|
|
152
192
|
switch (_b.label) {
|
|
153
193
|
case 0:
|
|
154
|
-
mdm_sdk_1.getUnmaskedAttributeValue.
|
|
194
|
+
mdm_sdk_1.getUnmaskedAttributeValue.mockImplementationOnce(function () { return new Promise(function (resolve) { return (resolveGetUnmaskedAttributeValue = resolve); }); });
|
|
155
195
|
_a = setUp(), container = _a.container, user = _a.user;
|
|
156
196
|
switcher = container.querySelector('.switcherWrapper');
|
|
157
197
|
return [4 /*yield*/, user.click(switcher)];
|
|
@@ -189,4 +229,69 @@ describe('masking/unmasking behaviour', function () {
|
|
|
189
229
|
setUp({ attributeType: attributeType, attributeValue: attributeValue });
|
|
190
230
|
expect(react_2.screen.getByText('**********0000')).toBeInTheDocument();
|
|
191
231
|
});
|
|
232
|
+
it('should call createActivity with correct arguments when MaskingSwitcher is clicked to unmask', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
233
|
+
var attributeType, attributeValue, _a, container, user, switcher;
|
|
234
|
+
return __generator(this, function (_b) {
|
|
235
|
+
switch (_b.label) {
|
|
236
|
+
case 0:
|
|
237
|
+
attributeType = __assign(__assign({}, defaultAttributeType), { uri: 'configuration/entityTypes/HCP/attributes/Nested/attributes/TextField' });
|
|
238
|
+
attributeValue = __assign(__assign({}, defaultAttributeValue), { uri: 'entities/02ZRRE9/attributes/Nested/1bgW4Wj3/TextField/1bgW4nm5' });
|
|
239
|
+
_a = setUp({ attributeType: attributeType, attributeValue: attributeValue }), container = _a.container, user = _a.user;
|
|
240
|
+
switcher = container.querySelector('.switcherWrapper');
|
|
241
|
+
return [4 /*yield*/, user.click(switcher)];
|
|
242
|
+
case 1:
|
|
243
|
+
_b.sent();
|
|
244
|
+
expect(mdm_sdk_1.createActivity).toHaveBeenCalledWith({
|
|
245
|
+
label: 'ATTRIBUTE_UNMASKED',
|
|
246
|
+
description: JSON.stringify({
|
|
247
|
+
uri: 'entities/16U21B8f',
|
|
248
|
+
label: 'Test Entity: Nested / Name Label - Masked value'
|
|
249
|
+
}),
|
|
250
|
+
items: [{ objectUri: 'entities/16U21B8f' }]
|
|
251
|
+
});
|
|
252
|
+
return [2 /*return*/];
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
}); });
|
|
256
|
+
it('should not call createActivity if attribute is already unmasked', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
257
|
+
var unmaskedAttributeValue, _a, container, user, switcher;
|
|
258
|
+
return __generator(this, function (_b) {
|
|
259
|
+
switch (_b.label) {
|
|
260
|
+
case 0:
|
|
261
|
+
unmaskedAttributeValue = {
|
|
262
|
+
value: 'Unmasked value',
|
|
263
|
+
uri: defaultAttributeValue.uri
|
|
264
|
+
};
|
|
265
|
+
mdm_sdk_1.getUnmaskedAttributeValue.mockResolvedValue(unmaskedAttributeValue);
|
|
266
|
+
_a = setUp(), container = _a.container, user = _a.user;
|
|
267
|
+
switcher = container.querySelector('.switcherWrapper');
|
|
268
|
+
return [4 /*yield*/, user.click(switcher)];
|
|
269
|
+
case 1:
|
|
270
|
+
_b.sent();
|
|
271
|
+
return [4 /*yield*/, user.click(switcher)];
|
|
272
|
+
case 2:
|
|
273
|
+
_b.sent();
|
|
274
|
+
expect(mdm_sdk_1.createActivity).toHaveBeenCalledTimes(1);
|
|
275
|
+
return [2 /*return*/];
|
|
276
|
+
}
|
|
277
|
+
});
|
|
278
|
+
}); });
|
|
279
|
+
it('should log an error if createActivity request fails', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
280
|
+
var consoleErrorSpy, _a, container, user, switcher;
|
|
281
|
+
return __generator(this, function (_b) {
|
|
282
|
+
switch (_b.label) {
|
|
283
|
+
case 0:
|
|
284
|
+
consoleErrorSpy = jest.spyOn(console, 'warn').mockImplementation();
|
|
285
|
+
mdm_sdk_1.createActivity.mockRejectedValue(new Error('API Error'));
|
|
286
|
+
_a = setUp(), container = _a.container, user = _a.user;
|
|
287
|
+
switcher = container.querySelector('.switcherWrapper');
|
|
288
|
+
return [4 /*yield*/, user.click(switcher)];
|
|
289
|
+
case 1:
|
|
290
|
+
_b.sent();
|
|
291
|
+
expect(consoleErrorSpy).toHaveBeenCalledWith(new Error('API Error'));
|
|
292
|
+
consoleErrorSpy.mockRestore();
|
|
293
|
+
return [2 /*return*/];
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
}); });
|
|
192
297
|
});
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.sendUnmaskActivity = void 0;
|
|
40
|
+
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
41
|
+
var sendUnmaskActivity = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
42
|
+
var isRelationAttribute, attributeTypeUri, rootUri, hierarchy, path, label, error_1;
|
|
43
|
+
var attributeValue = _b.attributeValue, entity = _b.entity, metadata = _b.metadata;
|
|
44
|
+
return __generator(this, function (_c) {
|
|
45
|
+
switch (_c.label) {
|
|
46
|
+
case 0:
|
|
47
|
+
_c.trys.push([0, 2, , 3]);
|
|
48
|
+
isRelationAttribute = (0, mdm_sdk_1.isRelationUri)(attributeValue.uri);
|
|
49
|
+
attributeTypeUri = isRelationAttribute
|
|
50
|
+
? attributeValue.type
|
|
51
|
+
: (0, mdm_sdk_1.getAttributeTypeUriByValueUri)(attributeValue.uri, entity.type);
|
|
52
|
+
rootUri = (0, mdm_sdk_1.getBaseUri)(attributeTypeUri);
|
|
53
|
+
hierarchy = (0, mdm_sdk_1.getAttributeTypesHierarchyByUri)(metadata, attributeTypeUri, rootUri);
|
|
54
|
+
path = hierarchy.map(function (type) { return type.label; }).join(' / ');
|
|
55
|
+
label = "".concat(entity.label, ":").concat(isRelationAttribute ? ' Relationship' : '', " ").concat(path, " - ").concat(attributeValue.value);
|
|
56
|
+
return [4 /*yield*/, (0, mdm_sdk_1.createActivity)({
|
|
57
|
+
label: mdm_sdk_1.ACTIVITY_TYPES.attributeUnmasked,
|
|
58
|
+
description: JSON.stringify({ uri: entity.uri, label: label }),
|
|
59
|
+
items: [{ objectUri: entity.uri }]
|
|
60
|
+
})];
|
|
61
|
+
case 1:
|
|
62
|
+
_c.sent();
|
|
63
|
+
return [3 /*break*/, 3];
|
|
64
|
+
case 2:
|
|
65
|
+
error_1 = _c.sent();
|
|
66
|
+
console.warn(error_1);
|
|
67
|
+
return [3 /*break*/, 3];
|
|
68
|
+
case 3: return [2 /*return*/];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}); };
|
|
72
|
+
exports.sendUnmaskActivity = sendUnmaskActivity;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { AttributeTypeForMasking, SimpleAttributeValue } from '@reltio/mdm-sdk';
|
|
1
|
+
import { AttributeTypeForMasking, Entity, SimpleAttributeValue } from '@reltio/mdm-sdk';
|
|
2
2
|
type Props = {
|
|
3
3
|
attributeValue: SimpleAttributeValue;
|
|
4
4
|
attributeType: AttributeTypeForMasking;
|
|
5
|
+
entity?: Entity;
|
|
5
6
|
};
|
|
6
|
-
export declare const useMaskedAttribute: ({ attributeType, attributeValue }: Props) => {
|
|
7
|
+
export declare const useMaskedAttribute: ({ attributeType, attributeValue, entity: entityProp }: Props) => {
|
|
7
8
|
isUnmaskingNeeded: any;
|
|
8
9
|
isMasked: boolean;
|
|
9
10
|
toggleMasking: () => void;
|
|
10
11
|
isUnmasking: boolean;
|
|
11
|
-
unmask: () => Promise<void
|
|
12
|
+
unmask: () => Promise<void>;
|
|
12
13
|
attributeValue: SimpleAttributeValue;
|
|
13
14
|
};
|
|
14
15
|
export {};
|
|
@@ -1,21 +1,75 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
39
|
exports.useMaskedAttribute = void 0;
|
|
4
40
|
var react_1 = require("react");
|
|
5
41
|
var MdmModuleContext_1 = require("../../contexts/MdmModuleContext");
|
|
42
|
+
var EntityContext_1 = require("../../contexts/EntityContext");
|
|
6
43
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
7
44
|
var MaskedAttributesContext_1 = require("../../contexts/MaskedAttributesContext");
|
|
45
|
+
var helpers_1 = require("./helpers");
|
|
8
46
|
var useMaskedAttribute = function (_a) {
|
|
9
|
-
var attributeType = _a.attributeType, attributeValue = _a.attributeValue;
|
|
47
|
+
var attributeType = _a.attributeType, attributeValue = _a.attributeValue, entityProp = _a.entity;
|
|
10
48
|
var isViewMode = (0, MdmModuleContext_1.useMdmIsViewMode)();
|
|
11
49
|
var unmaskAttributeValue = (0, MaskedAttributesContext_1.useUnmaskAttributeValue)();
|
|
12
50
|
var maskAttributeValue = (0, MaskedAttributesContext_1.useMaskAttributeValue)();
|
|
51
|
+
var metadata = (0, MdmModuleContext_1.useMdmMetadata)();
|
|
52
|
+
var entityFromContext = (0, react_1.useContext)(EntityContext_1.EntityContext);
|
|
53
|
+
var mainEntity = (0, MdmModuleContext_1.useMdmEntity)();
|
|
54
|
+
var entity = entityProp || entityFromContext || mainEntity;
|
|
13
55
|
var canUnmaskAttribute = (0, mdm_sdk_1.checkCanUnmaskAttribute)(attributeType);
|
|
14
56
|
var _b = (0, MaskedAttributesContext_1.useUnmaskedAttributeValue)(attributeValue.uri) || {}, unmaskedAttributeValue = _b.attributeValue, _c = _b.isUnmasked, isUnmasked = _c === void 0 ? false : _c, _d = _b.loading, loading = _d === void 0 ? false : _d;
|
|
15
57
|
var isUnmaskingNeeded = unmaskAttributeValue && maskAttributeValue && !!attributeType.masking && isViewMode && canUnmaskAttribute;
|
|
16
|
-
var unmask = (0, react_1.useCallback)(function () {
|
|
17
|
-
return
|
|
18
|
-
|
|
58
|
+
var unmask = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
59
|
+
return __generator(this, function (_a) {
|
|
60
|
+
switch (_a.label) {
|
|
61
|
+
case 0:
|
|
62
|
+
if (!isUnmaskingNeeded) return [3 /*break*/, 2];
|
|
63
|
+
return [4 /*yield*/, unmaskAttributeValue(attributeValue.uri)];
|
|
64
|
+
case 1:
|
|
65
|
+
_a.sent();
|
|
66
|
+
(0, helpers_1.sendUnmaskActivity)({ attributeValue: attributeValue, entity: entity, metadata: metadata });
|
|
67
|
+
return [3 /*break*/, 3];
|
|
68
|
+
case 2: return [2 /*return*/, Promise.resolve()];
|
|
69
|
+
case 3: return [2 /*return*/];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}); }, [unmaskAttributeValue, attributeValue, entity, metadata, isUnmaskingNeeded]);
|
|
19
73
|
var toggleMasking = (0, react_1.useCallback)(function () {
|
|
20
74
|
if (isUnmasked) {
|
|
21
75
|
maskAttributeValue(attributeValue.uri);
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { ACTIVITY_TYPES, createActivity, getAttributeTypesHierarchyByUri, getBaseUri, getAttributeTypeUriByValueUri, isRelationUri } from '@reltio/mdm-sdk';
|
|
38
|
+
export var sendUnmaskActivity = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
39
|
+
var isRelationAttribute, attributeTypeUri, rootUri, hierarchy, path, label, error_1;
|
|
40
|
+
var attributeValue = _b.attributeValue, entity = _b.entity, metadata = _b.metadata;
|
|
41
|
+
return __generator(this, function (_c) {
|
|
42
|
+
switch (_c.label) {
|
|
43
|
+
case 0:
|
|
44
|
+
_c.trys.push([0, 2, , 3]);
|
|
45
|
+
isRelationAttribute = isRelationUri(attributeValue.uri);
|
|
46
|
+
attributeTypeUri = isRelationAttribute
|
|
47
|
+
? attributeValue.type
|
|
48
|
+
: getAttributeTypeUriByValueUri(attributeValue.uri, entity.type);
|
|
49
|
+
rootUri = getBaseUri(attributeTypeUri);
|
|
50
|
+
hierarchy = getAttributeTypesHierarchyByUri(metadata, attributeTypeUri, rootUri);
|
|
51
|
+
path = hierarchy.map(function (type) { return type.label; }).join(' / ');
|
|
52
|
+
label = "".concat(entity.label, ":").concat(isRelationAttribute ? ' Relationship' : '', " ").concat(path, " - ").concat(attributeValue.value);
|
|
53
|
+
return [4 /*yield*/, createActivity({
|
|
54
|
+
label: ACTIVITY_TYPES.attributeUnmasked,
|
|
55
|
+
description: JSON.stringify({ uri: entity.uri, label: label }),
|
|
56
|
+
items: [{ objectUri: entity.uri }]
|
|
57
|
+
})];
|
|
58
|
+
case 1:
|
|
59
|
+
_c.sent();
|
|
60
|
+
return [3 /*break*/, 3];
|
|
61
|
+
case 2:
|
|
62
|
+
error_1 = _c.sent();
|
|
63
|
+
console.warn(error_1);
|
|
64
|
+
return [3 /*break*/, 3];
|
|
65
|
+
case 3: return [2 /*return*/];
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}); };
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { AttributeTypeForMasking, SimpleAttributeValue } from '@reltio/mdm-sdk';
|
|
1
|
+
import { AttributeTypeForMasking, Entity, SimpleAttributeValue } from '@reltio/mdm-sdk';
|
|
2
2
|
type Props = {
|
|
3
3
|
attributeValue: SimpleAttributeValue;
|
|
4
4
|
attributeType: AttributeTypeForMasking;
|
|
5
|
+
entity?: Entity;
|
|
5
6
|
};
|
|
6
|
-
export declare const useMaskedAttribute: ({ attributeType, attributeValue }: Props) => {
|
|
7
|
+
export declare const useMaskedAttribute: ({ attributeType, attributeValue, entity: entityProp }: Props) => {
|
|
7
8
|
isUnmaskingNeeded: any;
|
|
8
9
|
isMasked: boolean;
|
|
9
10
|
toggleMasking: () => void;
|
|
10
11
|
isUnmasking: boolean;
|
|
11
|
-
unmask: () => Promise<void
|
|
12
|
+
unmask: () => Promise<void>;
|
|
12
13
|
attributeValue: SimpleAttributeValue;
|
|
13
14
|
};
|
|
14
15
|
export {};
|
|
@@ -1,18 +1,72 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { useCallback, useContext } from 'react';
|
|
38
|
+
import { useMdmIsViewMode, useMdmEntity, useMdmMetadata } from '../../contexts/MdmModuleContext';
|
|
39
|
+
import { EntityContext } from '../../contexts/EntityContext';
|
|
3
40
|
import { checkCanUnmaskAttribute } from '@reltio/mdm-sdk';
|
|
4
41
|
import { useMaskAttributeValue, useUnmaskAttributeValue, useUnmaskedAttributeValue } from '../../contexts/MaskedAttributesContext';
|
|
42
|
+
import { sendUnmaskActivity } from './helpers';
|
|
5
43
|
export var useMaskedAttribute = function (_a) {
|
|
6
|
-
var attributeType = _a.attributeType, attributeValue = _a.attributeValue;
|
|
44
|
+
var attributeType = _a.attributeType, attributeValue = _a.attributeValue, entityProp = _a.entity;
|
|
7
45
|
var isViewMode = useMdmIsViewMode();
|
|
8
46
|
var unmaskAttributeValue = useUnmaskAttributeValue();
|
|
9
47
|
var maskAttributeValue = useMaskAttributeValue();
|
|
48
|
+
var metadata = useMdmMetadata();
|
|
49
|
+
var entityFromContext = useContext(EntityContext);
|
|
50
|
+
var mainEntity = useMdmEntity();
|
|
51
|
+
var entity = entityProp || entityFromContext || mainEntity;
|
|
10
52
|
var canUnmaskAttribute = checkCanUnmaskAttribute(attributeType);
|
|
11
53
|
var _b = useUnmaskedAttributeValue(attributeValue.uri) || {}, unmaskedAttributeValue = _b.attributeValue, _c = _b.isUnmasked, isUnmasked = _c === void 0 ? false : _c, _d = _b.loading, loading = _d === void 0 ? false : _d;
|
|
12
54
|
var isUnmaskingNeeded = unmaskAttributeValue && maskAttributeValue && !!attributeType.masking && isViewMode && canUnmaskAttribute;
|
|
13
|
-
var unmask = useCallback(function () {
|
|
14
|
-
return
|
|
15
|
-
|
|
55
|
+
var unmask = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
56
|
+
return __generator(this, function (_a) {
|
|
57
|
+
switch (_a.label) {
|
|
58
|
+
case 0:
|
|
59
|
+
if (!isUnmaskingNeeded) return [3 /*break*/, 2];
|
|
60
|
+
return [4 /*yield*/, unmaskAttributeValue(attributeValue.uri)];
|
|
61
|
+
case 1:
|
|
62
|
+
_a.sent();
|
|
63
|
+
sendUnmaskActivity({ attributeValue: attributeValue, entity: entity, metadata: metadata });
|
|
64
|
+
return [3 /*break*/, 3];
|
|
65
|
+
case 2: return [2 /*return*/, Promise.resolve()];
|
|
66
|
+
case 3: return [2 /*return*/];
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}); }, [unmaskAttributeValue, attributeValue, entity, metadata, isUnmaskingNeeded]);
|
|
16
70
|
var toggleMasking = useCallback(function () {
|
|
17
71
|
if (isUnmasked) {
|
|
18
72
|
maskAttributeValue(attributeValue.uri);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reltio/components",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2079",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE FILE",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./index.js",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"@fluentui/react-context-selector": "^9.1.26",
|
|
12
12
|
"@googlemaps/markerclusterer": "^2.5.3",
|
|
13
13
|
"@react-sigma/core": "3.4.0",
|
|
14
|
-
"@reltio/mdm-sdk": "^1.4.
|
|
14
|
+
"@reltio/mdm-sdk": "^1.4.1922",
|
|
15
15
|
"@vis.gl/react-google-maps": "^1.3.0",
|
|
16
16
|
"d3-cloud": "^1.2.5",
|
|
17
17
|
"d3-geo": "^2.0.1",
|