tree-element 0.1.1 → 0.3.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.
Files changed (155) hide show
  1. package/README.md +43 -31
  2. package/lib/animation.d.ts +2 -2
  3. package/lib/animation.d.ts.map +1 -1
  4. package/lib/animation.js +16 -12
  5. package/lib/animation.js.map +1 -1
  6. package/lib/classNames.d.ts.map +1 -1
  7. package/lib/classNames.js +2 -2
  8. package/lib/classNames.js.map +1 -1
  9. package/lib/dataLoader.d.ts +1 -0
  10. package/lib/dataLoader.d.ts.map +1 -1
  11. package/lib/dataLoader.js +22 -20
  12. package/lib/dataLoader.js.map +1 -1
  13. package/lib/dragAndDropHandler/binarySearch.js +3 -3
  14. package/lib/dragAndDropHandler/binarySearch.js.map +1 -1
  15. package/lib/dragAndDropHandler/dragElement.d.ts.map +1 -1
  16. package/lib/dragAndDropHandler/dragElement.js +11 -13
  17. package/lib/dragAndDropHandler/dragElement.js.map +1 -1
  18. package/lib/dragAndDropHandler/generateHitAreas.d.ts.map +1 -1
  19. package/lib/dragAndDropHandler/generateHitAreas.js +25 -25
  20. package/lib/dragAndDropHandler/generateHitAreas.js.map +1 -1
  21. package/lib/dragAndDropHandler/index.d.ts.map +1 -1
  22. package/lib/dragAndDropHandler/index.js +125 -158
  23. package/lib/dragAndDropHandler/index.js.map +1 -1
  24. package/lib/dragAndDropHandler/iterateVisibleNodes.d.ts.map +1 -1
  25. package/lib/dragAndDropHandler/iterateVisibleNodes.js +23 -22
  26. package/lib/dragAndDropHandler/iterateVisibleNodes.js.map +1 -1
  27. package/lib/dragAndDropHandler/types.d.ts.map +1 -1
  28. package/lib/elementsRenderer.d.ts +20 -7
  29. package/lib/elementsRenderer.d.ts.map +1 -1
  30. package/lib/elementsRenderer.js +195 -136
  31. package/lib/elementsRenderer.js.map +1 -1
  32. package/lib/events.d.ts +44 -11
  33. package/lib/events.d.ts.map +1 -1
  34. package/lib/index.d.ts +36 -13
  35. package/lib/index.d.ts.map +1 -1
  36. package/lib/index.js +386 -349
  37. package/lib/index.js.map +1 -1
  38. package/lib/keyHandler.d.ts +13 -8
  39. package/lib/keyHandler.d.ts.map +1 -1
  40. package/lib/keyHandler.js +106 -51
  41. package/lib/keyHandler.js.map +1 -1
  42. package/lib/methodTypes.d.ts +3 -3
  43. package/lib/methodTypes.d.ts.map +1 -1
  44. package/lib/mouseHandler.d.ts +1 -1
  45. package/lib/mouseHandler.d.ts.map +1 -1
  46. package/lib/mouseHandler.js +36 -49
  47. package/lib/mouseHandler.js.map +1 -1
  48. package/lib/mouseUtils.d.ts.map +1 -1
  49. package/lib/mouseUtils.js +2 -2
  50. package/lib/mouseUtils.js.map +1 -1
  51. package/lib/node.d.ts +47 -16
  52. package/lib/node.d.ts.map +1 -1
  53. package/lib/node.js +169 -171
  54. package/lib/node.js.map +1 -1
  55. package/lib/nodeElement/borderDropHint.d.ts.map +1 -1
  56. package/lib/nodeElement/borderDropHint.js +4 -5
  57. package/lib/nodeElement/borderDropHint.js.map +1 -1
  58. package/lib/nodeElement/folderElement.d.ts +8 -5
  59. package/lib/nodeElement/folderElement.d.ts.map +1 -1
  60. package/lib/nodeElement/folderElement.js +75 -67
  61. package/lib/nodeElement/folderElement.js.map +1 -1
  62. package/lib/nodeElement/ghostDropHint.d.ts.map +1 -1
  63. package/lib/nodeElement/ghostDropHint.js +13 -13
  64. package/lib/nodeElement/ghostDropHint.js.map +1 -1
  65. package/lib/nodeElement/index.d.ts +2 -1
  66. package/lib/nodeElement/index.d.ts.map +1 -1
  67. package/lib/nodeElement/index.js +38 -30
  68. package/lib/nodeElement/index.js.map +1 -1
  69. package/lib/nodeUtils.d.ts.map +1 -1
  70. package/lib/nodeUtils.js +1 -1
  71. package/lib/nodeUtils.js.map +1 -1
  72. package/lib/options.d.ts +19 -3
  73. package/lib/options.d.ts.map +1 -1
  74. package/lib/positionUtils.js +3 -3
  75. package/lib/positionUtils.js.map +1 -1
  76. package/lib/requestUrl.d.ts +1 -1
  77. package/lib/requestUrl.d.ts.map +1 -1
  78. package/lib/requestUrl.js +6 -17
  79. package/lib/requestUrl.js.map +1 -1
  80. package/lib/saveStateHandler.d.ts.map +1 -1
  81. package/lib/saveStateHandler.js +59 -89
  82. package/lib/saveStateHandler.js.map +1 -1
  83. package/lib/scrollHandler/containerScrollParent.d.ts.map +1 -1
  84. package/lib/scrollHandler/containerScrollParent.js +11 -18
  85. package/lib/scrollHandler/containerScrollParent.js.map +1 -1
  86. package/lib/scrollHandler/createScrollParent.d.ts.map +1 -1
  87. package/lib/scrollHandler/createScrollParent.js +12 -13
  88. package/lib/scrollHandler/createScrollParent.js.map +1 -1
  89. package/lib/scrollHandler/documentScrollParent.d.ts.map +1 -1
  90. package/lib/scrollHandler/documentScrollParent.js +18 -27
  91. package/lib/scrollHandler/documentScrollParent.js.map +1 -1
  92. package/lib/scrollHandler/scrollParent.d.ts.map +1 -1
  93. package/lib/scrollHandler/scrollParent.js +30 -34
  94. package/lib/scrollHandler/scrollParent.js.map +1 -1
  95. package/lib/scrollHandler.d.ts.map +1 -1
  96. package/lib/scrollHandler.js +11 -14
  97. package/lib/scrollHandler.js.map +1 -1
  98. package/lib/selectNodeHandler.d.ts +4 -2
  99. package/lib/selectNodeHandler.d.ts.map +1 -1
  100. package/lib/selectNodeHandler.js +64 -83
  101. package/lib/selectNodeHandler.js.map +1 -1
  102. package/lib/setDefaultOptions.d.ts.map +1 -1
  103. package/lib/setDefaultOptions.js +34 -38
  104. package/lib/setDefaultOptions.js.map +1 -1
  105. package/lib/triggerCustomEvent.d.ts.map +1 -1
  106. package/lib/triggerCustomEvent.js +2 -2
  107. package/lib/triggerCustomEvent.js.map +1 -1
  108. package/lib/util.d.ts.map +1 -1
  109. package/lib/util.js +2 -2
  110. package/lib/util.js.map +1 -1
  111. package/lib/version.d.ts +1 -1
  112. package/lib/version.js +1 -1
  113. package/lib/version.js.map +1 -1
  114. package/package.json +43 -32
  115. package/src/animation.ts +14 -12
  116. package/src/classNames.ts +52 -52
  117. package/src/dataLoader.ts +79 -71
  118. package/src/dragAndDropHandler/binarySearch.ts +17 -17
  119. package/src/dragAndDropHandler/dragElement.ts +51 -50
  120. package/src/dragAndDropHandler/generateHitAreas.ts +156 -161
  121. package/src/dragAndDropHandler/index.ts +334 -348
  122. package/src/dragAndDropHandler/iterateVisibleNodes.ts +61 -63
  123. package/src/dragAndDropHandler/types.ts +5 -5
  124. package/src/elementsRenderer.ts +377 -294
  125. package/src/events.ts +241 -208
  126. package/src/header.txt +1 -1
  127. package/src/index.ts +259 -229
  128. package/src/keyHandler.ts +179 -115
  129. package/src/methodTypes.ts +7 -10
  130. package/src/mouseHandler.ts +316 -316
  131. package/src/mouseUtils.ts +14 -14
  132. package/src/node.ts +773 -771
  133. package/src/nodeElement/borderDropHint.ts +25 -25
  134. package/src/nodeElement/folderElement.ts +116 -102
  135. package/src/nodeElement/ghostDropHint.ts +64 -62
  136. package/src/nodeElement/index.ts +81 -73
  137. package/src/nodeUtils.ts +5 -5
  138. package/src/options.ts +25 -5
  139. package/src/requestUrl.ts +7 -14
  140. package/src/saveStateHandler.ts +191 -207
  141. package/src/scrollHandler/containerScrollParent.ts +40 -49
  142. package/src/scrollHandler/createScrollParent.ts +26 -27
  143. package/src/scrollHandler/documentScrollParent.ts +66 -72
  144. package/src/scrollHandler/scrollParent.ts +90 -86
  145. package/src/scrollHandler.ts +45 -45
  146. package/src/selectNodeHandler.ts +171 -165
  147. package/src/setDefaultOptions.ts +44 -32
  148. package/src/triggerCustomEvent.ts +7 -3
  149. package/src/util.ts +2 -3
  150. package/src/version.ts +1 -1
  151. package/tree_element.css +87 -69
  152. package/tree_element.debug.js +3866 -3831
  153. package/tree_element.debug.js.map +1 -1
  154. package/tree_element.js +2 -2
  155. package/tree_element.js.map +1 -1
