@reltio/components 1.4.2065 → 1.4.2066
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/LazyRenderer/LazyRenderer.d.ts +12 -0
- package/LazyRenderer/LazyRenderer.js +64 -0
- package/LazyRenderer/index.d.ts +1 -0
- package/LazyRenderer/index.js +1 -0
- package/ReadOnlyAttributeValuesBlock/ReadOnlyAttributeValuesBlock.js +6 -2
- package/cjs/LazyRenderer/LazyRenderer.d.ts +12 -0
- package/cjs/LazyRenderer/LazyRenderer.js +91 -0
- package/cjs/LazyRenderer/index.d.ts +1 -0
- package/cjs/LazyRenderer/index.js +5 -0
- package/cjs/ReadOnlyAttributeValuesBlock/ReadOnlyAttributeValuesBlock.js +6 -2
- package/cjs/features/crosswalks/AttributesTable/AttributesTable.js +6 -1
- package/cjs/features/crosswalks/AttributesTable/components/NestedAttributesRenderer/NestedAttributesRenderer.js +5 -2
- package/cjs/features/crosswalks/AttributesTable/components/ReferenceAttributesRenderer/ReferenceAttributesRenderer.js +5 -2
- package/cjs/hooks/useCollaboration/useCollaboration.js +29 -8
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +6 -4
- package/features/crosswalks/AttributesTable/AttributesTable.js +7 -2
- package/features/crosswalks/AttributesTable/components/NestedAttributesRenderer/NestedAttributesRenderer.js +5 -2
- package/features/crosswalks/AttributesTable/components/ReferenceAttributesRenderer/ReferenceAttributesRenderer.js +5 -2
- package/hooks/useCollaboration/useCollaboration.js +30 -9
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type Props = {
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
className?: string;
|
|
6
|
+
style?: React.CSSProperties;
|
|
7
|
+
};
|
|
8
|
+
export declare const LazyRenderer: {
|
|
9
|
+
({ enabled, ...props }: Props): React.JSX.Element;
|
|
10
|
+
notify(): void;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
24
|
+
var CUSTOM_EVENT_NAME = 'notify_lazy_renderer';
|
|
25
|
+
var DEFAULT_STYLE = { height: '20px' };
|
|
26
|
+
var InternalLazyRenderer = function (_a) {
|
|
27
|
+
var children = _a.children, className = _a.className, _b = _a.style, style = _b === void 0 ? DEFAULT_STYLE : _b;
|
|
28
|
+
var _c = useState(false), isVisible = _c[0], setIsVisible = _c[1];
|
|
29
|
+
var placeholderRef = useRef(null);
|
|
30
|
+
useEffect(function () {
|
|
31
|
+
var observer = new IntersectionObserver(function (_a) {
|
|
32
|
+
var entry = _a[0];
|
|
33
|
+
if (entry.isIntersecting) {
|
|
34
|
+
setIsVisible(true);
|
|
35
|
+
observer.disconnect();
|
|
36
|
+
window.removeEventListener(CUSTOM_EVENT_NAME, reobserve);
|
|
37
|
+
}
|
|
38
|
+
}, {
|
|
39
|
+
threshold: 0.1
|
|
40
|
+
});
|
|
41
|
+
if (placeholderRef.current) {
|
|
42
|
+
observer.observe(placeholderRef.current);
|
|
43
|
+
}
|
|
44
|
+
var reobserve = function () {
|
|
45
|
+
if (placeholderRef.current) {
|
|
46
|
+
observer.disconnect();
|
|
47
|
+
observer.observe(placeholderRef.current);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
window.addEventListener(CUSTOM_EVENT_NAME, reobserve);
|
|
51
|
+
return function () {
|
|
52
|
+
observer.disconnect();
|
|
53
|
+
window.removeEventListener(CUSTOM_EVENT_NAME, reobserve);
|
|
54
|
+
};
|
|
55
|
+
}, []);
|
|
56
|
+
return isVisible ? React.createElement(React.Fragment, null, children) : React.createElement("div", { ref: placeholderRef, className: className, style: style });
|
|
57
|
+
};
|
|
58
|
+
export var LazyRenderer = function (_a) {
|
|
59
|
+
var _b = _a.enabled, enabled = _b === void 0 ? true : _b, props = __rest(_a, ["enabled"]);
|
|
60
|
+
return enabled ? React.createElement(InternalLazyRenderer, __assign({}, props)) : React.createElement(React.Fragment, null, props.children);
|
|
61
|
+
};
|
|
62
|
+
LazyRenderer.notify = function () {
|
|
63
|
+
window.dispatchEvent(new Event(CUSTOM_EVENT_NAME));
|
|
64
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LazyRenderer } from './LazyRenderer';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LazyRenderer } from './LazyRenderer';
|
|
@@ -24,10 +24,14 @@ import React, { memo } from 'react';
|
|
|
24
24
|
import { DataTypes } from '@reltio/mdm-sdk';
|
|
25
25
|
import { ReadOnlyAttribute } from '../ReadOnlyAttributesFactory';
|
|
26
26
|
import { ReadOnlyImageAttributesLine } from '../ReadOnlyImageAttributesLine';
|
|
27
|
+
import { LazyRenderer } from '../LazyRenderer';
|
|
28
|
+
var lazyRendererStyle = { height: '18px' };
|
|
27
29
|
var renderAttributesList = function (_a) {
|
|
28
30
|
var values = _a.values, valueContainerClassName = _a.valueContainerClassName, props = __rest(_a, ["values", "valueContainerClassName"]);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
var enabledLazyRendering = (values === null || values === void 0 ? void 0 : values.length) > 20;
|
|
32
|
+
return (React.createElement(React.Fragment, null, (values || []).map(function (attributeValue) { return (React.createElement(LazyRenderer, { key: attributeValue.uri, className: valueContainerClassName, enabled: enabledLazyRendering, style: lazyRendererStyle },
|
|
33
|
+
React.createElement("div", { className: valueContainerClassName },
|
|
34
|
+
React.createElement(ReadOnlyAttribute, __assign({ attributeValue: attributeValue }, props))))); })));
|
|
31
35
|
};
|
|
32
36
|
var ReadOnlyAttributeValuesBlock = function (_a) {
|
|
33
37
|
var expanded = _a.expanded, LabelRenderer = _a.LabelRenderer, RightSlot = _a.RightSlot, props = __rest(_a, ["expanded", "LabelRenderer", "RightSlot"]);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type Props = {
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
className?: string;
|
|
6
|
+
style?: React.CSSProperties;
|
|
7
|
+
};
|
|
8
|
+
export declare const LazyRenderer: {
|
|
9
|
+
({ enabled, ...props }: Props): React.JSX.Element;
|
|
10
|
+
notify(): void;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
37
|
+
var t = {};
|
|
38
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
39
|
+
t[p] = s[p];
|
|
40
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
41
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
42
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
43
|
+
t[p[i]] = s[p[i]];
|
|
44
|
+
}
|
|
45
|
+
return t;
|
|
46
|
+
};
|
|
47
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
+
exports.LazyRenderer = void 0;
|
|
49
|
+
var react_1 = __importStar(require("react"));
|
|
50
|
+
var CUSTOM_EVENT_NAME = 'notify_lazy_renderer';
|
|
51
|
+
var DEFAULT_STYLE = { height: '20px' };
|
|
52
|
+
var InternalLazyRenderer = function (_a) {
|
|
53
|
+
var children = _a.children, className = _a.className, _b = _a.style, style = _b === void 0 ? DEFAULT_STYLE : _b;
|
|
54
|
+
var _c = (0, react_1.useState)(false), isVisible = _c[0], setIsVisible = _c[1];
|
|
55
|
+
var placeholderRef = (0, react_1.useRef)(null);
|
|
56
|
+
(0, react_1.useEffect)(function () {
|
|
57
|
+
var observer = new IntersectionObserver(function (_a) {
|
|
58
|
+
var entry = _a[0];
|
|
59
|
+
if (entry.isIntersecting) {
|
|
60
|
+
setIsVisible(true);
|
|
61
|
+
observer.disconnect();
|
|
62
|
+
window.removeEventListener(CUSTOM_EVENT_NAME, reobserve);
|
|
63
|
+
}
|
|
64
|
+
}, {
|
|
65
|
+
threshold: 0.1
|
|
66
|
+
});
|
|
67
|
+
if (placeholderRef.current) {
|
|
68
|
+
observer.observe(placeholderRef.current);
|
|
69
|
+
}
|
|
70
|
+
var reobserve = function () {
|
|
71
|
+
if (placeholderRef.current) {
|
|
72
|
+
observer.disconnect();
|
|
73
|
+
observer.observe(placeholderRef.current);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
window.addEventListener(CUSTOM_EVENT_NAME, reobserve);
|
|
77
|
+
return function () {
|
|
78
|
+
observer.disconnect();
|
|
79
|
+
window.removeEventListener(CUSTOM_EVENT_NAME, reobserve);
|
|
80
|
+
};
|
|
81
|
+
}, []);
|
|
82
|
+
return isVisible ? react_1.default.createElement(react_1.default.Fragment, null, children) : react_1.default.createElement("div", { ref: placeholderRef, className: className, style: style });
|
|
83
|
+
};
|
|
84
|
+
var LazyRenderer = function (_a) {
|
|
85
|
+
var _b = _a.enabled, enabled = _b === void 0 ? true : _b, props = __rest(_a, ["enabled"]);
|
|
86
|
+
return enabled ? react_1.default.createElement(InternalLazyRenderer, __assign({}, props)) : react_1.default.createElement(react_1.default.Fragment, null, props.children);
|
|
87
|
+
};
|
|
88
|
+
exports.LazyRenderer = LazyRenderer;
|
|
89
|
+
exports.LazyRenderer.notify = function () {
|
|
90
|
+
window.dispatchEvent(new Event(CUSTOM_EVENT_NAME));
|
|
91
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LazyRenderer } from './LazyRenderer';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LazyRenderer = void 0;
|
|
4
|
+
var LazyRenderer_1 = require("./LazyRenderer");
|
|
5
|
+
Object.defineProperty(exports, "LazyRenderer", { enumerable: true, get: function () { return LazyRenderer_1.LazyRenderer; } });
|
|
@@ -49,10 +49,14 @@ var react_1 = __importStar(require("react"));
|
|
|
49
49
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
50
50
|
var ReadOnlyAttributesFactory_1 = require("../ReadOnlyAttributesFactory");
|
|
51
51
|
var ReadOnlyImageAttributesLine_1 = require("../ReadOnlyImageAttributesLine");
|
|
52
|
+
var LazyRenderer_1 = require("../LazyRenderer");
|
|
53
|
+
var lazyRendererStyle = { height: '18px' };
|
|
52
54
|
var renderAttributesList = function (_a) {
|
|
53
55
|
var values = _a.values, valueContainerClassName = _a.valueContainerClassName, props = __rest(_a, ["values", "valueContainerClassName"]);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
var enabledLazyRendering = (values === null || values === void 0 ? void 0 : values.length) > 20;
|
|
57
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, (values || []).map(function (attributeValue) { return (react_1.default.createElement(LazyRenderer_1.LazyRenderer, { key: attributeValue.uri, className: valueContainerClassName, enabled: enabledLazyRendering, style: lazyRendererStyle },
|
|
58
|
+
react_1.default.createElement("div", { className: valueContainerClassName },
|
|
59
|
+
react_1.default.createElement(ReadOnlyAttributesFactory_1.ReadOnlyAttribute, __assign({ attributeValue: attributeValue }, props))))); })));
|
|
56
60
|
};
|
|
57
61
|
var ReadOnlyAttributeValuesBlock = function (_a) {
|
|
58
62
|
var expanded = _a.expanded, LabelRenderer = _a.LabelRenderer, RightSlot = _a.RightSlot, props = __rest(_a, ["expanded", "LabelRenderer", "RightSlot"]);
|
|
@@ -52,6 +52,7 @@ var MdmModuleContext_1 = require("../../../contexts/MdmModuleContext");
|
|
|
52
52
|
var helpers_1 = require("./helpers");
|
|
53
53
|
var ConfirmEditIgnoredDialog_1 = require("./components/ConfirmEditIgnoredDialog");
|
|
54
54
|
var CommonRowCellRenderer_1 = require("./components/CommonRowCellRenderer");
|
|
55
|
+
var LazyRenderer_1 = require("../../../LazyRenderer");
|
|
55
56
|
var styles_1 = require("./styles");
|
|
56
57
|
var DEFAULT_ROW_HEIGHT = 68;
|
|
57
58
|
var getIdFromRowValue = function (rowValue) { return rowValue.ovValues.attributeType.uri; };
|
|
@@ -59,6 +60,7 @@ var getRowCellKey = function (_a) {
|
|
|
59
60
|
var id = _a.columnData.id, cellIndex = _a.cellIndex, rowValue = _a.rowValue;
|
|
60
61
|
return "".concat(id, "[").concat(getIdFromRowValue(rowValue), "][").concat(cellIndex, "]");
|
|
61
62
|
};
|
|
63
|
+
var debouncedNotifyLazyRenderer = (0, mdm_sdk_1.debounce)(LazyRenderer_1.LazyRenderer.notify, 0);
|
|
62
64
|
var AttributesTable = function (_a) {
|
|
63
65
|
var entity = _a.entity, isLoading = _a.isLoading, crosswalksMap = _a.crosswalksMap, _b = _a.visibleColumns, visibleColumns = _b === void 0 ? helpers_1.DEFAULT_VISIBLE_COLUMNS : _b, onChangeVisibleColumns = _a.onChangeVisibleColumns, readOnly = _a.readOnly, _c = _a.onDelete, onDelete = _c === void 0 ? ramda_1.identity : _c, _d = _a.onPin, onPin = _d === void 0 ? ramda_1.identity : _d, _e = _a.onIgnore, onIgnore = _e === void 0 ? ramda_1.identity : _e, _f = _a.onEdit, onEdit = _f === void 0 ? ramda_1.identity : _f, _g = _a.onAdd, onAdd = _g === void 0 ? ramda_1.identity : _g, emptyTempAttributeUris = _a.emptyTempAttributeUris, selectedAttributeTypes = _a.selectedAttributeTypes, _h = _a.onSelectAttributeTypes, onSelectAttributeTypes = _h === void 0 ? ramda_1.identity : _h, additionalHeaderItems = _a.additionalHeaderItems, className = _a.className, activeSurvivorshipGroupUri = _a.activeSurvivorshipGroupUri, tableRef = _a.tableRef;
|
|
64
66
|
var styles = (0, styles_1.useStyles)();
|
|
@@ -94,6 +96,9 @@ var AttributesTable = function (_a) {
|
|
|
94
96
|
var getRowCellHeight = (0, react_1.useCallback)((0, ramda_1.either)(getDynamicRowCellHeight, (0, ramda_1.always)(DEFAULT_ROW_HEIGHT)), [
|
|
95
97
|
getDynamicRowCellHeight
|
|
96
98
|
]);
|
|
99
|
+
(0, react_1.useEffect)(function () {
|
|
100
|
+
debouncedNotifyLazyRenderer();
|
|
101
|
+
}, [getRowCellHeight]);
|
|
97
102
|
var _m = (0, react_1.useState)(null), pendingDeletion = _m[0], setPendingDeletion = _m[1];
|
|
98
103
|
var _o = (0, react_1.useState)(null), pendingIgnoredEditing = _o[0], setPendingIgnoredEditing = _o[1];
|
|
99
104
|
var handleEdit = (0, react_1.useCallback)(function (event) {
|
|
@@ -142,7 +147,7 @@ var AttributesTable = function (_a) {
|
|
|
142
147
|
react_1.default.createElement(ColumnsSettings_1.ColumnsSettings, { columnsData: helpers_1.COLUMNS_DATA, selectedColumns: visibleColumns, onChangeColumns: onChangeVisibleColumns })),
|
|
143
148
|
react_1.default.createElement("div", { className: styles.tableContent },
|
|
144
149
|
isLoading && react_1.default.createElement(LinearLoadIndicator_1.LinearLoadIndicator, null),
|
|
145
|
-
react_1.default.createElement(BasicTable_1.BasicTable, { ref: tableRef, fixFirstColumn: true, headRowHeight: 48, defaultColumnWidth: 250, defaultColumnMinWidth: 200, columnsData: visibleColumnsData, dndRowReorderingEnabled: false, dndRowReorderingHandler: handleReorderAttributeTypes, getIdFromRowValue: getIdFromRowValue, rowsData: rowsData, renderRowCell: renderRowCell, getRowCellHeight: getRowCellHeight, context: tableContext })),
|
|
150
|
+
react_1.default.createElement(BasicTable_1.BasicTable, { ref: tableRef, fixFirstColumn: true, headRowHeight: 48, defaultColumnWidth: 250, defaultColumnMinWidth: 200, columnsData: visibleColumnsData, dndRowReorderingEnabled: false, dndRowReorderingHandler: handleReorderAttributeTypes, getIdFromRowValue: getIdFromRowValue, rowsData: rowsData, onScroll: debouncedNotifyLazyRenderer, renderRowCell: renderRowCell, getRowCellHeight: getRowCellHeight, context: tableContext })),
|
|
146
151
|
react_1.default.createElement(ConfirmDeleteDialog_1.ConfirmDeleteDialog, { open: !!pendingDeletion, onClose: function () { return setPendingDeletion(null); }, onConfirm: handleDelete }),
|
|
147
152
|
react_1.default.createElement(ConfirmEditIgnoredDialog_1.ConfirmEditIgnoredDialog, { open: !!pendingIgnoredEditing, onClose: function () { return setPendingIgnoredEditing(null); }, onConfirmEditWithIgnore: function () { return pendingIgnoredEditing && onEdit(pendingIgnoredEditing); }, onConfirmEditWithoutIgnore: function () {
|
|
148
153
|
if (pendingIgnoredEditing)
|
|
@@ -28,13 +28,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
28
28
|
exports.NestedAttributesRenderer = void 0;
|
|
29
29
|
var react_1 = __importDefault(require("react"));
|
|
30
30
|
var InlineNestedAttribute_1 = require("../../../../../InlineNestedAttribute");
|
|
31
|
+
var LazyRenderer_1 = require("../../../../../LazyRenderer");
|
|
31
32
|
var styles_1 = require("../../styles");
|
|
32
33
|
var NestedAttributesRenderer = function (_a) {
|
|
33
34
|
var attributeValues = _a.attributeValues, props = __rest(_a, ["attributeValues"]);
|
|
34
35
|
var styles = (0, styles_1.useCommonStyles)();
|
|
36
|
+
var enabledLazyRendering = (attributeValues === null || attributeValues === void 0 ? void 0 : attributeValues.length) > 20;
|
|
35
37
|
var nestedValues = attributeValues === null || attributeValues === void 0 ? void 0 : attributeValues.map(function (attributeValue, i) {
|
|
36
|
-
return (react_1.default.createElement(
|
|
37
|
-
react_1.default.createElement(
|
|
38
|
+
return (react_1.default.createElement(LazyRenderer_1.LazyRenderer, { key: attributeValue === null || attributeValue === void 0 ? void 0 : attributeValue.uri, enabled: enabledLazyRendering, className: styles.basicCell },
|
|
39
|
+
react_1.default.createElement("div", { className: styles.basicCell, "data-reltio-id": "value-index-".concat(i) },
|
|
40
|
+
react_1.default.createElement(InlineNestedAttribute_1.InlineNestedAttribute, __assign({ attributeValue: attributeValue }, props)))));
|
|
38
41
|
});
|
|
39
42
|
return react_1.default.createElement(react_1.default.Fragment, null, nestedValues);
|
|
40
43
|
};
|
|
@@ -28,13 +28,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
28
28
|
exports.ReferenceAttributesRenderer = void 0;
|
|
29
29
|
var react_1 = __importDefault(require("react"));
|
|
30
30
|
var InlineReferenceAttribute_1 = require("../../../../../InlineReferenceAttribute");
|
|
31
|
+
var LazyRenderer_1 = require("../../../../../LazyRenderer");
|
|
31
32
|
var styles_1 = require("../../styles");
|
|
32
33
|
var ReferenceAttributesRenderer = function (_a) {
|
|
33
34
|
var attributeValues = _a.attributeValues, crosswalksMap = _a.crosswalksMap, props = __rest(_a, ["attributeValues", "crosswalksMap"]);
|
|
34
35
|
var styles = (0, styles_1.useCommonStyles)();
|
|
36
|
+
var enabledLazyRendering = (attributeValues === null || attributeValues === void 0 ? void 0 : attributeValues.length) > 20;
|
|
35
37
|
var referenceValues = attributeValues === null || attributeValues === void 0 ? void 0 : attributeValues.map(function (attributeValue, i) {
|
|
36
|
-
return (react_1.default.createElement(
|
|
37
|
-
react_1.default.createElement(
|
|
38
|
+
return (react_1.default.createElement(LazyRenderer_1.LazyRenderer, { key: attributeValue === null || attributeValue === void 0 ? void 0 : attributeValue.uri, enabled: enabledLazyRendering, className: styles.basicCell },
|
|
39
|
+
react_1.default.createElement("div", { className: styles.basicCell, "data-reltio-id": "value-index-".concat(i) },
|
|
40
|
+
react_1.default.createElement(InlineReferenceAttribute_1.InlineReferenceAttribute, __assign({ attributeValue: attributeValue, crosswalksMap: crosswalksMap }, props)))));
|
|
38
41
|
});
|
|
39
42
|
return react_1.default.createElement(react_1.default.Fragment, null, referenceValues);
|
|
40
43
|
};
|
|
@@ -261,18 +261,16 @@ var useCollaboration = function (_a) {
|
|
|
261
261
|
var clearCurrentComment = (0, react_1.useCallback)(function () {
|
|
262
262
|
setCurrentComment(null);
|
|
263
263
|
}, []);
|
|
264
|
-
var getCommentState = function (uri, commentUri) { return (0, ramda_1.pathOr)({}, [uri, commentUri], collaborationStateMap); };
|
|
265
|
-
var clearCommentState = function (uri, commentUri) {
|
|
266
|
-
|
|
267
|
-
};
|
|
268
|
-
var updateCommentState = function (uri, commentUri, newState) {
|
|
264
|
+
var getCommentState = (0, react_1.useCallback)(function (uri, commentUri) { return (0, ramda_1.pathOr)({}, [uri, commentUri], collaborationStateMap); }, [collaborationStateMap]);
|
|
265
|
+
var clearCommentState = (0, react_1.useCallback)(function (uri, commentUri) { return setCollaborationStateMap((0, ramda_1.dissocPath)([uri, commentUri])); }, []);
|
|
266
|
+
var updateCommentState = (0, react_1.useCallback)(function (uri, commentUri, newState) {
|
|
269
267
|
setCollaborationStateMap(function (prevCollaborationStateMap) {
|
|
270
268
|
var pathToCommentState = [uri, commentUri];
|
|
271
269
|
var prevCommentState = (0, ramda_1.path)(pathToCommentState, prevCollaborationStateMap);
|
|
272
270
|
return (0, ramda_1.assocPath)(pathToCommentState, (0, ramda_1.mergeRight)(prevCommentState, newState), prevCollaborationStateMap);
|
|
273
271
|
});
|
|
274
|
-
};
|
|
275
|
-
return {
|
|
272
|
+
}, []);
|
|
273
|
+
return (0, react_1.useMemo)(function () { return ({
|
|
276
274
|
clearCurrentComment: clearCurrentComment,
|
|
277
275
|
comments: comments,
|
|
278
276
|
commentsMap: commentsMap,
|
|
@@ -295,6 +293,29 @@ var useCollaboration = function (_a) {
|
|
|
295
293
|
sending: sending,
|
|
296
294
|
deleteReply: deleteReply,
|
|
297
295
|
editReply: editReply
|
|
298
|
-
};
|
|
296
|
+
}); }, [
|
|
297
|
+
clearCurrentComment,
|
|
298
|
+
comments,
|
|
299
|
+
commentsMap,
|
|
300
|
+
getCommentState,
|
|
301
|
+
updateCommentState,
|
|
302
|
+
clearCommentState,
|
|
303
|
+
createComment,
|
|
304
|
+
createReply,
|
|
305
|
+
currentComment,
|
|
306
|
+
deleteComment,
|
|
307
|
+
editComment,
|
|
308
|
+
getComment,
|
|
309
|
+
getComments,
|
|
310
|
+
getCommentsCount,
|
|
311
|
+
loading,
|
|
312
|
+
objectTypes,
|
|
313
|
+
pageToken,
|
|
314
|
+
reOpenThread,
|
|
315
|
+
resolveThread,
|
|
316
|
+
sending,
|
|
317
|
+
deleteReply,
|
|
318
|
+
editReply
|
|
319
|
+
]);
|
|
299
320
|
};
|
|
300
321
|
exports.useCollaboration = useCollaboration;
|
package/cjs/index.d.ts
CHANGED
|
@@ -178,6 +178,7 @@ export { GaugeChart } from './GaugeChart';
|
|
|
178
178
|
export { UpSetChart } from './UpSetChart';
|
|
179
179
|
export { DateRangeSelector } from './DateRangeSelector';
|
|
180
180
|
export { MetadataTypesSelector } from './MetadataTypesSelector';
|
|
181
|
+
export { LazyRenderer } from './LazyRenderer';
|
|
181
182
|
export { withTooltip } from './HOCs/withTooltip';
|
|
182
183
|
export { withAsyncMount } from './HOCs/withAsyncMount';
|
|
183
184
|
export { withDragHandle } from './HOCs/withDragHandle';
|
package/cjs/index.js
CHANGED
|
@@ -17,10 +17,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.NestedAttributeEditor = exports.NestedAttribute = exports.MoreAttributesButton = exports.InlineReferenceAttribute = exports.InlineNestedAttribute = exports.InlineImageAttribute = exports.InlineAttributesPager = exports.InfoIcon = exports.EditableImageAttributesLine = exports.FilterButton = exports.FacetViewHeader = exports.ExpandedValueTooltip = exports.EntitySelector = exports.EntityCreator = exports.AttributesPager = exports.AttributesList = exports.EditableAttribute = exports.DropDownMenuButton = exports.DescriptionIcon = exports.DefaultCellValueRenderer = exports.ControlAttributeIcon = exports.ColumnsSettingsPopup = exports.ColumnsSettings = exports.ColorBar = exports.CollapseRowButton = exports.BasicChartsFactory = exports.ChartsFactory = exports.CardinalityMessage = exports.BranchDecorator = exports.BasicViewHeader = exports.BasicViewContent = exports.BasicView = exports.BasicTablePagination = exports.basicTableViewState = exports.BasicTable = exports.BasicAttributeSelector = exports.BarChart = exports.AvatarWithFallback = exports.AutoSizeList = exports.AttributesView = exports.AttributesValuesEditor = exports.AttributesFiltersButton = exports.AttributesFiltersBuilder = exports.AttributesFilterSelector = exports.AttributesErrorsPanel = exports.AttributeListItem = exports.AttributeGroupIcon = exports.ArrowExpandButton = exports.ActionsPanel = exports.ActionButton = void 0;
|
|
18
18
|
exports.ConnectionEditor = exports.DropDownSelector = exports.ReactSelectOptionWithCheckIcon = exports.ReactSelectMenuWithPopper = exports.ReactSelectMenuList = exports.ReactSelectLoadMoreButton = exports.ReactSelectDropdownIndicatorWithIconButton = exports.ReactSelectDropdownIndicator = exports.Highlighter = exports.HierarchyNodeTitle = exports.HierarchicalAttributeTooltip = exports.HideOnShrink = exports.ExpandableSearchInput = exports.ErrorPopup = exports.ErrorBoundary = exports.EntityUriLink = exports.EntityTypesSelector = exports.EntityTypeIcon = exports.EntityTypeBadge = exports.EntityAvatar = exports.EMPTY_STATE_VARIANTS = exports.EMPTY_STATE_ICONS = exports.EmptyState = exports.Drawer = exports.DataTypeValue = exports.DataTenantBadge = exports.ConnectionRelationTypeSelector = exports.CollaborationItem = exports.ConfirmationDialog = exports.CommentsContainer = exports.ColoredSourceIcon = exports.CollapseButton = exports.TreeChart = exports.TableWithBars = exports.SourceIcon = exports.SmallIconButtonWithTooltip = exports.SmallIconButton = exports.SimpleAttributeEditor = exports.SimpleAttribute = exports.RowCellAutoSizer = exports.RelationTypeSelector = exports.ReferenceAttributeEditor = exports.ReferenceAttribute = exports.ImageAttributesLine = exports.ReadOnlyAttributesPager = exports.ReadOnlyAttributesList = exports.ReadOnlyAttribute = exports.ReadOnlyAttributeValuesBlock = exports.PieChart = exports.OvIcon = void 0;
|
|
19
19
|
exports.Popper = exports.MultipleInput = exports.ModeSwitcherSelect = exports.ModeSwitcher = exports.TransitiveMatchBlock = exports.SimpleMatchRulesBuilder = exports.SimpleMatchRulesBlock = exports.SimpleMatchRules = exports.MatchRulesBlock = exports.LoadingSpinner = exports.Link = exports.LinearLoadIndicator = exports.ImportButton = exports.ReadableSearchQueryBuilder = exports.ReadableSearchQuery = exports.LogicOperator = exports.TableSkeleton = exports.StepNavigation = exports.TenantLabel = exports.RelevanceScoreBadge = exports.RequiredMark = exports.SettingsMenu = exports.TenantsDropDownSelector = exports.TenantIcon = exports.SourceSystemsSelector = exports.MatchRulesSelector = exports.MultiValueSelector = exports.ProfilesList = exports.NotMatchButton = exports.MergeButton = exports.ProfileMatchCard = exports.ImageGalleryDialog = exports.RelationTypesSelector = exports.ScreenProfileBand = exports.ProfileBandNavigation = exports.EmptyStub = exports.MaskingSwitcher = exports.FileTypeEditor = exports.EmptySearchResult = exports.DropDownEditor = exports.FilterValueEditor = exports.MultiValueChip = exports.TextEditor = exports.DateRangeEditor = exports.NumberEditor = exports.DataTypeValueEditor = exports.DateEditor = exports.ErrorWrapper = exports.ErrorMessage = exports.ConfigureColumnsPopup = void 0;
|
|
20
|
-
exports.
|
|
21
|
-
exports.
|
|
22
|
-
exports.
|
|
23
|
-
exports.mockComputedStyles = exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.getAttributeSelectorItems = exports.mergeClasses = exports.isControlOrCommandPressed = exports.getValue = exports.getChecked = exports.showErrorMessage = exports.showDefaultErrorMessage = exports.enrichDataWithPercents = exports.defaultRenderRowCell = exports.defaultGetRowCellHeight = exports.columnFilterToMdmFilter = exports.buildColumnsSizeById = exports.buildColumnsFilter = exports.useDndBasicTableScrollModifier = exports.useDynamicYAxisWidth = exports.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = exports.useMarkers = void 0;
|
|
20
|
+
exports.AsyncMountContext = exports.MdmModuleProvider = exports.withTableContext = exports.withFilterAtBottom = exports.withPercents = exports.withContext = exports.withDateRangeSelector = exports.withDragHandle = exports.withAsyncMount = exports.withTooltip = exports.LazyRenderer = exports.MetadataTypesSelector = exports.DateRangeSelector = exports.UpSetChart = exports.GaugeChart = exports.RelationEditor = exports.ReltioMap = exports.Marginator = exports.LightArrowTooltip = exports.ScrollableTabs = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = exports.SidePanelEmptyState = exports.SideButtonsPanel = exports.SelectorWithOnlyOptionAutoSelect = exports.SelectionPopup = exports.WhiteSearchInput = exports.SearchInput = exports.ProfileResizablePanes = exports.ResizablePanes = exports.ReltioGridLayout = exports.RCTreeSwitchRenderer = exports.RCTreeLevelLines = exports.RCTree = exports.reactSortableTreeHelpers = exports.ReactSortableTree = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = exports.PotentialMatchReviewCard = exports.PopupWithArrow = void 0;
|
|
21
|
+
exports.useAttributeValueConfigPermissions = exports.ConfigPermissionsContextProvider = exports.ConfigPermissionsContext = exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.EntityContext = exports.RelatedObjectUrisContext = exports.WorkflowTasksContext = exports.useEntityLoadingIndication = exports.EntityLoadingIndicationProvider = exports.EntityMarkerContext = exports.useAttributeExpanded = exports.ExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.usePerspectivesSettings = exports.PerspectivesSettingsContext = exports.PivotingAttributeContext = exports.UsersContext = exports.InitialCollaborationContextValue = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockImageGalleryDialogContext = exports.PopupBoundariesContext = exports.HistoryDiffContext = void 0;
|
|
22
|
+
exports.useKeyboardNavigation = exports.useDynamicRowCellHeight = exports.useClickableStyle = exports.BasicTableCellRenderer = exports.useBasicTableCellRenderer = exports.useHiddenAttributes = exports.useSavedSearchesRequest = exports.useRequestDCRReview = exports.useAutoFocus = exports.useExpandInvalidRelations = exports.useLayoutResetter = exports.useIsMountedRef = exports.useSnackbar = exports.useSavedStateForEntityType = exports.useReadableSearchState = exports.useEditableConnection = exports.useCustomScripts = exports.useMarkAsNotMatchRequest = exports.useMergeAllRequest = exports.usePagingSimulator = exports.useMatchesLoader = exports.useConfigPermissions = exports.useWhyDidYouUpdate = exports.useUsers = exports.useSavedState = exports.useSafePromise = exports.useRunOnceAfterValueInitialization = exports.useRelationsLoader = exports.useRelationTypeSelector = exports.usePrevious = exports.useDidUpdateEffect = exports.useCommentsEntitiesMap = exports.useCollaboration = exports.useAsyncMount = exports.useAPI = exports.useActions = exports.useMatchesColumnsData = exports.useScrollToAttributeError = exports.ThemeProvider = exports.ProfileTablesContext = exports.HiddenAttributesContext = exports.BasicTableContext = exports.BasicTableRowCollapseContext = exports.useDeleteUnmaskedAttributeForRelation = exports.useUnmaskedAttributeValue = exports.useUnmaskAttributeValue = exports.useMaskAttributeValue = exports.MaskedAttributesProvider = exports.useReloadData = exports.ReloadDataProvider = void 0;
|
|
23
|
+
exports.mockComputedStyles = exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.getAttributeSelectorItems = exports.mergeClasses = exports.isControlOrCommandPressed = exports.getValue = exports.getChecked = exports.showErrorMessage = exports.showDefaultErrorMessage = exports.enrichDataWithPercents = exports.defaultRenderRowCell = exports.defaultGetRowCellHeight = exports.columnFilterToMdmFilter = exports.buildColumnsSizeById = exports.buildColumnsFilter = exports.useDndBasicTableScrollModifier = exports.useDynamicYAxisWidth = exports.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = exports.useMarkers = exports.useMaskedAttribute = void 0;
|
|
24
24
|
// components
|
|
25
25
|
var ActionButton_1 = require("./ActionButton");
|
|
26
26
|
Object.defineProperty(exports, "ActionButton", { enumerable: true, get: function () { return ActionButton_1.ActionButton; } });
|
|
@@ -391,6 +391,8 @@ var DateRangeSelector_1 = require("./DateRangeSelector");
|
|
|
391
391
|
Object.defineProperty(exports, "DateRangeSelector", { enumerable: true, get: function () { return DateRangeSelector_1.DateRangeSelector; } });
|
|
392
392
|
var MetadataTypesSelector_1 = require("./MetadataTypesSelector");
|
|
393
393
|
Object.defineProperty(exports, "MetadataTypesSelector", { enumerable: true, get: function () { return MetadataTypesSelector_1.MetadataTypesSelector; } });
|
|
394
|
+
var LazyRenderer_1 = require("./LazyRenderer");
|
|
395
|
+
Object.defineProperty(exports, "LazyRenderer", { enumerable: true, get: function () { return LazyRenderer_1.LazyRenderer; } });
|
|
394
396
|
// HOCs
|
|
395
397
|
var withTooltip_1 = require("./HOCs/withTooltip");
|
|
396
398
|
Object.defineProperty(exports, "withTooltip", { enumerable: true, get: function () { return withTooltip_1.withTooltip; } });
|
|
@@ -13,7 +13,7 @@ import React, { memo, useCallback, useEffect, useMemo, useState } from 'react';
|
|
|
13
13
|
import classnames from 'classnames';
|
|
14
14
|
import i18n from 'ui-i18n';
|
|
15
15
|
import { always, either, filter, isNil, keys, map, pipe, without, identity, both, move } from 'ramda';
|
|
16
|
-
import { findAttributeTypeByUri, isReadableAttribute, makeAttrTypeUri } from '@reltio/mdm-sdk';
|
|
16
|
+
import { debounce, findAttributeTypeByUri, isReadableAttribute, makeAttrTypeUri } from '@reltio/mdm-sdk';
|
|
17
17
|
import { BasicTable } from '../../../BasicTable';
|
|
18
18
|
import { ColumnsSettings } from '../../../ColumnsSettings';
|
|
19
19
|
import { useDynamicRowCellHeight } from '../../../hooks/useDynamicRowCellHeight';
|
|
@@ -24,6 +24,7 @@ import { useMdmMetadata } from '../../../contexts/MdmModuleContext';
|
|
|
24
24
|
import { COLUMNS_DATA, DEFAULT_VISIBLE_COLUMNS, getBasicTableColumnsData, getBasicTableRowsData } from './helpers';
|
|
25
25
|
import { ConfirmEditIgnoredDialog } from './components/ConfirmEditIgnoredDialog';
|
|
26
26
|
import { CommonRowCellRenderer } from './components/CommonRowCellRenderer';
|
|
27
|
+
import { LazyRenderer } from '../../../LazyRenderer';
|
|
27
28
|
import { useStyles } from './styles';
|
|
28
29
|
var DEFAULT_ROW_HEIGHT = 68;
|
|
29
30
|
var getIdFromRowValue = function (rowValue) { return rowValue.ovValues.attributeType.uri; };
|
|
@@ -31,6 +32,7 @@ var getRowCellKey = function (_a) {
|
|
|
31
32
|
var id = _a.columnData.id, cellIndex = _a.cellIndex, rowValue = _a.rowValue;
|
|
32
33
|
return "".concat(id, "[").concat(getIdFromRowValue(rowValue), "][").concat(cellIndex, "]");
|
|
33
34
|
};
|
|
35
|
+
var debouncedNotifyLazyRenderer = debounce(LazyRenderer.notify, 0);
|
|
34
36
|
var AttributesTable = function (_a) {
|
|
35
37
|
var entity = _a.entity, isLoading = _a.isLoading, crosswalksMap = _a.crosswalksMap, _b = _a.visibleColumns, visibleColumns = _b === void 0 ? DEFAULT_VISIBLE_COLUMNS : _b, onChangeVisibleColumns = _a.onChangeVisibleColumns, readOnly = _a.readOnly, _c = _a.onDelete, onDelete = _c === void 0 ? identity : _c, _d = _a.onPin, onPin = _d === void 0 ? identity : _d, _e = _a.onIgnore, onIgnore = _e === void 0 ? identity : _e, _f = _a.onEdit, onEdit = _f === void 0 ? identity : _f, _g = _a.onAdd, onAdd = _g === void 0 ? identity : _g, emptyTempAttributeUris = _a.emptyTempAttributeUris, selectedAttributeTypes = _a.selectedAttributeTypes, _h = _a.onSelectAttributeTypes, onSelectAttributeTypes = _h === void 0 ? identity : _h, additionalHeaderItems = _a.additionalHeaderItems, className = _a.className, activeSurvivorshipGroupUri = _a.activeSurvivorshipGroupUri, tableRef = _a.tableRef;
|
|
36
38
|
var styles = useStyles();
|
|
@@ -66,6 +68,9 @@ var AttributesTable = function (_a) {
|
|
|
66
68
|
var getRowCellHeight = useCallback(either(getDynamicRowCellHeight, always(DEFAULT_ROW_HEIGHT)), [
|
|
67
69
|
getDynamicRowCellHeight
|
|
68
70
|
]);
|
|
71
|
+
useEffect(function () {
|
|
72
|
+
debouncedNotifyLazyRenderer();
|
|
73
|
+
}, [getRowCellHeight]);
|
|
69
74
|
var _m = useState(null), pendingDeletion = _m[0], setPendingDeletion = _m[1];
|
|
70
75
|
var _o = useState(null), pendingIgnoredEditing = _o[0], setPendingIgnoredEditing = _o[1];
|
|
71
76
|
var handleEdit = useCallback(function (event) {
|
|
@@ -114,7 +119,7 @@ var AttributesTable = function (_a) {
|
|
|
114
119
|
React.createElement(ColumnsSettings, { columnsData: COLUMNS_DATA, selectedColumns: visibleColumns, onChangeColumns: onChangeVisibleColumns })),
|
|
115
120
|
React.createElement("div", { className: styles.tableContent },
|
|
116
121
|
isLoading && React.createElement(LinearLoadIndicator, null),
|
|
117
|
-
React.createElement(BasicTable, { ref: tableRef, fixFirstColumn: true, headRowHeight: 48, defaultColumnWidth: 250, defaultColumnMinWidth: 200, columnsData: visibleColumnsData, dndRowReorderingEnabled: false, dndRowReorderingHandler: handleReorderAttributeTypes, getIdFromRowValue: getIdFromRowValue, rowsData: rowsData, renderRowCell: renderRowCell, getRowCellHeight: getRowCellHeight, context: tableContext })),
|
|
122
|
+
React.createElement(BasicTable, { ref: tableRef, fixFirstColumn: true, headRowHeight: 48, defaultColumnWidth: 250, defaultColumnMinWidth: 200, columnsData: visibleColumnsData, dndRowReorderingEnabled: false, dndRowReorderingHandler: handleReorderAttributeTypes, getIdFromRowValue: getIdFromRowValue, rowsData: rowsData, onScroll: debouncedNotifyLazyRenderer, renderRowCell: renderRowCell, getRowCellHeight: getRowCellHeight, context: tableContext })),
|
|
118
123
|
React.createElement(ConfirmDeleteDialog, { open: !!pendingDeletion, onClose: function () { return setPendingDeletion(null); }, onConfirm: handleDelete }),
|
|
119
124
|
React.createElement(ConfirmEditIgnoredDialog, { open: !!pendingIgnoredEditing, onClose: function () { return setPendingIgnoredEditing(null); }, onConfirmEditWithIgnore: function () { return pendingIgnoredEditing && onEdit(pendingIgnoredEditing); }, onConfirmEditWithoutIgnore: function () {
|
|
120
125
|
if (pendingIgnoredEditing)
|
|
@@ -22,13 +22,16 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
22
22
|
};
|
|
23
23
|
import React from 'react';
|
|
24
24
|
import { InlineNestedAttribute } from '../../../../../InlineNestedAttribute';
|
|
25
|
+
import { LazyRenderer } from '../../../../../LazyRenderer';
|
|
25
26
|
import { useCommonStyles } from '../../styles';
|
|
26
27
|
export var NestedAttributesRenderer = function (_a) {
|
|
27
28
|
var attributeValues = _a.attributeValues, props = __rest(_a, ["attributeValues"]);
|
|
28
29
|
var styles = useCommonStyles();
|
|
30
|
+
var enabledLazyRendering = (attributeValues === null || attributeValues === void 0 ? void 0 : attributeValues.length) > 20;
|
|
29
31
|
var nestedValues = attributeValues === null || attributeValues === void 0 ? void 0 : attributeValues.map(function (attributeValue, i) {
|
|
30
|
-
return (React.createElement(
|
|
31
|
-
React.createElement(
|
|
32
|
+
return (React.createElement(LazyRenderer, { key: attributeValue === null || attributeValue === void 0 ? void 0 : attributeValue.uri, enabled: enabledLazyRendering, className: styles.basicCell },
|
|
33
|
+
React.createElement("div", { className: styles.basicCell, "data-reltio-id": "value-index-".concat(i) },
|
|
34
|
+
React.createElement(InlineNestedAttribute, __assign({ attributeValue: attributeValue }, props)))));
|
|
32
35
|
});
|
|
33
36
|
return React.createElement(React.Fragment, null, nestedValues);
|
|
34
37
|
};
|
|
@@ -22,13 +22,16 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
22
22
|
};
|
|
23
23
|
import React from 'react';
|
|
24
24
|
import { InlineReferenceAttribute } from '../../../../../InlineReferenceAttribute';
|
|
25
|
+
import { LazyRenderer } from '../../../../../LazyRenderer';
|
|
25
26
|
import { useCommonStyles } from '../../styles';
|
|
26
27
|
export var ReferenceAttributesRenderer = function (_a) {
|
|
27
28
|
var attributeValues = _a.attributeValues, crosswalksMap = _a.crosswalksMap, props = __rest(_a, ["attributeValues", "crosswalksMap"]);
|
|
28
29
|
var styles = useCommonStyles();
|
|
30
|
+
var enabledLazyRendering = (attributeValues === null || attributeValues === void 0 ? void 0 : attributeValues.length) > 20;
|
|
29
31
|
var referenceValues = attributeValues === null || attributeValues === void 0 ? void 0 : attributeValues.map(function (attributeValue, i) {
|
|
30
|
-
return (React.createElement(
|
|
31
|
-
React.createElement(
|
|
32
|
+
return (React.createElement(LazyRenderer, { key: attributeValue === null || attributeValue === void 0 ? void 0 : attributeValue.uri, enabled: enabledLazyRendering, className: styles.basicCell },
|
|
33
|
+
React.createElement("div", { className: styles.basicCell, "data-reltio-id": "value-index-".concat(i) },
|
|
34
|
+
React.createElement(InlineReferenceAttribute, __assign({ attributeValue: attributeValue, crosswalksMap: crosswalksMap }, props)))));
|
|
32
35
|
});
|
|
33
36
|
return React.createElement(React.Fragment, null, referenceValues);
|
|
34
37
|
};
|
|
@@ -18,7 +18,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
18
18
|
}
|
|
19
19
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
20
|
};
|
|
21
|
-
import { useCallback, useEffect, useState } from 'react';
|
|
21
|
+
import { useCallback, useEffect, useState, useMemo } from 'react';
|
|
22
22
|
import { andThen, fromPairs, map, otherwise, pipe, props, uniqBy, prop, propEq, when, always, assocPath, dissocPath, path, pathOr, mergeRight } from 'ramda';
|
|
23
23
|
import { createComment as createCommentRequest, createReply as createReplyRequest, getComment as getCommentRequest, getCommentsCount as getCommentsCountRequest, updateComment as updateCommentRequest, updateReply as updateReplyRequest, deleteComment as deleteCommentRequest, deleteReply as deleteReplyRequest, getComments as getCommentsRequest, isTempUri } from '@reltio/mdm-sdk';
|
|
24
24
|
import { useMdmCollaborationPath, useMdmEntity, useMdmIsCollaborationEnabled, useMdmTenant } from '../../contexts/MdmModuleContext';
|
|
@@ -258,18 +258,16 @@ export var useCollaboration = function (_a) {
|
|
|
258
258
|
var clearCurrentComment = useCallback(function () {
|
|
259
259
|
setCurrentComment(null);
|
|
260
260
|
}, []);
|
|
261
|
-
var getCommentState = function (uri, commentUri) { return pathOr({}, [uri, commentUri], collaborationStateMap); };
|
|
262
|
-
var clearCommentState = function (uri, commentUri) {
|
|
263
|
-
|
|
264
|
-
};
|
|
265
|
-
var updateCommentState = function (uri, commentUri, newState) {
|
|
261
|
+
var getCommentState = useCallback(function (uri, commentUri) { return pathOr({}, [uri, commentUri], collaborationStateMap); }, [collaborationStateMap]);
|
|
262
|
+
var clearCommentState = useCallback(function (uri, commentUri) { return setCollaborationStateMap(dissocPath([uri, commentUri])); }, []);
|
|
263
|
+
var updateCommentState = useCallback(function (uri, commentUri, newState) {
|
|
266
264
|
setCollaborationStateMap(function (prevCollaborationStateMap) {
|
|
267
265
|
var pathToCommentState = [uri, commentUri];
|
|
268
266
|
var prevCommentState = path(pathToCommentState, prevCollaborationStateMap);
|
|
269
267
|
return assocPath(pathToCommentState, mergeRight(prevCommentState, newState), prevCollaborationStateMap);
|
|
270
268
|
});
|
|
271
|
-
};
|
|
272
|
-
return {
|
|
269
|
+
}, []);
|
|
270
|
+
return useMemo(function () { return ({
|
|
273
271
|
clearCurrentComment: clearCurrentComment,
|
|
274
272
|
comments: comments,
|
|
275
273
|
commentsMap: commentsMap,
|
|
@@ -292,5 +290,28 @@ export var useCollaboration = function (_a) {
|
|
|
292
290
|
sending: sending,
|
|
293
291
|
deleteReply: deleteReply,
|
|
294
292
|
editReply: editReply
|
|
295
|
-
};
|
|
293
|
+
}); }, [
|
|
294
|
+
clearCurrentComment,
|
|
295
|
+
comments,
|
|
296
|
+
commentsMap,
|
|
297
|
+
getCommentState,
|
|
298
|
+
updateCommentState,
|
|
299
|
+
clearCommentState,
|
|
300
|
+
createComment,
|
|
301
|
+
createReply,
|
|
302
|
+
currentComment,
|
|
303
|
+
deleteComment,
|
|
304
|
+
editComment,
|
|
305
|
+
getComment,
|
|
306
|
+
getComments,
|
|
307
|
+
getCommentsCount,
|
|
308
|
+
loading,
|
|
309
|
+
objectTypes,
|
|
310
|
+
pageToken,
|
|
311
|
+
reOpenThread,
|
|
312
|
+
resolveThread,
|
|
313
|
+
sending,
|
|
314
|
+
deleteReply,
|
|
315
|
+
editReply
|
|
316
|
+
]);
|
|
296
317
|
};
|
package/index.d.ts
CHANGED
|
@@ -178,6 +178,7 @@ export { GaugeChart } from './GaugeChart';
|
|
|
178
178
|
export { UpSetChart } from './UpSetChart';
|
|
179
179
|
export { DateRangeSelector } from './DateRangeSelector';
|
|
180
180
|
export { MetadataTypesSelector } from './MetadataTypesSelector';
|
|
181
|
+
export { LazyRenderer } from './LazyRenderer';
|
|
181
182
|
export { withTooltip } from './HOCs/withTooltip';
|
|
182
183
|
export { withAsyncMount } from './HOCs/withAsyncMount';
|
|
183
184
|
export { withDragHandle } from './HOCs/withDragHandle';
|
package/index.js
CHANGED
|
@@ -179,6 +179,7 @@ export { GaugeChart } from './GaugeChart';
|
|
|
179
179
|
export { UpSetChart } from './UpSetChart';
|
|
180
180
|
export { DateRangeSelector } from './DateRangeSelector';
|
|
181
181
|
export { MetadataTypesSelector } from './MetadataTypesSelector';
|
|
182
|
+
export { LazyRenderer } from './LazyRenderer';
|
|
182
183
|
// HOCs
|
|
183
184
|
export { withTooltip } from './HOCs/withTooltip';
|
|
184
185
|
export { withAsyncMount } from './HOCs/withAsyncMount';
|