react-arborist 0.1.1 → 0.1.5
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/README.md +16 -2
- package/dist/lib/components/drop-cursor.js +11 -7
- package/dist/lib/components/preview.d.ts +0 -1
- package/dist/lib/components/preview.js +12 -8
- package/dist/lib/components/row.d.ts +2 -2
- package/dist/lib/components/row.js +27 -24
- package/dist/lib/components/tree.d.ts +2 -0
- package/dist/lib/components/tree.js +37 -0
- package/dist/lib/context.d.ts +3 -4
- package/dist/lib/context.js +47 -37
- package/dist/lib/data/enrich-tree.d.ts +2 -0
- package/dist/lib/data/enrich-tree.js +34 -0
- package/dist/lib/data/flatten-tree.d.ts +2 -0
- package/dist/lib/data/flatten-tree.js +20 -0
- package/dist/lib/data/make-tree.d.ts +5 -0
- package/dist/lib/data/make-tree.js +40 -0
- package/dist/lib/data/visible-nodes-hook.d.ts +2 -0
- package/dist/lib/data/visible-nodes-hook.js +13 -0
- package/dist/lib/dnd/compute-drop.js +11 -7
- package/dist/lib/dnd/drag-hook.js +17 -13
- package/dist/lib/dnd/drop-hook.js +17 -13
- package/dist/lib/dnd/measure-hover.js +7 -3
- package/dist/lib/dnd/outer-drop-hook.d.ts +1 -0
- package/dist/lib/dnd/outer-drop-hook.js +49 -0
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +5 -1
- package/dist/lib/reducer.js +26 -14
- package/dist/lib/selection/range.js +4 -1
- package/dist/lib/selection/selection-hook.js +10 -6
- package/dist/lib/selection/selection.js +6 -3
- package/dist/lib/selection/selection.test.js +4 -2
- package/dist/lib/types.d.ts +47 -43
- package/dist/lib/types.js +2 -1
- package/dist/lib/utils.d.ts +1 -5
- package/dist/lib/utils.js +13 -46
- package/package.json +6 -6
- package/dist/lib/components/tree-list.d.ts +0 -3
- package/dist/lib/components/tree-list.js +0 -75
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Range = void 0;
|
|
1
4
|
var Range = /** @class */ (function () {
|
|
2
5
|
function Range(start, end) {
|
|
3
6
|
this.start = start;
|
|
@@ -39,4 +42,4 @@ var Range = /** @class */ (function () {
|
|
|
39
42
|
};
|
|
40
43
|
return Range;
|
|
41
44
|
}());
|
|
42
|
-
|
|
45
|
+
exports.Range = Range;
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSelectionKeys = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var reducer_1 = require("../reducer");
|
|
6
|
+
function useSelectionKeys(ref, dispatch, ids) {
|
|
7
|
+
(0, react_1.useEffect)(function () {
|
|
5
8
|
var el = ref.current;
|
|
6
9
|
el === null || el === void 0 ? void 0 : el.setAttribute("tabindex", "0");
|
|
7
10
|
var cb = function (e) {
|
|
8
11
|
if (e.code === "ArrowDown") {
|
|
9
12
|
e.preventDefault();
|
|
10
|
-
dispatch(stepDown(e.shiftKey, ids));
|
|
13
|
+
dispatch((0, reducer_1.stepDown)(e.shiftKey, ids));
|
|
11
14
|
}
|
|
12
15
|
else if (e.code === "ArrowUp") {
|
|
13
16
|
e.preventDefault();
|
|
14
|
-
dispatch(stepUp(e.shiftKey, ids));
|
|
17
|
+
dispatch((0, reducer_1.stepUp)(e.shiftKey, ids));
|
|
15
18
|
}
|
|
16
19
|
};
|
|
17
20
|
el === null || el === void 0 ? void 0 : el.addEventListener("keydown", cb);
|
|
@@ -20,3 +23,4 @@ export function useSelectionKeys(ref, dispatch, ids) {
|
|
|
20
23
|
};
|
|
21
24
|
}, [ref, dispatch, ids]);
|
|
22
25
|
}
|
|
26
|
+
exports.useSelectionKeys = useSelectionKeys;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Selection = void 0;
|
|
4
|
+
var range_1 = require("./range");
|
|
2
5
|
var Selection = /** @class */ (function () {
|
|
3
6
|
function Selection(ranges, currentIndex, direction, items) {
|
|
4
7
|
var _this = this;
|
|
@@ -123,7 +126,7 @@ var Selection = /** @class */ (function () {
|
|
|
123
126
|
return true;
|
|
124
127
|
};
|
|
125
128
|
Selection.prototype.addRange = function (start, end) {
|
|
126
|
-
var r = new Range(start, end);
|
|
129
|
+
var r = new range_1.Range(start, end);
|
|
127
130
|
// Keep ranges sorted by start
|
|
128
131
|
var index = this.ranges.findIndex(function (r) { return r.start >= start; });
|
|
129
132
|
if (index === -1)
|
|
@@ -186,4 +189,4 @@ var Selection = /** @class */ (function () {
|
|
|
186
189
|
};
|
|
187
190
|
return Selection;
|
|
188
191
|
}());
|
|
189
|
-
|
|
192
|
+
exports.Selection = Selection;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var selection_1 = require("./selection");
|
|
2
4
|
var createSelection = function () {
|
|
3
5
|
var ranges = [];
|
|
4
6
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
5
7
|
ranges[_i] = arguments[_i];
|
|
6
8
|
}
|
|
7
|
-
return new Selection(ranges);
|
|
9
|
+
return new selection_1.Selection(ranges);
|
|
8
10
|
};
|
|
9
11
|
describe("select", function () {
|
|
10
12
|
test("select one after end", function () {
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
import { ComponentType,
|
|
1
|
+
import { ComponentType, CSSProperties, MouseEvent, MouseEventHandler, MutableRefObject, ReactElement, Ref } from "react";
|
|
2
2
|
import { Action } from "./reducer";
|
|
3
3
|
import { SelectionData } from "./selection/selection";
|
|
4
|
-
export declare type Node<
|
|
4
|
+
export declare type Node<T = unknown> = {
|
|
5
5
|
id: string;
|
|
6
|
-
model:
|
|
6
|
+
model: T;
|
|
7
7
|
level: number;
|
|
8
|
-
children: Node<
|
|
9
|
-
parent: Node<
|
|
8
|
+
children: Node<T>[] | null;
|
|
9
|
+
parent: Node<T> | null;
|
|
10
10
|
isOpen: boolean;
|
|
11
11
|
rowIndex: number | null;
|
|
12
12
|
};
|
|
13
|
-
export declare type NodesById = {
|
|
14
|
-
[id: string]: Node
|
|
13
|
+
export declare type NodesById<T> = {
|
|
14
|
+
[id: string]: Node<T>;
|
|
15
15
|
};
|
|
16
|
-
export
|
|
16
|
+
export interface IdObj {
|
|
17
17
|
id: string;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
21
|
-
export declare type NodeRendererProps<M extends NodeModel> = {
|
|
18
|
+
}
|
|
19
|
+
export declare type NodeRendererProps<T> = {
|
|
22
20
|
preview: boolean;
|
|
23
|
-
node: Node<
|
|
24
|
-
props:
|
|
21
|
+
node: Node<T>;
|
|
22
|
+
props: {
|
|
23
|
+
style: CSSProperties;
|
|
24
|
+
ref: Ref<any>;
|
|
25
|
+
};
|
|
25
26
|
indent: number;
|
|
26
27
|
state: NodeState;
|
|
27
28
|
handlers: NodeHandlers;
|
|
@@ -38,67 +39,70 @@ export declare type NodeHandlers = {
|
|
|
38
39
|
toggleIsEditing: () => void;
|
|
39
40
|
rename: (name: string) => void;
|
|
40
41
|
};
|
|
41
|
-
export declare type NodeRenderer<
|
|
42
|
+
export declare type NodeRenderer<T> = ComponentType<NodeRendererProps<T>>;
|
|
42
43
|
export declare type OnMove = (dragIds: string[], parentId: string | null, index: number) => void;
|
|
43
44
|
export declare type IdHandler = (id: string) => void;
|
|
44
45
|
export declare type RenameHandler = (id: string, name: string) => void;
|
|
45
|
-
export declare type NodeClickHandler = (e: MouseEvent, n: Node) => void;
|
|
46
|
+
export declare type NodeClickHandler<T> = (e: MouseEvent, n: Node<T>) => void;
|
|
46
47
|
export declare type IndexClickHandler = (e: MouseEvent, index: number) => void;
|
|
47
48
|
export declare type SelectedCheck = (index: number) => boolean;
|
|
48
49
|
export declare type CursorLocation = {
|
|
49
|
-
parentId: string | null;
|
|
50
50
|
index: number | null;
|
|
51
51
|
level: number | null;
|
|
52
|
+
parentId: string | null;
|
|
52
53
|
};
|
|
53
54
|
export declare type DragItem = {
|
|
54
|
-
id: string;
|
|
55
55
|
dragIds: string[];
|
|
56
|
+
id: string;
|
|
56
57
|
};
|
|
57
58
|
export declare type SelectionState = {
|
|
58
|
-
ids: string[];
|
|
59
59
|
data: SelectionData | null;
|
|
60
|
+
ids: string[];
|
|
60
61
|
};
|
|
61
62
|
export declare type StateContext = {
|
|
62
|
-
visibleIds: string[];
|
|
63
|
-
editingId: string | null;
|
|
64
63
|
cursorLocation: CursorLocation | null;
|
|
64
|
+
editingId: string | null;
|
|
65
65
|
selection: SelectionState;
|
|
66
|
+
visibleIds: string[];
|
|
66
67
|
};
|
|
67
|
-
export
|
|
68
|
-
children: NodeRenderer<
|
|
69
|
-
data:
|
|
70
|
-
width: number;
|
|
68
|
+
export interface TreeProps<T> {
|
|
69
|
+
children: NodeRenderer<T>;
|
|
70
|
+
data: T;
|
|
71
71
|
height: number;
|
|
72
|
+
width: number;
|
|
73
|
+
className?: string | undefined;
|
|
74
|
+
getChildren?: (model: T) => T[] | undefined;
|
|
75
|
+
getIsOpen?: (model: T) => boolean;
|
|
76
|
+
handle?: Ref<TreeHandle>;
|
|
77
|
+
hideRoot?: boolean;
|
|
72
78
|
indent?: number;
|
|
73
|
-
|
|
79
|
+
onClose?: IdHandler;
|
|
74
80
|
onMove?: OnMove;
|
|
75
81
|
onOpen?: IdHandler;
|
|
76
|
-
onClose?: IdHandler;
|
|
77
82
|
onRename?: RenameHandler;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
export declare type TreeViewProviderProps = {
|
|
82
|
-
handle: ForwardedRef<TreeViewHandle>;
|
|
83
|
-
renderer: NodeRenderer<any>;
|
|
84
|
-
visibleNodes: Node[];
|
|
85
|
-
listRef: MutableRefObject<HTMLDivElement | null>;
|
|
83
|
+
rowHeight?: number;
|
|
84
|
+
}
|
|
85
|
+
export declare type TreeProviderProps<T> = {
|
|
86
86
|
children: ReactElement;
|
|
87
|
-
|
|
88
|
-
rowHeight: number;
|
|
89
|
-
width: number;
|
|
87
|
+
handle?: Ref<TreeHandle>;
|
|
90
88
|
height: number;
|
|
89
|
+
indent: number;
|
|
90
|
+
listRef: MutableRefObject<HTMLDivElement | null>;
|
|
91
|
+
onClose: IdHandler;
|
|
91
92
|
onMove: OnMove;
|
|
92
93
|
onOpen: IdHandler;
|
|
93
|
-
onClose: IdHandler;
|
|
94
94
|
onRename: RenameHandler;
|
|
95
|
+
renderer: NodeRenderer<any>;
|
|
96
|
+
rowHeight: number;
|
|
97
|
+
visibleNodes: Node<T>[];
|
|
98
|
+
width: number;
|
|
95
99
|
};
|
|
96
|
-
export declare type StaticContext =
|
|
100
|
+
export declare type StaticContext<T> = TreeProviderProps<T> & {
|
|
97
101
|
dispatch: (a: Action) => void;
|
|
98
|
-
getNode: (id: string) => Node | null;
|
|
102
|
+
getNode: (id: string) => Node<T> | null;
|
|
99
103
|
};
|
|
100
|
-
export declare type
|
|
104
|
+
export declare type TreeHandle = {
|
|
105
|
+
edit: (id: string) => void;
|
|
101
106
|
selectedIds: string[];
|
|
102
107
|
selectId: (id: string) => void;
|
|
103
|
-
edit: (id: string) => void;
|
|
104
108
|
};
|
package/dist/lib/types.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import { Node
|
|
1
|
+
import { Node } from "./types";
|
|
2
2
|
export declare function bound(n: number, min: number, max: number): number;
|
|
3
3
|
export declare const isFolder: (node: Node<any>) => boolean;
|
|
4
|
-
export declare const isHiddenRoot: (node: Node) => boolean;
|
|
5
4
|
/**
|
|
6
5
|
* Is first param a decendent of the second param
|
|
7
6
|
*/
|
|
8
7
|
export declare const isDecendent: (a: Node, b: Node) => boolean;
|
|
9
8
|
export declare const indexOf: (node: Node) => number;
|
|
10
|
-
export declare function enrichTree(model: NodeModel, hideRoot?: boolean): Node;
|
|
11
|
-
export declare function flattenTree(root: Node): Node[];
|
|
12
|
-
export declare function createNode(model: NodeModel, level: number, parent: Node | null, children: Node[] | null): Node;
|
|
13
9
|
export declare function noop(): void;
|
package/dist/lib/utils.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.noop = exports.indexOf = exports.isDecendent = exports.isFolder = exports.bound = void 0;
|
|
4
|
+
function bound(n, min, max) {
|
|
2
5
|
return Math.max(Math.min(n, max), min);
|
|
3
6
|
}
|
|
4
|
-
|
|
5
|
-
|
|
7
|
+
exports.bound = bound;
|
|
8
|
+
var isFolder = function (node) { return !!node.children; };
|
|
9
|
+
exports.isFolder = isFolder;
|
|
6
10
|
/**
|
|
7
11
|
* Is first param a decendent of the second param
|
|
8
12
|
*/
|
|
9
|
-
|
|
13
|
+
var isDecendent = function (a, b) {
|
|
10
14
|
var n = a;
|
|
11
15
|
while (n) {
|
|
12
16
|
if (n.id === b.id)
|
|
@@ -15,49 +19,12 @@ export var isDecendent = function (a, b) {
|
|
|
15
19
|
}
|
|
16
20
|
return false;
|
|
17
21
|
};
|
|
18
|
-
|
|
22
|
+
exports.isDecendent = isDecendent;
|
|
23
|
+
var indexOf = function (node) {
|
|
19
24
|
if (!node.parent)
|
|
20
25
|
throw Error("Node does not have a parent");
|
|
21
26
|
return node.parent.children.findIndex(function (c) { return c.id === node.id; });
|
|
22
27
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var n = createNode(m, level, parent, null);
|
|
27
|
-
if (m.children) {
|
|
28
|
-
n.children = m.children.map(function (child) {
|
|
29
|
-
return visitSelfAndChildren(child, level + 1, n);
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
return n;
|
|
33
|
-
}
|
|
34
|
-
return visitSelfAndChildren(model, hideRoot ? -1 : 0, null);
|
|
35
|
-
}
|
|
36
|
-
export function flattenTree(root) {
|
|
37
|
-
var list = [];
|
|
38
|
-
var index = 0;
|
|
39
|
-
function collect(node) {
|
|
40
|
-
var _a;
|
|
41
|
-
if (node.level >= 0) {
|
|
42
|
-
node.rowIndex = index++;
|
|
43
|
-
list.push(node);
|
|
44
|
-
}
|
|
45
|
-
if (node.isOpen) {
|
|
46
|
-
(_a = node.children) === null || _a === void 0 ? void 0 : _a.forEach(collect);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
collect(root);
|
|
50
|
-
return list;
|
|
51
|
-
}
|
|
52
|
-
export function createNode(model, level, parent, children) {
|
|
53
|
-
return {
|
|
54
|
-
id: model.id,
|
|
55
|
-
level: level,
|
|
56
|
-
parent: parent,
|
|
57
|
-
children: children,
|
|
58
|
-
isOpen: !!model.isOpen,
|
|
59
|
-
model: model,
|
|
60
|
-
rowIndex: null,
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
export function noop() { }
|
|
28
|
+
exports.indexOf = indexOf;
|
|
29
|
+
function noop() { }
|
|
30
|
+
exports.noop = noop;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-arborist",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/lib"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"scripts": {
|
|
16
16
|
"start": "react-scripts start",
|
|
17
|
-
"build": "tsc --noEmit false --outDir dist --declaration",
|
|
17
|
+
"build": "tsc --noEmit false --outDir dist --declaration --module CommonJS",
|
|
18
18
|
"test": "react-scripts test",
|
|
19
19
|
"eject": "react-scripts eject"
|
|
20
20
|
},
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
]
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"react": "
|
|
41
|
-
"react-dom": "
|
|
40
|
+
"react": ">= 16.14",
|
|
41
|
+
"react-dom": ">= 16.14"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@testing-library/jest-dom": "^5.11.4",
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"@testing-library/user-event": "^12.1.10",
|
|
47
47
|
"@types/jest": "^26.0.15",
|
|
48
48
|
"@types/node": "^12.0.0",
|
|
49
|
-
"@types/react": "^
|
|
50
|
-
"@types/react-dom": "^
|
|
49
|
+
"@types/react": "^16.8.0",
|
|
50
|
+
"@types/react-dom": "^16.8.0",
|
|
51
51
|
"@types/react-window": "^1.8.5",
|
|
52
52
|
"classnames": "^2.3.1",
|
|
53
53
|
"react": "^17.0.2",
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
import { forwardRef, useMemo, useRef } from "react";
|
|
14
|
-
import { DndProvider, useDrop } from "react-dnd";
|
|
15
|
-
import { HTML5Backend } from "react-dnd-html5-backend";
|
|
16
|
-
import { FixedSizeList } from "react-window";
|
|
17
|
-
import { TreeViewProvider, useStaticContext } from "../context";
|
|
18
|
-
import { computeDrop } from "../dnd/compute-drop";
|
|
19
|
-
import { setCursorLocation } from "../reducer";
|
|
20
|
-
import { enrichTree, flattenTree, noop } from "../utils";
|
|
21
|
-
import { Preview } from "./preview";
|
|
22
|
-
import { Row } from "./row";
|
|
23
|
-
function TreeListComponent(props, ref) {
|
|
24
|
-
var root = useMemo(function () { return enrichTree(props.data, props.hideRoot); }, [props.data, props.hideRoot]);
|
|
25
|
-
var visibleNodes = useMemo(function () { return flattenTree(root); }, [root]);
|
|
26
|
-
var listRef = useRef(null);
|
|
27
|
-
return (_jsx(TreeViewProvider, __assign({ handle: ref, visibleNodes: visibleNodes, listRef: listRef, renderer: props.children, width: props.width, height: props.height, indent: props.indent || 12, rowHeight: props.rowHeight || 24, onClose: props.onClose || noop, onMove: props.onMove || noop, onOpen: props.onOpen || noop, onRename: props.onRename || noop }, { children: _jsxs(DndProvider, __assign({ backend: HTML5Backend }, { children: [_jsx(OuterDrop, { children: _jsx(List, { className: props.className }, void 0) }, void 0), _jsx(Preview, {}, void 0)] }), void 0) }), void 0));
|
|
28
|
-
}
|
|
29
|
-
function OuterDrop(props) {
|
|
30
|
-
var treeList = useStaticContext();
|
|
31
|
-
// In case we drop an item at the bottom of the list
|
|
32
|
-
var _a = useDrop(function () { return ({
|
|
33
|
-
accept: "NODE",
|
|
34
|
-
hover: function (item, m) {
|
|
35
|
-
if (!m.isOver({ shallow: true }))
|
|
36
|
-
return;
|
|
37
|
-
var offset = m.getClientOffset();
|
|
38
|
-
if (!treeList.listRef.current || !offset)
|
|
39
|
-
return;
|
|
40
|
-
var cursor = computeDrop({
|
|
41
|
-
element: treeList.listRef.current,
|
|
42
|
-
offset: offset,
|
|
43
|
-
indent: treeList.indent,
|
|
44
|
-
node: null,
|
|
45
|
-
prevNode: treeList.visibleNodes[treeList.visibleNodes.length - 1],
|
|
46
|
-
nextNode: null,
|
|
47
|
-
}).cursor;
|
|
48
|
-
treeList.dispatch(setCursorLocation(cursor));
|
|
49
|
-
},
|
|
50
|
-
drop: function (item, m) {
|
|
51
|
-
if (m.didDrop())
|
|
52
|
-
return;
|
|
53
|
-
console.log("drop!!");
|
|
54
|
-
var offset = m.getClientOffset();
|
|
55
|
-
if (!treeList.listRef.current || !offset)
|
|
56
|
-
return;
|
|
57
|
-
var _a = computeDrop({
|
|
58
|
-
element: treeList.listRef.current,
|
|
59
|
-
offset: offset,
|
|
60
|
-
indent: treeList.indent,
|
|
61
|
-
node: null,
|
|
62
|
-
prevNode: treeList.visibleNodes[treeList.visibleNodes.length - 1],
|
|
63
|
-
nextNode: null,
|
|
64
|
-
}), parentId = _a.parentId, index = _a.index;
|
|
65
|
-
return { parentId: parentId, index: index };
|
|
66
|
-
},
|
|
67
|
-
}); }, [treeList]), drop = _a[1];
|
|
68
|
-
drop(treeList.listRef);
|
|
69
|
-
return props.children;
|
|
70
|
-
}
|
|
71
|
-
function List(props) {
|
|
72
|
-
var treeList = useStaticContext();
|
|
73
|
-
return (_jsx(FixedSizeList, __assign({ className: props.className, outerRef: treeList.listRef, itemCount: treeList.visibleNodes.length, height: treeList.height, width: treeList.width, itemSize: treeList.rowHeight }, { children: Row }), void 0));
|
|
74
|
-
}
|
|
75
|
-
export var TreeList = forwardRef(TreeListComponent);
|