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.
Files changed (149) hide show
  1. package/README.md +49 -29
  2. package/lib/animation.js +5 -5
  3. package/lib/animation.js.map +1 -1
  4. package/lib/classNames.d.ts.map +1 -1
  5. package/lib/classNames.js +2 -2
  6. package/lib/classNames.js.map +1 -1
  7. package/lib/dataLoader.d.ts.map +1 -1
  8. package/lib/dataLoader.js +18 -21
  9. package/lib/dataLoader.js.map +1 -1
  10. package/lib/dragAndDropHandler/binarySearch.js +3 -3
  11. package/lib/dragAndDropHandler/binarySearch.js.map +1 -1
  12. package/lib/dragAndDropHandler/dragElement.d.ts.map +1 -1
  13. package/lib/dragAndDropHandler/dragElement.js +9 -12
  14. package/lib/dragAndDropHandler/dragElement.js.map +1 -1
  15. package/lib/dragAndDropHandler/generateHitAreas.d.ts.map +1 -1
  16. package/lib/dragAndDropHandler/generateHitAreas.js +25 -25
  17. package/lib/dragAndDropHandler/generateHitAreas.js.map +1 -1
  18. package/lib/dragAndDropHandler/index.d.ts.map +1 -1
  19. package/lib/dragAndDropHandler/index.js +90 -114
  20. package/lib/dragAndDropHandler/index.js.map +1 -1
  21. package/lib/dragAndDropHandler/iterateVisibleNodes.d.ts.map +1 -1
  22. package/lib/dragAndDropHandler/iterateVisibleNodes.js +10 -10
  23. package/lib/dragAndDropHandler/iterateVisibleNodes.js.map +1 -1
  24. package/lib/dragAndDropHandler/types.d.ts.map +1 -1
  25. package/lib/elementsRenderer.d.ts +15 -6
  26. package/lib/elementsRenderer.d.ts.map +1 -1
  27. package/lib/elementsRenderer.js +157 -121
  28. package/lib/elementsRenderer.js.map +1 -1
  29. package/lib/events.d.ts +11 -4
  30. package/lib/events.d.ts.map +1 -1
  31. package/lib/index.d.ts +5 -5
  32. package/lib/index.d.ts.map +1 -1
  33. package/lib/index.js +249 -252
  34. package/lib/index.js.map +1 -1
  35. package/lib/keyHandler.d.ts +2 -3
  36. package/lib/keyHandler.d.ts.map +1 -1
  37. package/lib/keyHandler.js +26 -25
  38. package/lib/keyHandler.js.map +1 -1
  39. package/lib/methodTypes.d.ts +1 -1
  40. package/lib/methodTypes.d.ts.map +1 -1
  41. package/lib/mouseHandler.d.ts.map +1 -1
  42. package/lib/mouseHandler.js +26 -42
  43. package/lib/mouseHandler.js.map +1 -1
  44. package/lib/mouseUtils.d.ts.map +1 -1
  45. package/lib/mouseUtils.js +2 -2
  46. package/lib/mouseUtils.js.map +1 -1
  47. package/lib/node.d.ts +2 -1
  48. package/lib/node.d.ts.map +1 -1
  49. package/lib/node.js +36 -35
  50. package/lib/node.js.map +1 -1
  51. package/lib/nodeElement/borderDropHint.d.ts.map +1 -1
  52. package/lib/nodeElement/borderDropHint.js +4 -5
  53. package/lib/nodeElement/borderDropHint.js.map +1 -1
  54. package/lib/nodeElement/folderElement.d.ts +7 -4
  55. package/lib/nodeElement/folderElement.d.ts.map +1 -1
  56. package/lib/nodeElement/folderElement.js +61 -42
  57. package/lib/nodeElement/folderElement.js.map +1 -1
  58. package/lib/nodeElement/ghostDropHint.d.ts.map +1 -1
  59. package/lib/nodeElement/ghostDropHint.js +5 -9
  60. package/lib/nodeElement/ghostDropHint.js.map +1 -1
  61. package/lib/nodeElement/index.d.ts +2 -1
  62. package/lib/nodeElement/index.d.ts.map +1 -1
  63. package/lib/nodeElement/index.js +34 -26
  64. package/lib/nodeElement/index.js.map +1 -1
  65. package/lib/nodeUtils.d.ts.map +1 -1
  66. package/lib/nodeUtils.js +1 -1
  67. package/lib/nodeUtils.js.map +1 -1
  68. package/lib/options.d.ts.map +1 -1
  69. package/lib/positionUtils.js +3 -3
  70. package/lib/positionUtils.js.map +1 -1
  71. package/lib/requestUrl.d.ts +1 -1
  72. package/lib/requestUrl.d.ts.map +1 -1
  73. package/lib/requestUrl.js +4 -6
  74. package/lib/requestUrl.js.map +1 -1
  75. package/lib/saveStateHandler.d.ts.map +1 -1
  76. package/lib/saveStateHandler.js +38 -48
  77. package/lib/saveStateHandler.js.map +1 -1
  78. package/lib/scrollHandler/containerScrollParent.d.ts.map +1 -1
  79. package/lib/scrollHandler/containerScrollParent.js +9 -11
  80. package/lib/scrollHandler/containerScrollParent.js.map +1 -1
  81. package/lib/scrollHandler/createScrollParent.d.ts.map +1 -1
  82. package/lib/scrollHandler/createScrollParent.js +10 -10
  83. package/lib/scrollHandler/createScrollParent.js.map +1 -1
  84. package/lib/scrollHandler/documentScrollParent.d.ts.map +1 -1
  85. package/lib/scrollHandler/documentScrollParent.js +16 -19
  86. package/lib/scrollHandler/documentScrollParent.js.map +1 -1
  87. package/lib/scrollHandler/scrollParent.d.ts.map +1 -1
  88. package/lib/scrollHandler/scrollParent.js +11 -17
  89. package/lib/scrollHandler/scrollParent.js.map +1 -1
  90. package/lib/scrollHandler.d.ts.map +1 -1
  91. package/lib/scrollHandler.js +11 -14
  92. package/lib/scrollHandler.js.map +1 -1
  93. package/lib/selectNodeHandler.d.ts +2 -2
  94. package/lib/selectNodeHandler.d.ts.map +1 -1
  95. package/lib/selectNodeHandler.js +45 -54
  96. package/lib/selectNodeHandler.js.map +1 -1
  97. package/lib/setDefaultOptions.d.ts.map +1 -1
  98. package/lib/setDefaultOptions.js +23 -28
  99. package/lib/setDefaultOptions.js.map +1 -1
  100. package/lib/triggerCustomEvent.d.ts.map +1 -1
  101. package/lib/triggerCustomEvent.js +2 -2
  102. package/lib/triggerCustomEvent.js.map +1 -1
  103. package/lib/util.d.ts.map +1 -1
  104. package/lib/util.js +2 -2
  105. package/lib/util.js.map +1 -1
  106. package/lib/version.d.ts +1 -1
  107. package/lib/version.js +1 -1
  108. package/lib/version.js.map +1 -1
  109. package/package.json +7 -3
  110. package/src/animation.ts +1 -1
  111. package/src/classNames.ts +52 -52
  112. package/src/dataLoader.ts +68 -70
  113. package/src/dragAndDropHandler/binarySearch.ts +17 -17
  114. package/src/dragAndDropHandler/dragElement.ts +50 -50
  115. package/src/dragAndDropHandler/generateHitAreas.ts +156 -161
  116. package/src/dragAndDropHandler/index.ts +342 -351
  117. package/src/dragAndDropHandler/iterateVisibleNodes.ts +59 -63
  118. package/src/dragAndDropHandler/types.ts +5 -5
  119. package/src/elementsRenderer.ts +351 -298
  120. package/src/events.ts +216 -209
  121. package/src/header.txt +1 -1
  122. package/src/index.ts +52 -82
  123. package/src/keyHandler.ts +125 -115
  124. package/src/methodTypes.ts +4 -7
  125. package/src/mouseHandler.ts +314 -317
  126. package/src/mouseUtils.ts +14 -14
  127. package/src/node.ts +761 -766
  128. package/src/nodeElement/borderDropHint.ts +25 -25
  129. package/src/nodeElement/folderElement.ts +135 -112
  130. package/src/nodeElement/ghostDropHint.ts +62 -62
  131. package/src/nodeElement/index.ts +88 -74
  132. package/src/nodeUtils.ts +5 -5
  133. package/src/options.ts +6 -2
  134. package/src/requestUrl.ts +3 -3
  135. package/src/saveStateHandler.ts +204 -206
  136. package/src/scrollHandler/containerScrollParent.ts +49 -52
  137. package/src/scrollHandler/createScrollParent.ts +27 -27
  138. package/src/scrollHandler/documentScrollParent.ts +70 -70
  139. package/src/scrollHandler/scrollParent.ts +98 -98
  140. package/src/scrollHandler.ts +45 -45
  141. package/src/selectNodeHandler.ts +176 -166
  142. package/src/setDefaultOptions.ts +25 -22
  143. package/src/triggerCustomEvent.ts +7 -3
  144. package/src/util.ts +2 -2
  145. package/src/version.ts +1 -1
  146. package/tree_element.debug.js +3770 -3799
  147. package/tree_element.debug.js.map +1 -1
  148. package/tree_element.js +2 -2
  149. package/tree_element.js.map +1 -1
