@reltio/components 1.4.1951 → 1.4.1952
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/cjs/hooks/useMatchesLoader/useMatchesLoader.js +14 -4
- package/cjs/hooks/useMatchesLoader/useMatchesLoader.test.d.ts +1 -0
- package/cjs/hooks/useMatchesLoader/useMatchesLoader.test.js +78 -0
- package/esm/hooks/useMatchesLoader/useMatchesLoader.js +16 -6
- package/esm/hooks/useMatchesLoader/useMatchesLoader.test.d.ts +1 -0
- package/esm/hooks/useMatchesLoader/useMatchesLoader.test.js +73 -0
- package/package.json +2 -2
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
14
|
exports.useMatchesLoader = void 0;
|
|
4
15
|
var react_1 = require("react");
|
|
@@ -12,6 +23,7 @@ var useMatchesLoader = function (_a) {
|
|
|
12
23
|
var _c = (0, react_1.useState)(0), total = _c[0], setTotal = _c[1];
|
|
13
24
|
var _d = (0, react_1.useState)([]), matches = _d[0], setMatches = _d[1];
|
|
14
25
|
var _e = (0, react_1.useState)({}), entitiesMap = _e[0], setEntitiesMap = _e[1];
|
|
26
|
+
var metadata = (0, MdmModuleContext_1.useMdmMetadata)();
|
|
15
27
|
var tenant = (0, MdmModuleContext_1.useMdmTenant)();
|
|
16
28
|
var dtssPath = (0, MdmModuleContext_1.useMdmDtssPath)();
|
|
17
29
|
var dataTenants = (0, MdmModuleContext_1.useMdmDataTenants)();
|
|
@@ -56,19 +68,17 @@ var useMatchesLoader = function (_a) {
|
|
|
56
68
|
max: rowsPerPage,
|
|
57
69
|
force: force
|
|
58
70
|
})
|
|
59
|
-
: getTransitiveMatchesWithPaging({
|
|
71
|
+
: getTransitiveMatchesWithPaging(__assign(__assign({}, (0, mdm_sdk_1.addMetadataSpecificGetTransitiveMatchesOptions)(metadata, {
|
|
60
72
|
entityUri: entityUri,
|
|
61
|
-
offset: page * rowsPerPage,
|
|
62
73
|
max: rowsPerPage,
|
|
63
74
|
filter: (0, mdm_sdk_1.addGlobalFilterToQuery)(globalFilter, filter) || '',
|
|
64
75
|
rules: rules,
|
|
65
76
|
sort: field,
|
|
66
77
|
order: order,
|
|
67
|
-
force: force,
|
|
68
78
|
markMatchedValues: markMatchedValues,
|
|
69
79
|
deep: options.showTransitiveMatches ? undefined : 1,
|
|
70
80
|
activeness: activeness
|
|
71
|
-
}))
|
|
81
|
+
})), { offset: page * rowsPerPage, force: force })))
|
|
72
82
|
.then(function (result) {
|
|
73
83
|
var response = result.response, total = result.total, originalResponse = result.originalResponse;
|
|
74
84
|
setTotal(total);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var react_1 = __importDefault(require("react"));
|
|
18
|
+
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
19
|
+
var react_hooks_1 = require("@testing-library/react-hooks");
|
|
20
|
+
var MdmModuleContext_1 = require("../../contexts/MdmModuleContext");
|
|
21
|
+
var useMatchesLoader_1 = require("./useMatchesLoader");
|
|
22
|
+
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getTransitiveMatches: jest.fn() })); });
|
|
23
|
+
describe('Test useMatchesLoader hook', function () {
|
|
24
|
+
var defaultProps = {
|
|
25
|
+
enabled: true,
|
|
26
|
+
filter: '',
|
|
27
|
+
entity: {
|
|
28
|
+
uri: 'entities/0tHogNC',
|
|
29
|
+
type: 'configuration/entityTypes/HCP',
|
|
30
|
+
attributes: {}
|
|
31
|
+
},
|
|
32
|
+
options: { showTransitiveMatches: false },
|
|
33
|
+
page: 0,
|
|
34
|
+
rowsPerPage: 3
|
|
35
|
+
};
|
|
36
|
+
var getMetadata = function () { return ({
|
|
37
|
+
uri: 'configuration',
|
|
38
|
+
entityTypes: [
|
|
39
|
+
{
|
|
40
|
+
uri: 'configuration/entityTypes/HCP',
|
|
41
|
+
attributes: [
|
|
42
|
+
{
|
|
43
|
+
uri: 'configuration/entityTypes/HCP/attributes/Name',
|
|
44
|
+
type: 'String',
|
|
45
|
+
label: 'Name',
|
|
46
|
+
name: 'Name'
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}); };
|
|
52
|
+
var defaultMdmValues = { metadata: getMetadata() };
|
|
53
|
+
var setUp = function (_a) {
|
|
54
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d;
|
|
55
|
+
var Providers = function (_a) {
|
|
56
|
+
var children = _a.children;
|
|
57
|
+
return react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: mdmValues }, children);
|
|
58
|
+
};
|
|
59
|
+
return __assign({}, (0, react_hooks_1.renderHook)(useMatchesLoader_1.useMatchesLoader, { initialProps: props, wrapper: Providers }));
|
|
60
|
+
};
|
|
61
|
+
afterEach(function () {
|
|
62
|
+
jest.clearAllMocks();
|
|
63
|
+
});
|
|
64
|
+
describe('Data masking behaviour', function () {
|
|
65
|
+
it('should call transitive endpoint without options if metadata doesnt have masked attribute', function () {
|
|
66
|
+
setUp();
|
|
67
|
+
expect(mdm_sdk_1.getTransitiveMatches).toHaveBeenCalledTimes(1);
|
|
68
|
+
expect(mdm_sdk_1.getTransitiveMatches).not.toHaveBeenCalledWith(expect.objectContaining({ options: expect.anything() }));
|
|
69
|
+
});
|
|
70
|
+
it('should call transitive endpoint with sendMasked option if metadata has masked attribute', function () {
|
|
71
|
+
var metadata = getMetadata();
|
|
72
|
+
metadata.entityTypes[0].attributes[0].masking = { regexPattern: '.{4}$' };
|
|
73
|
+
setUp({ mdmValues: { metadata: metadata } });
|
|
74
|
+
expect(mdm_sdk_1.getTransitiveMatches).toHaveBeenCalledTimes(1);
|
|
75
|
+
expect(mdm_sdk_1.getTransitiveMatches).toHaveBeenCalledWith(expect.objectContaining({ options: 'sendMasked' }));
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
1
12
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
2
|
-
import { ActivityFilter, collectAllTransitiveEntitiesUris, getEntitiesMapForTransitiveMatches, getMatchesForDataTenantEntity, getMatchesFromDataTenants, getTransitiveMatches, isDataTenantEntity, isTempUri, withDtssPotentialItems, addGlobalFilterToQuery } from '@reltio/mdm-sdk';
|
|
13
|
+
import { ActivityFilter, collectAllTransitiveEntitiesUris, getEntitiesMapForTransitiveMatches, getMatchesForDataTenantEntity, getMatchesFromDataTenants, getTransitiveMatches, isDataTenantEntity, isTempUri, withDtssPotentialItems, addGlobalFilterToQuery, addMetadataSpecificGetTransitiveMatchesOptions } from '@reltio/mdm-sdk';
|
|
3
14
|
import { usePagingSimulator } from '../usePagingSimulator';
|
|
4
15
|
import { useSafePromise } from '../useSafePromise';
|
|
5
|
-
import { useMdmDataTenants, useMdmDtssPath, useMdmGlobalSearchRequestOptions, useMdmTenant } from '../../contexts/MdmModuleContext';
|
|
16
|
+
import { useMdmDataTenants, useMdmDtssPath, useMdmGlobalSearchRequestOptions, useMdmMetadata, useMdmTenant } from '../../contexts/MdmModuleContext';
|
|
6
17
|
export var useMatchesLoader = function (_a) {
|
|
7
18
|
var enabled = _a.enabled, entity = _a.entity, filter = _a.filter, rules = _a.rules, onFinishLoading = _a.onFinishLoading, onStartLoading = _a.onStartLoading, options = _a.options, page = _a.page, rowsPerPage = _a.rowsPerPage, sorting = _a.sorting, markMatchedValues = _a.markMatchedValues;
|
|
8
19
|
var _b = sorting || {}, order = _b.order, field = _b.field;
|
|
9
20
|
var _c = useState(0), total = _c[0], setTotal = _c[1];
|
|
10
21
|
var _d = useState([]), matches = _d[0], setMatches = _d[1];
|
|
11
22
|
var _e = useState({}), entitiesMap = _e[0], setEntitiesMap = _e[1];
|
|
23
|
+
var metadata = useMdmMetadata();
|
|
12
24
|
var tenant = useMdmTenant();
|
|
13
25
|
var dtssPath = useMdmDtssPath();
|
|
14
26
|
var dataTenants = useMdmDataTenants();
|
|
@@ -53,19 +65,17 @@ export var useMatchesLoader = function (_a) {
|
|
|
53
65
|
max: rowsPerPage,
|
|
54
66
|
force: force
|
|
55
67
|
})
|
|
56
|
-
: getTransitiveMatchesWithPaging({
|
|
68
|
+
: getTransitiveMatchesWithPaging(__assign(__assign({}, addMetadataSpecificGetTransitiveMatchesOptions(metadata, {
|
|
57
69
|
entityUri: entityUri,
|
|
58
|
-
offset: page * rowsPerPage,
|
|
59
70
|
max: rowsPerPage,
|
|
60
71
|
filter: addGlobalFilterToQuery(globalFilter, filter) || '',
|
|
61
72
|
rules: rules,
|
|
62
73
|
sort: field,
|
|
63
74
|
order: order,
|
|
64
|
-
force: force,
|
|
65
75
|
markMatchedValues: markMatchedValues,
|
|
66
76
|
deep: options.showTransitiveMatches ? undefined : 1,
|
|
67
77
|
activeness: activeness
|
|
68
|
-
}))
|
|
78
|
+
})), { offset: page * rowsPerPage, force: force })))
|
|
69
79
|
.then(function (result) {
|
|
70
80
|
var response = result.response, total = result.total, originalResponse = result.originalResponse;
|
|
71
81
|
setTotal(total);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { getTransitiveMatches } from '@reltio/mdm-sdk';
|
|
14
|
+
import { renderHook } from '@testing-library/react-hooks';
|
|
15
|
+
import { MdmModuleProvider } from '../../contexts/MdmModuleContext';
|
|
16
|
+
import { useMatchesLoader } from './useMatchesLoader';
|
|
17
|
+
jest.mock('@reltio/mdm-sdk', function () { return (__assign(__assign({}, jest.requireActual('@reltio/mdm-sdk')), { getTransitiveMatches: jest.fn() })); });
|
|
18
|
+
describe('Test useMatchesLoader hook', function () {
|
|
19
|
+
var defaultProps = {
|
|
20
|
+
enabled: true,
|
|
21
|
+
filter: '',
|
|
22
|
+
entity: {
|
|
23
|
+
uri: 'entities/0tHogNC',
|
|
24
|
+
type: 'configuration/entityTypes/HCP',
|
|
25
|
+
attributes: {}
|
|
26
|
+
},
|
|
27
|
+
options: { showTransitiveMatches: false },
|
|
28
|
+
page: 0,
|
|
29
|
+
rowsPerPage: 3
|
|
30
|
+
};
|
|
31
|
+
var getMetadata = function () { return ({
|
|
32
|
+
uri: 'configuration',
|
|
33
|
+
entityTypes: [
|
|
34
|
+
{
|
|
35
|
+
uri: 'configuration/entityTypes/HCP',
|
|
36
|
+
attributes: [
|
|
37
|
+
{
|
|
38
|
+
uri: 'configuration/entityTypes/HCP/attributes/Name',
|
|
39
|
+
type: 'String',
|
|
40
|
+
label: 'Name',
|
|
41
|
+
name: 'Name'
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}); };
|
|
47
|
+
var defaultMdmValues = { metadata: getMetadata() };
|
|
48
|
+
var setUp = function (_a) {
|
|
49
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d;
|
|
50
|
+
var Providers = function (_a) {
|
|
51
|
+
var children = _a.children;
|
|
52
|
+
return React.createElement(MdmModuleProvider, { values: mdmValues }, children);
|
|
53
|
+
};
|
|
54
|
+
return __assign({}, renderHook(useMatchesLoader, { initialProps: props, wrapper: Providers }));
|
|
55
|
+
};
|
|
56
|
+
afterEach(function () {
|
|
57
|
+
jest.clearAllMocks();
|
|
58
|
+
});
|
|
59
|
+
describe('Data masking behaviour', function () {
|
|
60
|
+
it('should call transitive endpoint without options if metadata doesnt have masked attribute', function () {
|
|
61
|
+
setUp();
|
|
62
|
+
expect(getTransitiveMatches).toHaveBeenCalledTimes(1);
|
|
63
|
+
expect(getTransitiveMatches).not.toHaveBeenCalledWith(expect.objectContaining({ options: expect.anything() }));
|
|
64
|
+
});
|
|
65
|
+
it('should call transitive endpoint with sendMasked option if metadata has masked attribute', function () {
|
|
66
|
+
var metadata = getMetadata();
|
|
67
|
+
metadata.entityTypes[0].attributes[0].masking = { regexPattern: '.{4}$' };
|
|
68
|
+
setUp({ mdmValues: { metadata: metadata } });
|
|
69
|
+
expect(getTransitiveMatches).toHaveBeenCalledTimes(1);
|
|
70
|
+
expect(getTransitiveMatches).toHaveBeenCalledWith(expect.objectContaining({ options: 'sendMasked' }));
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reltio/components",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.1952",
|
|
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.
|
|
11
|
+
"@reltio/mdm-sdk": "^1.4.1863",
|
|
12
12
|
"@upsetjs/react": "^1.11.0",
|
|
13
13
|
"d3-cloud": "^1.2.5",
|
|
14
14
|
"d3-geo": "^2.0.1",
|