@reltio/components 1.4.1999 → 1.4.2001

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.
Files changed (127) hide show
  1. package/cjs/RCTree/RCTree.d.ts +17 -14
  2. package/cjs/RCTree/RCTree.js +24 -8
  3. package/cjs/RCTree/RCTreeLevelLines.d.ts +4 -0
  4. package/cjs/RCTree/RCTreeLevelLines.js +32 -0
  5. package/cjs/RCTree/RCTreeSwitchRenderer.d.ts +7 -0
  6. package/cjs/RCTree/{DefaultSwitchRenderer.js → RCTreeSwitchRenderer.js} +3 -3
  7. package/cjs/RCTree/helper.d.ts +10 -5
  8. package/cjs/RCTree/helper.js +49 -3
  9. package/cjs/RCTree/index.d.ts +2 -0
  10. package/cjs/RCTree/index.js +5 -1
  11. package/cjs/RCTree/levelLinesStyles.d.ts +5 -0
  12. package/cjs/RCTree/levelLinesStyles.js +53 -0
  13. package/cjs/RCTree/styles.d.ts +1 -1
  14. package/cjs/RCTree/styles.js +63 -30
  15. package/cjs/RCTree/types.d.ts +3 -2
  16. package/cjs/RCTree/useDnd.d.ts +16 -16
  17. package/cjs/features/crosswalks/AttributesTable/AttributesTable.test-data.d.ts +36 -0
  18. package/cjs/features/crosswalks/AttributesTable/AttributesTable.test-data.js +288 -0
  19. package/cjs/features/crosswalks/AttributesTable/AttributesTable.test.js +708 -370
  20. package/cjs/features/crosswalks/ColoredBlock/ColoredBlock.test.js +77 -15
  21. package/cjs/features/crosswalks/CopyableValueField/CopyableValueField.test.js +85 -15
  22. package/cjs/features/crosswalks/CrosswalkAttributes/CrosswalkAttributes.test.js +265 -193
  23. package/cjs/features/crosswalks/CrosswalkDateEditor/CrosswalkDateEditor.test.js +106 -12
  24. package/cjs/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.test.js +21 -9
  25. package/cjs/features/crosswalks/CrosswalkEditor/CrosswalkEditor.test.js +190 -90
  26. package/cjs/features/crosswalks/CrosswalkRow/CrosswalkRow.test.js +323 -225
  27. package/cjs/features/crosswalks/ShowDependentLink/ShowDependentLink.test.js +75 -12
  28. package/cjs/features/crosswalks/SourceCrosswalksRow/SourceCrosswalksRow.test.js +171 -138
  29. package/cjs/index.d.ts +1 -1
  30. package/cjs/index.js +6 -4
  31. package/esm/RCTree/RCTree.d.ts +17 -14
  32. package/esm/RCTree/RCTree.js +26 -10
  33. package/esm/RCTree/RCTreeLevelLines.d.ts +4 -0
  34. package/esm/RCTree/RCTreeLevelLines.js +25 -0
  35. package/esm/RCTree/RCTreeSwitchRenderer.d.ts +7 -0
  36. package/esm/RCTree/{DefaultSwitchRenderer.js → RCTreeSwitchRenderer.js} +1 -1
  37. package/esm/RCTree/helper.d.ts +10 -5
  38. package/esm/RCTree/helper.js +44 -1
  39. package/esm/RCTree/index.d.ts +2 -0
  40. package/esm/RCTree/index.js +2 -0
  41. package/esm/RCTree/levelLinesStyles.d.ts +5 -0
  42. package/esm/RCTree/levelLinesStyles.js +50 -0
  43. package/esm/RCTree/styles.d.ts +1 -1
  44. package/esm/RCTree/styles.js +63 -30
  45. package/esm/RCTree/types.d.ts +3 -2
  46. package/esm/RCTree/useDnd.d.ts +16 -16
  47. package/esm/features/crosswalks/AttributesTable/AttributesTable.test-data.d.ts +36 -0
  48. package/esm/features/crosswalks/AttributesTable/AttributesTable.test-data.js +283 -0
  49. package/esm/features/crosswalks/AttributesTable/AttributesTable.test.js +711 -350
  50. package/esm/features/crosswalks/ColoredBlock/ColoredBlock.test.js +77 -15
  51. package/esm/features/crosswalks/CopyableValueField/CopyableValueField.test.js +85 -15
  52. package/esm/features/crosswalks/CrosswalkAttributes/CrosswalkAttributes.test.js +266 -194
  53. package/esm/features/crosswalks/CrosswalkDateEditor/CrosswalkDateEditor.test.js +106 -12
  54. package/esm/features/crosswalks/CrosswalkDragLayer/CrosswalkDragLayer.test.js +21 -9
  55. package/esm/features/crosswalks/CrosswalkEditor/CrosswalkEditor.test.js +190 -90
  56. package/esm/features/crosswalks/CrosswalkRow/CrosswalkRow.test.js +324 -226
  57. package/esm/features/crosswalks/ShowDependentLink/ShowDependentLink.test.js +75 -12
  58. package/esm/features/crosswalks/SourceCrosswalksRow/SourceCrosswalksRow.test.js +171 -138
  59. package/esm/index.d.ts +1 -1
  60. package/esm/index.js +1 -1
  61. package/package.json +1 -1
  62. package/cjs/RCTree/DefaultSwitchRenderer.d.ts +0 -7
  63. package/cjs/features/crosswalks/AttributesTable/IntegrationAttributesTable.test-data.d.ts +0 -3
  64. package/cjs/features/crosswalks/AttributesTable/IntegrationAttributesTable.test-data.js +0 -52
  65. package/cjs/features/crosswalks/AttributesTable/IntegrationAttributesTable.test.d.ts +0 -1
  66. package/cjs/features/crosswalks/AttributesTable/IntegrationAttributesTable.test.js +0 -323
  67. package/cjs/features/crosswalks/AttributesTable/components/AddAttributesButton/AddAttributesButton.test.d.ts +0 -1
  68. package/cjs/features/crosswalks/AttributesTable/components/AddAttributesButton/AddAttributesButton.test.js +0 -142
  69. package/cjs/features/crosswalks/AttributesTable/components/AttributeValuesRenderer/AttributeValuesRenderer.test.d.ts +0 -1
  70. package/cjs/features/crosswalks/AttributesTable/components/AttributeValuesRenderer/AttributeValuesRenderer.test.js +0 -146
  71. package/cjs/features/crosswalks/AttributesTable/components/AttributesHeadCellRenderer/AttributesHeadCellRenderer.test.d.ts +0 -1
  72. package/cjs/features/crosswalks/AttributesTable/components/AttributesHeadCellRenderer/AttributesHeadCellRenderer.test.js +0 -50
  73. package/cjs/features/crosswalks/AttributesTable/components/ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog.test.d.ts +0 -1
  74. package/cjs/features/crosswalks/AttributesTable/components/ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog.test.js +0 -58
  75. package/cjs/features/crosswalks/AttributesTable/components/CountRenderer/CountRenderer.test.d.ts +0 -1
  76. package/cjs/features/crosswalks/AttributesTable/components/CountRenderer/CountRenderer.test.js +0 -14
  77. package/cjs/features/crosswalks/AttributesTable/components/ImageAttributesRenderer/ImageAttributesRenderer.test.d.ts +0 -1
  78. package/cjs/features/crosswalks/AttributesTable/components/ImageAttributesRenderer/ImageAttributesRenderer.test.js +0 -110
  79. package/cjs/features/crosswalks/AttributesTable/components/NestedAttributesRenderer/NestedAttributesRenderer.test.d.ts +0 -1
  80. package/cjs/features/crosswalks/AttributesTable/components/NestedAttributesRenderer/NestedAttributesRenderer.test.js +0 -111
  81. package/cjs/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.test.d.ts +0 -1
  82. package/cjs/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.test.js +0 -67
  83. package/cjs/features/crosswalks/AttributesTable/components/ReferenceAttributesRenderer/ReferenceAttributesRenderer.test.d.ts +0 -1
  84. package/cjs/features/crosswalks/AttributesTable/components/ReferenceAttributesRenderer/ReferenceAttributesRenderer.test.js +0 -193
  85. package/cjs/features/crosswalks/AttributesTable/components/RuleTypeInfoButton/RuleTypeInfoButton.test.d.ts +0 -1
  86. package/cjs/features/crosswalks/AttributesTable/components/RuleTypeInfoButton/RuleTypeInfoButton.test.js +0 -22
  87. package/cjs/features/crosswalks/AttributesTable/components/RuleTypeRenderer/RuleTypeRenderer.test.d.ts +0 -1
  88. package/cjs/features/crosswalks/AttributesTable/components/RuleTypeRenderer/RuleTypeRenderer.test.js +0 -58
  89. package/cjs/features/crosswalks/AttributesTable/components/SimpleAttributesRenderer/SimpleAttributesRenderer.test.d.ts +0 -1
  90. package/cjs/features/crosswalks/AttributesTable/components/SimpleAttributesRenderer/SimpleAttributesRenderer.test.js +0 -69
  91. package/cjs/features/crosswalks/CrosswalkDateEditor/IntegrationCrosswalkDateEditor.test.d.ts +0 -1
  92. package/cjs/features/crosswalks/CrosswalkDateEditor/IntegrationCrosswalkDateEditor.test.js +0 -137
  93. package/cjs/features/crosswalks/CrosswalkDragLayer/components/CrosswalkDragPreview/CrosswalkDragPreview.test.d.ts +0 -1
  94. package/cjs/features/crosswalks/CrosswalkDragLayer/components/CrosswalkDragPreview/CrosswalkDragPreview.test.js +0 -56
  95. package/esm/RCTree/DefaultSwitchRenderer.d.ts +0 -7
  96. package/esm/features/crosswalks/AttributesTable/IntegrationAttributesTable.test-data.d.ts +0 -3
  97. package/esm/features/crosswalks/AttributesTable/IntegrationAttributesTable.test-data.js +0 -47
  98. package/esm/features/crosswalks/AttributesTable/IntegrationAttributesTable.test.d.ts +0 -1
  99. package/esm/features/crosswalks/AttributesTable/IntegrationAttributesTable.test.js +0 -318
  100. package/esm/features/crosswalks/AttributesTable/components/AddAttributesButton/AddAttributesButton.test.d.ts +0 -1
  101. package/esm/features/crosswalks/AttributesTable/components/AddAttributesButton/AddAttributesButton.test.js +0 -137
  102. package/esm/features/crosswalks/AttributesTable/components/AttributeValuesRenderer/AttributeValuesRenderer.test.d.ts +0 -1
  103. package/esm/features/crosswalks/AttributesTable/components/AttributeValuesRenderer/AttributeValuesRenderer.test.js +0 -141
  104. package/esm/features/crosswalks/AttributesTable/components/AttributesHeadCellRenderer/AttributesHeadCellRenderer.test.d.ts +0 -1
  105. package/esm/features/crosswalks/AttributesTable/components/AttributesHeadCellRenderer/AttributesHeadCellRenderer.test.js +0 -45
  106. package/esm/features/crosswalks/AttributesTable/components/ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog.test.d.ts +0 -1
  107. package/esm/features/crosswalks/AttributesTable/components/ConfirmEditIgnoredDialog/ConfirmEditIgnoredDialog.test.js +0 -53
  108. package/esm/features/crosswalks/AttributesTable/components/CountRenderer/CountRenderer.test.d.ts +0 -1
  109. package/esm/features/crosswalks/AttributesTable/components/CountRenderer/CountRenderer.test.js +0 -9
  110. package/esm/features/crosswalks/AttributesTable/components/ImageAttributesRenderer/ImageAttributesRenderer.test.d.ts +0 -1
  111. package/esm/features/crosswalks/AttributesTable/components/ImageAttributesRenderer/ImageAttributesRenderer.test.js +0 -105
  112. package/esm/features/crosswalks/AttributesTable/components/NestedAttributesRenderer/NestedAttributesRenderer.test.d.ts +0 -1
  113. package/esm/features/crosswalks/AttributesTable/components/NestedAttributesRenderer/NestedAttributesRenderer.test.js +0 -106
  114. package/esm/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.test.d.ts +0 -1
  115. package/esm/features/crosswalks/AttributesTable/components/OvValuesRenderer/OvValuesRenderer.test.js +0 -62
  116. package/esm/features/crosswalks/AttributesTable/components/ReferenceAttributesRenderer/ReferenceAttributesRenderer.test.d.ts +0 -1
  117. package/esm/features/crosswalks/AttributesTable/components/ReferenceAttributesRenderer/ReferenceAttributesRenderer.test.js +0 -188
  118. package/esm/features/crosswalks/AttributesTable/components/RuleTypeInfoButton/RuleTypeInfoButton.test.d.ts +0 -1
  119. package/esm/features/crosswalks/AttributesTable/components/RuleTypeInfoButton/RuleTypeInfoButton.test.js +0 -17
  120. package/esm/features/crosswalks/AttributesTable/components/RuleTypeRenderer/RuleTypeRenderer.test.d.ts +0 -1
  121. package/esm/features/crosswalks/AttributesTable/components/RuleTypeRenderer/RuleTypeRenderer.test.js +0 -53
  122. package/esm/features/crosswalks/AttributesTable/components/SimpleAttributesRenderer/SimpleAttributesRenderer.test.d.ts +0 -1
  123. package/esm/features/crosswalks/AttributesTable/components/SimpleAttributesRenderer/SimpleAttributesRenderer.test.js +0 -64
  124. package/esm/features/crosswalks/CrosswalkDateEditor/IntegrationCrosswalkDateEditor.test.d.ts +0 -1
  125. package/esm/features/crosswalks/CrosswalkDateEditor/IntegrationCrosswalkDateEditor.test.js +0 -132
  126. package/esm/features/crosswalks/CrosswalkDragLayer/components/CrosswalkDragPreview/CrosswalkDragPreview.test.d.ts +0 -1
  127. package/esm/features/crosswalks/CrosswalkDragLayer/components/CrosswalkDragPreview/CrosswalkDragPreview.test.js +0 -28
