@reltio/components 1.4.1944 → 1.4.1945
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/AttributesView/AttributesView.d.ts +2 -1
- package/cjs/AttributesView/AttributesView.js +4 -2
- package/cjs/AttributesView/AttributesView.test.js +32 -0
- package/cjs/EditModeAttributesList/EditModeAttributesList.d.ts +1 -1
- package/cjs/EditModeAttributesList/EditModeAttributesList.js +16 -5
- package/cjs/EditModeAttributesList/EditModeAttributesList.test.js +1 -1
- package/cjs/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.js +4 -1
- package/cjs/ReadOnlyAttributesList/ReadOnlyAttributesList.d.ts +2 -2
- package/cjs/ReadOnlyAttributesList/ReadOnlyAttributesList.js +6 -4
- package/cjs/ReadOnlyAttributesList/ReadOnlyAttributesList.test.js +1 -1
- package/cjs/ReadOnlyAttributesPager/ReadOnlyAttributesPager.js +11 -2
- package/cjs/ReadOnlyAttributesPager/components/EmptyRenderer/EmptyRenderer.d.ts +9 -0
- package/cjs/ReadOnlyAttributesPager/components/EmptyRenderer/EmptyRenderer.js +20 -0
- package/cjs/ReadOnlyAttributesPager/components/EmptyRenderer/index.d.ts +1 -0
- package/cjs/ReadOnlyAttributesPager/components/EmptyRenderer/index.js +5 -0
- package/cjs/ReadOnlyAttributesPager/styles.d.ts +1 -0
- package/cjs/ReadOnlyAttributesPager/styles.js +5 -1
- package/cjs/constants/attributes.d.ts +1 -1
- package/cjs/constants/attributes.js +2 -2
- package/cjs/constants/index.d.ts +1 -1
- package/cjs/constants/index.js +2 -2
- package/cjs/contexts/AllwaysVisibleAttributesContext/index.d.ts +2 -0
- package/cjs/contexts/AllwaysVisibleAttributesContext/index.js +6 -0
- package/cjs/helpers/attributesView.d.ts +1 -1
- package/cjs/helpers/attributesView.js +2 -2
- package/esm/AttributesView/AttributesView.d.ts +2 -1
- package/esm/AttributesView/AttributesView.js +4 -2
- package/esm/AttributesView/AttributesView.test.js +32 -0
- package/esm/EditModeAttributesList/EditModeAttributesList.d.ts +1 -1
- package/esm/EditModeAttributesList/EditModeAttributesList.js +17 -6
- package/esm/EditModeAttributesList/EditModeAttributesList.test.js +1 -1
- package/esm/EditModeAttributesPager/components/AttributeRenderer/AttributeRenderer.js +4 -1
- package/esm/ReadOnlyAttributesList/ReadOnlyAttributesList.d.ts +2 -2
- package/esm/ReadOnlyAttributesList/ReadOnlyAttributesList.js +7 -5
- package/esm/ReadOnlyAttributesList/ReadOnlyAttributesList.test.js +1 -1
- package/esm/ReadOnlyAttributesPager/ReadOnlyAttributesPager.js +12 -3
- package/esm/ReadOnlyAttributesPager/components/EmptyRenderer/EmptyRenderer.d.ts +9 -0
- package/esm/ReadOnlyAttributesPager/components/EmptyRenderer/EmptyRenderer.js +13 -0
- package/esm/ReadOnlyAttributesPager/components/EmptyRenderer/index.d.ts +1 -0
- package/esm/ReadOnlyAttributesPager/components/EmptyRenderer/index.js +1 -0
- package/esm/ReadOnlyAttributesPager/styles.d.ts +1 -0
- package/esm/ReadOnlyAttributesPager/styles.js +4 -0
- package/esm/constants/attributes.d.ts +1 -1
- package/esm/constants/attributes.js +1 -1
- package/esm/constants/index.d.ts +1 -1
- package/esm/constants/index.js +1 -1
- package/esm/contexts/AllwaysVisibleAttributesContext/index.d.ts +2 -0
- package/esm/contexts/AllwaysVisibleAttributesContext/index.js +3 -0
- package/esm/helpers/attributesView.d.ts +1 -1
- package/esm/helpers/attributesView.js +2 -2
- package/package.json +2 -2
|
@@ -9,5 +9,6 @@ export type AttributesViewProps = {
|
|
|
9
9
|
includeUris?: string[];
|
|
10
10
|
pinnedAttributes?: PinnedAttribute[];
|
|
11
11
|
mode?: Mode;
|
|
12
|
+
alwaysVisible?: string[];
|
|
12
13
|
};
|
|
13
|
-
export declare const AttributesView: ({ attributesCount, pinnedAttributes, ...restProps }: AttributesViewProps) => JSX.Element;
|
|
14
|
+
export declare const AttributesView: ({ attributesCount, pinnedAttributes, alwaysVisible, ...restProps }: AttributesViewProps) => JSX.Element;
|
|
@@ -32,12 +32,14 @@ var ReadOnlyAttributesView_1 = require("../ReadOnlyAttributesView");
|
|
|
32
32
|
var EditModeAttributesView_1 = require("../EditModeAttributesView");
|
|
33
33
|
var EntityContext_1 = require("../contexts/EntityContext");
|
|
34
34
|
var MdmModuleContext_1 = require("../contexts/MdmModuleContext");
|
|
35
|
+
var AllwaysVisibleAttributesContext_1 = require("../contexts/AllwaysVisibleAttributesContext");
|
|
35
36
|
var AttributesView = function (_a) {
|
|
36
|
-
var attributesCount = _a.attributesCount, pinnedAttributes = _a.pinnedAttributes, restProps = __rest(_a, ["attributesCount", "pinnedAttributes"]);
|
|
37
|
+
var attributesCount = _a.attributesCount, pinnedAttributes = _a.pinnedAttributes, _b = _a.alwaysVisible, alwaysVisible = _b === void 0 ? [] : _b, restProps = __rest(_a, ["attributesCount", "pinnedAttributes", "alwaysVisible"]);
|
|
37
38
|
var mdmEntity = (0, MdmModuleContext_1.useMdmEntityWithDiff)();
|
|
38
39
|
var mdmMode = (0, MdmModuleContext_1.useMdmMode)();
|
|
39
40
|
var entity = restProps.entity || mdmEntity;
|
|
40
41
|
var mode = restProps.mode || mdmMode;
|
|
41
|
-
return (react_1.default.createElement(EntityContext_1.EntityContext.Provider, { value: entity },
|
|
42
|
+
return (react_1.default.createElement(EntityContext_1.EntityContext.Provider, { value: entity },
|
|
43
|
+
react_1.default.createElement(AllwaysVisibleAttributesContext_1.AlwaysVisibleAttributesContext.Provider, { value: alwaysVisible }, (0, mdm_sdk_1.isViewMode)(mode) ? (react_1.default.createElement(ReadOnlyAttributesView_1.ReadOnlyAttributesView, __assign({}, restProps, { attributesCount: attributesCount, entity: entity }))) : (react_1.default.createElement(EditModeAttributesView_1.EditModeAttributesView, __assign({}, restProps, { mode: mode, pinnedAttributes: pinnedAttributes, entity: entity }))))));
|
|
42
44
|
};
|
|
43
45
|
exports.AttributesView = AttributesView;
|
|
@@ -45,6 +45,20 @@ describe('AttributesView tests', function () {
|
|
|
45
45
|
name: 'FirstName',
|
|
46
46
|
label: 'First Name',
|
|
47
47
|
access: ['READ', 'CREATE', 'UPDATE', 'INITIATE_CHANGE_REQUEST']
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
uri: 'configuration/entityTypes/HCP/attributes/LastName',
|
|
51
|
+
type: 'String',
|
|
52
|
+
name: 'LastName',
|
|
53
|
+
label: 'Last Name',
|
|
54
|
+
access: ['READ', 'CREATE', 'UPDATE', 'INITIATE_CHANGE_REQUEST']
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
uri: 'configuration/entityTypes/HCP/attributes/Phone',
|
|
58
|
+
type: 'String',
|
|
59
|
+
name: 'Phone',
|
|
60
|
+
label: 'Phone',
|
|
61
|
+
access: ['READ', 'CREATE', 'UPDATE', 'INITIATE_CHANGE_REQUEST']
|
|
48
62
|
}
|
|
49
63
|
]
|
|
50
64
|
}
|
|
@@ -91,4 +105,22 @@ describe('AttributesView tests', function () {
|
|
|
91
105
|
setUp({ entity: entity }, __assign(__assign({}, mdmDefaultValues), { mode: mdm_sdk_1.Mode.Suggesting }));
|
|
92
106
|
expect(react_2.screen.getByRole('textbox')).toHaveValue('nameValue');
|
|
93
107
|
});
|
|
108
|
+
it('should render always visible attributes in read mode', function () {
|
|
109
|
+
var alwaysVisible = [
|
|
110
|
+
'configuration/entityTypes/HCP/attributes/LastName',
|
|
111
|
+
'configuration/entityTypes/HCP/attributes/Phone'
|
|
112
|
+
];
|
|
113
|
+
setUp({ mode: mdm_sdk_1.Mode.Viewing, entity: entity, alwaysVisible: alwaysVisible });
|
|
114
|
+
expect(react_2.screen.getByText('Last Name')).toBeInTheDocument();
|
|
115
|
+
expect(react_2.screen.getByText('Phone')).toBeInTheDocument();
|
|
116
|
+
});
|
|
117
|
+
it('should render always visible attributes in editing mode', function () {
|
|
118
|
+
var alwaysVisible = [
|
|
119
|
+
'configuration/entityTypes/HCP/attributes/LastName',
|
|
120
|
+
'configuration/entityTypes/HCP/attributes/Phone'
|
|
121
|
+
];
|
|
122
|
+
setUp({ mode: mdm_sdk_1.Mode.Editing, entity: entity, alwaysVisible: alwaysVisible });
|
|
123
|
+
expect(react_2.screen.getByText('Last Name')).toBeInTheDocument();
|
|
124
|
+
expect(react_2.screen.getByText('Phone')).toBeInTheDocument();
|
|
125
|
+
});
|
|
94
126
|
});
|
|
@@ -10,7 +10,7 @@ declare const _default: React.ComponentType<{
|
|
|
10
10
|
showEmptyEditors?: boolean;
|
|
11
11
|
showNonOv?: boolean;
|
|
12
12
|
className?: string;
|
|
13
|
-
|
|
13
|
+
fixedTypeUris?: string[];
|
|
14
14
|
highlightAttribute?: (element: AttributeType, type: ScrollType) => void;
|
|
15
15
|
} & Pick<EditModeAttributesPagerProps<AttributeValue>, "mode" | "crosswalks" | "parentUri" | "drawLines" | "onAddAttributes" | "onDeleteAttribute" | "onChangeAttribute" | "additionalControlsRenderer" | "showEmptyEditors">>;
|
|
16
16
|
export default _default;
|
|
@@ -53,11 +53,13 @@ var withContext_1 = require("../HOCs/withContext");
|
|
|
53
53
|
var ConfigPermissionsContext_1 = require("../contexts/ConfigPermissionsContext");
|
|
54
54
|
var ScrollToElementContext_1 = require("../contexts/ScrollToElementContext");
|
|
55
55
|
var HiddenAttributesContext_1 = require("../contexts/HiddenAttributesContext");
|
|
56
|
+
var AllwaysVisibleAttributesContext_1 = require("../contexts/AllwaysVisibleAttributesContext");
|
|
56
57
|
var EditModeAttributesList = function (_a) {
|
|
57
|
-
var parentAttributeType = _a.parentAttributeType, attrTypes = _a.attrTypes, entity = _a.entity, parentUri = _a.parentUri, showEmptyEditors = _a.showEmptyEditors, mode = _a.mode, crosswalks = _a.crosswalks, drawLines = _a.drawLines, children = _a.children, className = _a.className, _b = _a.
|
|
58
|
+
var parentAttributeType = _a.parentAttributeType, attrTypes = _a.attrTypes, entity = _a.entity, parentUri = _a.parentUri, showEmptyEditors = _a.showEmptyEditors, mode = _a.mode, crosswalks = _a.crosswalks, drawLines = _a.drawLines, children = _a.children, className = _a.className, _b = _a.fixedTypeUris, fixedTypeUris = _b === void 0 ? constants_1.FIXED_TYPE_URIS : _b, onAddAttributes = _a.onAddAttributes, onChangeAttribute = _a.onChangeAttribute, onDeleteAttribute = _a.onDeleteAttribute, additionalControlsRenderer = _a.additionalControlsRenderer, showNonOv = _a.showNonOv, highlightAttribute = _a.highlightAttribute;
|
|
58
59
|
var hiddenAttributes = (0, react_1.useContext)(HiddenAttributesContext_1.HiddenAttributesContext);
|
|
59
60
|
var entityUri = parentUri && (0, mdm_sdk_1.getBaseUri)(parentUri);
|
|
60
61
|
var currentEntityHiddenAttributes = (0, react_1.useMemo)(function () { return hiddenAttributes[entityUri] || []; }, [hiddenAttributes, entityUri]);
|
|
62
|
+
var alwaysVisibleAttributes = (0, react_1.useContext)(AllwaysVisibleAttributesContext_1.AlwaysVisibleAttributesContext);
|
|
61
63
|
var filteredAttrTypes = (0, react_1.useMemo)(function () { return attrTypes.filter(function (attrType) { return !currentEntityHiddenAttributes.includes(attrType.uri); }); }, [attrTypes, currentEntityHiddenAttributes]);
|
|
62
64
|
var _c = entity.attributes, attributes = _c === void 0 ? {} : _c;
|
|
63
65
|
var _d = (0, react_1.useState)({}), hasDeletionsMap = _d[0], setHasDeletionsMap = _d[1];
|
|
@@ -76,9 +78,18 @@ var EditModeAttributesList = function (_a) {
|
|
|
76
78
|
var moreAttrTypes = (0, helpers_1.getMoreAttrTypes)(creatableAttrTypes, entity, showEmptyEditors, hasDeletionsMap);
|
|
77
79
|
var pinnedAttributes = (0, react_1.useContext)(PinnedAttributesContext_1.PinnedAttributesContext);
|
|
78
80
|
var pagersData = (0, react_1.useMemo)(function () {
|
|
79
|
-
return (0, mdm_sdk_1.getAttributesListForEditMode)(filteredAttrTypes, mode, entity, showEmptyEditors, showNonOv, pinnedAttributes, canCreate);
|
|
80
|
-
}, [
|
|
81
|
-
|
|
81
|
+
return (0, mdm_sdk_1.getAttributesListForEditMode)(filteredAttrTypes, mode, entity, showEmptyEditors, showNonOv, pinnedAttributes, canCreate, alwaysVisibleAttributes);
|
|
82
|
+
}, [
|
|
83
|
+
filteredAttrTypes,
|
|
84
|
+
mode,
|
|
85
|
+
entity,
|
|
86
|
+
showEmptyEditors,
|
|
87
|
+
showNonOv,
|
|
88
|
+
pinnedAttributes,
|
|
89
|
+
canCreate,
|
|
90
|
+
alwaysVisibleAttributes
|
|
91
|
+
]);
|
|
92
|
+
var _e = (0, react_1.useMemo)(function () { return (0, attributesView_1.splitPagersData)(fixedTypeUris, pagersData); }, [pagersData, fixedTypeUris]), fixedPagersData = _e[0], regularPagersData = _e[1];
|
|
82
93
|
var onAddMoreAttributes = (0, react_1.useCallback)(function (attributeTypes) {
|
|
83
94
|
onAddAttributes(attributeTypes.map(function (attributeType) { return ({
|
|
84
95
|
attributeType: attributeType,
|
|
@@ -96,7 +107,7 @@ var EditModeAttributesList = function (_a) {
|
|
|
96
107
|
return (react_1.default.createElement("div", { className: className },
|
|
97
108
|
children && react_1.default.createElement(BranchDecorator_1.BranchDecorator, __assign({}, decoratorProps), children),
|
|
98
109
|
react_1.default.createElement(BranchDecorator_1.BranchDecorator, __assign({}, decoratorProps, { plain: true }), moreAttrTypes.length > 0 && mode !== mdm_sdk_1.Mode.Viewing && (react_1.default.createElement(MoreAttributesButton_1.MoreAttributesButton, { label: ui_i18n_1.default.text('More attributes'), onApply: onAddMoreAttributes, dense: drawLines, data: moreAttrTypes, parent: canCreateParentAttrType && parentAttributeType }))),
|
|
99
|
-
react_1.default.createElement(HasDeletionsContext_1.HasDeletionsContext.Provider, { value: hasDeletionsContextValue }, regularPagersData.concat(
|
|
110
|
+
react_1.default.createElement(HasDeletionsContext_1.HasDeletionsContext.Provider, { value: hasDeletionsContextValue }, regularPagersData.concat(fixedPagersData).map(function (_a) {
|
|
100
111
|
var attrType = _a.attrType, values = _a.values;
|
|
101
112
|
return (react_1.default.createElement(EditModeAttributesPager_1.EditModeAttributesPager, { key: "".concat(attrType.uri, "_").concat(parentUri), attributeType: attrType, drawLines: drawLines, values: values, paging: (0, ramda_1.path)(['paging', attrType.uri], attributes), parentUri: parentUri, showEmptyEditors: showEmptyEditors, mode: mode, crosswalks: crosswalks, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onDeleteAttribute, additionalControlsRenderer: additionalControlsRenderer, showNonOv: showNonOv }));
|
|
102
113
|
}))));
|
|
@@ -353,6 +353,6 @@ describe('EditModeAttributesList tests', function () {
|
|
|
353
353
|
(0, enzyme_1.mount)(react_1.default.createElement(PinnedAttributesContext_1.PinnedAttributesContext.Provider, { value: pinnedAttributes },
|
|
354
354
|
react_1.default.createElement(EditModeAttributesList_1.default, { mode: mdm_sdk_1.Mode.Editing, attrTypes: attributes_test_data_1.attributesList, entity: entity, parentUri: parentUri },
|
|
355
355
|
react_1.default.createElement(Child, null))));
|
|
356
|
-
expect(mdm_sdk_1.getAttributesListForEditMode).toHaveBeenCalledWith(attributes_test_data_1.attributesList, mdm_sdk_1.Mode.Editing, entity, undefined, undefined, pinnedAttributes, true);
|
|
356
|
+
expect(mdm_sdk_1.getAttributesListForEditMode).toHaveBeenCalledWith(attributes_test_data_1.attributesList, mdm_sdk_1.Mode.Editing, entity, undefined, undefined, pinnedAttributes, true, []);
|
|
357
357
|
});
|
|
358
358
|
});
|
|
@@ -39,6 +39,7 @@ var ShowMore_1 = require("../../../ShowMore");
|
|
|
39
39
|
var EditModeAttributesFactory_1 = require("../../../EditModeAttributesFactory");
|
|
40
40
|
var CardinalityMessage_1 = require("../../../CardinalityMessage");
|
|
41
41
|
var PinnedAttributesContext_1 = require("../../../contexts/PinnedAttributesContext");
|
|
42
|
+
var AllwaysVisibleAttributesContext_1 = require("../../../contexts/AllwaysVisibleAttributesContext");
|
|
42
43
|
var DescriptionIcon_1 = require("../../../DescriptionIcon");
|
|
43
44
|
var ControlAttributeIcon_1 = require("../../../ControlAttributeIcon");
|
|
44
45
|
var useScrollToAttribute_1 = require("../../../hooks/useScrollToAttribute");
|
|
@@ -56,9 +57,11 @@ var AttributeRenderer = function (_a) {
|
|
|
56
57
|
var _d = (0, useScrollToAttributeError_1.useScrollToAttributeError)({ highlightedError: highlightedError }), errorRef = _d.ref, errorClassName = _d.errorClassName;
|
|
57
58
|
var _e = (0, useScrollToAttribute_1.useScrollToAttribute)(highlightedAttribute), attributeRef = _e.ref, highlightedClassName = _e.highlightedClassName;
|
|
58
59
|
var pinnedAttributes = (0, react_1.useContext)(PinnedAttributesContext_1.PinnedAttributesContext);
|
|
60
|
+
var alwaysVisibleAttributes = (0, react_1.useContext)(AllwaysVisibleAttributesContext_1.AlwaysVisibleAttributesContext);
|
|
59
61
|
var isPinned = (0, react_1.useMemo)(function () { return pinnedAttributes === null || pinnedAttributes === void 0 ? void 0 : pinnedAttributes.includes(attributeTypeUri); }, [attributeTypeUri, pinnedAttributes]);
|
|
62
|
+
var isAlwaysVisible = (0, react_1.useMemo)(function () { return alwaysVisibleAttributes === null || alwaysVisibleAttributes === void 0 ? void 0 : alwaysVisibleAttributes.includes(attributeTypeUri); }, [attributeTypeUri, alwaysVisibleAttributes]);
|
|
60
63
|
var isEmptyValues = (0, mdm_sdk_1.isEmptyValue)(values);
|
|
61
|
-
var showEmpty = ((!hadDeletions && showEmptyEditors) || isRequired || isPinned) && isEmptyValues;
|
|
64
|
+
var showEmpty = ((!hadDeletions && showEmptyEditors) || isRequired || isPinned || isAlwaysVisible) && isEmptyValues;
|
|
62
65
|
var controlAttributes = (0, MdmModuleContext_1.useMdmControlAttributes)();
|
|
63
66
|
var isControlAttribute = (0, react_1.useMemo)(function () { return controlAttributes.includes(attributeType.uri); }, [controlAttributes, attributeType.uri]);
|
|
64
67
|
var emptyEditorValue = (0, react_1.useRef)((0, mdm_sdk_1.createNewAttribute)({
|
|
@@ -9,12 +9,12 @@ type Props = {
|
|
|
9
9
|
children?: React.ReactNode;
|
|
10
10
|
className?: string;
|
|
11
11
|
max?: number;
|
|
12
|
-
|
|
12
|
+
fixedTypeUris?: string[];
|
|
13
13
|
showNonOv?: boolean;
|
|
14
14
|
classes?: ReadOnlyAttributeClasses;
|
|
15
15
|
};
|
|
16
16
|
declare const _default: React.MemoExoticComponent<{
|
|
17
|
-
({ attrTypes, entity, parentUri, drawLines, children, className, max,
|
|
17
|
+
({ attrTypes, entity, parentUri, drawLines, children, className, max, fixedTypeUris, showNonOv, classes }: Props): JSX.Element;
|
|
18
18
|
displayName: string;
|
|
19
19
|
}>;
|
|
20
20
|
export default _default;
|
|
@@ -44,15 +44,17 @@ var ShowLess_1 = require("../ShowLess");
|
|
|
44
44
|
var constants_1 = require("../constants");
|
|
45
45
|
var attributesView_1 = require("../helpers/attributesView");
|
|
46
46
|
var HiddenAttributesContext_1 = require("../contexts/HiddenAttributesContext");
|
|
47
|
+
var AllwaysVisibleAttributesContext_1 = require("../contexts/AllwaysVisibleAttributesContext");
|
|
47
48
|
var ReadOnlyAttributesList = function (_a) {
|
|
48
|
-
var _b = _a.attrTypes, attrTypes = _b === void 0 ? [] : _b, entity = _a.entity, parentUri = _a.parentUri, drawLines = _a.drawLines, children = _a.children, className = _a.className, max = _a.max, _c = _a.
|
|
49
|
+
var _b = _a.attrTypes, attrTypes = _b === void 0 ? [] : _b, entity = _a.entity, parentUri = _a.parentUri, drawLines = _a.drawLines, children = _a.children, className = _a.className, max = _a.max, _c = _a.fixedTypeUris, fixedTypeUris = _c === void 0 ? constants_1.FIXED_TYPE_URIS : _c, showNonOv = _a.showNonOv, classes = _a.classes;
|
|
49
50
|
var hiddenAttributes = (0, react_1.useContext)(HiddenAttributesContext_1.HiddenAttributesContext);
|
|
51
|
+
var alwaysVisibleAttributes = (0, react_1.useContext)(AllwaysVisibleAttributesContext_1.AlwaysVisibleAttributesContext);
|
|
50
52
|
var entityUri = parentUri && (0, mdm_sdk_1.getBaseUri)(parentUri);
|
|
51
53
|
var currentEntityHiddenAttributes = (0, react_1.useMemo)(function () { return hiddenAttributes[entityUri] || []; }, [hiddenAttributes, entityUri]);
|
|
52
54
|
var filteredAttrTypes = (0, react_1.useMemo)(function () { return (attrTypes || []).filter(function (attrType) { return !currentEntityHiddenAttributes.includes(attrType.uri); }); }, [attrTypes, currentEntityHiddenAttributes]);
|
|
53
55
|
var _d = (0, react_1.useState)(max || Infinity), visibleValuesCount = _d[0], setVisibleValuesCount = _d[1];
|
|
54
|
-
var pagersData = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.getAttributesListForReadMode)(filteredAttrTypes, entity, showNonOv); }, [filteredAttrTypes, entity, showNonOv]);
|
|
55
|
-
var _e = (0, react_1.useMemo)(function () { return (0, attributesView_1.splitPagersData)(
|
|
56
|
+
var pagersData = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.getAttributesListForReadMode)(filteredAttrTypes, entity, showNonOv, alwaysVisibleAttributes); }, [filteredAttrTypes, entity, showNonOv, alwaysVisibleAttributes]);
|
|
57
|
+
var _e = (0, react_1.useMemo)(function () { return (0, attributesView_1.splitPagersData)(fixedTypeUris, pagersData); }, [pagersData, fixedTypeUris]), fixedPagersData = _e[0], regularPagersData = _e[1];
|
|
56
58
|
var visibleAttributePagersData = regularPagersData.slice(0, visibleValuesCount);
|
|
57
59
|
var showMore = max && visibleAttributePagersData.length < regularPagersData.length;
|
|
58
60
|
var showLess = max && visibleAttributePagersData.length >= regularPagersData.length && max < visibleAttributePagersData.length;
|
|
@@ -67,7 +69,7 @@ var ReadOnlyAttributesList = function (_a) {
|
|
|
67
69
|
};
|
|
68
70
|
return (react_1.default.createElement("div", { className: className },
|
|
69
71
|
children && react_1.default.createElement(BranchDecorator_1.BranchDecorator, __assign({}, decoratorProps), children),
|
|
70
|
-
visibleAttributePagersData.concat(
|
|
72
|
+
visibleAttributePagersData.concat(fixedPagersData).map(function (_a) {
|
|
71
73
|
var attrType = _a.attrType, values = _a.values;
|
|
72
74
|
return (react_1.default.createElement(ReadOnlyAttributesPager_1.ReadOnlyAttributesPager, { key: attrType.uri, attributeType: attrType, drawLines: drawLines, values: values, paging: (0, ramda_1.path)(['paging', attrType.uri], entity.attributes), parentUri: parentUri, showNonOv: showNonOv, classes: classes }));
|
|
73
75
|
}),
|
|
@@ -237,7 +237,7 @@ describe('ReadOnlyAttributesList tests', function () {
|
|
|
237
237
|
expect(showMoreButton.length).toBe(0);
|
|
238
238
|
expect(showLessButton.length).toBe(0);
|
|
239
239
|
});
|
|
240
|
-
describe('
|
|
240
|
+
describe('fixedTypeUris behavior', function () {
|
|
241
241
|
var attrTypes = __spreadArray(__spreadArray([], attributes_test_data_1.attributesList, true), [mdm_sdk_1.EntityAttrTypes.roles, mdm_sdk_1.EntityAttrTypes.tags], false);
|
|
242
242
|
var entity = {
|
|
243
243
|
attributes: attributes,
|
|
@@ -46,13 +46,16 @@ var OneLineRenderer_1 = require("./components/OneLineRenderer");
|
|
|
46
46
|
var MultiLineRenderer_1 = require("./components/MultiLineRenderer");
|
|
47
47
|
var SpecialRenderer_1 = require("./components/SpecialRenderer");
|
|
48
48
|
var ImageLineRenderer_1 = require("./components/ImageLineRenderer");
|
|
49
|
+
var EmptyRenderer_1 = require("./components/EmptyRenderer");
|
|
49
50
|
var MdmModuleContext_1 = require("../contexts/MdmModuleContext");
|
|
51
|
+
var AllwaysVisibleAttributesContext_1 = require("../contexts/AllwaysVisibleAttributesContext");
|
|
50
52
|
var styles_1 = require("./styles");
|
|
51
53
|
var RENDERER_TYPES = {
|
|
52
54
|
oneLine: 'oneLine',
|
|
53
55
|
multiLine: 'multiLine',
|
|
54
56
|
imageLine: 'imageLine',
|
|
55
|
-
special: 'special'
|
|
57
|
+
special: 'special',
|
|
58
|
+
empty: 'empty'
|
|
56
59
|
};
|
|
57
60
|
var ReadOnlyAttributesPager = function (_a) {
|
|
58
61
|
var _b, _c, _d, _e;
|
|
@@ -63,7 +66,9 @@ var ReadOnlyAttributesPager = function (_a) {
|
|
|
63
66
|
var maxValuesInResponse = (0, MdmModuleContext_1.useMdmMaxValuesInResponse)();
|
|
64
67
|
var max = (_f = maxProp !== null && maxProp !== void 0 ? maxProp : maxValuesInResponse) !== null && _f !== void 0 ? _f : Infinity;
|
|
65
68
|
var partitionByOv = (0, ramda_1.partition)(mdm_sdk_1.isOv);
|
|
66
|
-
|
|
69
|
+
var alwaysVisibleAttributes = (0, react_1.useContext)(AllwaysVisibleAttributesContext_1.AlwaysVisibleAttributesContext);
|
|
70
|
+
var isAlwaysVisible = (0, react_1.useMemo)(function () { return alwaysVisibleAttributes === null || alwaysVisibleAttributes === void 0 ? void 0 : alwaysVisibleAttributes.includes(attributeType.uri); }, [attributeType.uri, alwaysVisibleAttributes]);
|
|
71
|
+
if (!values || (!values.length && !isAlwaysVisible)) {
|
|
67
72
|
return null;
|
|
68
73
|
}
|
|
69
74
|
var _h = partitionByOv(values), ovValues = _h[0], nonOvValues = _h[1];
|
|
@@ -75,11 +80,13 @@ var ReadOnlyAttributesPager = function (_a) {
|
|
|
75
80
|
? paging.totalValues - totalVisibleValues
|
|
76
81
|
: nonVisibleValues.length;
|
|
77
82
|
var isOneLineRender = totalVisibleValues === 1 && !(0, mdm_sdk_1.isComplexAttribute)(attributeType);
|
|
83
|
+
var isEmptyRender = values.length === 0 && isAlwaysVisible;
|
|
78
84
|
var render = function () {
|
|
79
85
|
var type = (0, ramda_1.cond)([
|
|
80
86
|
[mdm_sdk_1.isSpecialAttribute, (0, ramda_1.always)(RENDERER_TYPES.special)],
|
|
81
87
|
[mdm_sdk_1.isImage, (0, ramda_1.always)(RENDERER_TYPES.imageLine)],
|
|
82
88
|
[(0, ramda_1.always)(isOneLineRender), (0, ramda_1.always)(RENDERER_TYPES.oneLine)],
|
|
89
|
+
[(0, ramda_1.always)(isEmptyRender), (0, ramda_1.always)(RENDERER_TYPES.empty)],
|
|
83
90
|
[ramda_1.T, (0, ramda_1.always)(RENDERER_TYPES.multiLine)]
|
|
84
91
|
])(attributeType);
|
|
85
92
|
switch (type) {
|
|
@@ -91,6 +98,8 @@ var ReadOnlyAttributesPager = function (_a) {
|
|
|
91
98
|
return (react_1.default.createElement(ImageLineRenderer_1.ImageLineRenderer, { attributeValues: visibleValues, attributeType: attributeType, paging: paging, parentUri: parentUri, requestNextPageOfAttributeValues: requestNextPageOfAttributeValues, showNonOv: showNonOv }));
|
|
92
99
|
case RENDERER_TYPES.special:
|
|
93
100
|
return react_1.default.createElement(SpecialRenderer_1.SpecialRenderer, { values: visibleValues, attributeType: attributeType, classes: classes });
|
|
101
|
+
case RENDERER_TYPES.empty:
|
|
102
|
+
return react_1.default.createElement(EmptyRenderer_1.EmptyRenderer, { attributeType: attributeType, classes: classes });
|
|
94
103
|
}
|
|
95
104
|
};
|
|
96
105
|
return (react_1.default.createElement(BranchDecorator_1.BranchDecorator, { enabled: drawLines, className: (0, classnames_1.default)(__assign((_b = {}, _b[styles.paddingWrapperWithLines] = drawLines, _b), ((classes === null || classes === void 0 ? void 0 : classes.wrapperWithLines) ? (_c = {}, _c[classes === null || classes === void 0 ? void 0 : classes.wrapperWithLines] = drawLines, _c) : {}))) },
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { AttributeType } from '@reltio/mdm-sdk';
|
|
3
|
+
import { ReadOnlyAttributeClasses } from '../../..';
|
|
4
|
+
type Props = {
|
|
5
|
+
attributeType: AttributeType;
|
|
6
|
+
classes?: ReadOnlyAttributeClasses;
|
|
7
|
+
};
|
|
8
|
+
export declare const EmptyRenderer: ({ attributeType, classes }: Props) => JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EmptyRenderer = void 0;
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
9
|
+
var AttributeTitle_1 = require("../../../AttributeTitle");
|
|
10
|
+
var DescriptionIcon_1 = require("../../../DescriptionIcon");
|
|
11
|
+
var styles_1 = require("../../styles");
|
|
12
|
+
var EmptyRenderer = function (_a) {
|
|
13
|
+
var attributeType = _a.attributeType, classes = _a.classes;
|
|
14
|
+
var styles = (0, styles_1.useEmptyStyles)();
|
|
15
|
+
var label = attributeType.label, description = attributeType.description;
|
|
16
|
+
return (react_1.default.createElement("div", { "data-reltio-id": "reltio-empty-renderer", className: (0, classnames_1.default)(styles.titleRow, styles.wrapper) },
|
|
17
|
+
react_1.default.createElement(AttributeTitle_1.AttributeTitle, { label: label, className: (0, classnames_1.default)(styles.title, classes === null || classes === void 0 ? void 0 : classes.title), "data-reltio-id": "reltio-attribute-label" }),
|
|
18
|
+
react_1.default.createElement(DescriptionIcon_1.DescriptionIcon, { description: description, className: styles.descriptionIcon })));
|
|
19
|
+
};
|
|
20
|
+
exports.EmptyRenderer = EmptyRenderer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { EmptyRenderer } from './EmptyRenderer';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EmptyRenderer = void 0;
|
|
4
|
+
var EmptyRenderer_1 = require("./EmptyRenderer");
|
|
5
|
+
Object.defineProperty(exports, "EmptyRenderer", { enumerable: true, get: function () { return EmptyRenderer_1.EmptyRenderer; } });
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"paddingWrapper" | "paddingWrapperWithLines">;
|
|
2
2
|
export declare const useOneLineStyles: (props?: any) => import("@mui/styles").ClassNameMap<"title" | "wrapper" | "attribute" | "collaborationWrapper" | "titleIcon" | "titleRow" | "ovIcon" | "descriptionIcon">;
|
|
3
3
|
export declare const useMultiLineStyles: (props?: any) => import("@mui/styles").ClassNameMap<"title" | "wrapper" | "attributes" | "attribute" | "titleRow" | "ovIcon" | "descriptionIcon">;
|
|
4
|
+
export declare const useEmptyStyles: (props?: any) => import("@mui/styles").ClassNameMap<"title" | "wrapper" | "titleRow" | "ovIcon" | "descriptionIcon">;
|
|
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.useMultiLineStyles = exports.useOneLineStyles = exports.useStyles = void 0;
|
|
14
|
+
exports.useEmptyStyles = exports.useMultiLineStyles = exports.useOneLineStyles = exports.useStyles = void 0;
|
|
15
15
|
var styles_1 = require("@mui/styles");
|
|
16
16
|
var fontSize = '13px';
|
|
17
17
|
var lineHeight = '16px';
|
|
@@ -90,3 +90,7 @@ exports.useMultiLineStyles = (0, styles_1.makeStyles)(__assign({ wrapper: {
|
|
|
90
90
|
}, attributes: {
|
|
91
91
|
alignSelf: 'stretch'
|
|
92
92
|
}, titleRow: __assign(__assign({}, commonStyles.titleRow), { marginBottom: '3px' }) }, commonStyles));
|
|
93
|
+
exports.useEmptyStyles = (0, styles_1.makeStyles)(__assign({ wrapper: {
|
|
94
|
+
fontSize: fontSize,
|
|
95
|
+
lineHeight: lineHeight
|
|
96
|
+
} }, commonStyles));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const FIXED_TYPE_URIS: string[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.FIXED_TYPE_URIS = void 0;
|
|
4
4
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
5
|
-
exports.
|
|
5
|
+
exports.FIXED_TYPE_URIS = [mdm_sdk_1.EntityAttrTypes.roles.uri, mdm_sdk_1.EntityAttrTypes.tags.uri];
|
package/cjs/constants/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { SortingType, QueryBuilderAttributeType } from './prop-types';
|
|
2
2
|
export { COMMENTS_CONTAINER_VISIBILITY_AREA } from './classnames';
|
|
3
|
-
export {
|
|
3
|
+
export { FIXED_TYPE_URIS } from './attributes';
|
|
4
4
|
export { MAP_DRAWING_MODES, DEFAULT_GOOGLE_MAP_OPTIONS, DEFAULT_OVERLAY_OPTIONS, MAP_MINIMUM_SCALE_RADIUS } from './map';
|
|
5
5
|
export { COMMON_TEXT_FIELD_PROPS } from './textField';
|
|
6
6
|
export { POPUP_Z_INDEX } from './common';
|
package/cjs/constants/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.viewingModeOption = exports.suggestingModeOption = exports.editingModeOption = exports.ReactSelectOptionFilters = exports.POPUP_Z_INDEX = exports.COMMON_TEXT_FIELD_PROPS = exports.MAP_MINIMUM_SCALE_RADIUS = exports.DEFAULT_OVERLAY_OPTIONS = exports.DEFAULT_GOOGLE_MAP_OPTIONS = exports.MAP_DRAWING_MODES = exports.
|
|
3
|
+
exports.viewingModeOption = exports.suggestingModeOption = exports.editingModeOption = exports.ReactSelectOptionFilters = exports.POPUP_Z_INDEX = exports.COMMON_TEXT_FIELD_PROPS = exports.MAP_MINIMUM_SCALE_RADIUS = exports.DEFAULT_OVERLAY_OPTIONS = exports.DEFAULT_GOOGLE_MAP_OPTIONS = exports.MAP_DRAWING_MODES = exports.FIXED_TYPE_URIS = exports.COMMENTS_CONTAINER_VISIBILITY_AREA = exports.QueryBuilderAttributeType = exports.SortingType = void 0;
|
|
4
4
|
var prop_types_1 = require("./prop-types");
|
|
5
5
|
Object.defineProperty(exports, "SortingType", { enumerable: true, get: function () { return prop_types_1.SortingType; } });
|
|
6
6
|
Object.defineProperty(exports, "QueryBuilderAttributeType", { enumerable: true, get: function () { return prop_types_1.QueryBuilderAttributeType; } });
|
|
7
7
|
var classnames_1 = require("./classnames");
|
|
8
8
|
Object.defineProperty(exports, "COMMENTS_CONTAINER_VISIBILITY_AREA", { enumerable: true, get: function () { return classnames_1.COMMENTS_CONTAINER_VISIBILITY_AREA; } });
|
|
9
9
|
var attributes_1 = require("./attributes");
|
|
10
|
-
Object.defineProperty(exports, "
|
|
10
|
+
Object.defineProperty(exports, "FIXED_TYPE_URIS", { enumerable: true, get: function () { return attributes_1.FIXED_TYPE_URIS; } });
|
|
11
11
|
var map_1 = require("./map");
|
|
12
12
|
Object.defineProperty(exports, "MAP_DRAWING_MODES", { enumerable: true, get: function () { return map_1.MAP_DRAWING_MODES; } });
|
|
13
13
|
Object.defineProperty(exports, "DEFAULT_GOOGLE_MAP_OPTIONS", { enumerable: true, get: function () { return map_1.DEFAULT_GOOGLE_MAP_OPTIONS; } });
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AlwaysVisibleAttributesContext = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
exports.AlwaysVisibleAttributesContext = (0, react_1.createContext)([]);
|
|
6
|
+
exports.AlwaysVisibleAttributesContext.displayName = 'AlwaysVisibleAttributesContext';
|
|
@@ -5,7 +5,7 @@ type PagersData = {
|
|
|
5
5
|
attrType: AttributeType;
|
|
6
6
|
values: (SimpleAttributeValue | NestedAttributeValue | ReferenceAttributeValue | string | number)[];
|
|
7
7
|
};
|
|
8
|
-
export declare const splitPagersData: (
|
|
8
|
+
export declare const splitPagersData: (fixedTypeUris: string[], pagersData: PagersData[]) => [PagersData[], PagersData[]];
|
|
9
9
|
export declare const attributeValueToEditorValue: (attributeValue: SimpleAttributeValue, { type }: DataTypeDefinition) => string | number | boolean | Date | {
|
|
10
10
|
value: import("@reltio/mdm-sdk").PrimitiveValue;
|
|
11
11
|
lookupCode: string;
|
|
@@ -20,8 +20,8 @@ var getFilteredAttrTypes = function (metadata, type, includeUris, excludeUris) {
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
exports.getFilteredAttrTypes = getFilteredAttrTypes;
|
|
23
|
-
var splitPagersData = function (
|
|
24
|
-
return (0, ramda_1.partition)((0, ramda_1.pipe)((0, ramda_1.path)(['attrType', 'uri']), (0, ramda_1.includes)(ramda_1.__,
|
|
23
|
+
var splitPagersData = function (fixedTypeUris, pagersData) {
|
|
24
|
+
return (0, ramda_1.partition)((0, ramda_1.pipe)((0, ramda_1.path)(['attrType', 'uri']), (0, ramda_1.includes)(ramda_1.__, fixedTypeUris)), pagersData);
|
|
25
25
|
};
|
|
26
26
|
exports.splitPagersData = splitPagersData;
|
|
27
27
|
var attributeValueToEditorValue = function (attributeValue, _a) {
|
|
@@ -9,5 +9,6 @@ export type AttributesViewProps = {
|
|
|
9
9
|
includeUris?: string[];
|
|
10
10
|
pinnedAttributes?: PinnedAttribute[];
|
|
11
11
|
mode?: Mode;
|
|
12
|
+
alwaysVisible?: string[];
|
|
12
13
|
};
|
|
13
|
-
export declare const AttributesView: ({ attributesCount, pinnedAttributes, ...restProps }: AttributesViewProps) => JSX.Element;
|
|
14
|
+
export declare const AttributesView: ({ attributesCount, pinnedAttributes, alwaysVisible, ...restProps }: AttributesViewProps) => JSX.Element;
|
|
@@ -26,11 +26,13 @@ import { ReadOnlyAttributesView } from '../ReadOnlyAttributesView';
|
|
|
26
26
|
import { EditModeAttributesView } from '../EditModeAttributesView';
|
|
27
27
|
import { EntityContext } from '../contexts/EntityContext';
|
|
28
28
|
import { useMdmEntityWithDiff, useMdmMode } from '../contexts/MdmModuleContext';
|
|
29
|
+
import { AlwaysVisibleAttributesContext } from '../contexts/AllwaysVisibleAttributesContext';
|
|
29
30
|
export var AttributesView = function (_a) {
|
|
30
|
-
var attributesCount = _a.attributesCount, pinnedAttributes = _a.pinnedAttributes, restProps = __rest(_a, ["attributesCount", "pinnedAttributes"]);
|
|
31
|
+
var attributesCount = _a.attributesCount, pinnedAttributes = _a.pinnedAttributes, _b = _a.alwaysVisible, alwaysVisible = _b === void 0 ? [] : _b, restProps = __rest(_a, ["attributesCount", "pinnedAttributes", "alwaysVisible"]);
|
|
31
32
|
var mdmEntity = useMdmEntityWithDiff();
|
|
32
33
|
var mdmMode = useMdmMode();
|
|
33
34
|
var entity = restProps.entity || mdmEntity;
|
|
34
35
|
var mode = restProps.mode || mdmMode;
|
|
35
|
-
return (React.createElement(EntityContext.Provider, { value: entity },
|
|
36
|
+
return (React.createElement(EntityContext.Provider, { value: entity },
|
|
37
|
+
React.createElement(AlwaysVisibleAttributesContext.Provider, { value: alwaysVisible }, isViewMode(mode) ? (React.createElement(ReadOnlyAttributesView, __assign({}, restProps, { attributesCount: attributesCount, entity: entity }))) : (React.createElement(EditModeAttributesView, __assign({}, restProps, { mode: mode, pinnedAttributes: pinnedAttributes, entity: entity }))))));
|
|
36
38
|
};
|
|
@@ -40,6 +40,20 @@ describe('AttributesView tests', function () {
|
|
|
40
40
|
name: 'FirstName',
|
|
41
41
|
label: 'First Name',
|
|
42
42
|
access: ['READ', 'CREATE', 'UPDATE', 'INITIATE_CHANGE_REQUEST']
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
uri: 'configuration/entityTypes/HCP/attributes/LastName',
|
|
46
|
+
type: 'String',
|
|
47
|
+
name: 'LastName',
|
|
48
|
+
label: 'Last Name',
|
|
49
|
+
access: ['READ', 'CREATE', 'UPDATE', 'INITIATE_CHANGE_REQUEST']
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
uri: 'configuration/entityTypes/HCP/attributes/Phone',
|
|
53
|
+
type: 'String',
|
|
54
|
+
name: 'Phone',
|
|
55
|
+
label: 'Phone',
|
|
56
|
+
access: ['READ', 'CREATE', 'UPDATE', 'INITIATE_CHANGE_REQUEST']
|
|
43
57
|
}
|
|
44
58
|
]
|
|
45
59
|
}
|
|
@@ -86,4 +100,22 @@ describe('AttributesView tests', function () {
|
|
|
86
100
|
setUp({ entity: entity }, __assign(__assign({}, mdmDefaultValues), { mode: Mode.Suggesting }));
|
|
87
101
|
expect(screen.getByRole('textbox')).toHaveValue('nameValue');
|
|
88
102
|
});
|
|
103
|
+
it('should render always visible attributes in read mode', function () {
|
|
104
|
+
var alwaysVisible = [
|
|
105
|
+
'configuration/entityTypes/HCP/attributes/LastName',
|
|
106
|
+
'configuration/entityTypes/HCP/attributes/Phone'
|
|
107
|
+
];
|
|
108
|
+
setUp({ mode: Mode.Viewing, entity: entity, alwaysVisible: alwaysVisible });
|
|
109
|
+
expect(screen.getByText('Last Name')).toBeInTheDocument();
|
|
110
|
+
expect(screen.getByText('Phone')).toBeInTheDocument();
|
|
111
|
+
});
|
|
112
|
+
it('should render always visible attributes in editing mode', function () {
|
|
113
|
+
var alwaysVisible = [
|
|
114
|
+
'configuration/entityTypes/HCP/attributes/LastName',
|
|
115
|
+
'configuration/entityTypes/HCP/attributes/Phone'
|
|
116
|
+
];
|
|
117
|
+
setUp({ mode: Mode.Editing, entity: entity, alwaysVisible: alwaysVisible });
|
|
118
|
+
expect(screen.getByText('Last Name')).toBeInTheDocument();
|
|
119
|
+
expect(screen.getByText('Phone')).toBeInTheDocument();
|
|
120
|
+
});
|
|
89
121
|
});
|
|
@@ -10,7 +10,7 @@ declare const _default: React.ComponentType<{
|
|
|
10
10
|
showEmptyEditors?: boolean;
|
|
11
11
|
showNonOv?: boolean;
|
|
12
12
|
className?: string;
|
|
13
|
-
|
|
13
|
+
fixedTypeUris?: string[];
|
|
14
14
|
highlightAttribute?: (element: AttributeType, type: ScrollType) => void;
|
|
15
15
|
} & Pick<EditModeAttributesPagerProps<AttributeValue>, "mode" | "crosswalks" | "parentUri" | "drawLines" | "onAddAttributes" | "onDeleteAttribute" | "onChangeAttribute" | "additionalControlsRenderer" | "showEmptyEditors">>;
|
|
16
16
|
export default _default;
|
|
@@ -16,7 +16,7 @@ import { last, path } from 'ramda';
|
|
|
16
16
|
import { EditModeAttributesPager } from '../EditModeAttributesPager';
|
|
17
17
|
import { BranchDecorator } from '../BranchDecorator';
|
|
18
18
|
import { MoreAttributesButton } from '../MoreAttributesButton';
|
|
19
|
-
import {
|
|
19
|
+
import { FIXED_TYPE_URIS } from '../constants';
|
|
20
20
|
import { splitPagersData } from '../helpers/attributesView';
|
|
21
21
|
import { getMoreAttrTypes } from './helpers';
|
|
22
22
|
import { PinnedAttributesContext } from '../contexts/PinnedAttributesContext';
|
|
@@ -25,11 +25,13 @@ import { withContext } from '../HOCs/withContext';
|
|
|
25
25
|
import { ConfigPermissionsContext } from '../contexts/ConfigPermissionsContext';
|
|
26
26
|
import { ScrollType, ScrollToElementContext } from '../contexts/ScrollToElementContext';
|
|
27
27
|
import { HiddenAttributesContext } from '../contexts/HiddenAttributesContext';
|
|
28
|
+
import { AlwaysVisibleAttributesContext } from '../contexts/AllwaysVisibleAttributesContext';
|
|
28
29
|
var EditModeAttributesList = function (_a) {
|
|
29
|
-
var parentAttributeType = _a.parentAttributeType, attrTypes = _a.attrTypes, entity = _a.entity, parentUri = _a.parentUri, showEmptyEditors = _a.showEmptyEditors, mode = _a.mode, crosswalks = _a.crosswalks, drawLines = _a.drawLines, children = _a.children, className = _a.className, _b = _a.
|
|
30
|
+
var parentAttributeType = _a.parentAttributeType, attrTypes = _a.attrTypes, entity = _a.entity, parentUri = _a.parentUri, showEmptyEditors = _a.showEmptyEditors, mode = _a.mode, crosswalks = _a.crosswalks, drawLines = _a.drawLines, children = _a.children, className = _a.className, _b = _a.fixedTypeUris, fixedTypeUris = _b === void 0 ? FIXED_TYPE_URIS : _b, onAddAttributes = _a.onAddAttributes, onChangeAttribute = _a.onChangeAttribute, onDeleteAttribute = _a.onDeleteAttribute, additionalControlsRenderer = _a.additionalControlsRenderer, showNonOv = _a.showNonOv, highlightAttribute = _a.highlightAttribute;
|
|
30
31
|
var hiddenAttributes = useContext(HiddenAttributesContext);
|
|
31
32
|
var entityUri = parentUri && getBaseUri(parentUri);
|
|
32
33
|
var currentEntityHiddenAttributes = useMemo(function () { return hiddenAttributes[entityUri] || []; }, [hiddenAttributes, entityUri]);
|
|
34
|
+
var alwaysVisibleAttributes = useContext(AlwaysVisibleAttributesContext);
|
|
33
35
|
var filteredAttrTypes = useMemo(function () { return attrTypes.filter(function (attrType) { return !currentEntityHiddenAttributes.includes(attrType.uri); }); }, [attrTypes, currentEntityHiddenAttributes]);
|
|
34
36
|
var _c = entity.attributes, attributes = _c === void 0 ? {} : _c;
|
|
35
37
|
var _d = useState({}), hasDeletionsMap = _d[0], setHasDeletionsMap = _d[1];
|
|
@@ -48,9 +50,18 @@ var EditModeAttributesList = function (_a) {
|
|
|
48
50
|
var moreAttrTypes = getMoreAttrTypes(creatableAttrTypes, entity, showEmptyEditors, hasDeletionsMap);
|
|
49
51
|
var pinnedAttributes = useContext(PinnedAttributesContext);
|
|
50
52
|
var pagersData = useMemo(function () {
|
|
51
|
-
return getAttributesListForEditMode(filteredAttrTypes, mode, entity, showEmptyEditors, showNonOv, pinnedAttributes, canCreate);
|
|
52
|
-
}, [
|
|
53
|
-
|
|
53
|
+
return getAttributesListForEditMode(filteredAttrTypes, mode, entity, showEmptyEditors, showNonOv, pinnedAttributes, canCreate, alwaysVisibleAttributes);
|
|
54
|
+
}, [
|
|
55
|
+
filteredAttrTypes,
|
|
56
|
+
mode,
|
|
57
|
+
entity,
|
|
58
|
+
showEmptyEditors,
|
|
59
|
+
showNonOv,
|
|
60
|
+
pinnedAttributes,
|
|
61
|
+
canCreate,
|
|
62
|
+
alwaysVisibleAttributes
|
|
63
|
+
]);
|
|
64
|
+
var _e = useMemo(function () { return splitPagersData(fixedTypeUris, pagersData); }, [pagersData, fixedTypeUris]), fixedPagersData = _e[0], regularPagersData = _e[1];
|
|
54
65
|
var onAddMoreAttributes = useCallback(function (attributeTypes) {
|
|
55
66
|
onAddAttributes(attributeTypes.map(function (attributeType) { return ({
|
|
56
67
|
attributeType: attributeType,
|
|
@@ -68,7 +79,7 @@ var EditModeAttributesList = function (_a) {
|
|
|
68
79
|
return (React.createElement("div", { className: className },
|
|
69
80
|
children && React.createElement(BranchDecorator, __assign({}, decoratorProps), children),
|
|
70
81
|
React.createElement(BranchDecorator, __assign({}, decoratorProps, { plain: true }), moreAttrTypes.length > 0 && mode !== Mode.Viewing && (React.createElement(MoreAttributesButton, { label: i18n.text('More attributes'), onApply: onAddMoreAttributes, dense: drawLines, data: moreAttrTypes, parent: canCreateParentAttrType && parentAttributeType }))),
|
|
71
|
-
React.createElement(HasDeletionsContext.Provider, { value: hasDeletionsContextValue }, regularPagersData.concat(
|
|
82
|
+
React.createElement(HasDeletionsContext.Provider, { value: hasDeletionsContextValue }, regularPagersData.concat(fixedPagersData).map(function (_a) {
|
|
72
83
|
var attrType = _a.attrType, values = _a.values;
|
|
73
84
|
return (React.createElement(EditModeAttributesPager, { key: "".concat(attrType.uri, "_").concat(parentUri), attributeType: attrType, drawLines: drawLines, values: values, paging: path(['paging', attrType.uri], attributes), parentUri: parentUri, showEmptyEditors: showEmptyEditors, mode: mode, crosswalks: crosswalks, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onDeleteAttribute, additionalControlsRenderer: additionalControlsRenderer, showNonOv: showNonOv }));
|
|
74
85
|
}))));
|
|
@@ -348,6 +348,6 @@ describe('EditModeAttributesList tests', function () {
|
|
|
348
348
|
mount(React.createElement(PinnedAttributesContext.Provider, { value: pinnedAttributes },
|
|
349
349
|
React.createElement(EditModeAttributesList, { mode: Mode.Editing, attrTypes: attributesList, entity: entity, parentUri: parentUri },
|
|
350
350
|
React.createElement(Child, null))));
|
|
351
|
-
expect(getAttributesListForEditMode).toHaveBeenCalledWith(attributesList, Mode.Editing, entity, undefined, undefined, pinnedAttributes, true);
|
|
351
|
+
expect(getAttributesListForEditMode).toHaveBeenCalledWith(attributesList, Mode.Editing, entity, undefined, undefined, pinnedAttributes, true, []);
|
|
352
352
|
});
|
|
353
353
|
});
|
|
@@ -11,6 +11,7 @@ import { ShowMore } from '../../../ShowMore';
|
|
|
11
11
|
import { EditModeAttribute } from '../../../EditModeAttributesFactory';
|
|
12
12
|
import { CardinalityMessage } from '../../../CardinalityMessage';
|
|
13
13
|
import { PinnedAttributesContext } from '../../../contexts/PinnedAttributesContext';
|
|
14
|
+
import { AlwaysVisibleAttributesContext } from '../../../contexts/AllwaysVisibleAttributesContext';
|
|
14
15
|
import { DescriptionIcon } from '../../../DescriptionIcon';
|
|
15
16
|
import { ControlAttributeIcon } from '../../../ControlAttributeIcon';
|
|
16
17
|
import { useScrollToAttribute } from '../../../hooks/useScrollToAttribute';
|
|
@@ -28,9 +29,11 @@ var AttributeRenderer = function (_a) {
|
|
|
28
29
|
var _d = useScrollToAttributeError({ highlightedError: highlightedError }), errorRef = _d.ref, errorClassName = _d.errorClassName;
|
|
29
30
|
var _e = useScrollToAttribute(highlightedAttribute), attributeRef = _e.ref, highlightedClassName = _e.highlightedClassName;
|
|
30
31
|
var pinnedAttributes = useContext(PinnedAttributesContext);
|
|
32
|
+
var alwaysVisibleAttributes = useContext(AlwaysVisibleAttributesContext);
|
|
31
33
|
var isPinned = useMemo(function () { return pinnedAttributes === null || pinnedAttributes === void 0 ? void 0 : pinnedAttributes.includes(attributeTypeUri); }, [attributeTypeUri, pinnedAttributes]);
|
|
34
|
+
var isAlwaysVisible = useMemo(function () { return alwaysVisibleAttributes === null || alwaysVisibleAttributes === void 0 ? void 0 : alwaysVisibleAttributes.includes(attributeTypeUri); }, [attributeTypeUri, alwaysVisibleAttributes]);
|
|
32
35
|
var isEmptyValues = isEmptyValue(values);
|
|
33
|
-
var showEmpty = ((!hadDeletions && showEmptyEditors) || isRequired || isPinned) && isEmptyValues;
|
|
36
|
+
var showEmpty = ((!hadDeletions && showEmptyEditors) || isRequired || isPinned || isAlwaysVisible) && isEmptyValues;
|
|
34
37
|
var controlAttributes = useMdmControlAttributes();
|
|
35
38
|
var isControlAttribute = useMemo(function () { return controlAttributes.includes(attributeType.uri); }, [controlAttributes, attributeType.uri]);
|
|
36
39
|
var emptyEditorValue = useRef(createNewAttribute({
|
|
@@ -9,12 +9,12 @@ type Props = {
|
|
|
9
9
|
children?: React.ReactNode;
|
|
10
10
|
className?: string;
|
|
11
11
|
max?: number;
|
|
12
|
-
|
|
12
|
+
fixedTypeUris?: string[];
|
|
13
13
|
showNonOv?: boolean;
|
|
14
14
|
classes?: ReadOnlyAttributeClasses;
|
|
15
15
|
};
|
|
16
16
|
declare const _default: React.MemoExoticComponent<{
|
|
17
|
-
({ attrTypes, entity, parentUri, drawLines, children, className, max,
|
|
17
|
+
({ attrTypes, entity, parentUri, drawLines, children, className, max, fixedTypeUris, showNonOv, classes }: Props): JSX.Element;
|
|
18
18
|
displayName: string;
|
|
19
19
|
}>;
|
|
20
20
|
export default _default;
|
|
@@ -16,18 +16,20 @@ import { BranchDecorator } from '../BranchDecorator';
|
|
|
16
16
|
import { ReadOnlyAttributesPager } from '../ReadOnlyAttributesPager';
|
|
17
17
|
import { ShowMore } from '../ShowMore';
|
|
18
18
|
import { ShowLess } from '../ShowLess';
|
|
19
|
-
import {
|
|
19
|
+
import { FIXED_TYPE_URIS } from '../constants';
|
|
20
20
|
import { splitPagersData } from '../helpers/attributesView';
|
|
21
21
|
import { HiddenAttributesContext } from '../contexts/HiddenAttributesContext';
|
|
22
|
+
import { AlwaysVisibleAttributesContext } from '../contexts/AllwaysVisibleAttributesContext';
|
|
22
23
|
var ReadOnlyAttributesList = function (_a) {
|
|
23
|
-
var _b = _a.attrTypes, attrTypes = _b === void 0 ? [] : _b, entity = _a.entity, parentUri = _a.parentUri, drawLines = _a.drawLines, children = _a.children, className = _a.className, max = _a.max, _c = _a.
|
|
24
|
+
var _b = _a.attrTypes, attrTypes = _b === void 0 ? [] : _b, entity = _a.entity, parentUri = _a.parentUri, drawLines = _a.drawLines, children = _a.children, className = _a.className, max = _a.max, _c = _a.fixedTypeUris, fixedTypeUris = _c === void 0 ? FIXED_TYPE_URIS : _c, showNonOv = _a.showNonOv, classes = _a.classes;
|
|
24
25
|
var hiddenAttributes = useContext(HiddenAttributesContext);
|
|
26
|
+
var alwaysVisibleAttributes = useContext(AlwaysVisibleAttributesContext);
|
|
25
27
|
var entityUri = parentUri && getBaseUri(parentUri);
|
|
26
28
|
var currentEntityHiddenAttributes = useMemo(function () { return hiddenAttributes[entityUri] || []; }, [hiddenAttributes, entityUri]);
|
|
27
29
|
var filteredAttrTypes = useMemo(function () { return (attrTypes || []).filter(function (attrType) { return !currentEntityHiddenAttributes.includes(attrType.uri); }); }, [attrTypes, currentEntityHiddenAttributes]);
|
|
28
30
|
var _d = useState(max || Infinity), visibleValuesCount = _d[0], setVisibleValuesCount = _d[1];
|
|
29
|
-
var pagersData = useMemo(function () { return getAttributesListForReadMode(filteredAttrTypes, entity, showNonOv); }, [filteredAttrTypes, entity, showNonOv]);
|
|
30
|
-
var _e = useMemo(function () { return splitPagersData(
|
|
31
|
+
var pagersData = useMemo(function () { return getAttributesListForReadMode(filteredAttrTypes, entity, showNonOv, alwaysVisibleAttributes); }, [filteredAttrTypes, entity, showNonOv, alwaysVisibleAttributes]);
|
|
32
|
+
var _e = useMemo(function () { return splitPagersData(fixedTypeUris, pagersData); }, [pagersData, fixedTypeUris]), fixedPagersData = _e[0], regularPagersData = _e[1];
|
|
31
33
|
var visibleAttributePagersData = regularPagersData.slice(0, visibleValuesCount);
|
|
32
34
|
var showMore = max && visibleAttributePagersData.length < regularPagersData.length;
|
|
33
35
|
var showLess = max && visibleAttributePagersData.length >= regularPagersData.length && max < visibleAttributePagersData.length;
|
|
@@ -42,7 +44,7 @@ var ReadOnlyAttributesList = function (_a) {
|
|
|
42
44
|
};
|
|
43
45
|
return (React.createElement("div", { className: className },
|
|
44
46
|
children && React.createElement(BranchDecorator, __assign({}, decoratorProps), children),
|
|
45
|
-
visibleAttributePagersData.concat(
|
|
47
|
+
visibleAttributePagersData.concat(fixedPagersData).map(function (_a) {
|
|
46
48
|
var attrType = _a.attrType, values = _a.values;
|
|
47
49
|
return (React.createElement(ReadOnlyAttributesPager, { key: attrType.uri, attributeType: attrType, drawLines: drawLines, values: values, paging: path(['paging', attrType.uri], entity.attributes), parentUri: parentUri, showNonOv: showNonOv, classes: classes }));
|
|
48
50
|
}),
|
|
@@ -232,7 +232,7 @@ describe('ReadOnlyAttributesList tests', function () {
|
|
|
232
232
|
expect(showMoreButton.length).toBe(0);
|
|
233
233
|
expect(showLessButton.length).toBe(0);
|
|
234
234
|
});
|
|
235
|
-
describe('
|
|
235
|
+
describe('fixedTypeUris behavior', function () {
|
|
236
236
|
var attrTypes = __spreadArray(__spreadArray([], attributesList, true), [EntityAttrTypes.roles, EntityAttrTypes.tags], false);
|
|
237
237
|
var entity = {
|
|
238
238
|
attributes: attributes,
|
|
@@ -10,7 +10,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import classnames from 'classnames';
|
|
13
|
-
import React, { memo } from 'react';
|
|
13
|
+
import React, { useContext, memo, useMemo } from 'react';
|
|
14
14
|
import { always, cond, has, ifElse, partition, prop, T } from 'ramda';
|
|
15
15
|
import { isComplexAttribute, isImage, isSpecialAttribute, isOv } from '@reltio/mdm-sdk';
|
|
16
16
|
import { BranchDecorator } from '../BranchDecorator';
|
|
@@ -18,13 +18,16 @@ import { OneLineRenderer } from './components/OneLineRenderer';
|
|
|
18
18
|
import { MultiLineRenderer } from './components/MultiLineRenderer';
|
|
19
19
|
import { SpecialRenderer } from './components/SpecialRenderer';
|
|
20
20
|
import { ImageLineRenderer } from './components/ImageLineRenderer';
|
|
21
|
+
import { EmptyRenderer } from './components/EmptyRenderer';
|
|
21
22
|
import { useMdmAction, useMdmMaxValuesInResponse } from '../contexts/MdmModuleContext';
|
|
23
|
+
import { AlwaysVisibleAttributesContext } from '../contexts/AllwaysVisibleAttributesContext';
|
|
22
24
|
import { useStyles } from './styles';
|
|
23
25
|
var RENDERER_TYPES = {
|
|
24
26
|
oneLine: 'oneLine',
|
|
25
27
|
multiLine: 'multiLine',
|
|
26
28
|
imageLine: 'imageLine',
|
|
27
|
-
special: 'special'
|
|
29
|
+
special: 'special',
|
|
30
|
+
empty: 'empty'
|
|
28
31
|
};
|
|
29
32
|
var ReadOnlyAttributesPager = function (_a) {
|
|
30
33
|
var _b, _c, _d, _e;
|
|
@@ -35,7 +38,9 @@ var ReadOnlyAttributesPager = function (_a) {
|
|
|
35
38
|
var maxValuesInResponse = useMdmMaxValuesInResponse();
|
|
36
39
|
var max = (_f = maxProp !== null && maxProp !== void 0 ? maxProp : maxValuesInResponse) !== null && _f !== void 0 ? _f : Infinity;
|
|
37
40
|
var partitionByOv = partition(isOv);
|
|
38
|
-
|
|
41
|
+
var alwaysVisibleAttributes = useContext(AlwaysVisibleAttributesContext);
|
|
42
|
+
var isAlwaysVisible = useMemo(function () { return alwaysVisibleAttributes === null || alwaysVisibleAttributes === void 0 ? void 0 : alwaysVisibleAttributes.includes(attributeType.uri); }, [attributeType.uri, alwaysVisibleAttributes]);
|
|
43
|
+
if (!values || (!values.length && !isAlwaysVisible)) {
|
|
39
44
|
return null;
|
|
40
45
|
}
|
|
41
46
|
var _h = partitionByOv(values), ovValues = _h[0], nonOvValues = _h[1];
|
|
@@ -47,11 +52,13 @@ var ReadOnlyAttributesPager = function (_a) {
|
|
|
47
52
|
? paging.totalValues - totalVisibleValues
|
|
48
53
|
: nonVisibleValues.length;
|
|
49
54
|
var isOneLineRender = totalVisibleValues === 1 && !isComplexAttribute(attributeType);
|
|
55
|
+
var isEmptyRender = values.length === 0 && isAlwaysVisible;
|
|
50
56
|
var render = function () {
|
|
51
57
|
var type = cond([
|
|
52
58
|
[isSpecialAttribute, always(RENDERER_TYPES.special)],
|
|
53
59
|
[isImage, always(RENDERER_TYPES.imageLine)],
|
|
54
60
|
[always(isOneLineRender), always(RENDERER_TYPES.oneLine)],
|
|
61
|
+
[always(isEmptyRender), always(RENDERER_TYPES.empty)],
|
|
55
62
|
[T, always(RENDERER_TYPES.multiLine)]
|
|
56
63
|
])(attributeType);
|
|
57
64
|
switch (type) {
|
|
@@ -63,6 +70,8 @@ var ReadOnlyAttributesPager = function (_a) {
|
|
|
63
70
|
return (React.createElement(ImageLineRenderer, { attributeValues: visibleValues, attributeType: attributeType, paging: paging, parentUri: parentUri, requestNextPageOfAttributeValues: requestNextPageOfAttributeValues, showNonOv: showNonOv }));
|
|
64
71
|
case RENDERER_TYPES.special:
|
|
65
72
|
return React.createElement(SpecialRenderer, { values: visibleValues, attributeType: attributeType, classes: classes });
|
|
73
|
+
case RENDERER_TYPES.empty:
|
|
74
|
+
return React.createElement(EmptyRenderer, { attributeType: attributeType, classes: classes });
|
|
66
75
|
}
|
|
67
76
|
};
|
|
68
77
|
return (React.createElement(BranchDecorator, { enabled: drawLines, className: classnames(__assign((_b = {}, _b[styles.paddingWrapperWithLines] = drawLines, _b), ((classes === null || classes === void 0 ? void 0 : classes.wrapperWithLines) ? (_c = {}, _c[classes === null || classes === void 0 ? void 0 : classes.wrapperWithLines] = drawLines, _c) : {}))) },
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { AttributeType } from '@reltio/mdm-sdk';
|
|
3
|
+
import { ReadOnlyAttributeClasses } from '../../..';
|
|
4
|
+
type Props = {
|
|
5
|
+
attributeType: AttributeType;
|
|
6
|
+
classes?: ReadOnlyAttributeClasses;
|
|
7
|
+
};
|
|
8
|
+
export declare const EmptyRenderer: ({ attributeType, classes }: Props) => JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
3
|
+
import { AttributeTitle } from '../../../AttributeTitle';
|
|
4
|
+
import { DescriptionIcon } from '../../../DescriptionIcon';
|
|
5
|
+
import { useEmptyStyles } from '../../styles';
|
|
6
|
+
export var EmptyRenderer = function (_a) {
|
|
7
|
+
var attributeType = _a.attributeType, classes = _a.classes;
|
|
8
|
+
var styles = useEmptyStyles();
|
|
9
|
+
var label = attributeType.label, description = attributeType.description;
|
|
10
|
+
return (React.createElement("div", { "data-reltio-id": "reltio-empty-renderer", className: classnames(styles.titleRow, styles.wrapper) },
|
|
11
|
+
React.createElement(AttributeTitle, { label: label, className: classnames(styles.title, classes === null || classes === void 0 ? void 0 : classes.title), "data-reltio-id": "reltio-attribute-label" }),
|
|
12
|
+
React.createElement(DescriptionIcon, { description: description, className: styles.descriptionIcon })));
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { EmptyRenderer } from './EmptyRenderer';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { EmptyRenderer } from './EmptyRenderer';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"paddingWrapper" | "paddingWrapperWithLines">;
|
|
2
2
|
export declare const useOneLineStyles: (props?: any) => import("@mui/styles").ClassNameMap<"title" | "wrapper" | "attribute" | "collaborationWrapper" | "titleIcon" | "titleRow" | "ovIcon" | "descriptionIcon">;
|
|
3
3
|
export declare const useMultiLineStyles: (props?: any) => import("@mui/styles").ClassNameMap<"title" | "wrapper" | "attributes" | "attribute" | "titleRow" | "ovIcon" | "descriptionIcon">;
|
|
4
|
+
export declare const useEmptyStyles: (props?: any) => import("@mui/styles").ClassNameMap<"title" | "wrapper" | "titleRow" | "ovIcon" | "descriptionIcon">;
|
|
@@ -87,3 +87,7 @@ export var useMultiLineStyles = makeStyles(__assign({ wrapper: {
|
|
|
87
87
|
}, attributes: {
|
|
88
88
|
alignSelf: 'stretch'
|
|
89
89
|
}, titleRow: __assign(__assign({}, commonStyles.titleRow), { marginBottom: '3px' }) }, commonStyles));
|
|
90
|
+
export var useEmptyStyles = makeStyles(__assign({ wrapper: {
|
|
91
|
+
fontSize: fontSize,
|
|
92
|
+
lineHeight: lineHeight
|
|
93
|
+
} }, commonStyles));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const FIXED_TYPE_URIS: string[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { EntityAttrTypes } from '@reltio/mdm-sdk';
|
|
2
|
-
export var
|
|
2
|
+
export var FIXED_TYPE_URIS = [EntityAttrTypes.roles.uri, EntityAttrTypes.tags.uri];
|
package/esm/constants/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { SortingType, QueryBuilderAttributeType } from './prop-types';
|
|
2
2
|
export { COMMENTS_CONTAINER_VISIBILITY_AREA } from './classnames';
|
|
3
|
-
export {
|
|
3
|
+
export { FIXED_TYPE_URIS } from './attributes';
|
|
4
4
|
export { MAP_DRAWING_MODES, DEFAULT_GOOGLE_MAP_OPTIONS, DEFAULT_OVERLAY_OPTIONS, MAP_MINIMUM_SCALE_RADIUS } from './map';
|
|
5
5
|
export { COMMON_TEXT_FIELD_PROPS } from './textField';
|
|
6
6
|
export { POPUP_Z_INDEX } from './common';
|
package/esm/constants/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { SortingType, QueryBuilderAttributeType } from './prop-types';
|
|
2
2
|
export { COMMENTS_CONTAINER_VISIBILITY_AREA } from './classnames';
|
|
3
|
-
export {
|
|
3
|
+
export { FIXED_TYPE_URIS } from './attributes';
|
|
4
4
|
export { MAP_DRAWING_MODES, DEFAULT_GOOGLE_MAP_OPTIONS, DEFAULT_OVERLAY_OPTIONS, MAP_MINIMUM_SCALE_RADIUS } from './map';
|
|
5
5
|
export { COMMON_TEXT_FIELD_PROPS } from './textField';
|
|
6
6
|
export { POPUP_Z_INDEX } from './common';
|
|
@@ -5,7 +5,7 @@ type PagersData = {
|
|
|
5
5
|
attrType: AttributeType;
|
|
6
6
|
values: (SimpleAttributeValue | NestedAttributeValue | ReferenceAttributeValue | string | number)[];
|
|
7
7
|
};
|
|
8
|
-
export declare const splitPagersData: (
|
|
8
|
+
export declare const splitPagersData: (fixedTypeUris: string[], pagersData: PagersData[]) => [PagersData[], PagersData[]];
|
|
9
9
|
export declare const attributeValueToEditorValue: (attributeValue: SimpleAttributeValue, { type }: DataTypeDefinition) => string | number | boolean | Date | {
|
|
10
10
|
value: import("@reltio/mdm-sdk").PrimitiveValue;
|
|
11
11
|
lookupCode: string;
|
|
@@ -13,8 +13,8 @@ export var getFilteredAttrTypes = function (metadata, type, includeUris, exclude
|
|
|
13
13
|
return !excludeUris.includes(uri);
|
|
14
14
|
});
|
|
15
15
|
};
|
|
16
|
-
export var splitPagersData = function (
|
|
17
|
-
return partition(pipe(path(['attrType', 'uri']), includes(__,
|
|
16
|
+
export var splitPagersData = function (fixedTypeUris, pagersData) {
|
|
17
|
+
return partition(pipe(path(['attrType', 'uri']), includes(__, fixedTypeUris)), pagersData);
|
|
18
18
|
};
|
|
19
19
|
export var attributeValueToEditorValue = function (attributeValue, _a) {
|
|
20
20
|
var type = _a.type;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reltio/components",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.1945",
|
|
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.1858",
|
|
12
12
|
"d3-cloud": "^1.2.5",
|
|
13
13
|
"d3-geo": "^2.0.1",
|
|
14
14
|
"d3-hierarchy": "^2.0.0",
|