@reltio/components 1.4.2133 → 1.4.2135
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/AttributesFiltersBuilder/AttributesFiltersBuilder.d.ts +2 -2
- package/AttributesFiltersButton/AttributesFiltersButton.d.ts +2 -2
- package/HOCs/withFilter/components/ColumnFilter/ColumnFilter.js +3 -2
- package/ReferenceAttributeEditor/ReferenceAttributeEditor.js +4 -2
- package/RelationEditor/RelationEditor.js +4 -2
- package/RelationEditor/RelationEditor.test.js +63 -36
- package/SimpleAttribute/IntegrationSimpleAttribute.test.js +14 -3
- package/cjs/AttributesFiltersBuilder/AttributesFiltersBuilder.d.ts +2 -2
- package/cjs/AttributesFiltersButton/AttributesFiltersButton.d.ts +2 -2
- package/cjs/HOCs/withFilter/components/ColumnFilter/ColumnFilter.js +2 -1
- package/cjs/ReferenceAttributeEditor/ReferenceAttributeEditor.js +3 -1
- package/cjs/RelationEditor/RelationEditor.js +3 -1
- package/cjs/RelationEditor/RelationEditor.test.js +63 -36
- package/cjs/SimpleAttribute/IntegrationSimpleAttribute.test.js +14 -3
- package/cjs/contexts/MdmModuleContext/context.d.ts +2 -0
- package/cjs/contexts/MdmModuleContext/hooks.d.ts +1 -0
- package/cjs/contexts/MdmModuleContext/hooks.js +3 -1
- package/cjs/contexts/MdmModuleContext/index.d.ts +1 -1
- package/cjs/contexts/MdmModuleContext/index.js +2 -1
- package/cjs/features/activity-log/hooks/useActivitiesLoader.js +3 -2
- package/cjs/features/activity-log/hooks/useProfileActivitiesLoader.js +4 -3
- package/cjs/features/history/hooks/useHistorySlice.js +3 -2
- package/cjs/features/history/hooks/useHistorySlice.test.js +13 -0
- package/cjs/helpers/attributesSelector.d.ts +1 -1
- package/cjs/helpers/attributesSelector.js +1 -1
- package/cjs/hooks/useMaskedAttribute/useMaskedAttribute.js +3 -1
- package/cjs/hooks/useMatchesLoader/useMatchesLoader.js +5 -3
- package/cjs/hooks/useMatchesLoader/useMatchesLoader.test.js +7 -0
- package/cjs/hooks/useRelationsLoader/useRelationsLoader.js +9 -5
- package/cjs/hooks/useRelationsLoader/useRelationsLoader.test.js +2 -1
- package/contexts/MdmModuleContext/context.d.ts +2 -0
- package/contexts/MdmModuleContext/hooks.d.ts +1 -0
- package/contexts/MdmModuleContext/hooks.js +1 -0
- package/contexts/MdmModuleContext/index.d.ts +1 -1
- package/contexts/MdmModuleContext/index.js +1 -1
- package/features/activity-log/hooks/useActivitiesLoader.js +5 -4
- package/features/activity-log/hooks/useProfileActivitiesLoader.js +6 -5
- package/features/history/hooks/useHistorySlice.js +5 -4
- package/features/history/hooks/useHistorySlice.test.js +13 -0
- package/helpers/attributesSelector.d.ts +1 -1
- package/helpers/attributesSelector.js +1 -1
- package/hooks/useMaskedAttribute/useMaskedAttribute.js +4 -2
- package/hooks/useMatchesLoader/useMatchesLoader.js +7 -5
- package/hooks/useMatchesLoader/useMatchesLoader.test.js +7 -0
- package/hooks/useRelationsLoader/useRelationsLoader.js +10 -6
- package/hooks/useRelationsLoader/useRelationsLoader.test.js +2 -1
- package/package.json +2 -2
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { SearchFilter } from '@reltio/mdm-sdk';
|
|
3
3
|
import { AttributeSelectionInfo, AttributeSelectorItemsGroup, AttributesFilterComponentsClasses, AttributesTypesGroup } from '../types';
|
|
4
4
|
type Props = {
|
|
5
5
|
classes?: AttributesFilterComponentsClasses;
|
|
6
6
|
filters: SearchFilter[];
|
|
7
7
|
onChange: (filters: SearchFilter[]) => void;
|
|
8
8
|
attributesTypesGroups: AttributesTypesGroup[];
|
|
9
|
-
attributesTypesGroupFilter?: (
|
|
9
|
+
attributesTypesGroupFilter?: (attributeSelectorItemsGroup: AttributeSelectorItemsGroup[]) => AttributeSelectorItemsGroup[];
|
|
10
10
|
components?: {
|
|
11
11
|
ValuesEditor?: React.ElementType;
|
|
12
12
|
FilterSelector?: React.ElementType;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { SearchFilter } from '@reltio/mdm-sdk';
|
|
3
3
|
import { AttributeSelectionInfo, AttributeSelectorItemsGroup, AttributesFilterComponentsClasses, AttributesTypesGroup } from '../types';
|
|
4
4
|
type Props = {
|
|
5
5
|
classes?: AttributesFilterComponentsClasses;
|
|
6
6
|
filters: SearchFilter[];
|
|
7
7
|
onChange: (filters: SearchFilter[]) => void;
|
|
8
8
|
attributesTypesGroups: AttributesTypesGroup[];
|
|
9
|
-
attributesTypesGroupFilter?: (
|
|
9
|
+
attributesTypesGroupFilter?: (attributeSelectorItemsGroup: AttributeSelectorItemsGroup[]) => AttributeSelectorItemsGroup[];
|
|
10
10
|
components?: {
|
|
11
11
|
ValuesEditor?: React.ElementType;
|
|
12
12
|
FilterSelector?: React.ElementType;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useState } from 'react';
|
|
2
2
|
import { defaultTo, pipe, prop, propEq } from 'ramda';
|
|
3
|
-
import { getDataTypeDefinitionForFilterValue, getFilterOptionLabel, getFilterOptionsForDataTypeDefinition, validateFilter } from '@reltio/mdm-sdk';
|
|
3
|
+
import { checkBasicMetadataPermission, getDataTypeDefinitionForFilterValue, getFilterOptionLabel, getFilterOptionsForDataTypeDefinition, MetadataPermissions, validateFilter } from '@reltio/mdm-sdk';
|
|
4
4
|
import Popover from '@mui/material/Popover';
|
|
5
5
|
import IconButton from '@mui/material/IconButton';
|
|
6
6
|
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
|
|
@@ -56,9 +56,10 @@ export var ColumnFilter = function (_a) {
|
|
|
56
56
|
};
|
|
57
57
|
var filterOptionValues = (_b = filterOptionsData === null || filterOptionsData === void 0 ? void 0 : filterOptionsData.map(function (filterOption) { return filterOption.value; })) !== null && _b !== void 0 ? _b : getFilterOptionsForDataTypeDefinition(dataTypeDefinition);
|
|
58
58
|
var filterOptions = filterOptionValues.map(function (value) { return ({ value: value, label: getFilterLabel(value) }); });
|
|
59
|
+
var hasReadPermission = checkBasicMetadataPermission(MetadataPermissions.READ, dataTypeDefinition);
|
|
59
60
|
return (React.createElement("div", { ref: containerRef, className: styles.columnFilter, "data-reltio-id": "column-filter" },
|
|
60
61
|
filter && (React.createElement(FilterChip, { filterValue: filter.value, filterOption: filterOptions.find(propEq('value', filter.filter)), onDelete: clearFilter, dataTypeDefinition: getFilterDataTypeDefinition(filter.filter) })),
|
|
61
|
-
|
|
62
|
+
hasReadPermission && (React.createElement(IconButton, { className: styles.dropDownButton, onClick: openFilterPopup, disableFocusRipple: true, size: "large" },
|
|
62
63
|
React.createElement(ArrowDropDownIcon, null))),
|
|
63
64
|
React.createElement(Popover, { PaperProps: {
|
|
64
65
|
style: {
|
|
@@ -30,7 +30,7 @@ import { ErrorWrapper } from '../ErrorWrapper';
|
|
|
30
30
|
import { withContext } from '../HOCs/withContext';
|
|
31
31
|
import { useAttributeValueConfigPermissions } from '../contexts/ConfigPermissionsContext';
|
|
32
32
|
import { isHighlightedErrorType, ScrollToElementContext } from '../contexts/ScrollToElementContext';
|
|
33
|
-
import { useMdmAction, useMdmGlobalSearchRequestOptions, useMdmMetadata, useMdmModifiedEntity } from '../contexts/MdmModuleContext';
|
|
33
|
+
import { useMdmAction, useMdmGlobalSearchRequestOptions, useMdmMetadata, useMdmModifiedEntity, useMdmShowMasking } from '../contexts/MdmModuleContext';
|
|
34
34
|
import { useScrollToAttributeError } from '../hooks/useScrollToAttributeError';
|
|
35
35
|
import { useStyles } from './styles';
|
|
36
36
|
var ReferenceAttributeEditor = function (props) {
|
|
@@ -48,6 +48,7 @@ var ReferenceAttributeEditor = function (props) {
|
|
|
48
48
|
var modifiedEntity = isTempUri(entityUri) ? mdmModifiedEntity : null;
|
|
49
49
|
var metadata = useMdmMetadata();
|
|
50
50
|
var globalSearchRequestOptions = useMdmGlobalSearchRequestOptions(['ovOnly']);
|
|
51
|
+
var showMasking = useMdmShowMasking();
|
|
51
52
|
var referencedEntity = getReferencedEntityFromAttrValue(attributeValue);
|
|
52
53
|
var referencedRelation = getReferencedRelationFromAttrValue(attributeValue);
|
|
53
54
|
var referencedEntityTypeUri = getReferencedEntityTypeUriFromAttrType(attributeType);
|
|
@@ -117,12 +118,13 @@ var ReferenceAttributeEditor = function (props) {
|
|
|
117
118
|
}, [attributeType, attributeValue, mode, crosswalks, configCanUpdate]);
|
|
118
119
|
var canCreateReferencedEntity = useMemo(function () { return configCanCreate && checkMetadataForCreate(mode, referencedEntityType); }, [mode, referencedEntityType, configCanCreate]);
|
|
119
120
|
var errorMessage = getErrorMessage(referencedEntityMissedError);
|
|
121
|
+
var isMasked = showMasking && isAttributeHasMaskedValue(attributeValue);
|
|
120
122
|
return (React.createElement(EditModeComplexAttribute, __assign({}, ownProps, { label: getLabel(label), attributeTypesList: editableAttrTypes, crosswalks: allCrosswalks, metadata: metadata }),
|
|
121
123
|
React.createElement("div", { ref: ref, className: errorClassName },
|
|
122
124
|
React.createElement(ErrorWrapper, { errorMessage: errorMessage },
|
|
123
125
|
React.createElement(EntitySelector, { className: classnames(styles.item, (_a = {},
|
|
124
126
|
_a[styles.dense] = errorMessage || (selectedEntity && isTempUri(selectedEntity.entityUri)),
|
|
125
|
-
_a)), entity: selectedEntity || {}, entityTypesUris: entityTypesUris, globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, isDisabled: !canChangeReferencedEntity || !!attributeValue.masked, onChange: onChangeEntity, onCreate: canCreateReferencedEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: newEntityAttrTypesSelectionStrategy, isMasked:
|
|
127
|
+
_a)), entity: selectedEntity || {}, entityTypesUris: entityTypesUris, globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, isDisabled: !canChangeReferencedEntity || !!attributeValue.masked, onChange: onChangeEntity, onCreate: canCreateReferencedEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: newEntityAttrTypesSelectionStrategy, isMasked: isMasked })))));
|
|
126
128
|
};
|
|
127
129
|
export default withContext(ScrollToElementContext, function (contextValue, _a) {
|
|
128
130
|
var attributeValue = _a.attributeValue, attributeType = _a.attributeType;
|
|
@@ -23,7 +23,7 @@ import { EditModeAttributesList } from '../EditModeAttributesList';
|
|
|
23
23
|
import { withContext } from '../HOCs/withContext';
|
|
24
24
|
import { ConfigPermissionsContextProvider } from '../contexts/ConfigPermissionsContext';
|
|
25
25
|
import { ScrollToElementContext, isHighlightedErrorType } from '../contexts/ScrollToElementContext';
|
|
26
|
-
import { useMdmAction, useMdmAuthoringItemsByEntityType, useMdmEntity, useMdmGlobalSearchRequestOptions, useMdmInitialConnection, useMdmInitialConnectionTempEntity, useMdmModifiedEntities, useMdmModifiedEntity, useMdmProfileErrors, useMdmEntityUri } from '../contexts/MdmModuleContext';
|
|
26
|
+
import { useMdmAction, useMdmAuthoringItemsByEntityType, useMdmEntity, useMdmGlobalSearchRequestOptions, useMdmInitialConnection, useMdmInitialConnectionTempEntity, useMdmModifiedEntities, useMdmModifiedEntity, useMdmProfileErrors, useMdmEntityUri, useMdmShowMasking } from '../contexts/MdmModuleContext';
|
|
27
27
|
import { HiddenAttributesContext } from '../contexts/HiddenAttributesContext';
|
|
28
28
|
import { useScrollToAttributeError } from '../hooks/useScrollToAttributeError';
|
|
29
29
|
import { useStyles } from './styles';
|
|
@@ -63,6 +63,7 @@ var RelationEditor = function (_a) {
|
|
|
63
63
|
var profileErrors = useMdmProfileErrors();
|
|
64
64
|
var authoringItems = useMdmAuthoringItemsByEntityType(mainEntity === null || mainEntity === void 0 ? void 0 : mainEntity.type);
|
|
65
65
|
var mainEntityUri = useMdmEntityUri();
|
|
66
|
+
var showMasking = useMdmShowMasking();
|
|
66
67
|
var error = getRelationEditorActiveError(connection, profileErrors);
|
|
67
68
|
var allRelationEditorErrors = getAllRelationEditorActiveErrors(connection, profileErrors);
|
|
68
69
|
var modifiedEntity = isTempEntity ? mdmModifiedEntity : null;
|
|
@@ -189,6 +190,7 @@ var RelationEditor = function (_a) {
|
|
|
189
190
|
return content.entityTypes;
|
|
190
191
|
}, [config, connection.parentEntityUri]);
|
|
191
192
|
var isEntityHasMaskedAttrValue = pipe(values, flatten, any(isAttributeHasMaskedValue))(((_d = (_c = connection.entity) === null || _c === void 0 ? void 0 : _c.object) === null || _d === void 0 ? void 0 : _d.attributes) || {});
|
|
193
|
+
var isMasked = showMasking && isEntityHasMaskedAttrValue;
|
|
192
194
|
return (React.createElement(React.Fragment, null,
|
|
193
195
|
React.createElement("div", { className: styles.editor },
|
|
194
196
|
React.createElement(Typography, { className: styles.title }, isNew ? i18n.text('Add new item') : i18n.text('Edit item')),
|
|
@@ -199,7 +201,7 @@ var RelationEditor = function (_a) {
|
|
|
199
201
|
React.createElement(EntitySelector, { className: classnames(styles.item, (_b = {},
|
|
200
202
|
_b[styles.dense] = errorMessage ||
|
|
201
203
|
(connection.entity && isTempUri(connection.entity.entityUri)),
|
|
202
|
-
_b)), entity: connection.entity || {}, entityTypesUris: getEntityTypesUris() || [], globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, onChange: onChangeEntity, onCreate: canCreateNewEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: relationEditorAttributeTypesSelectionStrategy, isMasked:
|
|
204
|
+
_b)), entity: connection.entity || {}, entityTypesUris: getEntityTypesUris() || [], globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, onChange: onChangeEntity, onCreate: canCreateNewEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: relationEditorAttributeTypesSelectionStrategy, isMasked: isMasked }))),
|
|
203
205
|
React.createElement(HiddenAttributesContext.Provider, { value: emptyHiddenAttributes },
|
|
204
206
|
React.createElement(EditModeAttributesList, { className: styles.item, attrTypes: firstLevelRelationAttrTypes, entity: attributeListEntity, showEmptyEditors: true, mode: mode, parentUri: relationUri, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onDeleteAttribute }))))),
|
|
205
207
|
React.createElement("div", { className: styles.actionButtons },
|
|
@@ -97,7 +97,8 @@ var defaultMdmValues = {
|
|
|
97
97
|
dependentLookups: { editors: {}, structure: {}, initedTypeUris: [] },
|
|
98
98
|
uiConfigLayout: [],
|
|
99
99
|
uiConfigProfile: [],
|
|
100
|
-
profileErrors: []
|
|
100
|
+
profileErrors: [],
|
|
101
|
+
showMasking: true
|
|
101
102
|
};
|
|
102
103
|
var defaultProps = {
|
|
103
104
|
connection: { relation: defaultRelation, entity: {} },
|
|
@@ -198,6 +199,41 @@ var defaultProps = {
|
|
|
198
199
|
},
|
|
199
200
|
mode: Mode.Editing
|
|
200
201
|
};
|
|
202
|
+
var entityWithMasking = {
|
|
203
|
+
uri: 'entities/uri$$123',
|
|
204
|
+
type: 'configuration/entityTypes/HCP',
|
|
205
|
+
object: {
|
|
206
|
+
uri: 'entities/04B1CqH',
|
|
207
|
+
type: 'configuration/entityTypes/Location',
|
|
208
|
+
attributes: {
|
|
209
|
+
Address: [
|
|
210
|
+
{
|
|
211
|
+
label: 'AcOEvPaVqTfzZCE Josogaf VA',
|
|
212
|
+
relationshipLabel: '',
|
|
213
|
+
value: {
|
|
214
|
+
AddressLine1: [
|
|
215
|
+
{
|
|
216
|
+
type: 'configuration/entityTypes/Location/attributes/AddressLine1',
|
|
217
|
+
ov: true,
|
|
218
|
+
value: 'AcOEvPaVqTfzZCE',
|
|
219
|
+
uri: 'entities/04B1CqH/attributes/Address/03R51aT/AddressLine1/1XFBcmPYm'
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
AddressLine2: [
|
|
223
|
+
{
|
|
224
|
+
type: 'configuration/entityTypes/Location/attributes/AddressLine2',
|
|
225
|
+
ov: true,
|
|
226
|
+
masked: true,
|
|
227
|
+
value: 'KBmiSMlqhElLHMH',
|
|
228
|
+
uri: 'entities/04B1CqH/attributes/Address/03R51aT/AddressLine2/1XFBcmTp2'
|
|
229
|
+
}
|
|
230
|
+
]
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
};
|
|
201
237
|
var setUp = function (_a) {
|
|
202
238
|
var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d, _e = _b.error, error = _e === void 0 ? null : _e, _f = _b.hiddenAttributes, hiddenAttributes = _f === void 0 ? {} : _f;
|
|
203
239
|
var user = userEvent.setup();
|
|
@@ -530,41 +566,7 @@ describe('relation editor behaviour', function () {
|
|
|
530
566
|
case 0:
|
|
531
567
|
props = __assign(__assign({}, defaultProps), { connection: {
|
|
532
568
|
relation: defaultRelation,
|
|
533
|
-
entity:
|
|
534
|
-
uri: 'entities/uri$$123',
|
|
535
|
-
type: 'configuration/entityTypes/HCP',
|
|
536
|
-
object: {
|
|
537
|
-
uri: 'entities/04B1CqH',
|
|
538
|
-
type: 'configuration/entityTypes/Location',
|
|
539
|
-
attributes: {
|
|
540
|
-
Address: [
|
|
541
|
-
{
|
|
542
|
-
label: 'AcOEvPaVqTfzZCE Josogaf VA',
|
|
543
|
-
relationshipLabel: '',
|
|
544
|
-
value: {
|
|
545
|
-
AddressLine1: [
|
|
546
|
-
{
|
|
547
|
-
type: 'configuration/entityTypes/Location/attributes/AddressLine1',
|
|
548
|
-
ov: true,
|
|
549
|
-
value: 'AcOEvPaVqTfzZCE',
|
|
550
|
-
uri: 'entities/04B1CqH/attributes/Address/03R51aT/AddressLine1/1XFBcmPYm'
|
|
551
|
-
}
|
|
552
|
-
],
|
|
553
|
-
AddressLine2: [
|
|
554
|
-
{
|
|
555
|
-
type: 'configuration/entityTypes/Location/attributes/AddressLine2',
|
|
556
|
-
ov: true,
|
|
557
|
-
masked: true,
|
|
558
|
-
value: 'KBmiSMlqhElLHMH',
|
|
559
|
-
uri: 'entities/04B1CqH/attributes/Address/03R51aT/AddressLine2/1XFBcmTp2'
|
|
560
|
-
}
|
|
561
|
-
]
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
]
|
|
565
|
-
}
|
|
566
|
-
}
|
|
567
|
-
}
|
|
569
|
+
entity: entityWithMasking
|
|
568
570
|
} });
|
|
569
571
|
user = setUp({ props: props }).user;
|
|
570
572
|
inputs = screen.getAllByRole('textbox');
|
|
@@ -581,6 +583,31 @@ describe('relation editor behaviour', function () {
|
|
|
581
583
|
}
|
|
582
584
|
});
|
|
583
585
|
}); });
|
|
586
|
+
it('should not add sendMasked option if configuration showMasking property is false', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
587
|
+
var props, mdmValues, user, inputs;
|
|
588
|
+
return __generator(this, function (_a) {
|
|
589
|
+
switch (_a.label) {
|
|
590
|
+
case 0:
|
|
591
|
+
props = __assign(__assign({}, defaultProps), { connection: {
|
|
592
|
+
relation: defaultRelation,
|
|
593
|
+
entity: entityWithMasking
|
|
594
|
+
} });
|
|
595
|
+
mdmValues = __assign(__assign({}, defaultMdmValues), { showMasking: false });
|
|
596
|
+
user = setUp({ props: props, mdmValues: mdmValues }).user;
|
|
597
|
+
inputs = screen.getAllByRole('textbox');
|
|
598
|
+
return [4 /*yield*/, user.click(inputs[0])];
|
|
599
|
+
case 1:
|
|
600
|
+
_a.sent();
|
|
601
|
+
expect(typeAheadSearch).toHaveBeenCalledWith([defaultProps.metadata.entityTypes[1]], '', {
|
|
602
|
+
globalFilter: '',
|
|
603
|
+
max: 20,
|
|
604
|
+
searchOptions: '',
|
|
605
|
+
sendMasked: false
|
|
606
|
+
});
|
|
607
|
+
return [2 /*return*/];
|
|
608
|
+
}
|
|
609
|
+
});
|
|
610
|
+
}); });
|
|
584
611
|
describe('apply button', function () {
|
|
585
612
|
var createRelation = function (value) { return (__assign(__assign({}, defaultProps.connection.relation), { object: __assign(__assign({}, defaultProps.connection.relation.object), { attributes: {
|
|
586
613
|
Name: [
|
|
@@ -67,7 +67,7 @@ describe('masking/unmasking behaviour', function () {
|
|
|
67
67
|
attributeType: defaultAttributeType,
|
|
68
68
|
attributeValue: defaultAttributeValue
|
|
69
69
|
};
|
|
70
|
-
var
|
|
70
|
+
var defaultMdmValues = {
|
|
71
71
|
entity: {
|
|
72
72
|
uri: 'entities/16U21B8f',
|
|
73
73
|
type: 'configuration/entityTypes/HCP',
|
|
@@ -102,13 +102,15 @@ describe('masking/unmasking behaviour', function () {
|
|
|
102
102
|
}
|
|
103
103
|
]
|
|
104
104
|
},
|
|
105
|
+
showMasking: true,
|
|
105
106
|
mode: Mode.Viewing
|
|
106
107
|
};
|
|
107
|
-
var setUp = function (props) {
|
|
108
|
+
var setUp = function (props, mdmValues) {
|
|
108
109
|
if (props === void 0) { props = defaultProps; }
|
|
110
|
+
if (mdmValues === void 0) { mdmValues = defaultMdmValues; }
|
|
109
111
|
var Providers = function (_a) {
|
|
110
112
|
var children = _a.children;
|
|
111
|
-
return (React.createElement(MdmModuleProvider, { values:
|
|
113
|
+
return (React.createElement(MdmModuleProvider, { values: mdmValues },
|
|
112
114
|
React.createElement(MaskedAttributesProvider, null, children)));
|
|
113
115
|
};
|
|
114
116
|
var user = userEvent.setup();
|
|
@@ -289,4 +291,13 @@ describe('masking/unmasking behaviour', function () {
|
|
|
289
291
|
}
|
|
290
292
|
});
|
|
291
293
|
}); });
|
|
294
|
+
it('should not render masking controls if showMasking configuration property is false', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
295
|
+
var mdmValues, container;
|
|
296
|
+
return __generator(this, function (_a) {
|
|
297
|
+
mdmValues = __assign(__assign({}, defaultMdmValues), { showMasking: false });
|
|
298
|
+
container = setUp(defaultProps, mdmValues).container;
|
|
299
|
+
expect(container.querySelector('.switcherWrapper')).not.toBeInTheDocument();
|
|
300
|
+
return [2 /*return*/];
|
|
301
|
+
});
|
|
302
|
+
}); });
|
|
292
303
|
});
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { SearchFilter } from '@reltio/mdm-sdk';
|
|
3
3
|
import { AttributeSelectionInfo, AttributeSelectorItemsGroup, AttributesFilterComponentsClasses, AttributesTypesGroup } from '../types';
|
|
4
4
|
type Props = {
|
|
5
5
|
classes?: AttributesFilterComponentsClasses;
|
|
6
6
|
filters: SearchFilter[];
|
|
7
7
|
onChange: (filters: SearchFilter[]) => void;
|
|
8
8
|
attributesTypesGroups: AttributesTypesGroup[];
|
|
9
|
-
attributesTypesGroupFilter?: (
|
|
9
|
+
attributesTypesGroupFilter?: (attributeSelectorItemsGroup: AttributeSelectorItemsGroup[]) => AttributeSelectorItemsGroup[];
|
|
10
10
|
components?: {
|
|
11
11
|
ValuesEditor?: React.ElementType;
|
|
12
12
|
FilterSelector?: React.ElementType;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { SearchFilter } from '@reltio/mdm-sdk';
|
|
3
3
|
import { AttributeSelectionInfo, AttributeSelectorItemsGroup, AttributesFilterComponentsClasses, AttributesTypesGroup } from '../types';
|
|
4
4
|
type Props = {
|
|
5
5
|
classes?: AttributesFilterComponentsClasses;
|
|
6
6
|
filters: SearchFilter[];
|
|
7
7
|
onChange: (filters: SearchFilter[]) => void;
|
|
8
8
|
attributesTypesGroups: AttributesTypesGroup[];
|
|
9
|
-
attributesTypesGroupFilter?: (
|
|
9
|
+
attributesTypesGroupFilter?: (attributeSelectorItemsGroup: AttributeSelectorItemsGroup[]) => AttributeSelectorItemsGroup[];
|
|
10
10
|
components?: {
|
|
11
11
|
ValuesEditor?: React.ElementType;
|
|
12
12
|
FilterSelector?: React.ElementType;
|
|
@@ -85,9 +85,10 @@ var ColumnFilter = function (_a) {
|
|
|
85
85
|
};
|
|
86
86
|
var filterOptionValues = (_b = filterOptionsData === null || filterOptionsData === void 0 ? void 0 : filterOptionsData.map(function (filterOption) { return filterOption.value; })) !== null && _b !== void 0 ? _b : (0, mdm_sdk_1.getFilterOptionsForDataTypeDefinition)(dataTypeDefinition);
|
|
87
87
|
var filterOptions = filterOptionValues.map(function (value) { return ({ value: value, label: getFilterLabel(value) }); });
|
|
88
|
+
var hasReadPermission = (0, mdm_sdk_1.checkBasicMetadataPermission)(mdm_sdk_1.MetadataPermissions.READ, dataTypeDefinition);
|
|
88
89
|
return (react_1.default.createElement("div", { ref: containerRef, className: styles.columnFilter, "data-reltio-id": "column-filter" },
|
|
89
90
|
filter && (react_1.default.createElement(FilterChip_1.FilterChip, { filterValue: filter.value, filterOption: filterOptions.find((0, ramda_1.propEq)('value', filter.filter)), onDelete: clearFilter, dataTypeDefinition: getFilterDataTypeDefinition(filter.filter) })),
|
|
90
|
-
|
|
91
|
+
hasReadPermission && (react_1.default.createElement(IconButton_1.default, { className: styles.dropDownButton, onClick: openFilterPopup, disableFocusRipple: true, size: "large" },
|
|
91
92
|
react_1.default.createElement(ArrowDropDown_1.default, null))),
|
|
92
93
|
react_1.default.createElement(Popover_1.default, { PaperProps: {
|
|
93
94
|
style: {
|
|
@@ -76,6 +76,7 @@ var ReferenceAttributeEditor = function (props) {
|
|
|
76
76
|
var modifiedEntity = (0, mdm_sdk_1.isTempUri)(entityUri) ? mdmModifiedEntity : null;
|
|
77
77
|
var metadata = (0, MdmModuleContext_1.useMdmMetadata)();
|
|
78
78
|
var globalSearchRequestOptions = (0, MdmModuleContext_1.useMdmGlobalSearchRequestOptions)(['ovOnly']);
|
|
79
|
+
var showMasking = (0, MdmModuleContext_1.useMdmShowMasking)();
|
|
79
80
|
var referencedEntity = (0, mdm_sdk_1.getReferencedEntityFromAttrValue)(attributeValue);
|
|
80
81
|
var referencedRelation = (0, mdm_sdk_1.getReferencedRelationFromAttrValue)(attributeValue);
|
|
81
82
|
var referencedEntityTypeUri = (0, mdm_sdk_1.getReferencedEntityTypeUriFromAttrType)(attributeType);
|
|
@@ -145,12 +146,13 @@ var ReferenceAttributeEditor = function (props) {
|
|
|
145
146
|
}, [attributeType, attributeValue, mode, crosswalks, configCanUpdate]);
|
|
146
147
|
var canCreateReferencedEntity = (0, react_1.useMemo)(function () { return configCanCreate && (0, mdm_sdk_1.checkMetadataForCreate)(mode, referencedEntityType); }, [mode, referencedEntityType, configCanCreate]);
|
|
147
148
|
var errorMessage = (0, mdm_sdk_1.getErrorMessage)(referencedEntityMissedError);
|
|
149
|
+
var isMasked = showMasking && (0, mdm_sdk_1.isAttributeHasMaskedValue)(attributeValue);
|
|
148
150
|
return (react_1.default.createElement(EditModeComplexAttribute_1.EditModeComplexAttribute, __assign({}, ownProps, { label: (0, mdm_sdk_1.getLabel)(label), attributeTypesList: editableAttrTypes, crosswalks: allCrosswalks, metadata: metadata }),
|
|
149
151
|
react_1.default.createElement("div", { ref: ref, className: errorClassName },
|
|
150
152
|
react_1.default.createElement(ErrorWrapper_1.ErrorWrapper, { errorMessage: errorMessage },
|
|
151
153
|
react_1.default.createElement(EntitySelector_1.EntitySelector, { className: (0, classnames_1.default)(styles.item, (_a = {},
|
|
152
154
|
_a[styles.dense] = errorMessage || (selectedEntity && (0, mdm_sdk_1.isTempUri)(selectedEntity.entityUri)),
|
|
153
|
-
_a)), entity: selectedEntity || {}, entityTypesUris: entityTypesUris, globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, isDisabled: !canChangeReferencedEntity || !!attributeValue.masked, onChange: onChangeEntity, onCreate: canCreateReferencedEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: newEntityAttrTypesSelectionStrategy, isMasked:
|
|
155
|
+
_a)), entity: selectedEntity || {}, entityTypesUris: entityTypesUris, globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, isDisabled: !canChangeReferencedEntity || !!attributeValue.masked, onChange: onChangeEntity, onCreate: canCreateReferencedEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: newEntityAttrTypesSelectionStrategy, isMasked: isMasked })))));
|
|
154
156
|
};
|
|
155
157
|
exports.default = (0, withContext_1.withContext)(ScrollToElementContext_1.ScrollToElementContext, function (contextValue, _a) {
|
|
156
158
|
var attributeValue = _a.attributeValue, attributeType = _a.attributeType;
|
|
@@ -91,6 +91,7 @@ var RelationEditor = function (_a) {
|
|
|
91
91
|
var profileErrors = (0, MdmModuleContext_1.useMdmProfileErrors)();
|
|
92
92
|
var authoringItems = (0, MdmModuleContext_1.useMdmAuthoringItemsByEntityType)(mainEntity === null || mainEntity === void 0 ? void 0 : mainEntity.type);
|
|
93
93
|
var mainEntityUri = (0, MdmModuleContext_1.useMdmEntityUri)();
|
|
94
|
+
var showMasking = (0, MdmModuleContext_1.useMdmShowMasking)();
|
|
94
95
|
var error = (0, mdm_sdk_1.getRelationEditorActiveError)(connection, profileErrors);
|
|
95
96
|
var allRelationEditorErrors = (0, mdm_sdk_1.getAllRelationEditorActiveErrors)(connection, profileErrors);
|
|
96
97
|
var modifiedEntity = isTempEntity ? mdmModifiedEntity : null;
|
|
@@ -217,6 +218,7 @@ var RelationEditor = function (_a) {
|
|
|
217
218
|
return content.entityTypes;
|
|
218
219
|
}, [config, connection.parentEntityUri]);
|
|
219
220
|
var isEntityHasMaskedAttrValue = (0, ramda_1.pipe)(ramda_1.values, ramda_1.flatten, (0, ramda_1.any)(mdm_sdk_1.isAttributeHasMaskedValue))(((_d = (_c = connection.entity) === null || _c === void 0 ? void 0 : _c.object) === null || _d === void 0 ? void 0 : _d.attributes) || {});
|
|
221
|
+
var isMasked = showMasking && isEntityHasMaskedAttrValue;
|
|
220
222
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
221
223
|
react_1.default.createElement("div", { className: styles.editor },
|
|
222
224
|
react_1.default.createElement(Typography_1.default, { className: styles.title }, isNew ? ui_i18n_1.default.text('Add new item') : ui_i18n_1.default.text('Edit item')),
|
|
@@ -227,7 +229,7 @@ var RelationEditor = function (_a) {
|
|
|
227
229
|
react_1.default.createElement(EntitySelector_1.EntitySelector, { className: (0, classnames_1.default)(styles.item, (_b = {},
|
|
228
230
|
_b[styles.dense] = errorMessage ||
|
|
229
231
|
(connection.entity && (0, mdm_sdk_1.isTempUri)(connection.entity.entityUri)),
|
|
230
|
-
_b)), entity: connection.entity || {}, entityTypesUris: getEntityTypesUris() || [], globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, onChange: onChangeEntity, onCreate: canCreateNewEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: mdm_sdk_1.relationEditorAttributeTypesSelectionStrategy, isMasked:
|
|
232
|
+
_b)), entity: connection.entity || {}, entityTypesUris: getEntityTypesUris() || [], globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, onChange: onChangeEntity, onCreate: canCreateNewEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: mdm_sdk_1.relationEditorAttributeTypesSelectionStrategy, isMasked: isMasked }))),
|
|
231
233
|
react_1.default.createElement(HiddenAttributesContext_1.HiddenAttributesContext.Provider, { value: emptyHiddenAttributes },
|
|
232
234
|
react_1.default.createElement(EditModeAttributesList_1.EditModeAttributesList, { className: styles.item, attrTypes: firstLevelRelationAttrTypes, entity: attributeListEntity, showEmptyEditors: true, mode: mode, parentUri: relationUri, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onDeleteAttribute }))))),
|
|
233
235
|
react_1.default.createElement("div", { className: styles.actionButtons },
|
|
@@ -102,7 +102,8 @@ var defaultMdmValues = {
|
|
|
102
102
|
dependentLookups: { editors: {}, structure: {}, initedTypeUris: [] },
|
|
103
103
|
uiConfigLayout: [],
|
|
104
104
|
uiConfigProfile: [],
|
|
105
|
-
profileErrors: []
|
|
105
|
+
profileErrors: [],
|
|
106
|
+
showMasking: true
|
|
106
107
|
};
|
|
107
108
|
var defaultProps = {
|
|
108
109
|
connection: { relation: defaultRelation, entity: {} },
|
|
@@ -203,6 +204,41 @@ var defaultProps = {
|
|
|
203
204
|
},
|
|
204
205
|
mode: mdm_sdk_1.Mode.Editing
|
|
205
206
|
};
|
|
207
|
+
var entityWithMasking = {
|
|
208
|
+
uri: 'entities/uri$$123',
|
|
209
|
+
type: 'configuration/entityTypes/HCP',
|
|
210
|
+
object: {
|
|
211
|
+
uri: 'entities/04B1CqH',
|
|
212
|
+
type: 'configuration/entityTypes/Location',
|
|
213
|
+
attributes: {
|
|
214
|
+
Address: [
|
|
215
|
+
{
|
|
216
|
+
label: 'AcOEvPaVqTfzZCE Josogaf VA',
|
|
217
|
+
relationshipLabel: '',
|
|
218
|
+
value: {
|
|
219
|
+
AddressLine1: [
|
|
220
|
+
{
|
|
221
|
+
type: 'configuration/entityTypes/Location/attributes/AddressLine1',
|
|
222
|
+
ov: true,
|
|
223
|
+
value: 'AcOEvPaVqTfzZCE',
|
|
224
|
+
uri: 'entities/04B1CqH/attributes/Address/03R51aT/AddressLine1/1XFBcmPYm'
|
|
225
|
+
}
|
|
226
|
+
],
|
|
227
|
+
AddressLine2: [
|
|
228
|
+
{
|
|
229
|
+
type: 'configuration/entityTypes/Location/attributes/AddressLine2',
|
|
230
|
+
ov: true,
|
|
231
|
+
masked: true,
|
|
232
|
+
value: 'KBmiSMlqhElLHMH',
|
|
233
|
+
uri: 'entities/04B1CqH/attributes/Address/03R51aT/AddressLine2/1XFBcmTp2'
|
|
234
|
+
}
|
|
235
|
+
]
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
};
|
|
206
242
|
var setUp = function (_a) {
|
|
207
243
|
var _b = _a === void 0 ? {} : _a, _c = _b.props, props = _c === void 0 ? defaultProps : _c, _d = _b.mdmValues, mdmValues = _d === void 0 ? defaultMdmValues : _d, _e = _b.error, error = _e === void 0 ? null : _e, _f = _b.hiddenAttributes, hiddenAttributes = _f === void 0 ? {} : _f;
|
|
208
244
|
var user = user_event_1.default.setup();
|
|
@@ -535,41 +571,7 @@ describe('relation editor behaviour', function () {
|
|
|
535
571
|
case 0:
|
|
536
572
|
props = __assign(__assign({}, defaultProps), { connection: {
|
|
537
573
|
relation: defaultRelation,
|
|
538
|
-
entity:
|
|
539
|
-
uri: 'entities/uri$$123',
|
|
540
|
-
type: 'configuration/entityTypes/HCP',
|
|
541
|
-
object: {
|
|
542
|
-
uri: 'entities/04B1CqH',
|
|
543
|
-
type: 'configuration/entityTypes/Location',
|
|
544
|
-
attributes: {
|
|
545
|
-
Address: [
|
|
546
|
-
{
|
|
547
|
-
label: 'AcOEvPaVqTfzZCE Josogaf VA',
|
|
548
|
-
relationshipLabel: '',
|
|
549
|
-
value: {
|
|
550
|
-
AddressLine1: [
|
|
551
|
-
{
|
|
552
|
-
type: 'configuration/entityTypes/Location/attributes/AddressLine1',
|
|
553
|
-
ov: true,
|
|
554
|
-
value: 'AcOEvPaVqTfzZCE',
|
|
555
|
-
uri: 'entities/04B1CqH/attributes/Address/03R51aT/AddressLine1/1XFBcmPYm'
|
|
556
|
-
}
|
|
557
|
-
],
|
|
558
|
-
AddressLine2: [
|
|
559
|
-
{
|
|
560
|
-
type: 'configuration/entityTypes/Location/attributes/AddressLine2',
|
|
561
|
-
ov: true,
|
|
562
|
-
masked: true,
|
|
563
|
-
value: 'KBmiSMlqhElLHMH',
|
|
564
|
-
uri: 'entities/04B1CqH/attributes/Address/03R51aT/AddressLine2/1XFBcmTp2'
|
|
565
|
-
}
|
|
566
|
-
]
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
]
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
}
|
|
574
|
+
entity: entityWithMasking
|
|
573
575
|
} });
|
|
574
576
|
user = setUp({ props: props }).user;
|
|
575
577
|
inputs = react_2.screen.getAllByRole('textbox');
|
|
@@ -586,6 +588,31 @@ describe('relation editor behaviour', function () {
|
|
|
586
588
|
}
|
|
587
589
|
});
|
|
588
590
|
}); });
|
|
591
|
+
it('should not add sendMasked option if configuration showMasking property is false', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
592
|
+
var props, mdmValues, user, inputs;
|
|
593
|
+
return __generator(this, function (_a) {
|
|
594
|
+
switch (_a.label) {
|
|
595
|
+
case 0:
|
|
596
|
+
props = __assign(__assign({}, defaultProps), { connection: {
|
|
597
|
+
relation: defaultRelation,
|
|
598
|
+
entity: entityWithMasking
|
|
599
|
+
} });
|
|
600
|
+
mdmValues = __assign(__assign({}, defaultMdmValues), { showMasking: false });
|
|
601
|
+
user = setUp({ props: props, mdmValues: mdmValues }).user;
|
|
602
|
+
inputs = react_2.screen.getAllByRole('textbox');
|
|
603
|
+
return [4 /*yield*/, user.click(inputs[0])];
|
|
604
|
+
case 1:
|
|
605
|
+
_a.sent();
|
|
606
|
+
expect(mdm_sdk_1.typeAheadSearch).toHaveBeenCalledWith([defaultProps.metadata.entityTypes[1]], '', {
|
|
607
|
+
globalFilter: '',
|
|
608
|
+
max: 20,
|
|
609
|
+
searchOptions: '',
|
|
610
|
+
sendMasked: false
|
|
611
|
+
});
|
|
612
|
+
return [2 /*return*/];
|
|
613
|
+
}
|
|
614
|
+
});
|
|
615
|
+
}); });
|
|
589
616
|
describe('apply button', function () {
|
|
590
617
|
var createRelation = function (value) { return (__assign(__assign({}, defaultProps.connection.relation), { object: __assign(__assign({}, defaultProps.connection.relation.object), { attributes: {
|
|
591
618
|
Name: [
|
|
@@ -72,7 +72,7 @@ describe('masking/unmasking behaviour', function () {
|
|
|
72
72
|
attributeType: defaultAttributeType,
|
|
73
73
|
attributeValue: defaultAttributeValue
|
|
74
74
|
};
|
|
75
|
-
var
|
|
75
|
+
var defaultMdmValues = {
|
|
76
76
|
entity: {
|
|
77
77
|
uri: 'entities/16U21B8f',
|
|
78
78
|
type: 'configuration/entityTypes/HCP',
|
|
@@ -107,13 +107,15 @@ describe('masking/unmasking behaviour', function () {
|
|
|
107
107
|
}
|
|
108
108
|
]
|
|
109
109
|
},
|
|
110
|
+
showMasking: true,
|
|
110
111
|
mode: mdm_sdk_1.Mode.Viewing
|
|
111
112
|
};
|
|
112
|
-
var setUp = function (props) {
|
|
113
|
+
var setUp = function (props, mdmValues) {
|
|
113
114
|
if (props === void 0) { props = defaultProps; }
|
|
115
|
+
if (mdmValues === void 0) { mdmValues = defaultMdmValues; }
|
|
114
116
|
var Providers = function (_a) {
|
|
115
117
|
var children = _a.children;
|
|
116
|
-
return (react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values:
|
|
118
|
+
return (react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: mdmValues },
|
|
117
119
|
react_1.default.createElement(MaskedAttributesContext_1.MaskedAttributesProvider, null, children)));
|
|
118
120
|
};
|
|
119
121
|
var user = user_event_1.default.setup();
|
|
@@ -294,4 +296,13 @@ describe('masking/unmasking behaviour', function () {
|
|
|
294
296
|
}
|
|
295
297
|
});
|
|
296
298
|
}); });
|
|
299
|
+
it('should not render masking controls if showMasking configuration property is false', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
300
|
+
var mdmValues, container;
|
|
301
|
+
return __generator(this, function (_a) {
|
|
302
|
+
mdmValues = __assign(__assign({}, defaultMdmValues), { showMasking: false });
|
|
303
|
+
container = setUp(defaultProps, mdmValues).container;
|
|
304
|
+
expect(container.querySelector('.switcherWrapper')).not.toBeInTheDocument();
|
|
305
|
+
return [2 /*return*/];
|
|
306
|
+
});
|
|
307
|
+
}); });
|
|
297
308
|
});
|
|
@@ -55,6 +55,7 @@ export type MdmModuleValuesContextProps = Partial<{
|
|
|
55
55
|
isCollaborationEnabled: boolean;
|
|
56
56
|
uiConfigLayout: Layout;
|
|
57
57
|
uiConfigProfile: Profile;
|
|
58
|
+
showMasking: boolean;
|
|
58
59
|
}>;
|
|
59
60
|
export type MdmModuleActionsContextProps = Partial<{
|
|
60
61
|
openSearch: (payload: SearchState) => void;
|
|
@@ -256,6 +257,7 @@ export declare const MdmModuleValuesContext: import("@fluentui/react-context-sel
|
|
|
256
257
|
isCollaborationEnabled: boolean;
|
|
257
258
|
uiConfigLayout: Layout;
|
|
258
259
|
uiConfigProfile: Profile;
|
|
260
|
+
showMasking: boolean;
|
|
259
261
|
}>>;
|
|
260
262
|
export declare const MdmModuleListenersContext: import("@fluentui/react-context-selector").Context<Partial<{
|
|
261
263
|
expandInvalidRelatonsListener: (callback: () => void) => (action: any) => void;
|
|
@@ -149,3 +149,4 @@ export declare const useMdmListener: <T extends keyof MdmModuleListenersContextP
|
|
|
149
149
|
}>[T];
|
|
150
150
|
export declare const useMdmHiddenAttributes: () => Record<string, string[]>;
|
|
151
151
|
export declare const useMdmControlAttributes: () => string[];
|
|
152
|
+
export declare const useMdmShowMasking: () => boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useMdmIsWorkflowEnabled = exports.useMdmIsCollaborationEnabled = exports.useMdmSearchProviderData = exports.useMdmSearchNavigationData = exports.useMdmDataTenants = exports.useMdmEnvironment = exports.useMdmTenantName = exports.useMdmTenant = exports.useMdmTenantObject = exports.useMdmUserRoles = exports.useMdmUsername = exports.useMdmUser = exports.useMdmMetadata = exports.useMdmDependentLookups = exports.useMdmLookups = exports.useMdmProfileLastLoadedTime = exports.useMdmHistoryEvent = exports.useMdmHistorySlice = exports.useMdmHistoryMode = exports.useMdmHistoryDiff = exports.useMdmIsEditableMode = exports.useMdmIsViewMode = exports.useMdmMode = exports.useMdmEntityUriWithDataTenant = exports.useMdmEntityWithDiff = exports.useMdmEntityUri = exports.useMdmEntity = exports.useMdmModifiedEntities = exports.useMdmLookupAutocomplete = exports.useMdmAttributesSortingStrategy = exports.useMdmMaxValuesInResponse = exports.useMdmAttributesPresentation = exports.useMdmDateTimeMask = exports.useMdmDateMask = exports.useMdmPivotingAttributes = exports.useMdmShowEntityId = exports.useMdmImageAttributesFieldsOrder = exports.useMdmCollaborationPath = exports.useMdmApiPath = exports.useMdmReltioPath = exports.useMdmImageServicePath = exports.useMdmWorkflowPath = exports.useMdmServicesPath = exports.useMdmDtssPath = exports.useMdmUiPath = exports.useMdmAbsoluteImagePath = exports.useMdmExportPath = exports.useMdmWorkflowEnvironmentUrl = exports.useMdmUiError = exports.useMdmAutoCloseInterval = void 0;
|
|
4
|
-
exports.useMdmControlAttributes = exports.useMdmHiddenAttributes = exports.useMdmListener = exports.useMdmAction = exports.useMdmAuthoringItemsByEntityType = exports.useMdmGlobalSearchRequestOptions = exports.useMdmDependentLookupEditorContext = exports.useMdmRelationsDrafts = exports.useMdmAllRelationsToAddAndEdit = exports.useMdmDependentLookupsStructureNode = exports.useMdmActiveErrorsForAttributesPager = exports.useMdmDependentLookupEditorState = exports.useMdmInitialConnection = exports.useMdmInitialConnectionTempEntity = exports.useMdmModifiedEntity = exports.useMdmModifiedEntityDefaultProfilePic = exports.useMdmIsSourcesScreenEnabled = exports.useMdmProfileErrors = void 0;
|
|
4
|
+
exports.useMdmShowMasking = exports.useMdmControlAttributes = exports.useMdmHiddenAttributes = exports.useMdmListener = exports.useMdmAction = exports.useMdmAuthoringItemsByEntityType = exports.useMdmGlobalSearchRequestOptions = exports.useMdmDependentLookupEditorContext = exports.useMdmRelationsDrafts = exports.useMdmAllRelationsToAddAndEdit = exports.useMdmDependentLookupsStructureNode = exports.useMdmActiveErrorsForAttributesPager = exports.useMdmDependentLookupEditorState = exports.useMdmInitialConnection = exports.useMdmInitialConnectionTempEntity = exports.useMdmModifiedEntity = exports.useMdmModifiedEntityDefaultProfilePic = exports.useMdmIsSourcesScreenEnabled = exports.useMdmProfileErrors = void 0;
|
|
5
5
|
var react_context_selector_1 = require("@fluentui/react-context-selector");
|
|
6
6
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
7
7
|
var context_1 = require("./context");
|
|
@@ -231,3 +231,5 @@ var useMdmControlAttributes = function () {
|
|
|
231
231
|
return useMdmModuleValuesContext(function (context) { return context.controlAttributes || emptyControlAttributes; });
|
|
232
232
|
};
|
|
233
233
|
exports.useMdmControlAttributes = useMdmControlAttributes;
|
|
234
|
+
var useMdmShowMasking = function () { return useMdmModuleValuesContext(function (context) { return context.showMasking; }); };
|
|
235
|
+
exports.useMdmShowMasking = useMdmShowMasking;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { MdmModuleProvider } from './provider';
|
|
2
|
-
export { useMdmAutoCloseInterval, useMdmUiError, useMdmWorkflowEnvironmentUrl, useMdmExportPath, useMdmAbsoluteImagePath, useMdmUiPath, useMdmDtssPath, useMdmServicesPath, useMdmWorkflowPath, useMdmImageServicePath, useMdmReltioPath, useMdmApiPath, useMdmCollaborationPath, useMdmImageAttributesFieldsOrder, useMdmShowEntityId, useMdmPivotingAttributes, useMdmDateMask, useMdmDateTimeMask, useMdmAttributesPresentation, useMdmMaxValuesInResponse, useMdmAttributesSortingStrategy, useMdmLookupAutocomplete, useMdmModifiedEntities, useMdmEntity, useMdmEntityUri, useMdmEntityWithDiff, useMdmEntityUriWithDataTenant, useMdmMode, useMdmIsViewMode, useMdmIsEditableMode, useMdmHistoryDiff, useMdmHistoryMode, useMdmHistorySlice, useMdmHistoryEvent, useMdmProfileLastLoadedTime, useMdmLookups, useMdmDependentLookups, useMdmMetadata, useMdmUser, useMdmUsername, useMdmUserRoles, useMdmTenantObject, useMdmTenant, useMdmTenantName, useMdmEnvironment, useMdmDataTenants, useMdmSearchNavigationData, useMdmSearchProviderData, useMdmIsCollaborationEnabled, useMdmIsWorkflowEnabled, useMdmProfileErrors, useMdmRelationsDrafts, useMdmModifiedEntityDefaultProfilePic, useMdmModifiedEntity, useMdmInitialConnectionTempEntity, useMdmInitialConnection, useMdmDependentLookupEditorState, useMdmActiveErrorsForAttributesPager, useMdmDependentLookupsStructureNode, useMdmAllRelationsToAddAndEdit, useMdmDependentLookupEditorContext, useMdmGlobalSearchRequestOptions, useMdmAuthoringItemsByEntityType, useMdmAction, useMdmListener, useMdmIsSourcesScreenEnabled, useMdmHiddenAttributes, useMdmControlAttributes } from './hooks';
|
|
2
|
+
export { useMdmAutoCloseInterval, useMdmUiError, useMdmWorkflowEnvironmentUrl, useMdmExportPath, useMdmAbsoluteImagePath, useMdmUiPath, useMdmDtssPath, useMdmServicesPath, useMdmWorkflowPath, useMdmImageServicePath, useMdmReltioPath, useMdmApiPath, useMdmCollaborationPath, useMdmImageAttributesFieldsOrder, useMdmShowEntityId, useMdmPivotingAttributes, useMdmDateMask, useMdmDateTimeMask, useMdmAttributesPresentation, useMdmMaxValuesInResponse, useMdmAttributesSortingStrategy, useMdmLookupAutocomplete, useMdmModifiedEntities, useMdmEntity, useMdmEntityUri, useMdmEntityWithDiff, useMdmEntityUriWithDataTenant, useMdmMode, useMdmIsViewMode, useMdmIsEditableMode, useMdmHistoryDiff, useMdmHistoryMode, useMdmHistorySlice, useMdmHistoryEvent, useMdmProfileLastLoadedTime, useMdmLookups, useMdmDependentLookups, useMdmMetadata, useMdmUser, useMdmUsername, useMdmUserRoles, useMdmTenantObject, useMdmTenant, useMdmTenantName, useMdmEnvironment, useMdmDataTenants, useMdmSearchNavigationData, useMdmSearchProviderData, useMdmIsCollaborationEnabled, useMdmIsWorkflowEnabled, useMdmProfileErrors, useMdmRelationsDrafts, useMdmModifiedEntityDefaultProfilePic, useMdmModifiedEntity, useMdmInitialConnectionTempEntity, useMdmInitialConnection, useMdmDependentLookupEditorState, useMdmActiveErrorsForAttributesPager, useMdmDependentLookupsStructureNode, useMdmAllRelationsToAddAndEdit, useMdmDependentLookupEditorContext, useMdmGlobalSearchRequestOptions, useMdmAuthoringItemsByEntityType, useMdmAction, useMdmListener, useMdmIsSourcesScreenEnabled, useMdmHiddenAttributes, useMdmControlAttributes, useMdmShowMasking } from './hooks';
|
|
3
3
|
export type { MdmModuleActionsContextProps, MdmModuleValuesContextProps, MdmModuleListenersContextProps } from './context';
|