tree-element 0.1.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 (182) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +221 -0
  3. package/lib/animation.d.ts +5 -0
  4. package/lib/animation.d.ts.map +1 -0
  5. package/lib/animation.js +39 -0
  6. package/lib/animation.js.map +1 -0
  7. package/lib/classNames.d.ts +34 -0
  8. package/lib/classNames.d.ts.map +1 -0
  9. package/lib/classNames.js +39 -0
  10. package/lib/classNames.js.map +1 -0
  11. package/lib/dataLoader.d.ts +25 -0
  12. package/lib/dataLoader.d.ts.map +1 -0
  13. package/lib/dataLoader.js +69 -0
  14. package/lib/dataLoader.js.map +1 -0
  15. package/lib/dragAndDropHandler/binarySearch.d.ts +3 -0
  16. package/lib/dragAndDropHandler/binarySearch.d.ts.map +1 -0
  17. package/lib/dragAndDropHandler/binarySearch.js +23 -0
  18. package/lib/dragAndDropHandler/binarySearch.js.map +1 -0
  19. package/lib/dragAndDropHandler/dragElement.d.ts +20 -0
  20. package/lib/dragAndDropHandler/dragElement.d.ts.map +1 -0
  21. package/lib/dragAndDropHandler/dragElement.js +39 -0
  22. package/lib/dragAndDropHandler/dragElement.js.map +1 -0
  23. package/lib/dragAndDropHandler/generateHitAreas.d.ts +13 -0
  24. package/lib/dragAndDropHandler/generateHitAreas.d.ts.map +1 -0
  25. package/lib/dragAndDropHandler/generateHitAreas.js +130 -0
  26. package/lib/dragAndDropHandler/generateHitAreas.js.map +1 -0
  27. package/lib/dragAndDropHandler/index.d.ts +76 -0
  28. package/lib/dragAndDropHandler/index.d.ts.map +1 -0
  29. package/lib/dragAndDropHandler/index.js +311 -0
  30. package/lib/dragAndDropHandler/index.js.map +1 -0
  31. package/lib/dragAndDropHandler/iterateVisibleNodes.d.ts +11 -0
  32. package/lib/dragAndDropHandler/iterateVisibleNodes.d.ts.map +1 -0
  33. package/lib/dragAndDropHandler/iterateVisibleNodes.js +54 -0
  34. package/lib/dragAndDropHandler/iterateVisibleNodes.js.map +1 -0
  35. package/lib/dragAndDropHandler/types.d.ts +11 -0
  36. package/lib/dragAndDropHandler/types.d.ts.map +1 -0
  37. package/lib/elementsRenderer.d.ts +53 -0
  38. package/lib/elementsRenderer.d.ts.map +1 -0
  39. package/lib/elementsRenderer.js +251 -0
  40. package/lib/elementsRenderer.js.map +1 -0
  41. package/lib/events.d.ts +224 -0
  42. package/lib/events.d.ts.map +1 -0
  43. package/lib/index.d.ts +367 -0
  44. package/lib/index.d.ts.map +1 -0
  45. package/lib/index.js +1098 -0
  46. package/lib/index.js.map +1 -0
  47. package/lib/keyHandler.d.ts +29 -0
  48. package/lib/keyHandler.d.ts.map +1 -0
  49. package/lib/keyHandler.js +107 -0
  50. package/lib/keyHandler.js.map +1 -0
  51. package/lib/methodTypes.d.ts +21 -0
  52. package/lib/methodTypes.d.ts.map +1 -0
  53. package/lib/mouseHandler.d.ts +60 -0
  54. package/lib/mouseHandler.d.ts.map +1 -0
  55. package/lib/mouseHandler.js +283 -0
  56. package/lib/mouseHandler.js.map +1 -0
  57. package/lib/mouseUtils.d.ts +9 -0
  58. package/lib/mouseUtils.d.ts.map +1 -0
  59. package/lib/mouseUtils.js +15 -0
  60. package/lib/mouseUtils.js.map +1 -0
  61. package/lib/node.d.ts +320 -0
  62. package/lib/node.d.ts.map +1 -0
  63. package/lib/node.js +737 -0
  64. package/lib/node.js.map +1 -0
  65. package/lib/nodeElement/borderDropHint.d.ts +9 -0
  66. package/lib/nodeElement/borderDropHint.d.ts.map +1 -0
  67. package/lib/nodeElement/borderDropHint.js +24 -0
  68. package/lib/nodeElement/borderDropHint.js.map +1 -0
  69. package/lib/nodeElement/folderElement.d.ts +22 -0
  70. package/lib/nodeElement/folderElement.d.ts.map +1 -0
  71. package/lib/nodeElement/folderElement.js +100 -0
  72. package/lib/nodeElement/folderElement.js.map +1 -0
  73. package/lib/nodeElement/ghostDropHint.d.ts +18 -0
  74. package/lib/nodeElement/ghostDropHint.d.ts.map +1 -0
  75. package/lib/nodeElement/ghostDropHint.js +67 -0
  76. package/lib/nodeElement/ghostDropHint.js.map +1 -0
  77. package/lib/nodeElement/index.d.ts +28 -0
  78. package/lib/nodeElement/index.d.ts.map +1 -0
  79. package/lib/nodeElement/index.js +66 -0
  80. package/lib/nodeElement/index.js.map +1 -0
  81. package/lib/nodeUtils.d.ts +7 -0
  82. package/lib/nodeUtils.d.ts.map +1 -0
  83. package/lib/nodeUtils.js +4 -0
  84. package/lib/nodeUtils.js.map +1 -0
  85. package/lib/options.d.ts +310 -0
  86. package/lib/options.d.ts.map +1 -0
  87. package/lib/package.json +3 -0
  88. package/lib/positionUtils.d.ts +8 -0
  89. package/lib/positionUtils.d.ts.map +1 -0
  90. package/lib/positionUtils.js +14 -0
  91. package/lib/positionUtils.js.map +1 -0
  92. package/lib/requestUrl.d.ts +9 -0
  93. package/lib/requestUrl.d.ts.map +1 -0
  94. package/lib/requestUrl.js +37 -0
  95. package/lib/requestUrl.js.map +1 -0
  96. package/lib/saveStateHandler.d.ts +46 -0
  97. package/lib/saveStateHandler.d.ts.map +1 -0
  98. package/lib/saveStateHandler.js +204 -0
  99. package/lib/saveStateHandler.js.map +1 -0
  100. package/lib/scrollHandler/containerScrollParent.d.ts +12 -0
  101. package/lib/scrollHandler/containerScrollParent.d.ts.map +1 -0
  102. package/lib/scrollHandler/containerScrollParent.js +49 -0
  103. package/lib/scrollHandler/containerScrollParent.js.map +1 -0
  104. package/lib/scrollHandler/createScrollParent.d.ts +4 -0
  105. package/lib/scrollHandler/createScrollParent.d.ts.map +1 -0
  106. package/lib/scrollHandler/createScrollParent.js +38 -0
  107. package/lib/scrollHandler/createScrollParent.js.map +1 -0
  108. package/lib/scrollHandler/documentScrollParent.d.ts +22 -0
  109. package/lib/scrollHandler/documentScrollParent.d.ts.map +1 -0
  110. package/lib/scrollHandler/documentScrollParent.js +71 -0
  111. package/lib/scrollHandler/documentScrollParent.js.map +1 -0
  112. package/lib/scrollHandler/scrollParent.d.ts +26 -0
  113. package/lib/scrollHandler/scrollParent.d.ts.map +1 -0
  114. package/lib/scrollHandler/scrollParent.js +79 -0
  115. package/lib/scrollHandler/scrollParent.js.map +1 -0
  116. package/lib/scrollHandler.d.ts +20 -0
  117. package/lib/scrollHandler.d.ts.map +1 -0
  118. package/lib/scrollHandler.js +41 -0
  119. package/lib/scrollHandler.js.map +1 -0
  120. package/lib/selectNodeHandler.d.ts +38 -0
  121. package/lib/selectNodeHandler.d.ts.map +1 -0
  122. package/lib/selectNodeHandler.js +166 -0
  123. package/lib/selectNodeHandler.js.map +1 -0
  124. package/lib/setDefaultOptions.d.ts +4 -0
  125. package/lib/setDefaultOptions.d.ts.map +1 -0
  126. package/lib/setDefaultOptions.js +86 -0
  127. package/lib/setDefaultOptions.js.map +1 -0
  128. package/lib/triggerCustomEvent.d.ts +3 -0
  129. package/lib/triggerCustomEvent.d.ts.map +1 -0
  130. package/lib/triggerCustomEvent.js +13 -0
  131. package/lib/triggerCustomEvent.js.map +1 -0
  132. package/lib/util.d.ts +3 -0
  133. package/lib/util.d.ts.map +1 -0
  134. package/lib/util.js +5 -0
  135. package/lib/util.js.map +1 -0
  136. package/lib/version.d.ts +3 -0
  137. package/lib/version.d.ts.map +1 -0
  138. package/lib/version.js +5 -0
  139. package/lib/version.js.map +1 -0
  140. package/package.json +110 -0
  141. package/src/animation.ts +48 -0
  142. package/src/classNames.ts +70 -0
  143. package/src/dataLoader.ts +92 -0
  144. package/src/dragAndDropHandler/binarySearch.ts +27 -0
  145. package/src/dragAndDropHandler/dragElement.ts +62 -0
  146. package/src/dragAndDropHandler/generateHitAreas.ts +195 -0
  147. package/src/dragAndDropHandler/index.ts +442 -0
  148. package/src/dragAndDropHandler/iterateVisibleNodes.ts +91 -0
  149. package/src/dragAndDropHandler/types.ts +12 -0
  150. package/src/elementsRenderer.ts +367 -0
  151. package/src/events.ts +237 -0
  152. package/src/header.txt +16 -0
  153. package/src/index.ts +1290 -0
  154. package/src/keyHandler.ts +139 -0
  155. package/src/methodTypes.ts +44 -0
  156. package/src/mouseHandler.ts +391 -0
  157. package/src/mouseUtils.ts +23 -0
  158. package/src/node.ts +831 -0
  159. package/src/nodeElement/borderDropHint.ts +37 -0
  160. package/src/nodeElement/folderElement.ts +140 -0
  161. package/src/nodeElement/ghostDropHint.ts +84 -0
  162. package/src/nodeElement/index.ts +103 -0
  163. package/src/nodeUtils.ts +12 -0
  164. package/src/options.ts +325 -0
  165. package/src/positionUtils.ts +18 -0
  166. package/src/requestUrl.ts +41 -0
  167. package/src/saveStateHandler.ts +279 -0
  168. package/src/scrollHandler/containerScrollParent.ts +71 -0
  169. package/src/scrollHandler/createScrollParent.ts +51 -0
  170. package/src/scrollHandler/documentScrollParent.ts +104 -0
  171. package/src/scrollHandler/scrollParent.ts +117 -0
  172. package/src/scrollHandler.ts +55 -0
  173. package/src/selectNodeHandler.ts +192 -0
  174. package/src/setDefaultOptions.ts +79 -0
  175. package/src/triggerCustomEvent.ts +14 -0
  176. package/src/util.ts +5 -0
  177. package/src/version.ts +4 -0
  178. package/tree_element.css +195 -0
  179. package/tree_element.debug.js +4153 -0
  180. package/tree_element.debug.js.map +1 -0
  181. package/tree_element.js +21 -0
  182. package/tree_element.js.map +1 -0