@@ -1,192 +1,202 @@
1
- import type { GetNodeById, GetNodeElementForNode, OpenParents, TriggerEvent } from "./methodTypes";
1
+ import type {
2
+ GetNodeById,
3
+ GetNodeElementForNode,
4
+ OpenParents,
5
+ TriggerEvent,
6
+ } from "./methodTypes";
2
7
  import type { Node, NodeId } from "./node";
3
8
  import type { OnCanSelectNode } from "./options";
4
9
 
5
10
  export interface SelectNodeOptions {
6
- mustSetFocus?: boolean;
7
- mustToggle?: boolean;
11
+ mustSetFocus?: boolean;
12
+ mustToggle?: boolean;
8
13
  }
9
14
 
10
15
  interface SelectNodeHandlerParameters {
11
- getNodeById: GetNodeById;
12
- getNodeElementForNode: GetNodeElementForNode;
13
- getOnCanSelectNode: () => OnCanSelectNode | undefined;
14
- getSelectable: () => boolean;
15
- openParents: OpenParents;
16
- saveState: () => void;
17
- triggerEvent: TriggerEvent;
16
+ getNodeById: GetNodeById;
17
+ getNodeElementForNode: GetNodeElementForNode;
18
+ getOnCanSelectNode: () => OnCanSelectNode | undefined;
19
+ getSelectable: () => boolean;
20
+ openParents: OpenParents;
21
+ saveState: () => void;
22
+ triggerEvent: TriggerEvent;
18
23
  }
