@elliemae/ds-treeview 3.4.2 → 3.4.3
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/dist/cjs/TreeView.js +9 -5
- package/dist/cjs/TreeView.js.map +2 -2
- package/dist/cjs/TreeViewContext.js +4 -1
- package/dist/cjs/TreeViewContext.js.map +1 -1
- package/dist/cjs/config/cssClassesConstants.js +4 -1
- package/dist/cjs/config/cssClassesConstants.js.map +1 -1
- package/dist/cjs/config/useTreeview.js +62 -52
- package/dist/cjs/config/useTreeview.js.map +2 -2
- package/dist/cjs/hoc/DnDTreeContext.js +4 -1
- package/dist/cjs/hoc/DnDTreeContext.js.map +1 -1
- package/dist/cjs/hoc/SortableItemContext.js +4 -1
- package/dist/cjs/hoc/SortableItemContext.js.map +2 -2
- package/dist/cjs/hoc/WithConditionalDnDContext.js +67 -50
- package/dist/cjs/hoc/WithConditionalDnDContext.js.map +2 -2
- package/dist/cjs/hoc/WithDnDSortableItemContext.js +24 -13
- package/dist/cjs/hoc/WithDnDSortableItemContext.js.map +2 -2
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/parts/CheckboxSelectable.js +20 -11
- package/dist/cjs/parts/CheckboxSelectable.js.map +2 -2
- package/dist/cjs/parts/ChildrenCountDisplayer.js +12 -5
- package/dist/cjs/parts/ChildrenCountDisplayer.js.map +1 -1
- package/dist/cjs/parts/DnDHandle.js +7 -3
- package/dist/cjs/parts/DnDHandle.js.map +1 -1
- package/dist/cjs/parts/DropIndicator.js +27 -16
- package/dist/cjs/parts/DropIndicator.js.map +1 -1
- package/dist/cjs/parts/ExpandCaret.js +11 -8
- package/dist/cjs/parts/ExpandCaret.js.map +2 -2
- package/dist/cjs/parts/Icon.js +4 -1
- package/dist/cjs/parts/Icon.js.map +2 -2
- package/dist/cjs/parts/NestingSpace.js +6 -3
- package/dist/cjs/parts/NestingSpace.js.map +1 -1
- package/dist/cjs/parts/RadioSelectable.js +7 -3
- package/dist/cjs/parts/RadioSelectable.js.map +2 -2
- package/dist/cjs/parts/TreeItem.js +89 -49
- package/dist/cjs/parts/TreeItem.js.map +2 -2
- package/dist/cjs/parts/TreeItemText.js +58 -31
- package/dist/cjs/parts/TreeItemText.js.map +2 -2
- package/dist/cjs/parts/TreeList.js +62 -49
- package/dist/cjs/parts/TreeList.js.map +2 -2
- package/dist/cjs/plugins/dnd/TreeDndPlugin.js +4 -1
- package/dist/cjs/plugins/dnd/TreeDndPlugin.js.map +1 -1
- package/dist/cjs/plugins/dnd/index.js +4 -1
- package/dist/cjs/plugins/dnd/index.js.map +1 -1
- package/dist/cjs/plugins/index.js +4 -1
- package/dist/cjs/plugins/index.js.map +1 -1
- package/dist/cjs/react-desc-prop-types.js +16 -9
- package/dist/cjs/react-desc-prop-types.js.map +1 -1
- package/dist/cjs/related-components/TreeViewSearchBar.js +6 -3
- package/dist/cjs/related-components/TreeViewSearchBar.js.map +1 -1
- package/dist/cjs/sharedTypes.js +4 -1
- package/dist/cjs/sharedTypes.js.map +1 -1
- package/dist/cjs/utils/array-helpers.js +4 -1
- package/dist/cjs/utils/array-helpers.js.map +1 -1
- package/dist/cjs/utils/group-expands-helpers.js +8 -2
- package/dist/cjs/utils/group-expands-helpers.js.map +1 -1
- package/dist/cjs/utils/keyboard-helpers.js +104 -92
- package/dist/cjs/utils/keyboard-helpers.js.map +2 -2
- package/dist/cjs/utils/object-helpers.js +4 -1
- package/dist/cjs/utils/object-helpers.js.map +1 -1
- package/dist/cjs/utils/refs-helpers.js +4 -1
- package/dist/cjs/utils/refs-helpers.js.map +1 -1
- package/dist/cjs/utils/selectable-helper.js +4 -1
- package/dist/cjs/utils/selectable-helper.js.map +1 -1
- package/dist/cjs/utils/string-helpers.js +4 -1
- package/dist/cjs/utils/string-helpers.js.map +1 -1
- package/dist/cjs/utils/tree-helpers.js +8 -2
- package/dist/cjs/utils/tree-helpers.js.map +1 -1
- package/dist/cjs/utils/useInstanceRefActions.js +50 -35
- package/dist/cjs/utils/useInstanceRefActions.js.map +1 -1
- package/dist/cjs/utils/useTree.js +12 -4
- package/dist/cjs/utils/useTree.js.map +2 -2
- package/dist/esm/TreeView.js +5 -4
- package/dist/esm/TreeView.js.map +1 -1
- package/dist/esm/TreeViewContext.js.map +1 -1
- package/dist/esm/config/cssClassesConstants.js.map +1 -1
- package/dist/esm/config/useTreeview.js +58 -51
- package/dist/esm/config/useTreeview.js.map +1 -1
- package/dist/esm/hoc/DnDTreeContext.js.map +1 -1
- package/dist/esm/hoc/SortableItemContext.js.map +2 -2
- package/dist/esm/hoc/WithConditionalDnDContext.js +63 -49
- package/dist/esm/hoc/WithConditionalDnDContext.js.map +1 -1
- package/dist/esm/hoc/WithDnDSortableItemContext.js +20 -12
- package/dist/esm/hoc/WithDnDSortableItemContext.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/parts/CheckboxSelectable.js +16 -10
- package/dist/esm/parts/CheckboxSelectable.js.map +1 -1
- package/dist/esm/parts/ChildrenCountDisplayer.js +8 -4
- package/dist/esm/parts/ChildrenCountDisplayer.js.map +1 -1
- package/dist/esm/parts/DnDHandle.js +3 -2
- package/dist/esm/parts/DnDHandle.js.map +1 -1
- package/dist/esm/parts/DropIndicator.js +23 -15
- package/dist/esm/parts/DropIndicator.js.map +1 -1
- package/dist/esm/parts/ExpandCaret.js +7 -7
- package/dist/esm/parts/ExpandCaret.js.map +1 -1
- package/dist/esm/parts/Icon.js.map +2 -2
- package/dist/esm/parts/NestingSpace.js +2 -2
- package/dist/esm/parts/NestingSpace.js.map +1 -1
- package/dist/esm/parts/RadioSelectable.js +3 -2
- package/dist/esm/parts/RadioSelectable.js.map +1 -1
- package/dist/esm/parts/TreeItem.js +85 -48
- package/dist/esm/parts/TreeItem.js.map +1 -1
- package/dist/esm/parts/TreeItemText.js +54 -30
- package/dist/esm/parts/TreeItemText.js.map +1 -1
- package/dist/esm/parts/TreeList.js +58 -48
- package/dist/esm/parts/TreeList.js.map +1 -1
- package/dist/esm/plugins/dnd/TreeDndPlugin.js.map +1 -1
- package/dist/esm/plugins/dnd/index.js.map +1 -1
- package/dist/esm/plugins/index.js.map +1 -1
- package/dist/esm/react-desc-prop-types.js +12 -8
- package/dist/esm/react-desc-prop-types.js.map +1 -1
- package/dist/esm/related-components/TreeViewSearchBar.js +2 -2
- package/dist/esm/related-components/TreeViewSearchBar.js.map +1 -1
- package/dist/esm/sharedTypes.js.map +1 -1
- package/dist/esm/utils/array-helpers.js.map +1 -1
- package/dist/esm/utils/group-expands-helpers.js +4 -1
- package/dist/esm/utils/group-expands-helpers.js.map +1 -1
- package/dist/esm/utils/keyboard-helpers.js +100 -91
- package/dist/esm/utils/keyboard-helpers.js.map +1 -1
- package/dist/esm/utils/object-helpers.js.map +1 -1
- package/dist/esm/utils/refs-helpers.js.map +1 -1
- package/dist/esm/utils/selectable-helper.js.map +1 -1
- package/dist/esm/utils/string-helpers.js.map +1 -1
- package/dist/esm/utils/tree-helpers.js +4 -1
- package/dist/esm/utils/tree-helpers.js.map +1 -1
- package/dist/esm/utils/useInstanceRefActions.js +46 -34
- package/dist/esm/utils/useInstanceRefActions.js.map +1 -1
- package/dist/esm/utils/useTree.js +8 -3
- package/dist/esm/utils/useTree.js.map +1 -1
- package/package.json +10 -10
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useContext, useMemo, useCallback } from "react";
|
|
3
4
|
import { aggregatedClasses } from "@elliemae/ds-classnames";
|
|
4
5
|
import RadioSelectable from "./RadioSelectable";
|
|
5
6
|
import CheckboxSelectable from "./CheckboxSelectable";
|
|
@@ -19,7 +20,10 @@ const TreeListItem = aggregatedClasses("li", {
|
|
|
19
20
|
"data-testid": treeItemBlockName,
|
|
20
21
|
role: "treeitem"
|
|
21
22
|
})(treeItemBlockName);
|
|
22
|
-
const TreeListItemAddonsWrapper = aggregatedClasses("div")(
|
|
23
|
+
const TreeListItemAddonsWrapper = aggregatedClasses("div")(
|
|
24
|
+
treeItemBlockName,
|
|
25
|
+
"addons"
|
|
26
|
+
);
|
|
23
27
|
const TreeItem = (props) => {
|
|
24
28
|
const {
|
|
25
29
|
item,
|
|
@@ -49,7 +53,11 @@ const TreeItem = (props) => {
|
|
|
49
53
|
} = ctx;
|
|
50
54
|
const itemLabelText = item[nameKey];
|
|
51
55
|
const setItemRefs = (ref) => {
|
|
52
|
-
setMultipleRefs(
|
|
56
|
+
setMultipleRefs(
|
|
57
|
+
virtualItemRef,
|
|
58
|
+
!isDragOverlay && nodeItemRef,
|
|
59
|
+
!isDragOverlay && draggableProps && draggableProps.setNodeRef
|
|
60
|
+
)(ref);
|
|
53
61
|
};
|
|
54
62
|
const dropIndicatorPosition = draggableProps && draggableProps.shouldShowDropIndicatorPosition && draggableProps.dropIndicatorPosition;
|
|
55
63
|
const isDropIndicatorPositionInside = dropIndicatorPosition === DropIndicatorPosition.Inside;
|
|
@@ -63,8 +71,14 @@ const TreeItem = (props) => {
|
|
|
63
71
|
return "";
|
|
64
72
|
}, [isDropIndicatorPositionInside, isDropValid]);
|
|
65
73
|
const dragOverlayClassName = useMemo(() => isDragOverlay ? "drag-overlay" : "", [isDragOverlay]);
|
|
66
|
-
const selectedClassName = useMemo(
|
|
67
|
-
|
|
74
|
+
const selectedClassName = useMemo(
|
|
75
|
+
() => selectedItem?.id === item.id && !isDragOverlay ? "selected" : "",
|
|
76
|
+
[isDragOverlay, item.id, selectedItem?.id]
|
|
77
|
+
);
|
|
78
|
+
const hoverClassName = useMemo(
|
|
79
|
+
() => !isDragOverlay && hoverItem?.id === item.id && !isDragging ? "hover" : "",
|
|
80
|
+
[isDragOverlay, hoverItem?.id, item.id, isDragging]
|
|
81
|
+
);
|
|
68
82
|
const fixedHeightClassname = useMemo(() => {
|
|
69
83
|
if (labelOverflow === "truncate") {
|
|
70
84
|
if (rowSize === "compact")
|
|
@@ -78,28 +92,34 @@ const TreeItem = (props) => {
|
|
|
78
92
|
return `${DSTreeViewPrefix}-${treeItemBlockName}--dragging`;
|
|
79
93
|
return "";
|
|
80
94
|
}, [isDragging]);
|
|
81
|
-
const finalClassName = useMemo(
|
|
82
|
-
dropPreviewClassName
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
item
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
const finalClassName = useMemo(
|
|
96
|
+
() => `${dropPreviewClassName} ${fixedHeightClassname} ${selectedClassName} ${hoverClassName} ${dragOverlayClassName} ${isDraggingClassname}`,
|
|
97
|
+
[
|
|
98
|
+
dropPreviewClassName,
|
|
99
|
+
fixedHeightClassname,
|
|
100
|
+
selectedClassName,
|
|
101
|
+
hoverClassName,
|
|
102
|
+
dragOverlayClassName,
|
|
103
|
+
isDraggingClassname
|
|
104
|
+
]
|
|
105
|
+
);
|
|
106
|
+
const handleItemClick = useCallback(
|
|
107
|
+
(e) => {
|
|
108
|
+
onItemClick(item, e);
|
|
109
|
+
setFocusedItem(item);
|
|
110
|
+
setSelectedItem(item);
|
|
111
|
+
const itemVirtualIndex = typeof item.virtualIndex === "number" ? item.virtualIndex : -1;
|
|
112
|
+
onItemFocus({
|
|
113
|
+
itemIndex: itemVirtualIndex,
|
|
114
|
+
scrollToItem: (opts = { align: "start" }) => scrollToIndex(itemVirtualIndex, opts),
|
|
115
|
+
item
|
|
116
|
+
});
|
|
117
|
+
},
|
|
118
|
+
[item, scrollToIndex, onItemClick, onItemFocus, setSelectedItem, setFocusedItem]
|
|
119
|
+
);
|
|
100
120
|
const childrenLength = useMemo(() => children?.length ?? 0, [children]);
|
|
101
121
|
const ariaLabel = `${itemLabelText}${showChildrenAmount && childrenLength > 0 ? `, ${childrenLength} Items` : ""}`;
|
|
102
|
-
return /* @__PURE__ */
|
|
122
|
+
return /* @__PURE__ */ jsxs(TreeListItem, {
|
|
103
123
|
tabIndex: 0,
|
|
104
124
|
onMouseLeave: () => {
|
|
105
125
|
if (hoverItem?.id === item.id) {
|
|
@@ -119,29 +139,46 @@ const TreeItem = (props) => {
|
|
|
119
139
|
"aria-label": ariaLabel,
|
|
120
140
|
"data-id": item.id,
|
|
121
141
|
"data-index": item.virtualIndex,
|
|
122
|
-
onKeyDown: onItemKeyDown
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
onKeyDown: onItemKeyDown,
|
|
143
|
+
children: [
|
|
144
|
+
/* @__PURE__ */ jsxs(TreeListItemAddonsWrapper, {
|
|
145
|
+
children: [
|
|
146
|
+
withDragAndDrop ? /* @__PURE__ */ jsx(DnDHandle, {
|
|
147
|
+
id,
|
|
148
|
+
isDragOverlay
|
|
149
|
+
}) : null,
|
|
150
|
+
withRadioChecks && !isDragOverlay ? /* @__PURE__ */ jsx(RadioSelectable, {
|
|
151
|
+
item,
|
|
152
|
+
itemIndex
|
|
153
|
+
}) : null,
|
|
154
|
+
withCheckboxChecks && !isDragOverlay ? /* @__PURE__ */ jsx(CheckboxSelectable, {
|
|
155
|
+
item,
|
|
156
|
+
itemIndex
|
|
157
|
+
}) : null,
|
|
158
|
+
!isDragOverlay && /* @__PURE__ */ jsx(NestingSpace, {
|
|
159
|
+
item,
|
|
160
|
+
spaceForNestingLevel
|
|
161
|
+
}),
|
|
162
|
+
!isDragOverlay && /* @__PURE__ */ jsx(ExpandCaret, {
|
|
163
|
+
item
|
|
164
|
+
}),
|
|
165
|
+
!disableIcons ? /* @__PURE__ */ jsx(Icon, {
|
|
166
|
+
item
|
|
167
|
+
}) : null
|
|
168
|
+
]
|
|
169
|
+
}),
|
|
170
|
+
/* @__PURE__ */ jsx(TreeItemText, {
|
|
171
|
+
item
|
|
172
|
+
}),
|
|
173
|
+
rightAddons && /* @__PURE__ */ jsx(TreeListItemAddonsWrapper, {
|
|
174
|
+
children: typeof rightAddons === "function" ? rightAddons(item) : rightAddons
|
|
175
|
+
}),
|
|
176
|
+
/* @__PURE__ */ jsx(DropIndicator, {
|
|
177
|
+
dropIndicatorPosition,
|
|
178
|
+
isDropValid
|
|
179
|
+
})
|
|
180
|
+
]
|
|
181
|
+
});
|
|
145
182
|
};
|
|
146
183
|
var TreeItem_default = withDnDSortableItemContext(TreeItem);
|
|
147
184
|
export {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/TreeItem.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-statements */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { useContext, useMemo, useCallback } from 'react';\n\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\n\nimport RadioSelectable from './RadioSelectable';\nimport CheckboxSelectable from './CheckboxSelectable';\nimport TreeViewContext from '../TreeViewContext';\nimport { setMultipleRefs } from '../utils/refs-helpers';\nimport { useOnItemKeyDown } from '../utils/keyboard-helpers';\nimport { NestingSpace } from './NestingSpace';\nimport { Icon } from './Icon';\nimport { ExpandCaret } from './ExpandCaret';\nimport { TreeItemText } from './TreeItemText';\nimport { DSTreeViewPrefix, treeItemBlockName } from '../config/cssClassesConstants';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\nimport { DnDHandle } from './DnDHandle';\nimport { withDnDSortableItemContext } from '../hoc/WithDnDSortableItemContext';\nimport { DropIndicatorPosition, SortableItemContext } from '../hoc/SortableItemContext';\nimport DropIndicator from './DropIndicator';\n\nexport const TreeListItem = aggregatedClasses('li', {\n 'data-testid': treeItemBlockName,\n role: 'treeitem',\n // temp fix untill we move to styled components\n})(treeItemBlockName) as unknown as React.ComponentType<React.ComponentProps<'li'>>;\n\nexport const TreeListItemAddonsWrapper = aggregatedClasses('div')(\n treeItemBlockName,\n 'addons',\n // temp fix untill we move to styled components\n) as unknown as React.ComponentType;\n\ninterface PropsT {\n item: DSTreeviewT.Item;\n itemIndex: number;\n isDragOverlay?: boolean;\n virtualItemRef?: React.RefObject<HTMLLIElement>;\n itemWrapperStyle?: { [key: string]: unknown };\n spaceForNestingLevel?: number;\n}\nexport const TreeItem = (props: PropsT): JSX.Element => {\n const {\n item,\n itemIndex,\n itemWrapperStyle = {},\n virtualItemRef,\n spaceForNestingLevel = 1.5,\n isDragOverlay = false,\n } = props;\n const { id, node, children } = item;\n const { nodeItemRef } = node.model;\n\n const { draggableProps } = useContext(SortableItemContext);\n\n const onItemKeyDown = useOnItemKeyDown(item, draggableProps);\n\n const ctx = useContext(TreeViewContext);\n const {\n props: { disableIcons, rightAddons, onItemClick, onItemFocus, rowSize, labelOverflow, nameKey, showChildrenAmount },\n withRadioChecks,\n withCheckboxChecks,\n withDragAndDrop,\n selectedItem,\n selectedCheckboxes,\n hoverItem,\n virtualListHelpers: { scrollToIndex },\n setHoverItem,\n setSelectedItem,\n setFocusedItem,\n } = ctx;\n const itemLabelText = item[nameKey] as DSTreeviewT.Item['name'];\n\n // Sortable Items needs to update\n // - the virtual list ref (for react-virtual requirement)\n // - nodeItemRef which is a prop avaiable in the TreeModel nodes\n // - the drag and drop node reference\n const setItemRefs: React.LegacyRef<HTMLLIElement> | undefined = (ref: HTMLLIElement) => {\n setMultipleRefs(\n virtualItemRef,\n !isDragOverlay && nodeItemRef,\n !isDragOverlay && draggableProps && draggableProps.setNodeRef,\n )(ref);\n };\n\n const dropIndicatorPosition =\n draggableProps && draggableProps.shouldShowDropIndicatorPosition && draggableProps.dropIndicatorPosition;\n\n const isDropIndicatorPositionInside = dropIndicatorPosition === DropIndicatorPosition.Inside;\n\n const isDragging = draggableProps && draggableProps.isDragging;\n\n const isDropValid = draggableProps && draggableProps.isDropValid;\n\n const dropPreviewClassName = useMemo(() => {\n if (isDropIndicatorPositionInside) {\n const className = `${DSTreeViewPrefix}-${treeItemBlockName}${isDropValid ? '--valid' : '--invalid'}-drop-in`;\n return className;\n }\n return '';\n }, [isDropIndicatorPositionInside, isDropValid]);\n\n const dragOverlayClassName = useMemo(() => (isDragOverlay ? 'drag-overlay' : ''), [isDragOverlay]);\n\n const selectedClassName = useMemo(\n () => (selectedItem?.id === item.id && !isDragOverlay ? 'selected' : ''),\n [isDragOverlay, item.id, selectedItem?.id],\n );\n const hoverClassName = useMemo(\n () => (!isDragOverlay && hoverItem?.id === item.id && !isDragging ? 'hover' : ''),\n [isDragOverlay, hoverItem?.id, item.id, isDragging],\n );\n const fixedHeightClassname = useMemo(() => {\n if (labelOverflow === 'truncate') {\n if (rowSize === 'compact') return `${DSTreeViewPrefix}-${treeItemBlockName}--fixed-height-compact`;\n return `${DSTreeViewPrefix}-${treeItemBlockName}--fixed-height`;\n }\n return '';\n }, [labelOverflow, rowSize]);\n\n const isDraggingClassname = useMemo(() => {\n if (isDragging) return `${DSTreeViewPrefix}-${treeItemBlockName}--dragging`;\n return '';\n }, [isDragging]);\n\n const finalClassName = useMemo(\n () =>\n `${dropPreviewClassName} ${fixedHeightClassname} ${selectedClassName} ${hoverClassName} ${dragOverlayClassName} ${isDraggingClassname}`,\n [\n dropPreviewClassName,\n fixedHeightClassname,\n selectedClassName,\n hoverClassName,\n dragOverlayClassName,\n isDraggingClassname,\n ],\n );\n\n const handleItemClick = useCallback(\n (e: React.MouseEvent<HTMLLIElement>) => {\n onItemClick(item, e);\n setFocusedItem(item);\n setSelectedItem(item);\n const itemVirtualIndex = typeof item.virtualIndex === 'number' ? item.virtualIndex : -1;\n onItemFocus({\n itemIndex: itemVirtualIndex,\n scrollToItem: (opts = { align: 'start' }) => scrollToIndex(itemVirtualIndex, opts),\n item,\n });\n },\n [item, scrollToIndex, onItemClick, onItemFocus, setSelectedItem, setFocusedItem],\n );\n\n const childrenLength = useMemo(() => children?.length ?? 0, [children]);\n\n const ariaLabel = `${itemLabelText}${showChildrenAmount && childrenLength > 0 ? `, ${childrenLength} Items` : ''}`;\n\n return (\n <TreeListItem\n tabIndex={0}\n onMouseLeave={() => {\n if (hoverItem?.id === item.id) {\n setHoverItem(null);\n }\n }}\n onMouseEnter={() => {\n setHoverItem(item);\n }}\n onClick={handleItemClick}\n onBlur={() => setFocusedItem(null)}\n ref={setItemRefs}\n style={{ ...itemWrapperStyle }}\n className={finalClassName}\n aria-expanded={!!item.isExpanded}\n aria-selected={!!selectedCheckboxes[item.id]}\n aria-label={ariaLabel}\n data-id={item.id}\n data-index={item.virtualIndex}\n onKeyDown={onItemKeyDown}\n >\n <TreeListItemAddonsWrapper>\n {withDragAndDrop ? <DnDHandle id={id} isDragOverlay={isDragOverlay} /> : null}\n {withRadioChecks && !isDragOverlay ? <RadioSelectable item={item} itemIndex={itemIndex} /> : null}\n {withCheckboxChecks && !isDragOverlay ? <CheckboxSelectable item={item} itemIndex={itemIndex} /> : null}\n {!isDragOverlay && <NestingSpace item={item} spaceForNestingLevel={spaceForNestingLevel} />}\n {!isDragOverlay && <ExpandCaret item={item} />}\n {!disableIcons ? <Icon item={item} /> : null}\n </TreeListItemAddonsWrapper>\n <TreeItemText item={item} />\n {rightAddons && (\n <TreeListItemAddonsWrapper>\n {typeof rightAddons === 'function' ? rightAddons(item) : rightAddons}\n </TreeListItemAddonsWrapper>\n )}\n <DropIndicator dropIndicatorPosition={dropIndicatorPosition} isDropValid={isDropValid} />\n </TreeListItem>\n );\n};\n\nexport default withDnDSortableItemContext(TreeItem);\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useContext } from "react";
|
|
3
4
|
import Highlighter from "react-highlight-words";
|
|
4
5
|
import { SimpleTruncatedTooltipText } from "@elliemae/ds-truncated-tooltip-text";
|
|
5
6
|
import { aggregatedClasses } from "@elliemae/ds-classnames";
|
|
@@ -10,10 +11,11 @@ const ItemContent = aggregatedClasses("div")(`${treeItemBlockName}-content`);
|
|
|
10
11
|
const ItemValue = aggregatedClasses("span")(treeItemBlockName, "value");
|
|
11
12
|
const classNameModifierWrapAll = `${DSTreeViewPrefix}-${treeItemBlockName}__value--wrap-all`;
|
|
12
13
|
const classNameModifierTruncate = `${DSTreeViewPrefix}-${treeItemBlockName}__value--truncate`;
|
|
13
|
-
const CustomHighlight = ({ children }) => /* @__PURE__ */
|
|
14
|
+
const CustomHighlight = ({ children }) => /* @__PURE__ */ jsx("mark", {
|
|
14
15
|
className: "tree-text-highlight",
|
|
15
|
-
"data-testid": "tree-text-highlight"
|
|
16
|
-
|
|
16
|
+
"data-testid": "tree-text-highlight",
|
|
17
|
+
children
|
|
18
|
+
});
|
|
17
19
|
const TreeItemText = (props) => {
|
|
18
20
|
const { item } = props;
|
|
19
21
|
const ctx = useContext(TreeViewContext);
|
|
@@ -24,47 +26,69 @@ const TreeItemText = (props) => {
|
|
|
24
26
|
const itemLabelText = item[nameKey];
|
|
25
27
|
if (searchQuery) {
|
|
26
28
|
if (labelOverflow === "truncate") {
|
|
27
|
-
return /* @__PURE__ */
|
|
28
|
-
value: /* @__PURE__ */
|
|
29
|
+
return /* @__PURE__ */ jsx(SimpleTruncatedTooltipText, {
|
|
30
|
+
value: /* @__PURE__ */ jsxs(Fragment, {
|
|
31
|
+
children: [
|
|
32
|
+
/* @__PURE__ */ jsx(Highlighter, {
|
|
33
|
+
autoEscape: true,
|
|
34
|
+
highlightTag: CustomHighlight,
|
|
35
|
+
searchWords: [searchQuery],
|
|
36
|
+
textToHighlight: itemLabelText
|
|
37
|
+
}),
|
|
38
|
+
showChildrenAmount ? /* @__PURE__ */ jsx(ChildrenCountDisplayer, {
|
|
39
|
+
item
|
|
40
|
+
}) : null
|
|
41
|
+
]
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
return /* @__PURE__ */ jsxs(Fragment, {
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ jsx(Highlighter, {
|
|
29
48
|
autoEscape: true,
|
|
30
49
|
highlightTag: CustomHighlight,
|
|
31
50
|
searchWords: [searchQuery],
|
|
32
51
|
textToHighlight: itemLabelText
|
|
33
|
-
}),
|
|
52
|
+
}),
|
|
53
|
+
showChildrenAmount ? /* @__PURE__ */ jsx(ChildrenCountDisplayer, {
|
|
34
54
|
item
|
|
35
|
-
}) : null
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(Highlighter, {
|
|
39
|
-
autoEscape: true,
|
|
40
|
-
highlightTag: CustomHighlight,
|
|
41
|
-
searchWords: [searchQuery],
|
|
42
|
-
textToHighlight: itemLabelText
|
|
43
|
-
}), showChildrenAmount ? /* @__PURE__ */ React2.createElement(ChildrenCountDisplayer, {
|
|
44
|
-
item
|
|
45
|
-
}) : null);
|
|
55
|
+
}) : null
|
|
56
|
+
]
|
|
57
|
+
});
|
|
46
58
|
}
|
|
47
59
|
if (labelOverflow === "truncate") {
|
|
48
|
-
return /* @__PURE__ */
|
|
49
|
-
value: /* @__PURE__ */
|
|
50
|
-
|
|
51
|
-
|
|
60
|
+
return /* @__PURE__ */ jsx(SimpleTruncatedTooltipText, {
|
|
61
|
+
value: /* @__PURE__ */ jsxs(Fragment, {
|
|
62
|
+
children: [
|
|
63
|
+
itemLabelText,
|
|
64
|
+
showChildrenAmount ? /* @__PURE__ */ jsx(ChildrenCountDisplayer, {
|
|
65
|
+
item
|
|
66
|
+
}) : null
|
|
67
|
+
]
|
|
68
|
+
})
|
|
52
69
|
});
|
|
53
70
|
}
|
|
54
|
-
return /* @__PURE__ */
|
|
55
|
-
|
|
56
|
-
|
|
71
|
+
return /* @__PURE__ */ jsxs(Fragment, {
|
|
72
|
+
children: [
|
|
73
|
+
itemLabelText,
|
|
74
|
+
showChildrenAmount ? /* @__PURE__ */ jsx(ChildrenCountDisplayer, {
|
|
75
|
+
item
|
|
76
|
+
}) : null
|
|
77
|
+
]
|
|
78
|
+
});
|
|
57
79
|
}, [item, searchQuery, nameKey, showChildrenAmount, labelOverflow]);
|
|
58
80
|
let className = "";
|
|
59
81
|
if (labelOverflow === "wrap-all")
|
|
60
82
|
className += `${classNameModifierWrapAll} `;
|
|
61
83
|
if (labelOverflow === "truncate")
|
|
62
84
|
className += `${classNameModifierTruncate} `;
|
|
63
|
-
return /* @__PURE__ */
|
|
64
|
-
"data-testid": `${treeItemBlockName}-content
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
85
|
+
return /* @__PURE__ */ jsx(ItemContent, {
|
|
86
|
+
"data-testid": `${treeItemBlockName}-content`,
|
|
87
|
+
children: /* @__PURE__ */ jsx(ItemValue, {
|
|
88
|
+
className,
|
|
89
|
+
children: Text
|
|
90
|
+
})
|
|
91
|
+
});
|
|
68
92
|
};
|
|
69
93
|
export {
|
|
70
94
|
TreeItemText
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/TreeItemText.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useMemo, useContext } from 'react';\nimport Highlighter from 'react-highlight-words';\nimport { SimpleTruncatedTooltipText } from '@elliemae/ds-truncated-tooltip-text';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\n\nimport { ChildrenCountDisplayer } from './ChildrenCountDisplayer';\nimport { DSTreeViewPrefix, treeItemBlockName } from '../config/cssClassesConstants';\n\nimport TreeViewContext from '../TreeViewContext';\nimport type { DSTreeviewT } from '../react-desc-prop-types';\n\nconst ItemContent = aggregatedClasses('div')(`${treeItemBlockName}-content`) as unknown as React.ComponentType<\n React.ComponentProps<'div'>\n>;\nconst ItemValue = aggregatedClasses('span')(treeItemBlockName, 'value') as unknown as React.ComponentType<\n React.ComponentProps<'span'>\n>;\n\n// const wrapperClassName = `${DSTreeViewPrefix}-${treeItemBlockName}-content`;\nconst classNameModifierWrapAll = `${DSTreeViewPrefix}-${treeItemBlockName}__value--wrap-all`;\nconst classNameModifierTruncate = `${DSTreeViewPrefix}-${treeItemBlockName}__value--truncate`;\n\n// eslint-disable-next-line react/prop-types\nconst CustomHighlight = ({ children }: { children: React.ReactNode }) => (\n <mark className=\"tree-text-highlight\" data-testid=\"tree-text-highlight\">\n {children}\n </mark>\n);\ninterface PropsT {\n item: DSTreeviewT.Item;\n}\nexport const TreeItemText = (props: PropsT): JSX.Element => {\n const { item } = props;\n const ctx = useContext(TreeViewContext);\n const {\n props: { searchQuery, showChildrenAmount, labelOverflow, nameKey },\n } = ctx;\n\n const Text = useMemo(() => {\n const itemLabelText = item[nameKey] as DSTreeviewT.Item['name'];\n if (searchQuery) {\n if (labelOverflow === 'truncate') {\n return (\n <SimpleTruncatedTooltipText\n value={\n <>\n <Highlighter\n autoEscape\n highlightTag={CustomHighlight}\n searchWords={[searchQuery]}\n textToHighlight={itemLabelText}\n />\n {showChildrenAmount ? <ChildrenCountDisplayer item={item} /> : null}\n </>\n }\n />\n );\n }\n return (\n <>\n <Highlighter\n autoEscape\n highlightTag={CustomHighlight}\n searchWords={[searchQuery]}\n textToHighlight={itemLabelText}\n />\n {showChildrenAmount ? <ChildrenCountDisplayer item={item} /> : null}\n </>\n );\n }\n if (labelOverflow === 'truncate') {\n return (\n <SimpleTruncatedTooltipText\n value={\n <>\n {itemLabelText}\n {showChildrenAmount ? <ChildrenCountDisplayer item={item} /> : null}\n </>\n }\n />\n );\n }\n return (\n <>\n {itemLabelText}\n {showChildrenAmount ? <ChildrenCountDisplayer item={item} /> : null}\n </>\n );\n }, [item, searchQuery, nameKey, showChildrenAmount, labelOverflow]);\n\n let className = '';\n if (labelOverflow === 'wrap-all') className += `${classNameModifierWrapAll} `;\n if (labelOverflow === 'truncate') className += `${classNameModifierTruncate} `;\n\n return (\n <ItemContent data-testid={`${treeItemBlockName}-content`}>\n <ItemValue className={className}>{Text}</ItemValue>\n </ItemContent>\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB;AACA,SAAgB,SAAS,kBAAkB;AAC3C,OAAO,iBAAiB;AACxB,SAAS,kCAAkC;AAC3C,SAAS,yBAAyB;AAElC,SAAS,8BAA8B;AACvC,SAAS,kBAAkB,yBAAyB;AAEpD,OAAO,qBAAqB;AAG5B,MAAM,cAAc,kBAAkB,KAAK,EAAE,GAAG,2BAA2B;AAG3E,MAAM,YAAY,kBAAkB,MAAM,EAAE,mBAAmB,OAAO;AAKtE,MAAM,2BAA2B,GAAG,oBAAoB;AACxD,MAAM,4BAA4B,GAAG,oBAAoB;AAGzD,MAAM,kBAAkB,CAAC,EAAE,SAAS,MAClC,oBAAC;AAAA,EAAK,WAAU;AAAA,EAAsB,eAAY;AAAA,EAC/C;AAAA,CACH;AAKK,MAAM,eAAe,CAAC,UAA+B;AAC1D,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,MAAM,WAAW,eAAe;AACtC,QAAM;AAAA,IACJ,OAAO,EAAE,aAAa,oBAAoB,eAAe,QAAQ;AAAA,EACnE,IAAI;AAEJ,QAAM,OAAO,QAAQ,MAAM;AACzB,UAAM,gBAAgB,KAAK;AAC3B,QAAI,aAAa;AACf,UAAI,kBAAkB,YAAY;AAChC,eACE,oBAAC;AAAA,UACC,OACE;AAAA,YACE;AAAA,kCAAC;AAAA,gBACC,YAAU;AAAA,gBACV,cAAc;AAAA,gBACd,aAAa,CAAC,WAAW;AAAA,gBACzB,iBAAiB;AAAA,eACnB;AAAA,cACC,qBAAqB,oBAAC;AAAA,gBAAuB;AAAA,eAAY,IAAK;AAAA;AAAA,WACjE;AAAA,SAEJ;AAAA,MAEJ;AACA,aACE;AAAA,QACE;AAAA,8BAAC;AAAA,YACC,YAAU;AAAA,YACV,cAAc;AAAA,YACd,aAAa,CAAC,WAAW;AAAA,YACzB,iBAAiB;AAAA,WACnB;AAAA,UACC,qBAAqB,oBAAC;AAAA,YAAuB;AAAA,WAAY,IAAK;AAAA;AAAA,OACjE;AAAA,IAEJ;AACA,QAAI,kBAAkB,YAAY;AAChC,aACE,oBAAC;AAAA,QACC,OACE;AAAA,UACG;AAAA;AAAA,YACA,qBAAqB,oBAAC;AAAA,cAAuB;AAAA,aAAY,IAAK;AAAA;AAAA,SACjE;AAAA,OAEJ;AAAA,IAEJ;AACA,WACE;AAAA,MACG;AAAA;AAAA,QACA,qBAAqB,oBAAC;AAAA,UAAuB;AAAA,SAAY,IAAK;AAAA;AAAA,KACjE;AAAA,EAEJ,GAAG,CAAC,MAAM,aAAa,SAAS,oBAAoB,aAAa,CAAC;AAElE,MAAI,YAAY;AAChB,MAAI,kBAAkB;AAAY,iBAAa,GAAG;AAClD,MAAI,kBAAkB;AAAY,iBAAa,GAAG;AAElD,SACE,oBAAC;AAAA,IAAY,eAAa,GAAG;AAAA,IAC3B,8BAAC;AAAA,MAAU;AAAA,MAAuB;AAAA,KAAK;AAAA,GACzC;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useContext } from "react";
|
|
3
4
|
import { aggregatedClasses } from "@elliemae/ds-classnames";
|
|
4
5
|
import { DSCircularProgressIndicator } from "@elliemae/ds-circular-progress-indicator";
|
|
5
6
|
import TreeViewContext from "../TreeViewContext";
|
|
@@ -30,59 +31,68 @@ const TreeListComp = () => {
|
|
|
30
31
|
const { totalSize, virtualItems } = virtualListHelpers;
|
|
31
32
|
const className = `${rowSize === "compact" ? `${compactRowClass}` : `${normaRowClass}`}`;
|
|
32
33
|
const { visibleItems } = useContext(DnDTreeContext);
|
|
33
|
-
return /* @__PURE__ */
|
|
34
|
+
return /* @__PURE__ */ jsxs(TreeListWrapper, {
|
|
34
35
|
ref: virtualListRef,
|
|
35
36
|
className,
|
|
36
37
|
style: {
|
|
37
38
|
height: `${typeof height === "number" ? `${height}px` : height}`,
|
|
38
39
|
width: `${typeof width === "number" ? `${width}px` : width}`,
|
|
39
40
|
overflow: "auto"
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
41
|
+
},
|
|
42
|
+
children: [
|
|
43
|
+
isLoading ? /* @__PURE__ */ jsx("div", {
|
|
44
|
+
style: {
|
|
45
|
+
width: "100%",
|
|
46
|
+
height: "100%",
|
|
47
|
+
display: "flex",
|
|
48
|
+
alignItems: "center",
|
|
49
|
+
justifyContent: "center"
|
|
50
|
+
},
|
|
51
|
+
children: /* @__PURE__ */ jsx(DSCircularProgressIndicator, {
|
|
52
|
+
size: "xl",
|
|
53
|
+
loading: isLoading,
|
|
54
|
+
showLabel: true,
|
|
55
|
+
waiting: false,
|
|
56
|
+
showTooltip: false
|
|
57
|
+
})
|
|
58
|
+
}) : null,
|
|
59
|
+
!isLoading && virtualItems.length === 0 ? /* @__PURE__ */ jsx(TreeListNoItems, {
|
|
60
|
+
children: noItemsPlaceholder
|
|
61
|
+
}) : null,
|
|
62
|
+
!isLoading && virtualItems.length !== 0 ? /* @__PURE__ */ jsx("div", {
|
|
63
|
+
style: {
|
|
64
|
+
height: `${totalSize}px`,
|
|
65
|
+
width: "100%",
|
|
66
|
+
position: "relative"
|
|
67
|
+
},
|
|
68
|
+
children: virtualItems.map((virtualItem) => {
|
|
69
|
+
const { index, measureRef, start } = virtualItem;
|
|
70
|
+
const item = (visibleItems || flattenedVisibleItems)[index];
|
|
71
|
+
if (!item)
|
|
72
|
+
return null;
|
|
73
|
+
item.virtualIndex = index;
|
|
74
|
+
const { id } = item;
|
|
75
|
+
const style = {
|
|
76
|
+
position: "absolute",
|
|
77
|
+
top: `${start}px`,
|
|
78
|
+
left: 0,
|
|
79
|
+
width: "100%"
|
|
80
|
+
};
|
|
81
|
+
const listItemProps = {
|
|
82
|
+
key: `DS-TreeView-List-Item-${id}`,
|
|
83
|
+
virtualItemRef: measureRef,
|
|
84
|
+
index,
|
|
85
|
+
itemIndex: index,
|
|
86
|
+
item,
|
|
87
|
+
itemWrapperStyle: style
|
|
88
|
+
};
|
|
89
|
+
return /* @__PURE__ */ jsx(TreeItem, {
|
|
90
|
+
...listItemProps
|
|
91
|
+
});
|
|
92
|
+
})
|
|
93
|
+
}) : null
|
|
94
|
+
]
|
|
95
|
+
});
|
|
86
96
|
};
|
|
87
97
|
const TreeList = withConditionalDnDRowContext(TreeListComp);
|
|
88
98
|
export {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/TreeList.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useContext } from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { DSCircularProgressIndicator } from '@elliemae/ds-circular-progress-indicator';\n\nimport TreeViewContext from '../TreeViewContext';\nimport { DSTreeViewPrefix, treeListBlockName } from '../config/cssClassesConstants';\nimport TreeItem from './TreeItem';\n\nimport type { DSTreeviewT } from '../react-desc-prop-types';\nimport { withConditionalDnDRowContext } from '../hoc/WithConditionalDnDContext';\nimport { DnDTreeContext } from '../hoc/DnDTreeContext';\n\nexport const treeListNoItemsBn = `${treeListBlockName}-no-items`;\nexport const TreeListNoItems = aggregatedClasses('div', {\n 'data-testid': treeListNoItemsBn,\n})(treeListNoItemsBn) as unknown as React.ComponentType<React.ComponentProps<'div'>>;\n\n// React.ComponentProps<'ul'> uses LegacyRef typings that existed pre-hook era\n// we omit the LegacyRef typings in favor of hook-era typings\ninterface UlProps extends Omit<React.ComponentProps<'ul'>, 'ref'> {\n ref: React.MutableRefObject<HTMLUListElement | undefined> | undefined;\n}\nexport const TreeListWrapper = aggregatedClasses('ul', {\n 'data-testid': treeListBlockName,\n role: 'tree',\n})(treeListBlockName, null, ({ rowSize }: { rowSize: 'normal' | 'compact' }) => ({\n [`rowsize-${rowSize}`]: rowSize,\n})) as unknown as React.ComponentType<UlProps>;\n\nconst compactRowClass = `${DSTreeViewPrefix}-tv-row-size-compact`;\nconst normaRowClass = `${DSTreeViewPrefix}-tv-row-size-normal`;\n\ninterface PropsT {\n onMouseDragOverItem?: (opts: {\n event: React.MouseEvent<HTMLLIElement>;\n item: DSTreeviewT.Item;\n itemIndex: number;\n setIsDraggingOverThis: React.Dispatch<React.SetStateAction<boolean>>;\n openFolderOnHoverTimeout: React.MutableRefObject<NodeJS.Timeout | null>;\n }) => void;\n}\n\nconst TreeListComp: React.ComponentType<PropsT> = () => {\n const ctx = useContext(TreeViewContext);\n const {\n virtualListRef,\n virtualListHelpers,\n visibleItems: flattenedVisibleItems,\n props: { width, height, rowSize, noItemsPlaceholder, isLoading },\n } = ctx;\n const { totalSize, virtualItems } = virtualListHelpers;\n const className = `${rowSize === 'compact' ? `${compactRowClass}` : `${normaRowClass}`}`;\n\n const { visibleItems } = useContext(DnDTreeContext);\n\n return (\n <TreeListWrapper\n ref={virtualListRef}\n className={className}\n style={{\n height: `${typeof height === 'number' ? `${height}px` : height}`,\n width: `${typeof width === 'number' ? `${width}px` : width}`,\n overflow: 'auto',\n }}\n >\n {isLoading ? (\n <div\n style={{\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <DSCircularProgressIndicator size=\"xl\" loading={isLoading} showLabel waiting={false} showTooltip={false} />\n </div>\n ) : null}\n {!isLoading && virtualItems.length === 0 ? <TreeListNoItems>{noItemsPlaceholder}</TreeListNoItems> : null}\n {!isLoading && virtualItems.length !== 0 ? (\n <div\n style={{\n height: `${totalSize}px`,\n width: '100%',\n position: 'relative',\n }}\n >\n {virtualItems.map((virtualItem) => {\n const { index, measureRef, start } = virtualItem;\n const item = (visibleItems || flattenedVisibleItems)[index];\n if (!item) return null;\n item.virtualIndex = index;\n const { id } = item;\n\n const style = {\n position: 'absolute',\n top: `${start}px`,\n left: 0,\n width: '100%',\n };\n\n const listItemProps = {\n key: `DS-TreeView-List-Item-${id}`,\n virtualItemRef: measureRef,\n index, // this is consumed by the DnD HOC\n itemIndex: index,\n item,\n itemWrapperStyle: style,\n };\n\n return <TreeItem {...listItemProps} />;\n })}\n </div>\n ) : null}\n </TreeListWrapper>\n );\n};\n\nexport const TreeList = withConditionalDnDRowContext(TreeListComp);\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB;AACA,SAAgB,kBAAkB;AAClC,SAAS,yBAAyB;AAClC,SAAS,mCAAmC;AAE5C,OAAO,qBAAqB;AAC5B,SAAS,kBAAkB,yBAAyB;AACpD,OAAO,cAAc;AAGrB,SAAS,oCAAoC;AAC7C,SAAS,sBAAsB;AAExB,MAAM,oBAAoB,GAAG;AAC7B,MAAM,kBAAkB,kBAAkB,OAAO;AAAA,EACtD,eAAe;AACjB,CAAC,EAAE,iBAAiB;AAOb,MAAM,kBAAkB,kBAAkB,MAAM;AAAA,EACrD,eAAe;AAAA,EACf,MAAM;AACR,CAAC,EAAE,mBAAmB,MAAM,CAAC,EAAE,QAAQ,OAA0C;AAAA,EAC/E,CAAC,WAAW,YAAY;AAC1B,EAAE;AAEF,MAAM,kBAAkB,GAAG;AAC3B,MAAM,gBAAgB,GAAG;AAYzB,MAAM,eAA4C,MAAM;AACtD,QAAM,MAAM,WAAW,eAAe;AACtC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,OAAO,EAAE,OAAO,QAAQ,SAAS,oBAAoB,UAAU;AAAA,EACjE,IAAI;AACJ,QAAM,EAAE,WAAW,aAAa,IAAI;AACpC,QAAM,YAAY,GAAG,YAAY,YAAY,GAAG,oBAAoB,GAAG;AAEvE,QAAM,EAAE,aAAa,IAAI,WAAW,cAAc;AAElD,SACE,qBAAC;AAAA,IACC,KAAK;AAAA,IACL;AAAA,IACA,OAAO;AAAA,MACL,QAAQ,GAAG,OAAO,WAAW,WAAW,GAAG,aAAa;AAAA,MACxD,OAAO,GAAG,OAAO,UAAU,WAAW,GAAG,YAAY;AAAA,MACrD,UAAU;AAAA,IACZ;AAAA,IAEC;AAAA,kBACC,oBAAC;AAAA,QACC,OAAO;AAAA,UACL,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,gBAAgB;AAAA,QAClB;AAAA,QAEA,8BAAC;AAAA,UAA4B,MAAK;AAAA,UAAK,SAAS;AAAA,UAAW,WAAS;AAAA,UAAC,SAAS;AAAA,UAAO,aAAa;AAAA,SAAO;AAAA,OAC3G,IACE;AAAA,MACH,CAAC,aAAa,aAAa,WAAW,IAAI,oBAAC;AAAA,QAAiB;AAAA,OAAmB,IAAqB;AAAA,MACpG,CAAC,aAAa,aAAa,WAAW,IACrC,oBAAC;AAAA,QACC,OAAO;AAAA,UACL,QAAQ,GAAG;AAAA,UACX,OAAO;AAAA,UACP,UAAU;AAAA,QACZ;AAAA,QAEC,uBAAa,IAAI,CAAC,gBAAgB;AACjC,gBAAM,EAAE,OAAO,YAAY,MAAM,IAAI;AACrC,gBAAM,QAAQ,gBAAgB,uBAAuB;AACrD,cAAI,CAAC;AAAM,mBAAO;AAClB,eAAK,eAAe;AACpB,gBAAM,EAAE,GAAG,IAAI;AAEf,gBAAM,QAAQ;AAAA,YACZ,UAAU;AAAA,YACV,KAAK,GAAG;AAAA,YACR,MAAM;AAAA,YACN,OAAO;AAAA,UACT;AAEA,gBAAM,gBAAgB;AAAA,YACpB,KAAK,yBAAyB;AAAA,YAC9B,gBAAgB;AAAA,YAChB;AAAA,YACA,WAAW;AAAA,YACX;AAAA,YACA,kBAAkB;AAAA,UACpB;AAEA,iBAAO,oBAAC;AAAA,YAAU,GAAG;AAAA,WAAe;AAAA,QACtC,CAAC;AAAA,OACH,IACE;AAAA;AAAA,GACN;AAEJ;AAEO,MAAM,WAAW,6BAA6B,YAAY;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/dnd/TreeDndPlugin.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const TreeDndPlugin = 'tree-dnd';\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAhB,MAAM,gBAAgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/plugins/dnd/index.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './TreeDndPlugin';\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/plugins/index.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './dnd';\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { PropTypes } from "@elliemae/ds-utilities";
|
|
3
3
|
const TreeViewPropTypes = {
|
|
4
|
-
data: PropTypes.arrayOf(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
data: PropTypes.arrayOf(
|
|
5
|
+
PropTypes.shape({
|
|
6
|
+
children: PropTypes.arrayOf(PropTypes.object),
|
|
7
|
+
id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
8
|
+
isGroup: PropTypes.oneOfType([PropTypes.oneOf([void 0, null]), PropTypes.bool]),
|
|
9
|
+
name: PropTypes.string,
|
|
10
|
+
node: PropTypes.object
|
|
11
|
+
})
|
|
12
|
+
).description("data to populate tree view").isRequired,
|
|
13
|
+
plugins: PropTypes.tuple([PropTypes.oneOf(["tree-dnd"])]).description(
|
|
14
|
+
"only accepted value is TreeDndPlugin constant\nother legacy plugins are now supported via different props"
|
|
15
|
+
).defaultValue([]),
|
|
12
16
|
selection: PropTypes.object.description("pre selected items").defaultValue({}),
|
|
13
17
|
expanded: PropTypes.object.description("control what items are expanded").defaultValue(void 0),
|
|
14
18
|
instanceRef: PropTypes.shape({
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/react-desc-prop-types.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport { PropTypes } from '@elliemae/ds-utilities';\nimport TreeModel from 'tree-model';\nimport { useVirtual } from 'react-virtual';\nexport declare namespace DSTreeviewT {\n export type StringOrNum = string | number;\n export type SelectionState = boolean | 'mixed';\n export type SelectionItems = Record<StringOrNum, SelectionState>;\n export type ScrollToFunc = ReturnType<typeof useVirtual>['scrollToIndex'];\n export type ScrollToItemOptions = Parameters<ReturnType<typeof useVirtual>['scrollToIndex']>[1];\n export type ScrollToItemFunc = (options: ScrollToItemOptions) => void;\n export type ExpandedItems = Record<StringOrNum, true>; // { [id]:true } -> e.g. {1:true; 2:true} // false are not listed\n export interface SimpleItem {\n [key: string]: unknown;\n name: string;\n children?: SimpleItem[];\n id: StringOrNum;\n }\n\n export interface Item extends SimpleItem {\n children: Item[];\n treeDepth?: number;\n virtualIndex?: number;\n isChecked?: boolean | 'mixed';\n isGroup?: boolean;\n isExpanded?: boolean;\n childrenMatchesSearchQuery?: boolean;\n matchesSearchQuery?: boolean;\n nodeItemRef?: React.RefObject<HTMLLIElement>;\n model: TreeModel.Node<Item>['model'];\n node: TreeModel.Node<Item> & { parent?: TreeModel.Node<Item> };\n nodePath: TreeModel.Node<Item>[];\n }\n\n export interface DndItem {\n uid: string;\n depth: number;\n realIndex: number;\n childrenCount: number;\n parentId: string | null;\n original: DSTreeviewT.Item;\n }\n\n export interface Actions {\n toggleExpandAll: (isExpand: boolean) => Promise<DSTreeviewT.Item[]>;\n scrollTo: DSTreeviewT.ScrollToFunc;\n setSelectedItemByVirtualIndex: (index: number) => void;\n setFocusedItemByVirtualIndex: (\n index: number,\n scrollOpts: DSTreeviewT.ScrollToItemOptions & { withScroll?: boolean },\n ) => void;\n }\n export interface InstanceRef {\n actions: Actions;\n }\n\n export interface DefaultProps {\n plugins: string[];\n selection: SelectionItems;\n instanceRef: React.MutableRefObject<InstanceRef>;\n isItemDisabled: (item: Item) => boolean;\n disableIcons: boolean;\n isMultiSelect: boolean;\n isSingleSelect: boolean;\n getIsDropValid: (\n active: DndItem,\n over: DndItem,\n dropIndicatorPosition: 'none' | 'before' | 'after' | 'inside',\n ) => boolean;\n showChildrenAmount: boolean;\n isLoading: boolean;\n highlightOnlyQuery: boolean;\n onItemClick: (item: Item, e: React.MouseEvent<HTMLLIElement>) => void;\n onItemFocus: (meta: { scrollToItem: ScrollToItemFunc; itemIndex: number; item: Item }) => void;\n onVisibleItemsChange: (newVisibleItems: Item[]) => void;\n onOrderChange: (newData: SimpleItem[], oldData: SimpleItem[], draggedItem: DndItem) => void;\n onSelectionChange: (\n selection: SelectionItems,\n item: Item,\n meta: { scrollToItem: ScrollToItemFunc; itemIndex: number },\n ) => void;\n onExpandChange: (expandedHashmap: ExpandedItems, itemToggled: Item | null | undefined) => void;\n onInstanceRefInitialized: (instanceRef: React.MutableRefObject<InstanceRef>) => void;\n rowSize: 'normal' | 'compact';\n labelOverflow: 'wrap' | 'wrap-all' | 'truncate';\n noItemsPlaceholder: string;\n nameKey: string;\n width: StringOrNum;\n height: StringOrNum;\n groupIcon: JSX.Element | null;\n itemIcon: JSX.Element | null;\n searchQuery: string;\n }\n export interface PropsOptional {\n expanded: ExpandedItems;\n rightAddons: ((item: Item) => React.ReactNode | React.ReactNode[]) | JSX.Element;\n }\n export interface PropsRequired {\n data: Item[];\n }\n export interface Props extends DefaultProps, PropsOptional, PropsRequired {}\n}\n\nexport const TreeViewPropTypes = {\n data: PropTypes.arrayOf(\n PropTypes.shape({\n children: PropTypes.arrayOf(PropTypes.object),\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n isGroup: PropTypes.oneOfType([PropTypes.oneOf([undefined, null]), PropTypes.bool]),\n name: PropTypes.string,\n node: PropTypes.object,\n }),\n ).description('data to populate tree view').isRequired,\n plugins: PropTypes.tuple([PropTypes.oneOf(['tree-dnd'])])\n .description(\n 'only accepted value is TreeDndPlugin constant\\nother legacy plugins are now supported via different props',\n )\n .defaultValue([]),\n selection: PropTypes.object.description('pre selected items').defaultValue({}),\n expanded: PropTypes.object.description('control what items are expanded').defaultValue(undefined),\n instanceRef: PropTypes.shape({\n current: PropTypes.oneOfType([\n PropTypes.oneOf([null, undefined]),\n PropTypes.shape({\n actions: PropTypes.shape({\n toggleExpandAll: PropTypes.func,\n scrollTo: PropTypes.func,\n }).description('').isRequired,\n }),\n ]),\n }).description('instance ref'),\n isItemDisabled: PropTypes.func\n .description('Function that receives an item, and returns whether that item should be disabled')\n .defaultValue('() => false'),\n disableIcons: PropTypes.bool.description('disable icons').defaultValue(false),\n isMultiSelect: PropTypes.bool.description('whether the tree view is multi select or not').defaultValue(false),\n isSingleSelect: PropTypes.bool.description('wheter the tree view is single select or not').defaultValue(false),\n isLoading: PropTypes.bool.description('wheter the tree should show the loading state or not').defaultValue(false),\n getIsDropValid: PropTypes.func\n .description(\"Function that returns true if the drop is valid and false if it's not\")\n .defaultValue('() => true'),\n showChildrenAmount: PropTypes.bool.description('whether to show the amount of children or not').defaultValue(false),\n onItemClick: PropTypes.func.description('function executed when clicking on an item').defaultValue('() => {}'),\n onItemFocus: PropTypes.func.description('function executed when focusing on an item').defaultValue('() => {}'),\n onVisibleItemsChange: PropTypes.func\n .description('function executed when the visible items change')\n .defaultValue('() => {}'),\n onOrderChange: PropTypes.func.description('function executed when the items order changes').defaultValue('() => {}'),\n onSelectionChange: PropTypes.func\n .description('function executed when the selection changes')\n .defaultValue('() => {}'),\n onExpandChange: PropTypes.func.description('function executed when expanding an item').defaultValue('() => {}'),\n onInstanceRefInitialized: PropTypes.func\n .description('function executed when instanceRef has terminated instanciation')\n .defaultValue('() => {}'),\n rowSize: PropTypes.oneOf(['normal', 'compact']).description('size of the row').defaultValue('normal'),\n labelOverflow: PropTypes.oneOf(['wrap', 'wrap-all', 'truncate'])\n .description('label truncation preference')\n .defaultValue('wrap'),\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).description('components width').defaultValue('100%'),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n .description('components height')\n .defaultValue('100%'),\n groupIcon: PropTypes.node.description('icon for groups'),\n itemIcon: PropTypes.node.description('icon for items'),\n searchQuery: PropTypes.string.description('search query value'),\n noItemsPlaceholder: PropTypes.string\n .description('message to be shown when there are no items in the treeview to be displayed')\n .defaultValue('No items found'),\n nameKey: PropTypes.string.description('property key to identifier for items labels').defaultValue('name'),\n highlightOnlyQuery: PropTypes.bool.description('whether to highlight results or not').defaultValue(false),\n};\n"],
|
|
5
|
-
"mappings": "AAAA;
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { DSNavSearchBox } from "@elliemae/ds-form";
|
|
4
4
|
function TreeViewSearchBar(props) {
|
|
5
5
|
const { handleChange, onNext, onPrevious, onClear, currentResultIndex, totalResults, value } = props;
|
|
6
|
-
return /* @__PURE__ */
|
|
6
|
+
return /* @__PURE__ */ jsx(DSNavSearchBox, {
|
|
7
7
|
onChange: (v) => {
|
|
8
8
|
handleChange({ target: { value: v } });
|
|
9
9
|
},
|