@@ -12,26 +12,29 @@ var __assign = (this && this.__assign) || function () {
12
12
  import classnames from 'classnames';
13
13
  import { assoc, identity } from 'ramda';
14
14
  import Tree from 'rc-tree';
15
- import React, { useCallback, useEffect, useMemo, useRef } from 'react';
15
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
16
16
  import DragIndicator from '@mui/icons-material/DragIndicator';
17
- import { DefaultSwitchRenderer } from './DefaultSwitchRenderer';
18
- import { changeNodeAtPosition, convertTreeData, defaultIsLeaf, gatherNodeKeys, getExpandedKeys, isDropIndicatorNode, moveNode, preventNodeDragging } from './helper';
17
+ import ReactResizeDetector from 'react-resize-detector';
18
+ import { RCTreeSwitchRenderer } from './RCTreeSwitchRenderer';
19
+ import { RCTreeLevelLines } from './RCTreeLevelLines';
20
+ import { changeNodeAtPosition, convertTreeData, defaultIsLeaf, gatherNodeKeys, getExpandedKeys, isDropIndicatorNode, moveNode, preventNodeDragging, getLevelLinesData, setTreeWidth, calcNodeWidth } from './helper';
19
21
  import { useDnd } from './useDnd';
20
22
  import { useStyles } from './styles';
21
23
  var MIN_ROW_HEIGHT = 28;
22
24
  export var RCTree = function (_a) {
23
25
  var _b;
24
- var treeData = _a.treeData, _c = _a.isVirtualized, isVirtualized = _c === void 0 ? true : _c, _d = _a.canDrag, canDrag = _d === void 0 ? function () { return false; } : _d, _e = _a.canDrop, canDrop = _e === void 0 ? function () { return false; } : _e, _f = _a.onDrop, onDrop = _f === void 0 ? function () { } : _f, onLoadChildren = _a.onLoadChildren, height = _a.height, _g = _a.defaultExpandAll, defaultExpandAll = _g === void 0 ? false : _g, _h = _a.SwitchRenderer, SwitchRenderer = _h === void 0 ? DefaultSwitchRenderer : _h, className = _a.className, renderNode = _a.renderNode, _j = _a.minItemHeight, minItemHeight = _j === void 0 ? MIN_ROW_HEIGHT : _j, _k = _a.isLeaf, isLeaf = _k === void 0 ? defaultIsLeaf : _k, scrollToNode = _a.scrollToNode, _l = _a.onChange, onChange = _l === void 0 ? identity : _l;
26
+ var treeData = _a.treeData, _c = _a.isVirtualized, isVirtualized = _c === void 0 ? true : _c, _d = _a.canDrag, canDrag = _d === void 0 ? function () { return false; } : _d, _e = _a.canDrop, canDrop = _e === void 0 ? function () { return false; } : _e, _f = _a.onDrop, onDrop = _f === void 0 ? function () { } : _f, onLoadChildren = _a.onLoadChildren, _g = _a.defaultExpandAll, defaultExpandAll = _g === void 0 ? false : _g, _h = _a.SwitchRenderer, SwitchRenderer = _h === void 0 ? RCTreeSwitchRenderer : _h, _j = _a.LevelLinesRenderer, LevelLinesRenderer = _j === void 0 ? RCTreeLevelLines : _j, className = _a.className, renderNode = _a.renderNode, _k = _a.minItemHeight, minItemHeight = _k === void 0 ? MIN_ROW_HEIGHT : _k, _l = _a.isLeaf, isLeaf = _l === void 0 ? defaultIsLeaf : _l, scrollToNode = _a.scrollToNode, _m = _a.onChange, onChange = _m === void 0 ? identity : _m, height = _a.height;
25
27
  var styles = useStyles();
26
28
  var treeRef = useRef(null);
27
29
  var containerRef = useRef(null);
30
+ var _o = useState({ width: 0, height: 0 }), containerSize = _o[0], setContainerSize = _o[1];
28
31
  var expandNode = useCallback(function (pos, expanded) {
29
32
  var changeNode = assoc('expanded', expanded);
30
33
  var newTreeData = changeNodeAtPosition(treeData, pos, changeNode);
31
34
  if (newTreeData)
32
35
  onChange(newTreeData);
33
36
  }, [onChange, treeData]);
34
- var _m = useDnd({
37
+ var _p = useDnd({
35
38
  containerRef: containerRef,
36
39
  treeData: treeData,
37
40
  expandNode: expandNode,
@@ -40,7 +43,7 @@ export var RCTree = function (_a) {
40
43
  onDrop: onDrop,
41
44
  canDrop: canDrop,
42
45
  canDrag: canDrag
43
- }), treeProps = _m.treeProps, nodeDraggable = _m.nodeDraggable, dropNode = _m.dropNode, dragNode = _m.dragNode, dropPositionInfo = _m.dropPositionInfo;
46
+ }), treeProps = _p.treeProps, nodeDraggable = _p.nodeDraggable, dropNode = _p.dropNode, dragNode = _p.dragNode, dropPositionInfo = _p.dropPositionInfo;
44
47
  useEffect(function () {
45
48
  if (treeRef.current && scrollToNode) {
46
49
  treeRef.current.scrollTo({ key: String(scrollToNode.nodeId) });
@@ -55,9 +58,14 @@ export var RCTree = function (_a) {
55
58
  }
56
59
  return treeData;
57
60
  }, [treeData, dragNode, dropNode, dropPositionInfo]);
61
+ useEffect(function () {
62
+ if (isVirtualized)
63
+ setTreeWidth(containerRef, diplayedTreeData);
64
+ }, [diplayedTreeData, isVirtualized]);
58
65
  var expandedKeys = useMemo(function () {
59
66
  return getExpandedKeys(diplayedTreeData);
60
67
  }, [diplayedTreeData]);
68
+ var levelLines = useMemo(function () { return getLevelLinesData(diplayedTreeData); }, [diplayedTreeData]);
61
69
  var internalTreeData = useMemo(function () { return convertTreeData({ data: diplayedTreeData, isLeaf: isLeaf }); }, [isLeaf, diplayedTreeData]);
62
70
  var handleExpand = useCallback(function (_expandedKeys, data) {
63
71
  if (onChange && !dragNode) {
@@ -67,20 +75,28 @@ export var RCTree = function (_a) {
67
75
  var renderSwitcherIcon = useCallback(function (node) { return React.createElement(SwitchRenderer, { node: node }); }, []);
68
76
  var titleRender = function (node) {
69
77
  var _a;
78
+ var _b, _c;
70
79
  var draggedNodes = gatherNodeKeys(dragNode);
71
- return (React.createElement("div", { className: classnames((_a = {},
80
+ var width = calcNodeWidth((_c = (_b = levelLines[node.key]) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.length, containerSize.width);
81
+ return (React.createElement("div", { className: classnames(styles.titleWrapper, (_a = {},
72
82
  _a[styles.dropIndicator] = isDropIndicatorNode(node),
73
83
  _a[styles.dropNotAllowed] = dropNode && !isDropIndicatorNode(dropNode),
74
84
  _a[styles.draggedChildrenNode] = draggedNodes.includes(node.key),
75
- _a)), onMouseDown: preventNodeDragging }, renderNode ? renderNode(node.value) : node.title));
85
+ _a)), onMouseDown: preventNodeDragging, style: { width: width } },
86
+ React.createElement(LevelLinesRenderer, { levelLine: levelLines[node.key] }),
87
+ renderNode ? renderNode(node.value) : node.title));
76
88
  };
77
89
  var dragHandle = (React.createElement("span", { className: classnames(styles.dragHandle, (_b = {},
78
90
  _b[styles.dragHandleDragging] = !!dragNode,
79
91
  _b)) },
80
92
  React.createElement(DragIndicator, null)));
81
- return diplayedTreeData ? (React.createElement("div", { ref: containerRef },
93
+ var onContainerResize = useCallback(function (width, height) {
94
+ setContainerSize({ width: width, height: height });
95
+ }, []);
96
+ return diplayedTreeData ? (React.createElement("div", { ref: containerRef, className: classnames(styles.treeContainer) },
97
+ React.createElement(ReactResizeDetector, { handleWidth: true, handleHeight: true, onResize: onContainerResize }),
82
98
  React.createElement(Tree, __assign({ draggable: {
83
99
  icon: dragHandle,
84
100
  nodeDraggable: nodeDraggable
85
- }, virtual: isVirtualized, itemHeight: minItemHeight, height: height, onExpand: handleExpand, showIcon: false, showLine: true, expandedKeys: expandedKeys, switcherIcon: renderSwitcherIcon, defaultExpandAll: defaultExpandAll, className: classnames(className, styles.treeWrapper), titleRender: titleRender, treeData: internalTreeData, selectable: false, loadData: onLoadChildren ? function (node) { return onLoadChildren(node.value); } : undefined, "data-reltio-id": "rc-tree", ref: treeRef }, treeProps)))) : null;
101
+ }, virtual: isVirtualized, itemHeight: minItemHeight, height: height || containerSize.height, onExpand: handleExpand, showIcon: false, switcherIcon: renderSwitcherIcon, defaultExpandAll: defaultExpandAll, expandedKeys: expandedKeys, className: classnames(className, styles.treeWrapper), titleRender: titleRender, treeData: internalTreeData, selectable: false, loadData: onLoadChildren ? function (node) { return onLoadChildren(node.value); } : undefined, "data-reltio-id": "rc-tree", ref: treeRef }, treeProps)))) : null;
86
102
  };
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export declare const RCTreeLevelLines: ({ levelLine }: {
3
+ levelLine: [boolean[], boolean];
4
+ }) => React.JSX.Element;
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import classnames from 'classnames';
3
+ import { DEPTH_LEVEL_INDENT } from './helper';
4
+ import { useStyles } from './levelLinesStyles';
5
+ var LevelLine = function (_a) {
6
+ var _b;
7
+ var _c = _a.needDrawLine, needDrawLine = _c === void 0 ? false : _c, _d = _a.isLastLevelLine, isLastLevelLine = _d === void 0 ? false : _d, _e = _a.drawHorizontalLine, drawHorizontalLine = _e === void 0 ? false : _e;
8
+ var styles = useStyles({});
9
+ return (React.createElement("div", { className: classnames(styles.levelLine, (_b = {},
10
+ _b[styles.showLine] = needDrawLine,
11
+ _b[styles.lastLevelLine] = isLastLevelLine,
12
+ _b[styles.horizontalLine] = drawHorizontalLine,
13
+ _b)) }));
14
+ };
15
+ export var RCTreeLevelLines = function (_a) {
16
+ var levelLine = _a.levelLine;
17
+ var _b = levelLine || [], _c = _b[0], needDrawLines = _c === void 0 ? [] : _c, _d = _b[1], isLast = _d === void 0 ? false : _d;
18
+ var level = needDrawLines.length + 2;
19
+ var styles = useStyles({ level: level });
20
+ return (React.createElement("div", { className: styles.levelLines, style: { left: "-".concat(DEPTH_LEVEL_INDENT * level, "px") } }, needDrawLines
21
+ .map(function (needDrawLine, index) {
22
+ return React.createElement(LevelLine, { key: index, needDrawLine: needDrawLine });
23
+ })
24
+ .concat(React.createElement(LevelLine, { key: level, needDrawLine: true, drawHorizontalLine: true, isLastLevelLine: isLast }))));
25
+ };
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { InternalRCNode } from './types';
3
+ type Props = {
4
+ node: InternalRCNode;
5
+ };
6
+ export declare const RCTreeSwitchRenderer: ({ node }: Props) => React.JSX.Element;
7
+ export {};
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import { useStyles } from './styles';
4
- export var DefaultSwitchRenderer = function (_a) {
4
+ export var RCTreeSwitchRenderer = function (_a) {
5
5
  var node = _a.node;
6
6
  var styles = useStyles();
7
7
  return !node.isLeaf ? (React.createElement("div", { className: styles.switcherButtonWrapper },
@@ -1,17 +1,18 @@
1
1
  import React, { MouseEvent } from 'react';
2
2
  import { AddNodePosition, DropPositionInfo, InternalRCNode, RCTreeNode } from './types';
3
+ export declare const DEPTH_LEVEL_INDENT = 16;
3
4
  export declare const defaultIsLeaf: ({ children }: {
4
5
  children?: unknown[];
5
6
  }) => boolean;
6
- type ConvertTreeDataProps<T> = {
7
- data: T[];
7
+ type ConvertTreeDataProps<Node> = {
8
+ data: Node[];
8
9
  parentPath?: number[];
9
- isLeaf: (node: T) => boolean;
10
+ isLeaf: (node: Node) => boolean;
10
11
  };
11
- export declare const convertTreeData: ({ data, isLeaf }: ConvertTreeDataProps<RCTreeNode>) => InternalRCNode[];
12
+ export declare const convertTreeData: <Node extends RCTreeNode>({ data, isLeaf }: ConvertTreeDataProps<Node>) => InternalRCNode<Node>[];
12
13
  export declare const getNodeAtPosition: (treeData: RCTreeNode[], pos: string) => any;
13
14
  export declare const getParentPos: (pos: string) => string;
14
- export declare const changeNodeAtPosition: (treeData: RCTreeNode[], pos: string, changeNode: (node: RCTreeNode) => RCTreeNode) => any;
15
+ export declare const changeNodeAtPosition: <Node extends RCTreeNode>(treeData: Node[], pos: string, changeNode: (node: Node) => Node) => any;
15
16
  export declare const removeNodeAtPosition: (treeData: RCTreeNode[], pos: string) => any;
16
17
  export declare const insertNodeAtPosition: (treeData: RCTreeNode[], pos: string, dropPosition: number, node: RCTreeNode) => any;
17
18
  export declare const moveNode: (treeData: RCTreeNode[], dragNode: RCTreeNode, dragNodePos: string, dropPositionInfo: DropPositionInfo) => any;
@@ -29,4 +30,8 @@ export declare const getDropNodePosition: (event: React.DragEvent<HTMLDivElement
29
30
  export declare const isDropIndicatorNode: (node: InternalRCNode) => boolean;
30
31
  export declare const gatherNodeKeys: (node: InternalRCNode) => string[];
31
32
  export declare const preventNodeDragging: (event: MouseEvent<HTMLDivElement>) => void;
33
+ type LevelLinesData = Record<string, [boolean[], boolean]>;
34
+ export declare const getLevelLinesData: (treeData: RCTreeNode[]) => LevelLinesData;
35
+ export declare const setTreeWidth: (container: React.RefObject<HTMLDivElement>, data: RCTreeNode[]) => void;
36
+ export declare const calcNodeWidth: (depth: number, containerWidth: number) => number;
32
37
  export {};
@@ -20,8 +20,11 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
20
20
  };
21
21
  import { always, assoc, assocPath, ifElse, intersperse, insert, last, map, pipe, path, remove, split } from 'ramda';
22
22
  import { AddNodePosition } from './types';
23
- var DEPTH_LEVEL_INDENT = 16;
23
+ export var DEPTH_LEVEL_INDENT = 16;
24
24
  var DROP_INDICATOR_NODE_KEY = '-1';
25
+ var CONTAINER_PADDINGS = 29;
26
+ var NODE_TITLE_MAX_WIDTH = 204;
27
+ var INITIAL_NODE_DEPTH = 2;
25
28
  export var defaultIsLeaf = function (_a) {
26
29
  var _b = _a.children, children = _b === void 0 ? [] : _b;
27
30
  return !children.length;
@@ -191,3 +194,43 @@ export var gatherNodeKeys = function (node) {
191
194
  export var preventNodeDragging = function (event) {
192
195
  event.preventDefault();
193
196
  };
197
+ export var getLevelLinesData = function (treeData) {
198
+ var getLinesData = function (data, prevLinesData) {
199
+ return data.reduce(function (linesData, node, index) {
200
+ var isLast = index === data.length - 1;
201
+ linesData[String(node.nodeId)] = [prevLinesData, isLast];
202
+ if (node.children && node.expanded) {
203
+ var nextLinesData = prevLinesData.concat(!isLast);
204
+ return __assign(__assign({}, linesData), getLinesData(node.children, nextLinesData));
205
+ }
206
+ return linesData;
207
+ }, {});
208
+ };
209
+ return getLinesData(treeData, []);
210
+ };
211
+ var getTreeMaxDepth = function (data, depth) {
212
+ if (depth === void 0) { depth = INITIAL_NODE_DEPTH; }
213
+ return data.reduce(function (maxDepth, node) {
214
+ return node.expanded && node.children
215
+ ? Math.max(maxDepth, getTreeMaxDepth(node.children, depth + 1))
216
+ : maxDepth;
217
+ }, depth);
218
+ };
219
+ var getTreeMaxWidth = function (data) {
220
+ return getTreeMaxDepth(data) * DEPTH_LEVEL_INDENT + NODE_TITLE_MAX_WIDTH + CONTAINER_PADDINGS;
221
+ };
222
+ export var setTreeWidth = function (container, data) {
223
+ var _a, _b;
224
+ if (container.current) {
225
+ var maxTreeWidth = getTreeMaxWidth(data);
226
+ var list = (_b = (_a = container.current) === null || _a === void 0 ? void 0 : _a.getElementsByClassName('rc-tree-list-holder')[0]) === null || _b === void 0 ? void 0 : _b.firstChild;
227
+ if (list)
228
+ list.style.minWidth = "".concat(maxTreeWidth, "px");
229
+ }
230
+ };
231
+ export var calcNodeWidth = function (depth, containerWidth) {
232
+ if (depth === void 0) { depth = 0; }
233
+ var leftIndent = (depth + INITIAL_NODE_DEPTH) * DEPTH_LEVEL_INDENT;
234
+ var paddings = leftIndent + CONTAINER_PADDINGS;
235
+ return Math.max(containerWidth - paddings, NODE_TITLE_MAX_WIDTH);
236
+ };
@@ -1 +1,3 @@
1
1
  export { RCTree } from './RCTree';
2
+ export { RCTreeLevelLines } from './RCTreeLevelLines';
3
+ export { RCTreeSwitchRenderer } from './RCTreeSwitchRenderer';
@@ -1 +1,3 @@
1
1
  export { RCTree } from './RCTree';
2
+ export { RCTreeLevelLines } from './RCTreeLevelLines';
3
+ export { RCTreeSwitchRenderer } from './RCTreeSwitchRenderer';
@@ -0,0 +1,5 @@
1
+ type StyleProps = {
2
+ level?: number;
3
+ };
4
+ export declare const useStyles: (props: StyleProps) => import("@mui/styles").ClassNameMap<"showLine" | "levelLines" | "levelLine" | "lastLevelLine" | "horizontalLine">;
5
+ export {};
@@ -0,0 +1,50 @@
1
+ import { makeStyles } from '@mui/styles';
2
+ import { DEPTH_LEVEL_INDENT } from './helper';
3
+ export var useStyles = makeStyles(function () { return ({
4
+ levelLines: function (_a) {
5
+ var level = _a.level;
6
+ return ({
7
+ position: 'absolute',
8
+ left: "-".concat(level * DEPTH_LEVEL_INDENT, "px"),
9
+ display: 'flex',
10
+ paddingLeft: '7px',
11
+ cursor: 'initial',
12
+ bottom: 0,
13
+ top: 0,
14
+ zIndex: -1
15
+ });
16
+ },
17
+ levelLine: {
18
+ paddingLeft: '16px',
19
+ height: '100%',
20
+ position: 'relative'
21
+ },
22
+ showLine: {
23
+ '&:after': {
24
+ content: '""',
25
+ position: 'absolute',
26
+ height: '100%',
27
+ width: '1px',
28
+ left: '0',
29
+ top: '0',
30
+ bottom: '0',
31
+ backgroundColor: 'rgba(0, 122, 193, 0.3)'
32
+ }
33
+ },
34
+ lastLevelLine: {
35
+ '&:after': {
36
+ height: '14px'
37
+ }
38
+ },
39
+ horizontalLine: {
40
+ '&:before': {
41
+ content: '""',
42
+ height: '1px',
43
+ width: '4px',
44
+ position: 'absolute',
45
+ top: '14px',
46
+ left: '0',
47
+ backgroundColor: 'rgba(0, 122, 193, 0.3)'
48
+ }
49
+ }
50
+ }); });
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"expandButton" | "collapseButton" | "dropIndicator" | "switcherButtonWrapper" | "switcherButton" | "treeWrapper" | "dropNotAllowed" | "draggedChildrenNode" | "dragHandle" | "dragHandleDragging" | "@global">;
1
+ export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"expandButton" | "titleWrapper" | "collapseButton" | "dropIndicator" | "switcherButtonWrapper" | "switcherButton" | "treeContainer" | "treeWrapper" | "dropNotAllowed" | "draggedChildrenNode" | "dragHandle" | "dragHandleDragging" | "@global">;
@@ -1,11 +1,12 @@
1
1
  import { makeStyles } from '@mui/styles';
2
2
  export var useStyles = makeStyles(function (theme) { return ({
3
3
  switcherButtonWrapper: {
4
- paddingTop: '11px',
5
- paddingLeft: '4px',
4
+ paddingTop: '13px',
5
+ paddingLeft: '2px',
6
6
  width: '12px',
7
7
  height: '12px',
8
- cursor: 'pointer'
8
+ cursor: 'pointer',
9
+ marginLeft: '2px'
9
10
  },
10
11
  switcherButton: {
11
12
  transition: 'transform .15s ease',
@@ -21,8 +22,12 @@ export var useStyles = makeStyles(function (theme) { return ({
21
22
  expandButton: {
22
23
  transform: ' rotate(-90deg)'
23
24
  },
25
+ treeContainer: {
26
+ height: '100%'
27
+ },
24
28
  treeWrapper: {
25
- border: 'none'
29
+ border: 'none',
30
+ height: '100%'
26
31
  },
27
32
  dropIndicator: {
28
33
  '&:before': {
@@ -33,11 +38,8 @@ export var useStyles = makeStyles(function (theme) { return ({
33
38
  top: 0,
34
39
  right: '23px',
35
40
  bottom: 0,
36
- left: '-22px',
41
+ left: '-16px',
37
42
  zIndex: 1
38
- },
39
- '&>div': {
40
- opacity: 0
41
43
  }
42
44
  },
43
45
  dropNotAllowed: {
@@ -52,17 +54,18 @@ export var useStyles = makeStyles(function (theme) { return ({
52
54
  dragHandle: {
53
55
  cursor: 'move',
54
56
  color: theme.palette.text.secondary,
55
- width: '16px'
57
+ width: '16px',
58
+ marginLeft: '5px',
59
+ marginTop: '3px'
56
60
  },
57
61
  dragHandleDragging: {
58
62
  visibility: 'hidden'
59
63
  },
64
+ titleWrapper: {
65
+ paddingRight: '11px'
66
+ },
60
67
  /* rc-tree/assets/index.css */
61
68
  '@global': {
62
- '.rc-tree': {
63
- margin: 0,
64
- border: '1px solid transparent'
65
- },
66
69
  '.rc-tree-focused:not(.rc-tree-active-focused)': {
67
70
  borderColor: 'cyan'
68
71
  },
@@ -116,9 +119,6 @@ export var useStyles = makeStyles(function (theme) { return ({
116
119
  verticalAlign: 'top',
117
120
  display: 'none!important'
118
121
  },
119
- '.rc-tree .rc-tree-treenode span.rc-tree-switcher.rc-tree-switcher-noop': {
120
- cursor: 'auto'
121
- },
122
122
  '.rc-tree .rc-tree-treenode span.rc-tree-checkbox': {
123
123
  width: '13px',
124
124
  height: '13px',
@@ -128,9 +128,7 @@ export var useStyles = makeStyles(function (theme) { return ({
128
128
  '.rc-tree .rc-tree-treenode span.rc-tree-checkbox-checked': {
129
129
  backgroundPosition: '-14px 0'
130
130
  },
131
- '.rc-tree .rc-tree-treenode span.rc-tree-checkbox-indeterminate': {
132
- backgroundPosition: '-14px -28px'
133
- },
131
+ '.rc-tree .rc-tree-treenode span.rc-tree-checkbox-indeterminate': {},
134
132
  '.rc-tree .rc-tree-treenode span.rc-tree-checkbox-disabled': {
135
133
  backgroundPosition: '0 -56px'
136
134
  },
@@ -198,16 +196,24 @@ export var useStyles = makeStyles(function (theme) { return ({
198
196
  marginRight: '2px',
199
197
  verticalAlign: 'top'
200
198
  },
201
- '.rc-tree-indent': {
202
- display: 'inline-block',
203
- height: 0,
204
- verticalAlign: 'bottom'
205
- },
206
199
  '.rc-tree-indent-unit': {
207
200
  display: 'inline-block',
208
201
  width: '16px'
209
202
  },
210
203
  //Custom styles
204
+ '.rc-tree': {
205
+ margin: 0
206
+ },
207
+ '.rc-tree-indent': {
208
+ display: 'inline-block',
209
+ height: 0,
210
+ verticalAlign: 'bottom',
211
+ whiteSpace: 'nowrap'
212
+ },
213
+ '.rc-tree .rc-tree-treenode span.rc-tree-switcher.rc-tree-switcher-noop': {
214
+ cursor: 'auto',
215
+ minWidth: '16px'
216
+ },
211
217
  '.rc-tree .rc-tree-treenode .rc-tree-node-content-wrapper': {
212
218
  position: 'relative',
213
219
  display: 'inline-block',
@@ -217,22 +223,21 @@ export var useStyles = makeStyles(function (theme) { return ({
217
223
  verticalAlign: 'top',
218
224
  cursor: 'pointer',
219
225
  height: 'auto',
220
- paddingRight: '11px',
221
226
  flexGrow: 1
222
227
  },
223
228
  '.rc-tree .rc-tree-treenode': {
224
229
  margin: 0,
225
230
  padding: '0 0 0 18px',
226
- lineHeight: '24px',
231
+ lineHeight: '10px',
227
232
  listStyle: 'none',
228
233
  outline: 0,
234
+ display: 'flex',
235
+ minHeight: '28px',
236
+ zIndex: 0,
229
237
  '&:hover': {
230
238
  backgroundColor: 'rgba(0,0,0,0.06)'
231
239
  }
232
240
  },
233
- '.rc-tree-treenode': {
234
- display: 'flex'
235
- },
236
241
  '.rc-tree-icon_loading': {
237
242
  display: 'none !important'
238
243
  },
@@ -244,13 +249,41 @@ export var useStyles = makeStyles(function (theme) { return ({
244
249
  display: 'inline-flex',
245
250
  justifyContent: 'center',
246
251
  width: '16px',
247
- visibility: 'hidden'
252
+ visibility: 'hidden',
253
+ lineHeight: '12px'
248
254
  },
249
255
  '.rc-tree-treenode-draggable:hover .rc-tree-draggable-icon': {
250
256
  visibility: 'visible'
251
257
  },
252
258
  '.rc-tree-switcher-noop': {
253
259
  width: '16px'
260
+ },
261
+ '.rc-tree-switcher': {
262
+ position: 'relative',
263
+ cursor: 'pointer'
264
+ },
265
+ '.rc-tree-switcher.rc-tree-switcher_open': {
266
+ '&:after': {
267
+ content: '""',
268
+ position: 'absolute',
269
+ top: '28px',
270
+ bottom: 0,
271
+ width: '1px',
272
+ left: '7px',
273
+ backgroundColor: 'rgba(0, 122, 193, 0.3)'
274
+ }
275
+ },
276
+ '.rc-tree-list': {
277
+ height: '100%'
278
+ },
279
+ '.rc-tree-list-holder': {
280
+ height: '100%'
281
+ },
282
+ '.rc-tree-list-scrollbar-vertical': {
283
+ width: '6px !important'
284
+ },
285
+ '.rc-tree-list-scrollbar-thumb': {
286
+ background: 'rgba(0,0,0,.2) !important'
254
287
  }
255
288
  }
256
289
  }); });
@@ -5,9 +5,10 @@ export type RCTreeNode = {
5
5
  expanded?: boolean;
6
6
  children?: RCTreeNode[];
7
7
  };
8
- export type InternalRCNode = {
9
- value: RCTreeNode;
8
+ export type InternalRCNode<Node extends RCTreeNode = RCTreeNode> = {
9
+ value: Node;
10
10
  pos?: string;
11
+ expanded?: boolean;
11
12
  } & FieldDataNode<{
12
13
  key: string;
13
14
  title?: string;
@@ -1,28 +1,28 @@
1
1
  import { DragEvent } from 'react';
2
2
  import { InternalRCNode, RCTreeNode } from './types';
3
- type Props = {
4
- treeData: RCTreeNode[];
3
+ type Props<Node extends RCTreeNode> = {
4
+ treeData: Node[];
5
5
  containerRef: React.RefObject<HTMLDivElement>;
6
6
  expandNode: (pos: string, expanded: boolean) => void;
7
- onLoadChildren?: (treeNode: RCTreeNode) => Promise<void>;
8
- onChange?: (node: RCTreeNode[]) => void;
9
- onDrop?: (treeData: RCTreeNode[], dragNode: RCTreeNode, parentNode: RCTreeNode) => void;
7
+ onLoadChildren?: (treeNode: Node) => Promise<void>;
8
+ onChange?: (node: Node[]) => void;
9
+ onDrop?: (treeData: Node[], dragNode: Node, parentNode: Node) => void;
10
10
  canDrop?: (params: {
11
- nextParent: RCTreeNode;
12
- node: RCTreeNode;
11
+ nextParent: Node;
12
+ node: Node;
13
13
  }) => boolean;
14
14
  canDrag?: (params: {
15
- node: RCTreeNode;
15
+ node: Node;
16
16
  }) => boolean;
17
17
  };
18
- export declare const useDnd: ({ treeData, containerRef, expandNode, onLoadChildren, onChange, onDrop: onDropProp, canDrop, canDrag }: Props) => {
18
+ export declare const useDnd: <Node extends RCTreeNode>({ treeData, containerRef, expandNode, onLoadChildren, onChange, onDrop: onDropProp, canDrop, canDrag }: Props<Node>) => {
19
19
  treeProps: {
20
20
  onDragStart: ({ node }: {
21
- node: InternalRCNode;
21
+ node: InternalRCNode<Node>;
22
22
  }) => void;
23
23
  onDragOver: ({ event, node }: {
24
24
  event: DragEvent<HTMLDivElement>;
25
- node: InternalRCNode;
25
+ node: InternalRCNode<Node>;
26
26
  }) => void;
27
27
  onDragLeave: ({ event, node }: {
28
28
  event: any;
@@ -31,13 +31,13 @@ export declare const useDnd: ({ treeData, containerRef, expandNode, onLoadChildr
31
31
  onDrop: () => void;
32
32
  dropIndicatorRender: () => any;
33
33
  allowDrop: ({ dragNode, dropNode }: {
34
- dragNode: InternalRCNode;
35
- dropNode: InternalRCNode;
34
+ dragNode: InternalRCNode<Node>;
35
+ dropNode: InternalRCNode<Node>;
36
36
  }) => boolean;
37
37
  };
38
- nodeDraggable: (node: InternalRCNode) => boolean;
39
- dropNode: InternalRCNode;
40
- dragNode: InternalRCNode;
38
+ nodeDraggable: (node: InternalRCNode<Node>) => boolean;
39
+ dropNode: InternalRCNode<Node>;
40
+ dragNode: InternalRCNode<Node>;
41
41
  dropPositionInfo: {
42
42
  pos: string;
43
43
  dropPosition: number;
@@ -0,0 +1,36 @@
1
+ import { Entity, Metadata } from '@reltio/mdm-sdk';
2
+ export declare const createEntity: () => Entity;
3
+ export declare const createMetadata: () => Metadata;
4
+ export declare const selectedAttributeTypes: ({
5
+ description: string;
6
+ label: string;
7
+ name: string;
8
+ type: string;
9
+ uri: string;
10
+ attributes?: undefined;
11
+ access?: undefined;
12
+ referencedAttributeURIs?: undefined;
13
+ } | {
14
+ label: string;
15
+ name: string;
16
+ type: string;
17
+ uri: string;
18
+ attributes: {
19
+ label: string;
20
+ name: string;
21
+ type: string;
22
+ uri: string;
23
+ }[];
24
+ description?: undefined;
25
+ access?: undefined;
26
+ referencedAttributeURIs?: undefined;
27
+ } | {
28
+ label: string;
29
+ name: string;
30
+ access: string[];
31
+ type: string;
32
+ referencedAttributeURIs: string[];
33
+ uri: string;
34
+ description?: undefined;
35
+ attributes?: undefined;
36
+ })[];