@@ -1,91 +1,89 @@
1
1
  import type { Node } from "../node";
2
2
 
3
3
  interface Options {
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: (
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
- handleOpenFolder: (node: Node, element: HTMLElement) => boolean;
19
+ handleOpenFolder: (node: Node, element: HTMLElement) => boolean;
24
20
  }
25
21
 
26
22
  const iterateVisibleNodes = (
27
- tree: Node,
28
- {
29
- handleAfterOpenFolder,
30
- handleClosedFolder,
31
- handleFirstNode,
32
- handleNode,
33
- handleOpenFolder,
34
- }: Options,
23
+ tree: Node,
24
+ {
25
+ handleAfterOpenFolder,
26
+ handleClosedFolder,
27
+ handleFirstNode,
28
+ handleNode,
29
+ handleOpenFolder,
30
+ }: Options,
35
31
  ) => {
36
- let isFirstNode = true;
32
+ let isFirstNode = true;
37
33
 
38
- const iterate = (node: Node, nextNode: Node | null): void => {
39
- let mustIterateInside =
40
- (node.is_open === true || !node.element) && node.hasChildren();
34
+ const iterate = (node: Node, nextNode: Node | null): void => {
35
+ let mustIterateInside =
36
+ (node.is_open === true || !node.element) && node.hasChildren();
41
37
 
42
- let element: HTMLElement | null = null;
38
+ let element: HTMLElement | null = null;
43
39
 
44
- // Is the element visible?
45
- if (node.element?.offsetParent) {
46
- element = node.element;
40
+ // Is the element visible?
41
+ if (node.element?.offsetParent) {
42
+ element = node.element;
47
43
 
48
- if (isFirstNode) {
49
- handleFirstNode(node);
50
- isFirstNode = false;
51
- }
44
+ if (isFirstNode) {
45
+ handleFirstNode(node);
46
+ isFirstNode = false;
47
+ }
52
48
 
53
- if (!node.hasChildren()) {
54
- handleNode(node, nextNode, node.element);
55
- } else if (node.is_open) {
56
- if (!handleOpenFolder(node, node.element)) {
57
- mustIterateInside = false;
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
- if (mustIterateInside) {
65
- const childrenLength = node.children.length;
66
- node.children.forEach((_, i) => {
67
- const child = node.children[i];
60
+ if (!mustIterateInside) {
61
+ return;
62
+ }
68
63
 
69
- if (child) {
70
- if (i === childrenLength - 1) {
71
- iterate(child, null);
72
- } else {
73
- const nextChild = node.children[i + 1];
64
+ const childrenLength = node.children.length;
65
+ for (const i of node.children.keys()) {
66
+ const child = node.children[i];
74
67
 
75
- if (nextChild) {
76
- iterate(child, nextChild);
77
- }
78
- }
79
- }
80
- });
68
+ if (child) {
69
+ if (i === childrenLength - 1) {
70
+ iterate(child, null);
71
+ } else {
72
+ const nextChild = node.children[i + 1];
81
73
 
82
- if (node.is_open && element) {
83
- handleAfterOpenFolder(node, nextNode);
84
- }
74
+ if (nextChild) {
75
+ iterate(child, nextChild);
76
+ }
85
77
  }
86
- };
78
+ }
79
+ }
87
80
 
88
- iterate(tree, null);
81
+ if (node.is_open && element) {
82
+ handleAfterOpenFolder(node, nextNode);
83
+ }
84
+ };
85
+
86
+ iterate(tree, null);
89
87
  };
90
88
 
91
89
  export default iterateVisibleNodes;
@@ -1,12 +1,12 @@
1
1
  import type { Node, Position } from "../node";
2
2
 
3
3
  export interface DropHint {
4
- remove: () => void;
4
+ remove: () => void;
5
5
  }
6
6
 
7
7
  export interface HitArea {
8
- bottom: number;
9
- node: Node;
10
- position: Position;
11
- top: number;
8
+ bottom: number;
9
+ node: Node;
10
+ position: Position;
11
+ top: number;
12
12
  }