@reltio/components 1.4.2000 → 1.4.2002

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 (65) 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.js +6 -4
  18. package/cjs/features/crosswalks/CrosswalkAttributes/CrosswalkAttributes.test.js +16 -20
  19. package/cjs/features/crosswalks/CrosswalkEditor/CrosswalkEditor.test.js +4 -5
  20. package/cjs/features/crosswalks/CrosswalkRow/CrosswalkRow.test.js +4 -5
  21. package/cjs/features/workflow/ReassignButton/components/ReassignDialog/styles.d.ts +1 -1
  22. package/cjs/index.d.ts +1 -2
  23. package/cjs/index.js +7 -7
  24. package/esm/RCTree/RCTree.d.ts +17 -14
  25. package/esm/RCTree/RCTree.js +26 -10
  26. package/esm/RCTree/RCTreeLevelLines.d.ts +4 -0
  27. package/esm/RCTree/RCTreeLevelLines.js +25 -0
  28. package/esm/RCTree/RCTreeSwitchRenderer.d.ts +7 -0
  29. package/esm/RCTree/{DefaultSwitchRenderer.js → RCTreeSwitchRenderer.js} +1 -1
  30. package/esm/RCTree/helper.d.ts +10 -5
  31. package/esm/RCTree/helper.js +44 -1
  32. package/esm/RCTree/index.d.ts +2 -0
  33. package/esm/RCTree/index.js +2 -0
  34. package/esm/RCTree/levelLinesStyles.d.ts +5 -0
  35. package/esm/RCTree/levelLinesStyles.js +50 -0
  36. package/esm/RCTree/styles.d.ts +1 -1
  37. package/esm/RCTree/styles.js +63 -30
  38. package/esm/RCTree/types.d.ts +3 -2
  39. package/esm/RCTree/useDnd.d.ts +16 -16
  40. package/esm/features/crosswalks/AttributesTable/AttributesTable.test.js +6 -4
  41. package/esm/features/crosswalks/CrosswalkAttributes/CrosswalkAttributes.test.js +17 -21
  42. package/esm/features/crosswalks/CrosswalkEditor/CrosswalkEditor.test.js +5 -6
  43. package/esm/features/crosswalks/CrosswalkRow/CrosswalkRow.test.js +5 -6
  44. package/esm/features/workflow/ReassignButton/components/ReassignDialog/styles.d.ts +1 -1
  45. package/esm/index.d.ts +1 -2
  46. package/esm/index.js +1 -2
  47. package/package.json +2 -2
  48. package/cjs/RCTree/DefaultSwitchRenderer.d.ts +0 -7
  49. package/cjs/SaveSegmentDialog/SaveSegmentDialog.d.ts +0 -11
  50. package/cjs/SaveSegmentDialog/SaveSegmentDialog.js +0 -132
  51. package/cjs/SaveSegmentDialog/SaveSegmentDialog.test.d.ts +0 -1
  52. package/cjs/SaveSegmentDialog/SaveSegmentDialog.test.js +0 -214
  53. package/cjs/SaveSegmentDialog/index.d.ts +0 -1
  54. package/cjs/SaveSegmentDialog/index.js +0 -5
  55. package/cjs/SaveSegmentDialog/styles.d.ts +0 -1
  56. package/cjs/SaveSegmentDialog/styles.js +0 -15
  57. package/esm/RCTree/DefaultSwitchRenderer.d.ts +0 -7
  58. package/esm/SaveSegmentDialog/SaveSegmentDialog.d.ts +0 -11
  59. package/esm/SaveSegmentDialog/SaveSegmentDialog.js +0 -102
  60. package/esm/SaveSegmentDialog/SaveSegmentDialog.test.d.ts +0 -1
  61. package/esm/SaveSegmentDialog/SaveSegmentDialog.test.js +0 -209
  62. package/esm/SaveSegmentDialog/index.d.ts +0 -1
  63. package/esm/SaveSegmentDialog/index.js +0 -1
  64. package/esm/SaveSegmentDialog/styles.d.ts +0 -1
  65. package/esm/SaveSegmentDialog/styles.js +0 -12
