@reltio/components 1.4.1921 → 1.4.1922

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.
@@ -1,7 +1,7 @@
1
1
  import { AttributeType, SimpleAttributeValue } from '@reltio/mdm-sdk';
2
2
  type Props = {
3
3
  attributeValue: SimpleAttributeValue;
4
- attributeType: AttributeType;
4
+ attributeType: Pick<AttributeType, 'masking'>;
5
5
  };
6
6
  export declare const useMaskedAttribute: ({ attributeType, attributeValue }: Props) => {
7
7
  isUnmaskingNeeded: boolean;
@@ -55,8 +55,9 @@ var useRelationsLoader = function (_a) {
55
55
  };
56
56
  var suggested = config.suggested;
57
57
  var options = (0, react_1.useMemo)(function () { return ({
58
- searchByOv: searchByOv
59
- }); }, [searchByOv]);
58
+ searchByOv: searchByOv,
59
+ sendMasked: (0, mdm_sdk_1.hasRelationMasking)(metadata)
60
+ }); }, [searchByOv, metadata]);
60
61
  var modeRef = (0, react_1.useRef)(mode);
61
62
  modeRef.current = mode;
62
63
  var loadRelations = (0, react_1.useCallback)(function () {
@@ -112,6 +112,48 @@ var setUp = function (_a) {
112
112
  };
113
113
  return __assign(__assign({}, (0, react_hooks_1.renderHook)(useRelationsLoader_1.useRelationsLoader, { initialProps: props, wrapper: Providers })), { updateMdmValues: updateMdmValues });
114
114
  };
115
+ var createMetadata = function (entityAccess, relationAccess) {
116
+ if (entityAccess === void 0) { entityAccess = []; }
117
+ if (relationAccess === void 0) { relationAccess = []; }
118
+ return {
119
+ entityTypes: [
120
+ {
121
+ uri: 'configuration/entityTypes/HCP',
122
+ label: 'HCP',
123
+ access: entityAccess,
124
+ attributes: [],
125
+ abstract: false,
126
+ businessCardAttributeURIs: []
127
+ },
128
+ {
129
+ uri: 'configuration/entityTypes/HCA',
130
+ label: 'HCA',
131
+ access: ['DELETE', 'READ', 'CREATE', 'UPDATE'],
132
+ attributes: [],
133
+ abstract: false,
134
+ businessCardAttributeURIs: []
135
+ }
136
+ ],
137
+ relationTypes: [
138
+ {
139
+ uri: 'configuration/entityTypes/HCPtoHCA',
140
+ label: 'HCP2HCA',
141
+ access: ['DELETE', 'READ', 'CREATE', 'UPDATE'],
142
+ attributes: [],
143
+ abstract: false,
144
+ businessCardAttributeURIs: []
145
+ },
146
+ {
147
+ uri: 'configuration/entityTypes/HCPtoHCP',
148
+ label: 'HCP',
149
+ access: relationAccess,
150
+ attributes: [],
151
+ abstract: false,
152
+ businessCardAttributeURIs: []
153
+ }
154
+ ]
155
+ };
156
+ };
115
157
  describe('useRelationsLoader behaviour', function () {
116
158
  var connections = [
117
159
  {
@@ -126,11 +168,13 @@ describe('useRelationsLoader behaviour', function () {
126
168
  jest.clearAllMocks();
127
169
  });
128
170
  it('should call getRelationsForEntity if reload is called', function () { return __awaiter(void 0, void 0, void 0, function () {
129
- var _a, result, waitFor;
171
+ var metadata, mdmValues, _a, result, waitFor;
130
172
  return __generator(this, function (_b) {
131
173
  switch (_b.label) {
132
174
  case 0:
133
- _a = setUp(), result = _a.result, waitFor = _a.waitFor;
175
+ metadata = createMetadata(['DELETE', 'READ', 'CREATE', 'UPDATE']);
176
+ mdmValues = __assign(__assign({}, defaultMdmValues), { metadata: metadata });
177
+ _a = setUp({ mdmValues: mdmValues }), result = _a.result, waitFor = _a.waitFor;
134
178
  (0, react_hooks_1.act)(function () {
135
179
  result.current.reload();
136
180
  });
@@ -149,11 +193,13 @@ describe('useRelationsLoader behaviour', function () {
149
193
  });
150
194
  }); });
151
195
  it('should call reload on change lastLoadedTime', function () { return __awaiter(void 0, void 0, void 0, function () {
152
- var _a, result, waitFor, updateMdmValues, reloadFirst, reloadNext;
196
+ var metadata, mdmValues, _a, result, waitFor, updateMdmValues, reloadFirst, reloadNext;
153
197
  return __generator(this, function (_b) {
154
198
  switch (_b.label) {
155
199
  case 0:
156
- _a = setUp(), result = _a.result, waitFor = _a.waitFor, updateMdmValues = _a.updateMdmValues;
200
+ metadata = createMetadata(['DELETE', 'READ', 'CREATE', 'UPDATE']);
201
+ mdmValues = __assign(__assign({}, defaultMdmValues), { metadata: metadata });
202
+ _a = setUp({ mdmValues: mdmValues }), result = _a.result, waitFor = _a.waitFor, updateMdmValues = _a.updateMdmValues;
157
203
  reloadFirst = result.current.reload;
158
204
  (0, react_hooks_1.act)(function () {
159
205
  updateMdmValues(function (prev) { return (__assign(__assign({}, prev), { profileLastLoadedTime: 1674037143200 })); });
@@ -169,48 +215,6 @@ describe('useRelationsLoader behaviour', function () {
169
215
  });
170
216
  }); });
171
217
  describe('security related', function () {
172
- var createMetadata = function (entityAccess, relationAccess) {
173
- if (entityAccess === void 0) { entityAccess = []; }
174
- if (relationAccess === void 0) { relationAccess = []; }
175
- return {
176
- entityTypes: [
177
- {
178
- uri: 'configuration/entityTypes/HCP',
179
- label: 'HCP',
180
- access: entityAccess,
181
- attributes: [],
182
- abstract: false,
183
- businessCardAttributeURIs: []
184
- },
185
- {
186
- uri: 'configuration/entityTypes/HCA',
187
- label: 'HCA',
188
- access: ['DELETE', 'READ', 'CREATE', 'UPDATE'],
189
- attributes: [],
190
- abstract: false,
191
- businessCardAttributeURIs: []
192
- }
193
- ],
194
- relationTypes: [
195
- {
196
- uri: 'configuration/entityTypes/HCPtoHCA',
197
- label: 'HCP2HCA',
198
- access: ['DELETE', 'READ', 'CREATE', 'UPDATE'],
199
- attributes: [],
200
- abstract: false,
201
- businessCardAttributeURIs: []
202
- },
203
- {
204
- uri: 'configuration/entityTypes/HCPtoHCP',
205
- label: 'HCP',
206
- access: relationAccess,
207
- attributes: [],
208
- abstract: false,
209
- businessCardAttributeURIs: []
210
- }
211
- ]
212
- };
213
- };
214
218
  it('should filter out relations current user does not have access to', function () { return __awaiter(void 0, void 0, void 0, function () {
215
219
  var metadata, config, props, mdmValues, _a, result, waitFor;
216
220
  return __generator(this, function (_b) {
@@ -245,7 +249,10 @@ describe('useRelationsLoader behaviour', function () {
245
249
  returnDates: true,
246
250
  returnObjects: true
247
251
  }
248
- ], { searchByOv: false });
252
+ ], {
253
+ searchByOv: false,
254
+ sendMasked: false
255
+ });
249
256
  return [4 /*yield*/, waitFor(function () { return expect(result.current.isLoading).toBe(false); })];
250
257
  case 1:
251
258
  _b.sent();
@@ -314,7 +321,10 @@ describe('useRelationsLoader behaviour', function () {
314
321
  outRelations: ['configuration/entityTypes/HCPtoHCA']
315
322
  }
316
323
  }
317
- ], { searchByOv: false });
324
+ ], {
325
+ searchByOv: false,
326
+ sendMasked: false
327
+ });
318
328
  return [4 /*yield*/, waitFor(function () { return expect(result.current.isLoading).toBe(false); })];
319
329
  case 1:
320
330
  _b.sent();
@@ -439,7 +449,10 @@ describe('useRelationsLoader behaviour', function () {
439
449
  returnDates: true,
440
450
  returnObjects: true
441
451
  }
442
- ], { searchByOv: false });
452
+ ], {
453
+ searchByOv: false,
454
+ sendMasked: false
455
+ });
443
456
  return [4 /*yield*/, waitFor(function () { return expect(result.current.isLoading).toBe(false); })];
444
457
  case 1:
445
458
  _b.sent();
package/cjs/index.d.ts CHANGED
@@ -258,6 +258,7 @@ export { useBasicTableCellRenderer, BasicTableCellRenderer } from './hooks/useBa
258
258
  export { useClickableChartStyle as useClickableStyle } from './hooks/useClickableChartStyle';
259
259
  export { useDynamicRowCellHeight } from './hooks/useDynamicRowCellHeight';
260
260
  export { useKeyboardNavigation } from './hooks/useKeyboardNavigation';
261
+ export { useMaskedAttribute } from './hooks/useMaskedAttribute';
261
262
  export { buildColumnsFilter, columnFilterToMdmFilter, defaultGetRowCellHeight, defaultRenderRowCell } from './helpers/basicTable';
262
263
  export { enrichDataWithPercents } from './helpers/charts';
263
264
  export { showDefaultErrorMessage, showErrorMessage } from './helpers/errors';
package/cjs/index.js CHANGED
@@ -19,8 +19,8 @@ exports.ErrorMessage = exports.ConfigureColumnsPopup = exports.ConnectionEditor
19
19
  exports.PotentialMatchReviewCard = exports.PopupWithArrow = exports.Popper = exports.MultipleInput = exports.ModeSwitcherSelect = exports.ModeSwitcher = exports.TransitiveMatchBlock = exports.SimpleMatchRulesBuilder = exports.SimpleMatchRulesBlock = exports.SimpleMatchRules = exports.MatchRulesBlock = exports.LoadingSpinner = exports.Link = exports.LinearLoadIndicator = exports.ImportButton = exports.ReadableSearchQuery = exports.LogicOperator = exports.TableSkeleton = exports.StepNavigation = exports.TenantLabel = exports.RelevanceScoreBadge = exports.RequiredMark = exports.SettingsMenu = exports.TenantsDropDownSelector = exports.TenantIcon = exports.SourceSystemsSelector = exports.MatchRulesSelector = exports.MultiValueSelector = exports.ProfilesList = exports.NotMatchButton = exports.MergeButton = exports.ProfileMatchCard = exports.ImageGalleryDialog = exports.RelationTypesSelector = exports.ScreenProfileBand = exports.ProfileBandNavigation = exports.EmptyStub = exports.SaveSegmentDialog = exports.MaskingSwitcher = exports.FileTypeEditor = exports.EmptySearchResult = exports.DropDownEditor = exports.FilterValueEditor = exports.MultiValueChip = exports.TextEditor = exports.DateRangeEditor = exports.NumberEditor = exports.DataTypeValueEditor = exports.DateEditor = exports.ErrorWrapper = void 0;
20
20
  exports.PerspectivesSettingsContext = exports.PivotingAttributeContext = exports.UsersContext = exports.InitialCollaborationContextValue = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockImageGalleryDialogContext = exports.PopupBoundariesContext = exports.HistoryDiffContext = exports.AsyncMountContext = exports.MdmModuleProvider = exports.withTableContext = exports.withFilterAtBottom = exports.withPercents = exports.withContext = exports.withDateRangeSelector = exports.withDragHandle = exports.withAsyncMount = exports.withTooltip = exports.GaugeChart = exports.RelationEditor = exports.ReltioMap = exports.Marginator = exports.LightArrowTooltip = exports.ScrollableTabs = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = exports.SidePanelEmptyState = exports.SideButtonsPanel = exports.SelectorWithOnlyOptionAutoSelect = exports.SelectionPopup = exports.WhiteSearchInput = exports.SearchInput = exports.ProfileResizablePanes = exports.ResizablePanes = exports.ReltioGridLayout = exports.reactSortableTreeHelpers = exports.ReactSortableTree = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = void 0;
21
21
  exports.BasicTableContext = exports.BasicTableRowCollapseContext = exports.useUnmaskedAttributeValue = exports.useUnmaskAttributeValue = exports.useMaskAttributeValue = exports.MaskedAttributesProvider = exports.SegmentationContext = exports.useReloadData = exports.ReloadDataProvider = exports.useAttributeValueConfigPermissions = exports.ConfigPermissionsContextProvider = exports.ConfigPermissionsContext = exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.EntityContext = exports.RelatedObjectUrisContext = exports.WorkflowTasksContext = exports.useEntityLoadingIndication = exports.EntityLoadingIndicationProvider = exports.EntityMarkerContext = exports.useAttributeExpanded = exports.ExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.usePerspectivesSettings = void 0;
22
- exports.mergeClasses = exports.isControlOrCommandPressed = exports.getValue = exports.getChecked = exports.showErrorMessage = exports.showDefaultErrorMessage = exports.enrichDataWithPercents = exports.defaultRenderRowCell = exports.defaultGetRowCellHeight = exports.columnFilterToMdmFilter = exports.buildColumnsFilter = exports.useKeyboardNavigation = exports.useDynamicRowCellHeight = exports.useClickableStyle = exports.BasicTableCellRenderer = exports.useBasicTableCellRenderer = exports.useHiddenAttributes = exports.useSavedSearchesRequest = exports.useRequestDCRReview = exports.useAutoFocus = exports.useExpandInvalidRelations = exports.useLayoutResetter = exports.useIsMountedRef = exports.useSnackbar = exports.useSavedStateForEntityType = exports.useReadableSearchState = exports.useEditableConnection = exports.useCustomScripts = exports.useMarkAsNotMatchRequest = exports.useMergeAllRequest = exports.usePagingSimulator = exports.useMatchesLoader = exports.useConfigPermissions = exports.useWhyDidYouUpdate = exports.useUsers = exports.useSavedState = exports.useSafePromise = exports.useRunOnceAfterValueInitialization = exports.useRelationsLoader = exports.useRelationTypeSelector = exports.usePrevious = exports.useDidUpdateEffect = exports.useCommentsEntitiesMap = exports.useCollaboration = exports.useAsyncMount = exports.useAPI = exports.useActions = exports.useMatchesColumnsData = exports.useScrollToAttributeError = exports.HiddenAttributesContext = void 0;
23
- exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.delayPromise = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = void 0;
22
+ exports.isControlOrCommandPressed = exports.getValue = exports.getChecked = exports.showErrorMessage = exports.showDefaultErrorMessage = exports.enrichDataWithPercents = exports.defaultRenderRowCell = exports.defaultGetRowCellHeight = exports.columnFilterToMdmFilter = exports.buildColumnsFilter = exports.useMaskedAttribute = exports.useKeyboardNavigation = exports.useDynamicRowCellHeight = exports.useClickableStyle = exports.BasicTableCellRenderer = exports.useBasicTableCellRenderer = exports.useHiddenAttributes = exports.useSavedSearchesRequest = exports.useRequestDCRReview = exports.useAutoFocus = exports.useExpandInvalidRelations = exports.useLayoutResetter = exports.useIsMountedRef = exports.useSnackbar = exports.useSavedStateForEntityType = exports.useReadableSearchState = exports.useEditableConnection = exports.useCustomScripts = exports.useMarkAsNotMatchRequest = exports.useMergeAllRequest = exports.usePagingSimulator = exports.useMatchesLoader = exports.useConfigPermissions = exports.useWhyDidYouUpdate = exports.useUsers = exports.useSavedState = exports.useSafePromise = exports.useRunOnceAfterValueInitialization = exports.useRelationsLoader = exports.useRelationTypeSelector = exports.usePrevious = exports.useDidUpdateEffect = exports.useCommentsEntitiesMap = exports.useCollaboration = exports.useAsyncMount = exports.useAPI = exports.useActions = exports.useMatchesColumnsData = exports.useScrollToAttributeError = exports.HiddenAttributesContext = void 0;
23
+ exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.delayPromise = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.mergeClasses = void 0;
24
24
  // components
25
25
  var ActionButton_1 = require("./ActionButton");
26
26
  Object.defineProperty(exports, "ActionButton", { enumerable: true, get: function () { return ActionButton_1.ActionButton; } });
@@ -574,6 +574,8 @@ var useDynamicRowCellHeight_1 = require("./hooks/useDynamicRowCellHeight");
574
574
  Object.defineProperty(exports, "useDynamicRowCellHeight", { enumerable: true, get: function () { return useDynamicRowCellHeight_1.useDynamicRowCellHeight; } });
575
575
  var useKeyboardNavigation_1 = require("./hooks/useKeyboardNavigation");
576
576
  Object.defineProperty(exports, "useKeyboardNavigation", { enumerable: true, get: function () { return useKeyboardNavigation_1.useKeyboardNavigation; } });
577
+ var useMaskedAttribute_1 = require("./hooks/useMaskedAttribute");
578
+ Object.defineProperty(exports, "useMaskedAttribute", { enumerable: true, get: function () { return useMaskedAttribute_1.useMaskedAttribute; } });
577
579
  // helpers
578
580
  var basicTable_1 = require("./helpers/basicTable");
579
581
  Object.defineProperty(exports, "buildColumnsFilter", { enumerable: true, get: function () { return basicTable_1.buildColumnsFilter; } });
@@ -1,7 +1,7 @@
1
1
  import { AttributeType, SimpleAttributeValue } from '@reltio/mdm-sdk';
2
2
  type Props = {
3
3
  attributeValue: SimpleAttributeValue;
4
- attributeType: AttributeType;
4
+ attributeType: Pick<AttributeType, 'masking'>;
5
5
  };
6
6
  export declare const useMaskedAttribute: ({ attributeType, attributeValue }: Props) => {
7
7
  isUnmaskingNeeded: boolean;
@@ -12,7 +12,7 @@ var __assign = (this && this.__assign) || function () {
12
12
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
13
13
  import { cond, pipe, prop, T, evolve, filter as filterFn, when, identity, times, length, ifElse, always } from 'ramda';
14
14
  import i18n from 'ui-i18n';
15
- import { ActivityFilter, addGlobalFilterToQuery, getRelationsForDataTenantEntity, getRelationsForEntity, isAvailableEntityTypeUri, isAvailableRelationTypeUri, isDataTenantEntity, getInOutRelationUri, isTempUri, Mode, wrapInArrayIfNeeded } from '@reltio/mdm-sdk';
15
+ import { ActivityFilter, addGlobalFilterToQuery, getRelationsForDataTenantEntity, getRelationsForEntity, isAvailableEntityTypeUri, isAvailableRelationTypeUri, isDataTenantEntity, getInOutRelationUri, isTempUri, Mode, wrapInArrayIfNeeded, hasRelationMasking } from '@reltio/mdm-sdk';
16
16
  import { useSafePromise } from '../useSafePromise';
17
17
  import { usePrevious } from '../usePrevious';
18
18
  import { useMdmAction, useMdmDtssPath, useMdmGlobalSearchRequestOptions, useMdmMetadata, useMdmProfileLastLoadedTime, useMdmTenant } from '../../contexts/MdmModuleContext';
@@ -49,8 +49,9 @@ export var useRelationsLoader = function (_a) {
49
49
  };
50
50
  var suggested = config.suggested;
51
51
  var options = useMemo(function () { return ({
52
- searchByOv: searchByOv
53
- }); }, [searchByOv]);
52
+ searchByOv: searchByOv,
53
+ sendMasked: hasRelationMasking(metadata)
54
+ }); }, [searchByOv, metadata]);
54
55
  var modeRef = useRef(mode);
55
56
  modeRef.current = mode;
56
57
  var loadRelations = useCallback(function () {
@@ -87,6 +87,48 @@ var setUp = function (_a) {
87
87
  };
88
88
  return __assign(__assign({}, renderHook(useRelationsLoader, { initialProps: props, wrapper: Providers })), { updateMdmValues: updateMdmValues });
89
89
  };
90
+ var createMetadata = function (entityAccess, relationAccess) {
91
+ if (entityAccess === void 0) { entityAccess = []; }
92
+ if (relationAccess === void 0) { relationAccess = []; }
93
+ return {
94
+ entityTypes: [
95
+ {
96
+ uri: 'configuration/entityTypes/HCP',
97
+ label: 'HCP',
98
+ access: entityAccess,
99
+ attributes: [],
100
+ abstract: false,
101
+ businessCardAttributeURIs: []
102
+ },
103
+ {
104
+ uri: 'configuration/entityTypes/HCA',
105
+ label: 'HCA',
106
+ access: ['DELETE', 'READ', 'CREATE', 'UPDATE'],
107
+ attributes: [],
108
+ abstract: false,
109
+ businessCardAttributeURIs: []
110
+ }
111
+ ],
112
+ relationTypes: [
113
+ {
114
+ uri: 'configuration/entityTypes/HCPtoHCA',
115
+ label: 'HCP2HCA',
116
+ access: ['DELETE', 'READ', 'CREATE', 'UPDATE'],
117
+ attributes: [],
118
+ abstract: false,
119
+ businessCardAttributeURIs: []
120
+ },
121
+ {
122
+ uri: 'configuration/entityTypes/HCPtoHCP',
123
+ label: 'HCP',
124
+ access: relationAccess,
125
+ attributes: [],
126
+ abstract: false,
127
+ businessCardAttributeURIs: []
128
+ }
129
+ ]
130
+ };
131
+ };
90
132
  describe('useRelationsLoader behaviour', function () {
91
133
  var connections = [
92
134
  {
@@ -101,11 +143,13 @@ describe('useRelationsLoader behaviour', function () {
101
143
  jest.clearAllMocks();
102
144
  });
103
145
  it('should call getRelationsForEntity if reload is called', function () { return __awaiter(void 0, void 0, void 0, function () {
104
- var _a, result, waitFor;
146
+ var metadata, mdmValues, _a, result, waitFor;
105
147
  return __generator(this, function (_b) {
106
148
  switch (_b.label) {
107
149
  case 0:
108
- _a = setUp(), result = _a.result, waitFor = _a.waitFor;
150
+ metadata = createMetadata(['DELETE', 'READ', 'CREATE', 'UPDATE']);
151
+ mdmValues = __assign(__assign({}, defaultMdmValues), { metadata: metadata });
152
+ _a = setUp({ mdmValues: mdmValues }), result = _a.result, waitFor = _a.waitFor;
109
153
  act(function () {
110
154
  result.current.reload();
111
155
  });
@@ -124,11 +168,13 @@ describe('useRelationsLoader behaviour', function () {
124
168
  });
125
169
  }); });
126
170
  it('should call reload on change lastLoadedTime', function () { return __awaiter(void 0, void 0, void 0, function () {
127
- var _a, result, waitFor, updateMdmValues, reloadFirst, reloadNext;
171
+ var metadata, mdmValues, _a, result, waitFor, updateMdmValues, reloadFirst, reloadNext;
128
172
  return __generator(this, function (_b) {
129
173
  switch (_b.label) {
130
174
  case 0:
131
- _a = setUp(), result = _a.result, waitFor = _a.waitFor, updateMdmValues = _a.updateMdmValues;
175
+ metadata = createMetadata(['DELETE', 'READ', 'CREATE', 'UPDATE']);
176
+ mdmValues = __assign(__assign({}, defaultMdmValues), { metadata: metadata });
177
+ _a = setUp({ mdmValues: mdmValues }), result = _a.result, waitFor = _a.waitFor, updateMdmValues = _a.updateMdmValues;
132
178
  reloadFirst = result.current.reload;
133
179
  act(function () {
134
180
  updateMdmValues(function (prev) { return (__assign(__assign({}, prev), { profileLastLoadedTime: 1674037143200 })); });
@@ -144,48 +190,6 @@ describe('useRelationsLoader behaviour', function () {
144
190
  });
145
191
  }); });
146
192
  describe('security related', function () {
147
- var createMetadata = function (entityAccess, relationAccess) {
148
- if (entityAccess === void 0) { entityAccess = []; }
149
- if (relationAccess === void 0) { relationAccess = []; }
150
- return {
151
- entityTypes: [
152
- {
153
- uri: 'configuration/entityTypes/HCP',
154
- label: 'HCP',
155
- access: entityAccess,
156
- attributes: [],
157
- abstract: false,
158
- businessCardAttributeURIs: []
159
- },
160
- {
161
- uri: 'configuration/entityTypes/HCA',
162
- label: 'HCA',
163
- access: ['DELETE', 'READ', 'CREATE', 'UPDATE'],
164
- attributes: [],
165
- abstract: false,
166
- businessCardAttributeURIs: []
167
- }
168
- ],
169
- relationTypes: [
170
- {
171
- uri: 'configuration/entityTypes/HCPtoHCA',
172
- label: 'HCP2HCA',
173
- access: ['DELETE', 'READ', 'CREATE', 'UPDATE'],
174
- attributes: [],
175
- abstract: false,
176
- businessCardAttributeURIs: []
177
- },
178
- {
179
- uri: 'configuration/entityTypes/HCPtoHCP',
180
- label: 'HCP',
181
- access: relationAccess,
182
- attributes: [],
183
- abstract: false,
184
- businessCardAttributeURIs: []
185
- }
186
- ]
187
- };
188
- };
189
193
  it('should filter out relations current user does not have access to', function () { return __awaiter(void 0, void 0, void 0, function () {
190
194
  var metadata, config, props, mdmValues, _a, result, waitFor;
191
195
  return __generator(this, function (_b) {
@@ -220,7 +224,10 @@ describe('useRelationsLoader behaviour', function () {
220
224
  returnDates: true,
221
225
  returnObjects: true
222
226
  }
223
- ], { searchByOv: false });
227
+ ], {
228
+ searchByOv: false,
229
+ sendMasked: false
230
+ });
224
231
  return [4 /*yield*/, waitFor(function () { return expect(result.current.isLoading).toBe(false); })];
225
232
  case 1:
226
233
  _b.sent();
@@ -289,7 +296,10 @@ describe('useRelationsLoader behaviour', function () {
289
296
  outRelations: ['configuration/entityTypes/HCPtoHCA']
290
297
  }
291
298
  }
292
- ], { searchByOv: false });
299
+ ], {
300
+ searchByOv: false,
301
+ sendMasked: false
302
+ });
293
303
  return [4 /*yield*/, waitFor(function () { return expect(result.current.isLoading).toBe(false); })];
294
304
  case 1:
295
305
  _b.sent();
@@ -414,7 +424,10 @@ describe('useRelationsLoader behaviour', function () {
414
424
  returnDates: true,
415
425
  returnObjects: true
416
426
  }
417
- ], { searchByOv: false });
427
+ ], {
428
+ searchByOv: false,
429
+ sendMasked: false
430
+ });
418
431
  return [4 /*yield*/, waitFor(function () { return expect(result.current.isLoading).toBe(false); })];
419
432
  case 1:
420
433
  _b.sent();
package/esm/index.d.ts CHANGED
@@ -258,6 +258,7 @@ export { useBasicTableCellRenderer, BasicTableCellRenderer } from './hooks/useBa
258
258
  export { useClickableChartStyle as useClickableStyle } from './hooks/useClickableChartStyle';
259
259
  export { useDynamicRowCellHeight } from './hooks/useDynamicRowCellHeight';
260
260
  export { useKeyboardNavigation } from './hooks/useKeyboardNavigation';
261
+ export { useMaskedAttribute } from './hooks/useMaskedAttribute';
261
262
  export { buildColumnsFilter, columnFilterToMdmFilter, defaultGetRowCellHeight, defaultRenderRowCell } from './helpers/basicTable';
262
263
  export { enrichDataWithPercents } from './helpers/charts';
263
264
  export { showDefaultErrorMessage, showErrorMessage } from './helpers/errors';
package/esm/index.js CHANGED
@@ -262,6 +262,7 @@ export { useBasicTableCellRenderer, BasicTableCellRenderer } from './hooks/useBa
262
262
  export { useClickableChartStyle as useClickableStyle } from './hooks/useClickableChartStyle';
263
263
  export { useDynamicRowCellHeight } from './hooks/useDynamicRowCellHeight';
264
264
  export { useKeyboardNavigation } from './hooks/useKeyboardNavigation';
265
+ export { useMaskedAttribute } from './hooks/useMaskedAttribute';
265
266
  // helpers
266
267
  export { buildColumnsFilter, columnFilterToMdmFilter, defaultGetRowCellHeight, defaultRenderRowCell } from './helpers/basicTable';
267
268
  export { enrichDataWithPercents } from './helpers/charts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.1921",
3
+ "version": "1.4.1922",
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.1842",
11
+ "@reltio/mdm-sdk": "^1.4.1843",
12
12
  "classnames": "^2.2.5",
13
13
  "d3-cloud": "^1.2.5",
14
14
  "d3-geo": "^2.0.1",