19
24
 
20
25
  export default class SelectNodeHandler {
21
- private getNodeById: GetNodeById;
22
- private getNodeElementForNode: GetNodeElementForNode;
23
- private getOnCanSelectNode: () => OnCanSelectNode | undefined;
24
- private getSelectable: () => boolean;
25
- private openParents: OpenParents;
26
- private saveState: () => void;
27
- private selectedNodes: Set<NodeId>;
28
- private selectedSingleNode: Node | null;
29
- private triggerEvent: TriggerEvent;
30
-
31
- constructor({ getNodeById, getNodeElementForNode, getOnCanSelectNode, getSelectable, openParents, saveState, triggerEvent }: SelectNodeHandlerParameters) {
32
- this.getNodeById = getNodeById;
33
- this.getNodeElementForNode = getNodeElementForNode;
34
- this.getOnCanSelectNode = getOnCanSelectNode;
35
- this.getSelectable = getSelectable;
36
- this.openParents = openParents;
37
- this.saveState = saveState;
38
- this.selectedNodes = new Set<NodeId>();
39
- this.selectedSingleNode = null;
40
- this.triggerEvent = triggerEvent;
26
+ private getNodeById: GetNodeById;
27
+ private getNodeElementForNode: GetNodeElementForNode;
28
+ private getOnCanSelectNode: () => OnCanSelectNode | undefined;
29
+ private getSelectable: () => boolean;
30
+ private openParents: OpenParents;
31
+ private saveState: () => void;
32
+ private selectedNodes: Set<NodeId>;
33
+ private selectedSingleNode: Node | null;
34
+ private triggerEvent: TriggerEvent;
35
+
36
+ constructor({
37
+ getNodeById,
38
+ getNodeElementForNode,
39
+ getOnCanSelectNode,
40
+ getSelectable,
41
+ openParents,
42
+ saveState,
43
+ triggerEvent,
44
+ }: SelectNodeHandlerParameters) {
45
+ this.getNodeById = getNodeById;
46
+ this.getNodeElementForNode = getNodeElementForNode;
47
+ this.getOnCanSelectNode = getOnCanSelectNode;
48
+ this.getSelectable = getSelectable;
49
+ this.openParents = openParents;
50
+ this.saveState = saveState;
51
+ this.selectedNodes = new Set<NodeId>();
52
+ this.selectedSingleNode = null;
53
+ this.triggerEvent = triggerEvent;
54
+ }
55
+
56
+ public addToSelection(node: Node): void {
57
+ if (node.id != null) {
58
+ this.selectedNodes.add(node.id);
59
+ } else {
60
+ this.selectedSingleNode = node;
41
61
  }
62
+ }
42
63
 
43
- public addToSelection(node: Node): void {
44
- if (node.id != null) {
45
- this.selectedNodes.add(node.id);
46
- } else {
47
- this.selectedSingleNode = node;
48
- }
49
- }
64
+ public clear(): void {
65
+ this.selectedNodes.clear();
66
+ this.selectedSingleNode = null;
67
+ }
50
68
 
51
- public clear(): void {
52
- this.selectedNodes.clear();
53
- this.selectedSingleNode = null;
54
- }
55
-
56
- public getSelectedNode(): false | Node {
57
- const selectedNodes = this.getSelectedNodes();
69
+ public getSelectedNode(): Node | null {
70
+ const selectedNodes = this.getSelectedNodes();
58
71
 
59
- if (selectedNodes.length) {
60
- return selectedNodes[0] ?? false;
61
- } else {
62
- return false;
63
- }
72
+ if (selectedNodes.length) {
73
+ return selectedNodes[0] ?? null;
74
+ } else {
75
+ return null;
64
76
  }
65
-
66
- public getSelectedNodes(): Node[] {
67
- if (this.selectedSingleNode) {
68
- return [this.selectedSingleNode];
69
- } else {
70
- const selectedNodes: Node[] = [];
71
-
72
- this.selectedNodes.forEach((id) => {
73
- const node = this.getNodeById(id);
74
- if (node) {
75
- selectedNodes.push(node);
76
- }
77
- });
78
-
79
- return selectedNodes;
77
+ }
78
+
79
+ public getSelectedNodes(): Node[] {
80
+ if (this.selectedSingleNode) {
81
+ return [this.selectedSingleNode];
82
+ } else {
83
+ const selectedNodes: Node[] = [];
84
+
85
+ this.selectedNodes.forEach((id) => {
86
+ const node = this.getNodeById(id);
87
+ if (node) {
88
+ selectedNodes.push(node);
80
89
  }
81
- }
90
+ });
82
91
 
83
- public getSelectedNodesUnder(parent: Node): Node[] {
84
- if (this.selectedSingleNode) {
85
- if (parent.isParentOf(this.selectedSingleNode)) {
86
- return [this.selectedSingleNode];
87
- } else {
88
- return [];
89
- }
90
- } else {
91
- const selectedNodes: Node[] = [];
92
-
93
- this.selectedNodes.forEach((id) => {
94
- const node = this.getNodeById(id);
95
- if (node && parent.isParentOf(node)) {
96
- selectedNodes.push(node);
97
- }
98
- });
99
-
100
- return selectedNodes;
101
- }
92
+ return selectedNodes;
102
93
  }
103
-
104
- public isNodeSelected(node: Node): boolean {
105
- if (node.id != null) {
106
- return this.selectedNodes.has(node.id);
107
- } else if (this.selectedSingleNode) {
108
- return this.selectedSingleNode.element === node.element;
109
- } else {
110
- return false;
94
+ }
95
+
96
+ public getSelectedNodesUnder(parent: Node): Node[] {
97
+ if (this.selectedSingleNode) {
98
+ if (parent.isParentOf(this.selectedSingleNode)) {
99
+ return [this.selectedSingleNode];
100
+ } else {
101
+ return [];
102
+ }
103
+ } else {
104
+ const selectedNodes: Node[] = [];
105
+
106
+ this.selectedNodes.forEach((id) => {
107
+ const node = this.getNodeById(id);
108
+ if (node && parent.isParentOf(node)) {
109
+ selectedNodes.push(node);
111
110
  }
112
- }
113
-
114
- public removeFromSelection(node: Node, includeChildren = false): void {
115
- if (node.id == null) {
116
- if (
117
- this.selectedSingleNode &&
118
- node.element === this.selectedSingleNode.element
119
- ) {
120
- this.selectedSingleNode = null;
121
- }
122
- } else {
123
- this.selectedNodes.delete(node.id);
111
+ });
124
112
 
125
- if (includeChildren) {
126
- node.iterate(() => {
127
- if (node.id != null) {
128
- this.selectedNodes.delete(node.id);
129
- }
130
- return true;
131
- });
132
- }
133
- }
113
+ return selectedNodes;
114
+ }
115
+ }
116
+
117
+ public isNodeSelected(node: Node): boolean {
118
+ if (node.id != null) {
119
+ return this.selectedNodes.has(node.id);
120
+ } else if (this.selectedSingleNode) {
121
+ return this.selectedSingleNode === node;
122
+ } else {
123
+ return false;
134
124
  }
125
+ }
135
126
 
136
- /* Select a single node.
137
- * Renders the changed elements.
138
- * Deselects if the node is currently selected (if the mustToggle is on).
139
- * Deselects the previously selected node.
140
- * Check if the node is selectable.
141
- * Saves the state.
142
- * Options:
143
- * mustSetFocus: set the focus to the selected node
144
- * mustToggle: support deselecting the selected node
145
- */
146
- public selectSingleNode(node: Node, optionsParam?: SelectNodeOptions) {
147
- const defaultOptions = { mustSetFocus: true, mustToggle: true };
148
- const selectOptions = { ...defaultOptions, ...(optionsParam ?? {}) };
149
-
150
- const canSelect = (): boolean => {
151
- if (!this.getSelectable()) {
152
- return false;
153
- }
154
-
155
- const onCanSelectNode = this.getOnCanSelectNode();
156
- return onCanSelectNode ? onCanSelectNode(node) : true;
157
- };
158
-
159
- if (!canSelect()) {
160
- return;
161
- }
127
+ public removeFromSelection(node: Node, includeChildren = false): void {
128
+ if (node.id == null) {
129
+ if (this.selectedSingleNode === node) {
130
+ this.selectedSingleNode = null;
131
+ }
132
+ } else {
133
+ this.selectedNodes.delete(node.id);
162
134
 
163
- const deselectCurrentNode = (deselectedNode: Node) => {
164
- this.removeFromSelection(deselectedNode);
165
- this.getNodeElementForNode(deselectedNode).deselect();
166
- };
167
-
168
- if (this.isNodeSelected(node)) {
169
- if (selectOptions.mustToggle) {
170
- deselectCurrentNode(node);
171
- this.triggerEvent("tree.deselect", { node });
172
- }
173
- } else {
174
- const deselectedNode = this.getSelectedNode();
175
-
176
- if (deselectedNode) {
177
- deselectCurrentNode(deselectedNode);
178
- }
179
-
180
- this.addToSelection(node);
181
- this.openParents(node);
182
- this.getNodeElementForNode(node).select(selectOptions.mustSetFocus);
183
-
184
- this.triggerEvent("tree.select", {
185
- deselectedNode: deselectedNode || null,
186
- node,
187
- });
188
- }
135
+ if (includeChildren) {
136
+ node.iterate(() => {
137
+ if (node.id != null) {
138
+ this.selectedNodes.delete(node.id);
139
+ }
140
+ return true;
141
+ });
142
+ }
143
+ }
144
+ }
145
+
146
+ /* Select a single node.
147
+ * Renders the changed elements.
148
+ * Deselects if the node is currently selected (if the mustToggle is on).
149
+ * Deselects the previously selected node.
150
+ * Check if the node is selectable.
151
+ * Saves the state.
152
+ * Options:
153
+ * mustSetFocus: set the focus to the selected node
154
+ * mustToggle: support deselecting the selected node
155
+ */
156
+ public selectSingleNode(node: Node, optionsParam?: SelectNodeOptions) {
157
+ const defaultOptions = { mustSetFocus: true, mustToggle: true };
158
+ const selectOptions = { ...defaultOptions, ...(optionsParam ?? {}) };
159
+
160
+ const canSelect = (): boolean => {
161
+ if (!this.getSelectable()) {
162
+ return false;
163
+ }
164
+
165
+ const onCanSelectNode = this.getOnCanSelectNode();
166
+ return onCanSelectNode ? onCanSelectNode(node) : true;
167
+ };
168
+
169
+ if (!canSelect()) {
170
+ return;
171
+ }
189
172
 
190
- this.saveState();
173
+ const deselectCurrentNode = (deselectedNode: Node) => {
174
+ this.removeFromSelection(deselectedNode);
175
+ this.getNodeElementForNode(deselectedNode).deselect();
176
+ };
177
+
178
+ if (this.isNodeSelected(node)) {
179
+ if (selectOptions.mustToggle) {
180
+ deselectCurrentNode(node);
181
+ this.triggerEvent("tree.deselect", { node });
182
+ }
183
+ } else {
184
+ const deselectedNode = this.getSelectedNode();
185
+
186
+ if (deselectedNode) {
187
+ deselectCurrentNode(deselectedNode);
188
+ }
189
+
190
+ this.addToSelection(node);
191
+ this.openParents(node);
192
+ this.getNodeElementForNode(node).select(selectOptions.mustSetFocus);
193
+
194
+ this.triggerEvent("tree.select", {
195
+ deselectedNode,
196
+ node,
197
+ });
191
198
  }
199
+
200
+ this.saveState();
201
+ }
192
202
  }
@@ -11,39 +11,42 @@ const defaults: TreeElementOptions = {
11
11
  classPrefix: DEFAULT_CLASS_PREFIX, // the prefix of all css classes
12
12
  // The symbol to use for a closed node - ► BLACK RIGHT-POINTING POINTER
13
13
  // http://www.fileformat.info/info/unicode/char/25ba/index.htm
14
- closedIcon: undefined,
15
- commonClassName: undefined, // the class of every element; the default is "<classPrefix>-common"
16
- data: undefined,
17
- dataFilter: undefined,
18
- dataUrl: undefined,
14
+ // closedIcon: undefined,
15
+ // commonClassName: undefined, // the class of every element; the default is "<classPrefix>-common"
16
+ // data: undefined,
17
+ // dataFilter: undefined,
18
+ // dataUrl: undefined,
19
19
  dragAndDrop: false,
20
20
  keyboardSupport: true,
21
21
  nodeClass: Node,
22
- onCanMove: undefined, // Can this node be moved?
23
- onCanMoveTo: undefined, // Can this node be moved to this position? function(moved_node, target_node, position)
24
- onCanSelectNode: undefined,
25
- onCreateLi: undefined,
26
- onDragMove: undefined,
27
- onDragStop: undefined,
28
- onGetStateFromStorage: undefined,
29
- onIsMoveHandle: undefined,
30
- onSetStateFromStorage: undefined,
31
- openedIcon: undefined,
22
+ // onCanMove: undefined, // Can this node be moved?
23
+ // onCanMoveTo: undefined, // Can this node be moved to this position? function(moved_node, target_node, position)
24
+ // onCanSelectNode: undefined,
25
+ // onCreateLi: undefined,
26
+ // onDragMove: undefined,
27
+ // onDragStop: undefined,
28
+ // onGetStateFromStorage: undefined,
29
+ // onIsMoveHandle: undefined,
30
+ // onSetStateFromStorage: undefined,
31
+ // openedIcon: undefined,
32
32
  openFolderDelay: 500, // The delay for opening a folder during drag and drop; the value is in milliseconds
33
33
  // The symbol to use for an open node - ▼ BLACK DOWN-POINTING TRIANGLE
34
34
  // http://www.fileformat.info/info/unicode/char/25bc/index.htm
35
- rtl: undefined, // right-to-left support; true / false (default)
35
+ // rtl: undefined, // right-to-left support; true / false (default)
36
36
  saveState: false, // true / false / string (local storage key; the default key is "tree")
37
37
  selectable: true,
38
38
  showEmptyFolder: false,
39
39
  slide: true, // must display slide animation?
40
40
  startDndDelay: 300, // The delay for starting dnd (in milliseconds)
41
41
  tabIndex: 0,
42
- treeClassName: undefined, // the class of the root element; the default is classPrefix
42
+ // treeClassName: undefined, // the class of the root element; the default is classPrefix
43
43
  useContextMenu: true,
44
44
  };
45
45
 
46
- const setDefaultOptions = (htmlElement: HTMLElement, inputOptions: Partial<TreeElementOptions>): TreeElementOptions => {
46
+ const setDefaultOptions = (
47
+ htmlElement: HTMLElement,
48
+ inputOptions: Partial<TreeElementOptions>,
49
+ ): TreeElementOptions => {
47
50
  const options = { ...defaults, ...inputOptions };
48
51
 
49
52
  options.dataUrl ??= htmlElement.dataset.url;
@@ -52,7 +55,7 @@ const setDefaultOptions = (htmlElement: HTMLElement, inputOptions: Partial<TreeE
52
55
  options.openedIcon ??= "&#x25bc;";
53
56
 
54
57
  return options;
55
- }
58
+ };
56
59
 
57
60
  const getDefaultClosedIcon = (options: TreeElementOptions): string => {
58
61
  if (options.rtl) {
@@ -62,7 +65,7 @@ const getDefaultClosedIcon = (options: TreeElementOptions): string => {
62
65
  // triangle to the right
63
66
  return "&#x25ba;";
64
67
  }
65
- }
68
+ };
66
69
 
67
70
  const getRtlOptionFromHTMLElement = (htmlElement: HTMLElement): boolean => {
68
71
  const dataRtl = htmlElement.dataset.rtl;
@@ -74,6 +77,6 @@ const getRtlOptionFromHTMLElement = (htmlElement: HTMLElement): boolean => {
74
77
  } else {
75
78
  return Boolean(dataRtl);
76
79
  }
77
- }
80
+ };
78
81
 
79
- export default setDefaultOptions;
82
+ export default setDefaultOptions;
@@ -1,5 +1,9 @@
1
1
  // Trigger a CustomEvent. Return if the event is processed (true) or cancelled (false).
2
- const triggerCustomEvent = (element: HTMLElement, eventName: string, values?: Record<string, unknown>): boolean => {
2
+ const triggerCustomEvent = (
3
+ element: HTMLElement,
4
+ eventName: string,
5
+ values?: Record<string, unknown>,
6
+ ): boolean => {
3
7
  const event = new CustomEvent(eventName, {
4
8
  bubbles: true,
5
9
  cancelable: true,
@@ -9,6 +13,6 @@ const triggerCustomEvent = (element: HTMLElement, eventName: string, values?: Re
9
13
  element.dispatchEvent(event);
10
14
 
11
15
  return !event.defaultPrevented;
12
- }
16
+ };
13
17
 
14
- export default triggerCustomEvent;
18
+ export default triggerCustomEvent;
package/src/util.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export const isInt = (n: unknown): boolean =>
2
- typeof n === "number" && n % 1 === 0;
2
+ typeof n === "number" && n % 1 === 0;
3
3
 
4
4
  export const getBoolString = (value: unknown): string =>
5
- value ? "true" : "false";
5
+ value ? "true" : "false";
package/src/version.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  // Generated by config/generateVersion.mjs. Do not edit.
2
- const version = "0.1.0";
2
+ const version = "0.2.0";
3
3
 
4
4
  export default version;