@@ -702,7 +702,7 @@ describe('attribute table tests', function () {
702
702
  }); });
703
703
  });
704
704
  it('should add attribute to beginning on simple attribute select', function () { return __awaiter(void 0, void 0, void 0, function () {
705
- var onAdd, onSelectAttributeTypes, user;
705
+ var onAdd, onSelectAttributeTypes, user, backdrop;
706
706
  return __generator(this, function (_a) {
707
707
  switch (_a.label) {
708
708
  case 0:
@@ -717,7 +717,8 @@ describe('attribute table tests', function () {
717
717
  return [4 /*yield*/, user.click(react_2.screen.getByText('String Label 2'))];
718
718
  case 2:
719
719
  _a.sent();
720
- return [4 /*yield*/, user.keyboard('{Escape}')];
720
+ backdrop = react_2.screen.getByRole('presentation').children[0];
721
+ return [4 /*yield*/, user.click(backdrop)];
721
722
  case 3:
722
723
  _a.sent();
723
724
  expect(onSelectAttributeTypes).toHaveBeenCalledWith(__spreadArray([
@@ -734,7 +735,7 @@ describe('attribute table tests', function () {
734
735
  });
735
736
  }); });
736
737
  it('should add attribute to beginning on nested attribute select', function () { return __awaiter(void 0, void 0, void 0, function () {
737
- var onAdd, onSelectAttributeTypes, user, selectedNested;
738
+ var onAdd, onSelectAttributeTypes, user, backdrop, selectedNested;
738
739
  return __generator(this, function (_a) {
739
740
  switch (_a.label) {
740
741
  case 0:
@@ -747,7 +748,8 @@ describe('attribute table tests', function () {
747
748
  return [4 /*yield*/, user.click(react_2.screen.getByText('Nested'))];
748
749
  case 2:
749
750
  _a.sent();
750
- return [4 /*yield*/, user.keyboard('{Escape}')];
751
+ backdrop = react_2.screen.getByRole('presentation').children[0];
752
+ return [4 /*yield*/, user.click(backdrop)];
751
753
  case 3:
752
754
  _a.sent();
753
755
  selectedNested = {
@@ -131,7 +131,7 @@ describe('CrosswalkAttributes tests', function () {
131
131
  expect(react_2.screen.getByRole('textbox')).toBeInTheDocument();
132
132
  });
133
133
  it('should render deleteDate editor when it is added from MoreAttributesButton selector', function () { return __awaiter(void 0, void 0, void 0, function () {
134
- var user;
134
+ var user, backdrop;
135
135
  return __generator(this, function (_a) {
136
136
  switch (_a.label) {
137
137
  case 0:
@@ -142,12 +142,11 @@ describe('CrosswalkAttributes tests', function () {
142
142
  return [4 /*yield*/, user.click(react_2.screen.getByText('Delete Date'))];
143
143
  case 2:
144
144
  _a.sent();
145
- return [4 /*yield*/, user.keyboard('{Escape}')];
145
+ backdrop = react_2.screen.getByRole('presentation').children[0];
146
+ return [4 /*yield*/, user.click(backdrop)];
146
147
  case 3:
147
148
  _a.sent();
148
- return [4 /*yield*/, (0, react_2.waitFor)(function () {
149
- expect(react_2.screen.getByText('Delete Date:')).toBeInTheDocument();
150
- })];
149
+ return [4 /*yield*/, react_2.screen.findByText('Delete Date:')];
151
150
  case 4:
152
151
  _a.sent();
153
152
  return [4 /*yield*/, user.hover(react_2.screen.getByLabelText('Delete attribute'))];
@@ -179,7 +178,7 @@ describe('CrosswalkAttributes tests', function () {
179
178
  });
180
179
  }); });
181
180
  it('should render sourceTable editor when it is added from MoreAttributesButton selector', function () { return __awaiter(void 0, void 0, void 0, function () {
182
- var user;
181
+ var user, backdrop;
183
182
  return __generator(this, function (_a) {
184
183
  switch (_a.label) {
185
184
  case 0:
@@ -190,12 +189,11 @@ describe('CrosswalkAttributes tests', function () {
190
189
  return [4 /*yield*/, user.click(react_2.screen.getByText('Source Table'))];
191
190
  case 2:
192
191
  _a.sent();
193
- return [4 /*yield*/, user.keyboard('{Escape}')];
192
+ backdrop = react_2.screen.getByRole('presentation').children[0];
193
+ return [4 /*yield*/, user.click(backdrop)];
194
194
  case 3:
195
195
  _a.sent();
196
- return [4 /*yield*/, (0, react_2.waitFor)(function () {
197
- expect(react_2.screen.getByText('Source Table:')).toBeInTheDocument();
198
- })];
196
+ return [4 /*yield*/, react_2.screen.findByText('Source Table:')];
199
197
  case 4:
200
198
  _a.sent();
201
199
  return [4 /*yield*/, user.hover(react_2.screen.getByLabelText('Delete attribute'))];
@@ -207,7 +205,7 @@ describe('CrosswalkAttributes tests', function () {
207
205
  });
208
206
  }); });
209
207
  it('should provide correct value to sourceTable editor and call props.onEditAttribute on editing', function () { return __awaiter(void 0, void 0, void 0, function () {
210
- var user;
208
+ var user, backdrop;
211
209
  return __generator(this, function (_a) {
212
210
  switch (_a.label) {
213
211
  case 0:
@@ -218,12 +216,11 @@ describe('CrosswalkAttributes tests', function () {
218
216
  return [4 /*yield*/, user.click(react_2.screen.getByText('Source Table'))];
219
217
  case 2:
220
218
  _a.sent();
221
- return [4 /*yield*/, user.keyboard('{Escape}')];
219
+ backdrop = react_2.screen.getByRole('presentation').children[0];
220
+ return [4 /*yield*/, user.click(backdrop)];
222
221
  case 3:
223
222
  _a.sent();
224
- return [4 /*yield*/, (0, react_2.waitFor)(function () {
225
- expect(react_2.screen.getByText('Source Table:')).toBeInTheDocument();
226
- })];
223
+ return [4 /*yield*/, react_2.screen.findByText('Source Table:')];
227
224
  case 4:
228
225
  _a.sent();
229
226
  return [4 /*yield*/, user.type(react_2.screen.getAllByRole('textbox')[1], 'new sourceTable')];
@@ -305,7 +302,7 @@ describe('CrosswalkAttributes tests', function () {
305
302
  });
306
303
  }); });
307
304
  it('should not call props.onDeleteAttribute when confirm deleting attribute if attribute is not set', function () { return __awaiter(void 0, void 0, void 0, function () {
308
- var user;
305
+ var user, backdrop;
309
306
  return __generator(this, function (_a) {
310
307
  switch (_a.label) {
311
308
  case 0:
@@ -316,12 +313,11 @@ describe('CrosswalkAttributes tests', function () {
316
313
  return [4 /*yield*/, user.click(react_2.screen.getByText('Delete Date'))];
317
314
  case 2:
318
315
  _a.sent();
319
- return [4 /*yield*/, user.keyboard('{Escape}')];
316
+ backdrop = react_2.screen.getByRole('presentation').children[0];
317
+ return [4 /*yield*/, user.click(backdrop)];
320
318
  case 3:
321
319
  _a.sent();
322
- return [4 /*yield*/, (0, react_2.waitFor)(function () {
323
- expect(react_2.screen.getByText('Delete Date:')).toBeInTheDocument();
324
- })];
320
+ return [4 /*yield*/, react_2.screen.findByText('Delete Date:')];
325
321
  case 4:
326
322
  _a.sent();
327
323
  return [4 /*yield*/, user.click((0, react_2.within)(react_2.screen.getByLabelText('Delete attribute')).getByRole('button'))];
@@ -160,7 +160,7 @@ describe('CrosswalkEditor tests', function () {
160
160
  });
161
161
  }); });
162
162
  it('should call onAdd with correct params if deleteDate and sourceTable params are filled', function () { return __awaiter(void 0, void 0, void 0, function () {
163
- var user;
163
+ var user, backdrop;
164
164
  return __generator(this, function (_a) {
165
165
  switch (_a.label) {
166
166
  case 0:
@@ -174,12 +174,11 @@ describe('CrosswalkEditor tests', function () {
174
174
  return [4 /*yield*/, user.click(react_2.screen.getByText('Source Table'))];
175
175
  case 3:
176
176
  _a.sent();
177
- return [4 /*yield*/, user.keyboard('{Escape}')];
177
+ backdrop = react_2.screen.getByRole('presentation').children[0];
178
+ return [4 /*yield*/, user.click(backdrop)];
178
179
  case 4:
179
180
  _a.sent();
180
- return [4 /*yield*/, (0, react_2.waitFor)(function () {
181
- expect(react_2.screen.getByText('Delete Date:')).toBeInTheDocument();
182
- })];
181
+ return [4 /*yield*/, react_2.screen.findByText('Delete Date:')];
183
182
  case 5:
184
183
  _a.sent();
185
184
  return [4 /*yield*/, user.type(react_2.screen.getAllByRole('textbox')[1], 's')];
@@ -395,7 +395,7 @@ describe('CrosswalkRow tests', function () {
395
395
  });
396
396
  }); });
397
397
  it('should call props.onEdit when calling CrosswalkAttributes onEditAttribute prop', function () { return __awaiter(void 0, void 0, void 0, function () {
398
- var dateString, newDeleteDate, user;
398
+ var dateString, newDeleteDate, user, backdrop;
399
399
  return __generator(this, function (_a) {
400
400
  switch (_a.label) {
401
401
  case 0:
@@ -411,12 +411,11 @@ describe('CrosswalkRow tests', function () {
411
411
  return [4 /*yield*/, user.click(react_2.screen.getByText('Delete Date'))];
412
412
  case 3:
413
413
  _a.sent();
414
- return [4 /*yield*/, user.keyboard('{Escape}')];
414
+ backdrop = react_2.screen.getByRole('presentation').children[0];
415
+ return [4 /*yield*/, user.click(backdrop)];
415
416
  case 4:
416
417
  _a.sent();
417
- return [4 /*yield*/, (0, react_2.waitFor)(function () {
418
- expect(react_2.screen.getByText('Delete Date:')).toBeInTheDocument();
419
- })];
418
+ return [4 /*yield*/, react_2.screen.findByText('Delete Date:')];
420
419
  case 5:
421
420
  _a.sent();
422
421
  return [4 /*yield*/, user.type(react_2.screen.getByRole('textbox'), dateString + 'A')];
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"caption" | "disabled" | "title" | "dialogContent" | "currentAssignee" | "dialogText">;
1
+ export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"caption" | "disabled" | "title" | "currentAssignee" | "dialogText" | "dialogContent">;
package/cjs/index.d.ts CHANGED
@@ -106,7 +106,6 @@ export { DropDownEditor } from './DropDownEditor';
106
106
  export { EmptySearchResult } from './EmptySearchResult';
107
107
  export { FileTypeEditor } from './FileTypeEditor';
108
108
  export { MaskingSwitcher } from './MaskingSwitcher';
109
- export { SaveSegmentDialog } from './SaveSegmentDialog';
110
109
  export { EmptyStub } from './EmptyStub';
111
110
  export { ProfileBandNavigation } from './ProfileBandNavigation';
112
111
  export { ScreenProfileBand } from './ScreenProfileBand';
@@ -151,7 +150,7 @@ export { QueryBuilderRow } from './QueryBuilderRow';
151
150
  export { QueryBuilderRowsGroup } from './QueryBuilderRowsGroup';
152
151
  export { MultiSelect } from './MultiSelect';
153
152
  export { ReactSortableTree, reactSortableTreeHelpers } from './ReactSortableTree';
154
- export { RCTree } from './RCTree';
153
+ export { RCTree, RCTreeLevelLines, RCTreeSwitchRenderer } from './RCTree';
155
154
  export { ReltioGridLayout } from './ReltioGridLayout';
156
155
  export { ResizablePanes } from './ResizablePanes';
157
156
  export { ProfileResizablePanes } from './ProfileResizablePanes';
package/cjs/index.js CHANGED
@@ -16,11 +16,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  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
- 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.SaveSegmentDialog = exports.MaskingSwitcher = exports.FileTypeEditor = exports.EmptySearchResult = exports.DropDownEditor = exports.FilterValueEditor = exports.MultiValueChip = exports.TextEditor = exports.DateRangeEditor = exports.NumberEditor = exports.DataTypeValueEditor = exports.DateEditor = exports.ErrorWrapper = exports.ErrorMessage = exports.ConfigureColumnsPopup = void 0;
20
- exports.PopupBoundariesContext = exports.HistoryDiffContext = exports.AsyncMountContext = exports.MdmModuleProvider = exports.withTableContext = exports.withFilterAtBottom = exports.withPercents = exports.withContext = exports.withDateRangeSelector = exports.withDragHandle = exports.withAsyncMount = exports.withTooltip = exports.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.RCTree = exports.reactSortableTreeHelpers = exports.ReactSortableTree = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = exports.PotentialMatchReviewCard = exports.PopupWithArrow = exports.Popper = void 0;
21
- exports.useReloadData = exports.ReloadDataProvider = exports.useAttributeValueConfigPermissions = exports.ConfigPermissionsContextProvider = exports.ConfigPermissionsContext = exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.EntityContext = exports.RelatedObjectUrisContext = exports.WorkflowTasksContext = exports.useEntityLoadingIndication = exports.EntityLoadingIndicationProvider = exports.EntityMarkerContext = exports.useAttributeExpanded = exports.ExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.usePerspectivesSettings = exports.PerspectivesSettingsContext = exports.PivotingAttributeContext = exports.UsersContext = exports.InitialCollaborationContextValue = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockImageGalleryDialogContext = void 0;
22
- exports.useMarkers = exports.useMaskedAttribute = exports.useKeyboardNavigation = exports.useDynamicRowCellHeight = exports.useClickableStyle = exports.BasicTableCellRenderer = exports.useBasicTableCellRenderer = exports.useHiddenAttributes = exports.useSavedSearchesRequest = exports.useRequestDCRReview = exports.useAutoFocus = exports.useExpandInvalidRelations = exports.useLayoutResetter = exports.useIsMountedRef = exports.useSnackbar = exports.useSavedStateForEntityType = exports.useReadableSearchState = exports.useEditableConnection = exports.useCustomScripts = exports.useMarkAsNotMatchRequest = exports.useMergeAllRequest = exports.usePagingSimulator = exports.useMatchesLoader = exports.useConfigPermissions = exports.useWhyDidYouUpdate = exports.useUsers = exports.useSavedState = exports.useSafePromise = exports.useRunOnceAfterValueInitialization = exports.useRelationsLoader = exports.useRelationTypeSelector = exports.usePrevious = exports.useDidUpdateEffect = exports.useCommentsEntitiesMap = exports.useCollaboration = exports.useAsyncMount = exports.useAPI = exports.useActions = exports.useMatchesColumnsData = exports.useScrollToAttributeError = exports.ProfileTablesContext = exports.HiddenAttributesContext = exports.BasicTableContext = exports.BasicTableRowCollapseContext = exports.useDeleteUnmaskedAttributeForRelation = exports.useUnmaskedAttributeValue = exports.useUnmaskAttributeValue = exports.useMaskAttributeValue = exports.MaskedAttributesProvider = exports.SegmentationContext = void 0;
23
- exports.mockComputedStyles = exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.delayPromise = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.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.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = void 0;
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.HistoryDiffContext = exports.AsyncMountContext = exports.MdmModuleProvider = exports.withTableContext = exports.withFilterAtBottom = exports.withPercents = exports.withContext = exports.withDateRangeSelector = exports.withDragHandle = exports.withAsyncMount = exports.withTooltip = 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.ReloadDataProvider = exports.useAttributeValueConfigPermissions = exports.ConfigPermissionsContextProvider = exports.ConfigPermissionsContext = exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.EntityContext = exports.RelatedObjectUrisContext = exports.WorkflowTasksContext = exports.useEntityLoadingIndication = exports.EntityLoadingIndicationProvider = exports.EntityMarkerContext = exports.useAttributeExpanded = exports.ExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.usePerspectivesSettings = exports.PerspectivesSettingsContext = exports.PivotingAttributeContext = exports.UsersContext = exports.InitialCollaborationContextValue = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockImageGalleryDialogContext = exports.PopupBoundariesContext = void 0;
22
+ exports.useMaskedAttribute = exports.useKeyboardNavigation = exports.useDynamicRowCellHeight = exports.useClickableStyle = exports.BasicTableCellRenderer = exports.useBasicTableCellRenderer = exports.useHiddenAttributes = exports.useSavedSearchesRequest = exports.useRequestDCRReview = exports.useAutoFocus = exports.useExpandInvalidRelations = exports.useLayoutResetter = exports.useIsMountedRef = exports.useSnackbar = exports.useSavedStateForEntityType = exports.useReadableSearchState = exports.useEditableConnection = exports.useCustomScripts = exports.useMarkAsNotMatchRequest = exports.useMergeAllRequest = exports.usePagingSimulator = exports.useMatchesLoader = exports.useConfigPermissions = exports.useWhyDidYouUpdate = exports.useUsers = exports.useSavedState = exports.useSafePromise = exports.useRunOnceAfterValueInitialization = exports.useRelationsLoader = exports.useRelationTypeSelector = exports.usePrevious = exports.useDidUpdateEffect = exports.useCommentsEntitiesMap = exports.useCollaboration = exports.useAsyncMount = exports.useAPI = exports.useActions = exports.useMatchesColumnsData = exports.useScrollToAttributeError = exports.ProfileTablesContext = exports.HiddenAttributesContext = exports.BasicTableContext = exports.BasicTableRowCollapseContext = exports.useDeleteUnmaskedAttributeForRelation = exports.useUnmaskedAttributeValue = exports.useUnmaskAttributeValue = exports.useMaskAttributeValue = exports.MaskedAttributesProvider = exports.SegmentationContext = exports.useReloadData = void 0;
23
+ exports.mockComputedStyles = exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.delayPromise = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.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.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = exports.useMarkers = 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; } });
@@ -244,8 +244,6 @@ var FileTypeEditor_1 = require("./FileTypeEditor");
244
244
  Object.defineProperty(exports, "FileTypeEditor", { enumerable: true, get: function () { return FileTypeEditor_1.FileTypeEditor; } });
245
245
  var MaskingSwitcher_1 = require("./MaskingSwitcher");
246
246
  Object.defineProperty(exports, "MaskingSwitcher", { enumerable: true, get: function () { return MaskingSwitcher_1.MaskingSwitcher; } });
247
- var SaveSegmentDialog_1 = require("./SaveSegmentDialog");
248
- Object.defineProperty(exports, "SaveSegmentDialog", { enumerable: true, get: function () { return SaveSegmentDialog_1.SaveSegmentDialog; } });
249
247
  var EmptyStub_1 = require("./EmptyStub");
250
248
  Object.defineProperty(exports, "EmptyStub", { enumerable: true, get: function () { return EmptyStub_1.EmptyStub; } });
251
249
  var ProfileBandNavigation_1 = require("./ProfileBandNavigation");
@@ -337,6 +335,8 @@ Object.defineProperty(exports, "ReactSortableTree", { enumerable: true, get: fun
337
335
  Object.defineProperty(exports, "reactSortableTreeHelpers", { enumerable: true, get: function () { return ReactSortableTree_1.reactSortableTreeHelpers; } });
338
336
  var RCTree_1 = require("./RCTree");
339
337
  Object.defineProperty(exports, "RCTree", { enumerable: true, get: function () { return RCTree_1.RCTree; } });
338
+ Object.defineProperty(exports, "RCTreeLevelLines", { enumerable: true, get: function () { return RCTree_1.RCTreeLevelLines; } });
339
+ Object.defineProperty(exports, "RCTreeSwitchRenderer", { enumerable: true, get: function () { return RCTree_1.RCTreeSwitchRenderer; } });
340
340
  var ReltioGridLayout_1 = require("./ReltioGridLayout");
341
341
  Object.defineProperty(exports, "ReltioGridLayout", { enumerable: true, get: function () { return ReltioGridLayout_1.ReltioGridLayout; } });
342
342
  var ResizablePanes_1 = require("./ResizablePanes");
@@ -1,27 +1,30 @@
1
1
  import { TreeNodeProps } from 'rc-tree';
2
2
  import React from 'react';
3
- import { RCTreeNode } from './types';
4
- type Props = {
5
- treeData: RCTreeNode[];
6
- renderNode?: (node: RCTreeNode & Record<string, unknown>) => React.ReactElement;
3
+ import { InternalRCNode, RCTreeNode } from './types';
4
+ type Props<Node extends RCTreeNode> = {
5
+ treeData: Node[];
6
+ renderNode?: (node: Node) => React.ReactElement;
7
7
  isVirtualized?: boolean;
8
8
  canDrag?: (params: {
9
- node: RCTreeNode;
9
+ node: Node;
10
10
  }) => boolean;
11
11
  canDrop?: (params: {
12
- nextParent: RCTreeNode;
13
- node: RCTreeNode;
12
+ nextParent: Node;
13
+ node: Node;
14
14
  }) => boolean;
15
- onDrop?: (treeData: RCTreeNode[], dragNode: RCTreeNode, parentNode: RCTreeNode) => void;
16
- onLoadChildren?: (treeNode: RCTreeNode) => Promise<void>;
17
- height?: number;
15
+ onDrop?: (treeData: Node[], dragNode: Node, parentNode: Node) => void;
16
+ onLoadChildren?: (treeNode: Node) => Promise<void>;
18
17
  defaultExpandAll?: boolean;
19
- SwitchRenderer?: (props: any) => React.ReactElement;
18
+ SwitchRenderer?: (props: {
19
+ node: InternalRCNode<Node>;
20
+ }) => React.ReactElement;
21
+ LevelLinesRenderer?: (props: any) => React.ReactElement;
20
22
  className?: string;
21
23
  minItemHeight?: number;
22
24
  isLeaf?: (node: TreeNodeProps & Record<string, unknown>) => boolean;
23
- scrollToNode?: RCTreeNode;
24
- onChange?: (node: RCTreeNode[]) => void;
25
+ scrollToNode?: Node;
26
+ onChange?: (node: Node[]) => void;
27
+ height?: number;
25
28
  };
26
- export declare const RCTree: ({ treeData, isVirtualized, canDrag, canDrop, onDrop, onLoadChildren, height, defaultExpandAll, SwitchRenderer, className, renderNode, minItemHeight, isLeaf, scrollToNode, onChange }: Props) => React.JSX.Element;
29
+ export declare const RCTree: <Node extends RCTreeNode>({ treeData, isVirtualized, canDrag, canDrop, onDrop, onLoadChildren, defaultExpandAll, SwitchRenderer, LevelLinesRenderer, className, renderNode, minItemHeight, isLeaf, scrollToNode, onChange, height }: Props<Node>) => React.JSX.Element;
27
30
  export {};
@@ -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 {};