tree-element 0.1.0 → 0.2.0
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 +49 -29
- package/lib/animation.js +5 -5
- package/lib/animation.js.map +1 -1
- package/lib/classNames.d.ts.map +1 -1
- package/lib/classNames.js +2 -2
- package/lib/classNames.js.map +1 -1
- package/lib/dataLoader.d.ts.map +1 -1
- package/lib/dataLoader.js +18 -21
- package/lib/dataLoader.js.map +1 -1
- package/lib/dragAndDropHandler/binarySearch.js +3 -3
- package/lib/dragAndDropHandler/binarySearch.js.map +1 -1
- package/lib/dragAndDropHandler/dragElement.d.ts.map +1 -1
- package/lib/dragAndDropHandler/dragElement.js +9 -12
- package/lib/dragAndDropHandler/dragElement.js.map +1 -1
- package/lib/dragAndDropHandler/generateHitAreas.d.ts.map +1 -1
- package/lib/dragAndDropHandler/generateHitAreas.js +25 -25
- package/lib/dragAndDropHandler/generateHitAreas.js.map +1 -1
- package/lib/dragAndDropHandler/index.d.ts.map +1 -1
- package/lib/dragAndDropHandler/index.js +90 -114
- package/lib/dragAndDropHandler/index.js.map +1 -1
- package/lib/dragAndDropHandler/iterateVisibleNodes.d.ts.map +1 -1
- package/lib/dragAndDropHandler/iterateVisibleNodes.js +10 -10
- package/lib/dragAndDropHandler/iterateVisibleNodes.js.map +1 -1
- package/lib/dragAndDropHandler/types.d.ts.map +1 -1
- package/lib/elementsRenderer.d.ts +15 -6
- package/lib/elementsRenderer.d.ts.map +1 -1
- package/lib/elementsRenderer.js +157 -121
- package/lib/elementsRenderer.js.map +1 -1
- package/lib/events.d.ts +11 -4
- package/lib/events.d.ts.map +1 -1
- package/lib/index.d.ts +5 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +249 -252
- package/lib/index.js.map +1 -1
- package/lib/keyHandler.d.ts +2 -3
- package/lib/keyHandler.d.ts.map +1 -1
- package/lib/keyHandler.js +26 -25
- package/lib/keyHandler.js.map +1 -1
- package/lib/methodTypes.d.ts +1 -1
- package/lib/methodTypes.d.ts.map +1 -1
- package/lib/mouseHandler.d.ts.map +1 -1
- package/lib/mouseHandler.js +26 -42
- package/lib/mouseHandler.js.map +1 -1
- package/lib/mouseUtils.d.ts.map +1 -1
- package/lib/mouseUtils.js +2 -2
- package/lib/mouseUtils.js.map +1 -1
- package/lib/node.d.ts +2 -1
- package/lib/node.d.ts.map +1 -1
- package/lib/node.js +36 -35
- package/lib/node.js.map +1 -1
- package/lib/nodeElement/borderDropHint.d.ts.map +1 -1
- package/lib/nodeElement/borderDropHint.js +4 -5
- package/lib/nodeElement/borderDropHint.js.map +1 -1
- package/lib/nodeElement/folderElement.d.ts +7 -4
- package/lib/nodeElement/folderElement.d.ts.map +1 -1
- package/lib/nodeElement/folderElement.js +61 -42
- package/lib/nodeElement/folderElement.js.map +1 -1
- package/lib/nodeElement/ghostDropHint.d.ts.map +1 -1
- package/lib/nodeElement/ghostDropHint.js +5 -9
- package/lib/nodeElement/ghostDropHint.js.map +1 -1
- package/lib/nodeElement/index.d.ts +2 -1
- package/lib/nodeElement/index.d.ts.map +1 -1
- package/lib/nodeElement/index.js +34 -26
- package/lib/nodeElement/index.js.map +1 -1
- package/lib/nodeUtils.d.ts.map +1 -1
- package/lib/nodeUtils.js +1 -1
- package/lib/nodeUtils.js.map +1 -1
- package/lib/options.d.ts.map +1 -1
- package/lib/positionUtils.js +3 -3
- package/lib/positionUtils.js.map +1 -1
- package/lib/requestUrl.d.ts +1 -1
- package/lib/requestUrl.d.ts.map +1 -1
- package/lib/requestUrl.js +4 -6
- package/lib/requestUrl.js.map +1 -1
- package/lib/saveStateHandler.d.ts.map +1 -1
- package/lib/saveStateHandler.js +38 -48
- package/lib/saveStateHandler.js.map +1 -1
- package/lib/scrollHandler/containerScrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/containerScrollParent.js +9 -11
- package/lib/scrollHandler/containerScrollParent.js.map +1 -1
- package/lib/scrollHandler/createScrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/createScrollParent.js +10 -10
- package/lib/scrollHandler/createScrollParent.js.map +1 -1
- package/lib/scrollHandler/documentScrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/documentScrollParent.js +16 -19
- package/lib/scrollHandler/documentScrollParent.js.map +1 -1
- package/lib/scrollHandler/scrollParent.d.ts.map +1 -1
- package/lib/scrollHandler/scrollParent.js +11 -17
- package/lib/scrollHandler/scrollParent.js.map +1 -1
- package/lib/scrollHandler.d.ts.map +1 -1
- package/lib/scrollHandler.js +11 -14
- package/lib/scrollHandler.js.map +1 -1
- package/lib/selectNodeHandler.d.ts +2 -2
- package/lib/selectNodeHandler.d.ts.map +1 -1
- package/lib/selectNodeHandler.js +45 -54
- package/lib/selectNodeHandler.js.map +1 -1
- package/lib/setDefaultOptions.d.ts.map +1 -1
- package/lib/setDefaultOptions.js +23 -28
- package/lib/setDefaultOptions.js.map +1 -1
- package/lib/triggerCustomEvent.d.ts.map +1 -1
- package/lib/triggerCustomEvent.js +2 -2
- package/lib/triggerCustomEvent.js.map +1 -1
- package/lib/util.d.ts.map +1 -1
- package/lib/util.js +2 -2
- package/lib/util.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +7 -3
- package/src/animation.ts +1 -1
- package/src/classNames.ts +52 -52
- package/src/dataLoader.ts +68 -70
- package/src/dragAndDropHandler/binarySearch.ts +17 -17
- package/src/dragAndDropHandler/dragElement.ts +50 -50
- package/src/dragAndDropHandler/generateHitAreas.ts +156 -161
- package/src/dragAndDropHandler/index.ts +342 -351
- package/src/dragAndDropHandler/iterateVisibleNodes.ts +59 -63
- package/src/dragAndDropHandler/types.ts +5 -5
- package/src/elementsRenderer.ts +351 -298
- package/src/events.ts +216 -209
- package/src/header.txt +1 -1
- package/src/index.ts +52 -82
- package/src/keyHandler.ts +125 -115
- package/src/methodTypes.ts +4 -7
- package/src/mouseHandler.ts +314 -317
- package/src/mouseUtils.ts +14 -14
- package/src/node.ts +761 -766
- package/src/nodeElement/borderDropHint.ts +25 -25
- package/src/nodeElement/folderElement.ts +135 -112
- package/src/nodeElement/ghostDropHint.ts +62 -62
- package/src/nodeElement/index.ts +88 -74
- package/src/nodeUtils.ts +5 -5
- package/src/options.ts +6 -2
- package/src/requestUrl.ts +3 -3
- package/src/saveStateHandler.ts +204 -206
- package/src/scrollHandler/containerScrollParent.ts +49 -52
- package/src/scrollHandler/createScrollParent.ts +27 -27
- package/src/scrollHandler/documentScrollParent.ts +70 -70
- package/src/scrollHandler/scrollParent.ts +98 -98
- package/src/scrollHandler.ts +45 -45
- package/src/selectNodeHandler.ts +176 -166
- package/src/setDefaultOptions.ts +25 -22
- package/src/triggerCustomEvent.ts +7 -3
- package/src/util.ts +2 -2
- package/src/version.ts +1 -1
- package/tree_element.debug.js +3770 -3799
- package/tree_element.debug.js.map +1 -1
- package/tree_element.js +2 -2
- package/tree_element.js.map +1 -1
|
@@ -1,91 +1,87 @@
|
|
|
1
1
|
import type { Node } from "../node";
|
|
2
2
|
|
|
3
3
|
interface Options {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
node: Node,
|
|
13
|
-
nextNode: Node | null,
|
|
14
|
-
element: HTMLElement,
|
|
15
|
-
) => void;
|
|
4
|
+
handleAfterOpenFolder: (node: Node, nextNode: Node | null) => void;
|
|
5
|
+
handleClosedFolder: (
|
|
6
|
+
node: Node,
|
|
7
|
+
nextNode: Node | null,
|
|
8
|
+
element: HTMLElement,
|
|
9
|
+
) => void;
|
|
10
|
+
handleFirstNode: (node: Node) => void;
|
|
11
|
+
handleNode: (node: Node, nextNode: Node | null, element: HTMLElement) => void;
|
|
16
12
|
|
|
17
|
-
|
|
13
|
+
/*
|
|
18
14
|
override
|
|
19
15
|
return
|
|
20
16
|
- true: continue iterating
|
|
21
17
|
- false: stop iterating
|
|
22
18
|
*/
|
|
23
|
-
|
|
19
|
+
handleOpenFolder: (node: Node, element: HTMLElement) => boolean;
|
|
24
20
|
}
|
|
25
21
|
|
|
26
22
|
const iterateVisibleNodes = (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
23
|
+
tree: Node,
|
|
24
|
+
{
|
|
25
|
+
handleAfterOpenFolder,
|
|
26
|
+
handleClosedFolder,
|
|
27
|
+
handleFirstNode,
|
|
28
|
+
handleNode,
|
|
29
|
+
handleOpenFolder,
|
|
30
|
+
}: Options,
|
|
35
31
|
) => {
|
|
36
|
-
|
|
32
|
+
let isFirstNode = true;
|
|
37
33
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
const iterate = (node: Node, nextNode: Node | null): void => {
|
|
35
|
+
let mustIterateInside =
|
|
36
|
+
(node.is_open === true || !node.element) && node.hasChildren();
|
|
41
37
|
|
|
42
|
-
|
|
38
|
+
let element: HTMLElement | null = null;
|
|
43
39
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
// Is the element visible?
|
|
41
|
+
if (node.element?.offsetParent) {
|
|
42
|
+
element = node.element;
|
|
47
43
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
44
|
+
if (isFirstNode) {
|
|
45
|
+
handleFirstNode(node);
|
|
46
|
+
isFirstNode = false;
|
|
47
|
+
}
|
|
52
48
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
} else {
|
|
60
|
-
handleClosedFolder(node, nextNode, element);
|
|
61
|
-
}
|
|
49
|
+
if (!node.hasChildren()) {
|
|
50
|
+
handleNode(node, nextNode, node.element);
|
|
51
|
+
} else if (node.is_open) {
|
|
52
|
+
if (!handleOpenFolder(node, node.element)) {
|
|
53
|
+
mustIterateInside = false;
|
|
62
54
|
}
|
|
55
|
+
} else {
|
|
56
|
+
handleClosedFolder(node, nextNode, element);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
63
59
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
if (mustIterateInside) {
|
|
61
|
+
const childrenLength = node.children.length;
|
|
62
|
+
node.children.forEach((_, i) => {
|
|
63
|
+
const child = node.children[i];
|
|
68
64
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
65
|
+
if (child) {
|
|
66
|
+
if (i === childrenLength - 1) {
|
|
67
|
+
iterate(child, null);
|
|
68
|
+
} else {
|
|
69
|
+
const nextChild = node.children[i + 1];
|
|
74
70
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
if (node.is_open && element) {
|
|
83
|
-
handleAfterOpenFolder(node, nextNode);
|
|
71
|
+
if (nextChild) {
|
|
72
|
+
iterate(child, nextChild);
|
|
84
73
|
}
|
|
74
|
+
}
|
|
85
75
|
}
|
|
86
|
-
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
if (node.is_open && element) {
|
|
79
|
+
handleAfterOpenFolder(node, nextNode);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
87
83
|
|
|
88
|
-
|
|
84
|
+
iterate(tree, null);
|
|
89
85
|
};
|
|
90
86
|
|
|
91
87
|
export default iterateVisibleNodes;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { Node, Position } from "../node";
|
|
2
2
|
|
|
3
3
|
export interface DropHint {
|
|
4
|
-
|
|
4
|
+
remove: () => void;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
export interface HitArea {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
bottom: number;
|
|
9
|
+
node: Node;
|
|
10
|
+
position: Position;
|
|
11
|
+
top: number;
|
|
12
12
|
}
|