package/lib/index.d.ts ADDED
@@ -0,0 +1,367 @@
1
+ import type { MoveInfo, TreeEvent, TreeEventName, TreeEvents } from "./events.js";
2
+ import type { NodeData, NodeId, Position } from "./node.js";
3
+ import type { TreeElementOptions } from "./options.js";
4
+ import type { SavedState } from "./saveStateHandler.js";
5
+ import type { SelectNodeOptions } from "./selectNodeHandler.js";
6
+ import { Node } from "./node.js";
7
+ export type { MoveInfo, Node, NodeData, NodeId, Position, SavedState, SelectNodeOptions, TreeElementOptions, TreeEvent, TreeEventName, TreeEvents, };
8
+ export type TriggerEventProvider = (element: HTMLElement, eventName: TreeEventName, values?: TreeEvents[TreeEventName]) => boolean;
9
+ interface TreeElementParams extends Partial<TreeElementOptions> {
10
+ /** The element the tree is rendered into. Its content is replaced. */
11
+ htmlElement: HTMLElement;
12
+ /** Replaces how events are dispatched. It must return whether the event
13
+ * was not cancelled. This exists for tests and for integrating with
14
+ * another event system. */
15
+ overrideTriggerEventProvider?: TriggerEventProvider;
16
+ }
17
+ export default class TreeElement {
18
+ /** @hidden */
19
+ tree: Node;
20
+ private classNames;
21
+ private dataLoader;
22
+ private dndHandler;
23
+ private htmlElement;
24
+ private isInitialized;
25
+ private keyHandler;
26
+ private mouseHandler;
27
+ private nodeMap;
28
+ private options;
29
+ private renderer;
30
+ private saveStateHandler;
31
+ private scrollHandler;
32
+ private selectNodeHandler;
33
+ private triggerEventProvider;
34
+ /** @hidden */
35
+ constructor({ htmlElement, overrideTriggerEventProvider, ...options }: TreeElementParams);
36
+ /**
37
+ * Adds a sibling after a node.
38
+ *
39
+ * @returns The new node, or `null` when the node has no parent.
40
+ * @group Changing the tree
41
+ */
42
+ addNodeAfter(nodeData: NodeData, existingNode: Node): Node | null;
43
+ /**
44
+ * Adds a sibling before a node.
45
+ *
46
+ * @returns The new node, or `null` when the node has no parent.
47
+ * @group Changing the tree
48
+ */
49
+ addNodeBefore(nodeData: NodeData, existingNode: Node): Node | null;
50
+ /**
51
+ * Inserts a new node between a node and its parent, taking the node as its
52
+ * child.
53
+ *
54
+ * @returns The new node, or `null` when the node has no parent.
55
+ * @group Changing the tree
56
+ */
57
+ addParentNode(nodeData: NodeData, existingNode: Node): Node | null;
58
+ /**
59
+ * Adds a node to the selection instead of replacing it.
60
+ *
61
+ * @param mustSetFocus - Move the focus to the node. Default `true`.
62
+ * @group Selection
63
+ */
64
+ addToSelection(node: Node, mustSetFocus?: boolean): void;
65
+ /**
66
+ * Adds a node as the last child of a parent.
67
+ *
68
+ * @example
69
+ * ```js
70
+ * tree.appendNode({ name: "child", id: 5 }, tree.getNodeById(1));
71
+ * ```
72
+ *
73
+ * @returns The new node.
74
+ * @group Changing the tree
75
+ */
76
+ appendNode(nodeData: NodeData, parentNode: Node): Node;
77
+ /**
78
+ * Closes a folder.
79
+ *
80
+ * @param slide - Override the `slide` option for this call.
81
+ * @group Opening and closing
82
+ */
83
+ closeNode(node: Node, slide?: boolean): void;
84
+ /**
85
+ * Empties the element and removes the tree's document-level keyboard
86
+ * listener. Call it when you remove the tree from the page.
87
+ *
88
+ * @group Other
89
+ */
90
+ deinit(): void;
91
+ /**
92
+ * Returns the node that belongs to a `li` element the tree rendered.
93
+ *
94
+ * @group Finding nodes
95
+ */
96
+ getNode(element: HTMLElement): Node | null;
97
+ /**
98
+ * Returns the first node for which the callback returns `true`.
99
+ *
100
+ * @example
101
+ * ```js
102
+ * const node = tree.getNodeByCallback((node) => node.children.length > 3);
103
+ * ```
104
+ *
105
+ * @group Finding nodes
106
+ */
107
+ getNodeByCallback(callback: (node: Node) => boolean): Node | null;
108
+ /**
109
+ * Returns the node with this id.
110
+ *
111
+ * @example
112
+ * ```js
113
+ * const node = tree.getNodeById(1);
114
+ * ```
115
+ *
116
+ * @group Finding nodes
117
+ */
118
+ getNodeById(id: NodeId): Node | null;
119
+ /**
120
+ * Returns the first node with this name.
121
+ *
122
+ * @group Finding nodes
123
+ */
124
+ getNodeByName(name: string): Node | null;
125
+ /**
126
+ * Like `getNodeByName`, but throws when there is no such node. Convenient
127
+ * in tests and when a missing node is a bug.
128
+ *
129
+ * @group Finding nodes
130
+ */
131
+ getNodeByNameMustExist(name: string): Node;
132
+ /**
133
+ * Returns all nodes with this property value.
134
+ *
135
+ * @example
136
+ * ```js
137
+ * tree.getNodesByProperty("color", "green");
138
+ * ```
139
+ *
140
+ * @group Finding nodes
141
+ */
142
+ getNodesByProperty(key: string, value: unknown): Node[];
143
+ /**
144
+ * Returns the selected node, or `false` when nothing is selected.
145
+ *
146
+ * @group Selection
147
+ */
148
+ getSelectedNode(): false | Node;
149
+ /**
150
+ * Returns the selected nodes.
151
+ *
152
+ * @group Selection
153
+ */
154
+ getSelectedNodes(): Node[];
155
+ /**
156
+ * Returns the current state — `open_nodes` and `selected_node` — whether or
157
+ * not `saveState` is enabled.
158
+ *
159
+ * @group State
160
+ */
161
+ getState(): null | SavedState;
162
+ /**
163
+ * Returns the state as it is stored.
164
+ *
165
+ * @group State
166
+ */
167
+ getStateFromStorage(): null | SavedState;
168
+ /**
169
+ * Returns the root node. It is not rendered; its `children` are the
170
+ * top-level nodes. Also available as the `tree` property.
171
+ *
172
+ * @group Finding nodes
173
+ */
174
+ getTree(): Node;
175
+ /**
176
+ * Returns the version of tree-element.
177
+ *
178
+ * @group Other
179
+ */
180
+ getVersion(): string;
181
+ /**
182
+ * Returns whether the user is dragging a node.
183
+ *
184
+ * @group Other
185
+ */
186
+ isDragging(): boolean;
187
+ /**
188
+ * Returns whether the node is selected.
189
+ *
190
+ * @group Selection
191
+ */
192
+ isNodeSelected(node: Node): boolean;
193
+ /**
194
+ * Loads data into the tree.
195
+ *
196
+ * @param parentNode - Replace this node's children instead of the whole
197
+ * tree.
198
+ * @group Loading data
199
+ */
200
+ loadData(data: NodeData[] | null, parentNode?: Node): void;
201
+ /**
202
+ * Fetches data and loads it into the tree, or into `parentNode`.
203
+ *
204
+ * @param url - Defaults to the `dataUrl` option.
205
+ * @group Loading data
206
+ */
207
+ loadDataFromUrl(url?: string, parentNode?: Node): Promise<void>;
208
+ /**
209
+ * Selects the next visible node, like the down arrow key.
210
+ *
211
+ * @group Selection
212
+ */
213
+ moveDown(): void;
214
+ /**
215
+ * Moves a node inside the tree.
216
+ *
217
+ * @example
218
+ * ```js
219
+ * tree.moveNode(tree.getNodeById(2), tree.getNodeById(1), "inside");
220
+ * ```
221
+ *
222
+ * @param position - `"before"`, `"after"` or `"inside"`.
223
+ * @group Changing the tree
224
+ */
225
+ moveNode(node: Node, targetNode: Node, position: Position): void;
226
+ /**
227
+ * Selects the previous visible node, like the up arrow key.
228
+ *
229
+ * @group Selection
230
+ */
231
+ moveUp(): void;
232
+ /**
233
+ * Opens a folder, and the folders above it. A node marked `load_on_demand`
234
+ * is fetched first, so await the promise when you need to know it is really
235
+ * open.
236
+ *
237
+ * @example
238
+ * ```js
239
+ * await tree.openNode(node);
240
+ * console.log("open");
241
+ * ```
242
+ *
243
+ * @param slide - Override the `slide` option for this call.
244
+ * @group Opening and closing
245
+ */
246
+ openNode(node: Node, slide?: boolean): Promise<void>;
247
+ /**
248
+ * Adds a node as the first child of a parent.
249
+ *
250
+ * @returns The new node.
251
+ * @group Changing the tree
252
+ */
253
+ prependNode(nodeData: NodeData, parentNode: Node): Node;
254
+ /**
255
+ * Re-renders the whole tree. Needed after changing node data directly
256
+ * instead of through these methods.
257
+ *
258
+ * @group Changing the tree
259
+ */
260
+ refresh(): void;
261
+ /**
262
+ * Recomputes the drop targets. Call this if the layout changes during a
263
+ * drag.
264
+ *
265
+ * @group Other
266
+ */
267
+ refreshHitAreas(): void;
268
+ /**
269
+ * Removes a node from the selection.
270
+ *
271
+ * @group Selection
272
+ */
273
+ removeFromSelection(node: Node): void;
274
+ /**
275
+ * Removes a node and its children.
276
+ *
277
+ * @group Changing the tree
278
+ */
279
+ removeNode(node: Node): void;
280
+ /**
281
+ * Scrolls the node into view.
282
+ *
283
+ * @group Selection
284
+ */
285
+ scrollToNode(node: Node): void;
286
+ /**
287
+ * Replaces the selection, and opens the parents of the node.
288
+ *
289
+ * @param node - `null` clears the selection.
290
+ * @param options - `mustSetFocus`: move focus to the node, default `true`.
291
+ * `mustToggle`: deselect the node if it is already selected, default
292
+ * `false`.
293
+ * @group Selection
294
+ */
295
+ selectNode(node: Node | null, options?: SelectNodeOptions): void;
296
+ /**
297
+ * Changes an option after construction. See
298
+ * [Options](/reference/options#changing-an-option-later) for the caveats.
299
+ *
300
+ * @group Other
301
+ */
302
+ setOption(option: string, value: unknown): void;
303
+ /**
304
+ * Applies a state to the tree.
305
+ *
306
+ * @group State
307
+ */
308
+ setState(state: SavedState): void;
309
+ /**
310
+ * Closes an open node and opens a closed one.
311
+ *
312
+ * @param slide - Override the `slide` option for this call.
313
+ * @group Opening and closing
314
+ */
315
+ toggle(node: Node, slide?: boolean | null): void;
316
+ /**
317
+ * Returns the tree as a json string, including changes made through the
318
+ * api.
319
+ *
320
+ * @group Other
321
+ */
322
+ toJson(): string;
323
+ /**
324
+ * Updates the data of a node and re-renders it. A string updates just the
325
+ * name.
326
+ *
327
+ * Changing the `id` re-indexes the node. `children` and `parent` are
328
+ * ignored — use `loadData` or `moveNode` for those.
329
+ *
330
+ * @example
331
+ * ```js
332
+ * tree.updateNode(node, "new name");
333
+ * tree.updateNode(node, { name: "new name", color: "red" });
334
+ * ```
335
+ *
336
+ * @group Changing the tree
337
+ */
338
+ updateNode(node: Node, data: NodeData): void;
339
+ private createFolderElement;
340
+ private createNodeElement;
341
+ private createRequestUrl;
342
+ private deselectCurrentNode;
343
+ private deselectNodes;
344
+ private getAutoOpenMaxLevel;
345
+ private getNodeElement;
346
+ private getNodeElementForNode;
347
+ private getNodeIdToBeSelected;
348
+ private initData;
349
+ private initTree;
350
+ private isFocusOnTree;
351
+ private isSelectedNodeInSubtree;
352
+ private loadFolderOnDemand;
353
+ private loadSubtree;
354
+ private mouseCapture;
355
+ private mouseDrag;
356
+ private mouseStart;
357
+ private mouseStop;
358
+ private openParents;
359
+ private refreshElements;
360
+ private saveState;
361
+ private selectCurrentNode;
362
+ private setInitialState;
363
+ private setInitialStateOnDemand;
364
+ private setNodeElement;
365
+ private triggerEvent;
366
+ }
367
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}