jqtree 1.8.2 → 1.8.3

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 (222) hide show
  1. package/bower.json +1 -1
  2. package/package.json +20 -19
  3. package/src/dragAndDropHandler/generateHitAreas.ts +47 -43
  4. package/src/nodeElement/ghostDropHint.ts +3 -37
  5. package/src/nodeElement/index.ts +1 -1
  6. package/src/saveStateHandler.ts +43 -59
  7. package/src/version.ts +1 -1
  8. package/tree.jquery.debug.js +69 -106
  9. package/tree.jquery.debug.js.map +1 -1
  10. package/tree.jquery.js +2 -2
  11. package/tree.jquery.js.map +1 -1
  12. package/.editorconfig +0 -12
  13. package/.eslintrc +0 -48
  14. package/.github/workflows/ci.yml +0 -68
  15. package/.github/workflows/codeql-analysis.yml +0 -32
  16. package/.github/workflows/size.yml +0 -24
  17. package/.github/workflows/static.yml +0 -57
  18. package/.prettier +0 -3
  19. package/config/.postcssrc +0 -6
  20. package/config/babel.config.json +0 -11
  21. package/config/babel.coverage.config.json +0 -4
  22. package/config/jest.config.js +0 -24
  23. package/config/jest.polyfills.js +0 -14
  24. package/config/playwright.config.js +0 -18
  25. package/config/production +0 -6
  26. package/config/rollup.config.mjs +0 -71
  27. package/css/jqtree.postcss +0 -193
  28. package/devserver/devserver.js +0 -7
  29. package/devserver/devserver_scroll.js +0 -8
  30. package/devserver/index.html +0 -22
  31. package/devserver/test_index.html +0 -22
  32. package/devserver/test_scroll.html +0 -28
  33. package/devserver/test_scroll_container.html +0 -39
  34. package/docs/.ruby-version +0 -1
  35. package/docs/Gemfile +0 -5
  36. package/docs/Gemfile.lock +0 -82
  37. package/docs/_config.yml +0 -126
  38. package/docs/_entries/events/index.md +0 -6
  39. package/docs/_entries/events/tree-click.md +0 -37
  40. package/docs/_entries/events/tree-close.md +0 -15
  41. package/docs/_entries/events/tree-contextmenu.md +0 -21
  42. package/docs/_entries/events/tree-dblclick.md +0 -19
  43. package/docs/_entries/events/tree-init.md +0 -15
  44. package/docs/_entries/events/tree-load-data.md +0 -15
  45. package/docs/_entries/events/tree-loading-data.md +0 -27
  46. package/docs/_entries/events/tree-move.md +0 -73
  47. package/docs/_entries/events/tree-open.md +0 -15
  48. package/docs/_entries/events/tree-refresh.md +0 -12
  49. package/docs/_entries/events/tree-select.md +0 -28
  50. package/docs/_entries/functions/addnodeafter.md +0 -20
  51. package/docs/_entries/functions/addnodebefore.md +0 -8
  52. package/docs/_entries/functions/addparentnode.md +0 -20
  53. package/docs/_entries/functions/appendnode.md +0 -50
  54. package/docs/_entries/functions/closenode.md +0 -23
  55. package/docs/_entries/functions/destroy.md +0 -12
  56. package/docs/_entries/functions/getnodebycallback.md +0 -24
  57. package/docs/_entries/functions/getnodebyhtmlelement.md +0 -29
  58. package/docs/_entries/functions/getnodebyid.md +0 -21
  59. package/docs/_entries/functions/getselectednode.md +0 -10
  60. package/docs/_entries/functions/getstate.md +0 -19
  61. package/docs/_entries/functions/gettree.md +0 -12
  62. package/docs/_entries/functions/index.md +0 -6
  63. package/docs/_entries/functions/is-node-selected.md +0 -11
  64. package/docs/_entries/functions/isdragging.md +0 -12
  65. package/docs/_entries/functions/loaddata.md +0 -46
  66. package/docs/_entries/functions/loaddatafromurl.md +0 -55
  67. package/docs/_entries/functions/movedown.md +0 -8
  68. package/docs/_entries/functions/movenode.md +0 -15
  69. package/docs/_entries/functions/moveup.md +0 -8
  70. package/docs/_entries/functions/opennode.md +0 -44
  71. package/docs/_entries/functions/prependnode.md +0 -21
  72. package/docs/_entries/functions/refresh.md +0 -12
  73. package/docs/_entries/functions/reload.md +0 -22
  74. package/docs/_entries/functions/removenode.md +0 -12
  75. package/docs/_entries/functions/scrolltonode.md +0 -13
  76. package/docs/_entries/functions/selectnode.md +0 -45
  77. package/docs/_entries/functions/setoption.md +0 -12
  78. package/docs/_entries/functions/setstate.md +0 -8
  79. package/docs/_entries/functions/toggle.md +0 -25
  80. package/docs/_entries/functions/tojson.md +0 -13
  81. package/docs/_entries/functions/updatenode.md +0 -50
  82. package/docs/_entries/general/changelog.md +0 -434
  83. package/docs/_entries/general/demo.html +0 -28
  84. package/docs/_entries/general/downloads.md +0 -9
  85. package/docs/_entries/general/examples.md +0 -8
  86. package/docs/_entries/general/features.md +0 -15
  87. package/docs/_entries/general/index.md +0 -7
  88. package/docs/_entries/general/introduction.md +0 -9
  89. package/docs/_entries/general/requirements.md +0 -6
  90. package/docs/_entries/general/tutorial.md +0 -71
  91. package/docs/_entries/general/usecases.md +0 -15
  92. package/docs/_entries/multiple_selection/add-to-selection.md +0 -21
  93. package/docs/_entries/multiple_selection/get-selected-nodes.md +0 -10
  94. package/docs/_entries/multiple_selection/index.md +0 -9
  95. package/docs/_entries/multiple_selection/remove-from-selection.md +0 -11
  96. package/docs/_entries/node/children.md +0 -12
  97. package/docs/_entries/node/getdata.md +0 -17
  98. package/docs/_entries/node/getlevel.md +0 -13
  99. package/docs/_entries/node/getnextnode.md +0 -12
  100. package/docs/_entries/node/getnextsibling.md +0 -10
  101. package/docs/_entries/node/getnextvisiblenode.md +0 -15
  102. package/docs/_entries/node/getpreviousnode.md +0 -12
  103. package/docs/_entries/node/getprevioussibling.md +0 -10
  104. package/docs/_entries/node/getpreviousvisiblenode.md +0 -15
  105. package/docs/_entries/node/index.md +0 -13
  106. package/docs/_entries/node/parent.md +0 -10
  107. package/docs/_entries/options/animationspeed.md +0 -7
  108. package/docs/_entries/options/autoescape.md +0 -6
  109. package/docs/_entries/options/autoopen.md +0 -28
  110. package/docs/_entries/options/buttonleft.md +0 -12
  111. package/docs/_entries/options/closedicon.md +0 -26
  112. package/docs/_entries/options/data-url.md +0 -45
  113. package/docs/_entries/options/data.md +0 -46
  114. package/docs/_entries/options/datafilter.md +0 -17
  115. package/docs/_entries/options/draganddrop.md +0 -18
  116. package/docs/_entries/options/index.md +0 -6
  117. package/docs/_entries/options/keyboardsupport.md +0 -14
  118. package/docs/_entries/options/oncanmove.md +0 -22
  119. package/docs/_entries/options/oncanmoveto.md +0 -22
  120. package/docs/_entries/options/oncanselectnode.md +0 -26
  121. package/docs/_entries/options/oncreateli.md +0 -22
  122. package/docs/_entries/options/ondragmove.md +0 -20
  123. package/docs/_entries/options/ondragstop.md +0 -20
  124. package/docs/_entries/options/onismovehandle.md +0 -17
  125. package/docs/_entries/options/onloadfailed.md +0 -15
  126. package/docs/_entries/options/onloading.md +0 -22
  127. package/docs/_entries/options/openedicon.md +0 -26
  128. package/docs/_entries/options/openfolderdelay.md +0 -15
  129. package/docs/_entries/options/rtl.md +0 -18
  130. package/docs/_entries/options/savestate.md +0 -39
  131. package/docs/_entries/options/selectable.md +0 -18
  132. package/docs/_entries/options/showemptyfolder.md +0 -26
  133. package/docs/_entries/options/slide.md +0 -12
  134. package/docs/_entries/options/start_dnd_delay.md +0 -13
  135. package/docs/_entries/options/tabindex.md +0 -14
  136. package/docs/_entries/options/usecontextmenu.md +0 -14
  137. package/docs/_examples/01_load_json_data.html +0 -45
  138. package/docs/_examples/02_load_json_data_from_server.html +0 -29
  139. package/docs/_examples/03_drag_and_drop.html +0 -42
  140. package/docs/_examples/04_save_state.html +0 -46
  141. package/docs/_examples/05_load_on_demand.html +0 -68
  142. package/docs/_examples/06_autoescape.html +0 -45
  143. package/docs/_examples/07_autoscroll.html +0 -42
  144. package/docs/_examples/08_multiple_select.html +0 -60
  145. package/docs/_examples/09_custom_html.html +0 -61
  146. package/docs/_examples/10_icon_buttons.html +0 -26
  147. package/docs/_examples/11_right-to-left.html +0 -25
  148. package/docs/_examples/12_button_on_right.html +0 -26
  149. package/docs/_examples/13_drag_outside.html +0 -48
  150. package/docs/_examples/14_filter.html +0 -111
  151. package/docs/_layouts/example.html +0 -7
  152. package/docs/_layouts/page.html +0 -26
  153. package/docs/documentation.css +0 -3
  154. package/docs/index.html +0 -65
  155. package/docs/package.json +0 -22
  156. package/docs/pnpm-lock.yaml +0 -892
  157. package/docs/postcss.config.js +0 -7
  158. package/docs/static/bower.json +0 -8
  159. package/docs/static/bower_components/fontawesome/css/all.min.css +0 -9
  160. package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  161. package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  162. package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  163. package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  164. package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  165. package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  166. package/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
  167. package/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
  168. package/docs/static/bower_components/jquery/dist/jquery.js +0 -10704
  169. package/docs/static/bower_components/jquery/dist/jquery.min.js +0 -2
  170. package/docs/static/bower_components/jquery-mockjax/dist/jquery.mockjax.js +0 -1061
  171. package/docs/static/documentation.js +0 -26
  172. package/docs/static/example.postcss +0 -68
  173. package/docs/static/example_data.js +0 -122
  174. package/docs/static/examples/autoescape.js +0 -17
  175. package/docs/static/examples/autoscroll.js +0 -6
  176. package/docs/static/examples/button-on-right.js +0 -13
  177. package/docs/static/examples/custom_html.js +0 -27
  178. package/docs/static/examples/drag-outside.js +0 -37
  179. package/docs/static/examples/drag_and_drop.js +0 -13
  180. package/docs/static/examples/filter.js +0 -63
  181. package/docs/static/examples/icon_buttons.js +0 -12
  182. package/docs/static/examples/load_json_data.js +0 -16
  183. package/docs/static/examples/load_json_data_from_server.js +0 -9
  184. package/docs/static/examples/load_on_demand.js +0 -19
  185. package/docs/static/examples/multiple_select.js +0 -23
  186. package/docs/static/examples/right-to-left.js +0 -11
  187. package/docs/static/examples/save_state.js +0 -11
  188. package/docs/static/monokai.css +0 -70
  189. package/docs/static/spinner.gif +0 -0
  190. package/docs/tailwind.config.js +0 -16
  191. package/sitemap.txt +0 -14
  192. package/src/playwright/.eslintrc +0 -5
  193. package/src/playwright/coverage.ts +0 -38
  194. package/src/playwright/playwright.test.ts +0 -401
  195. package/src/playwright/playwright.test.ts-snapshots/with-dragAndDrop-moves-a-node-1-Chromium-darwin.png +0 -0
  196. package/src/playwright/playwright.test.ts-snapshots/with-dragAndDrop-moves-a-node-1-Chromium-linux.png +0 -0
  197. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-displays-a-tree-1-Chromium-darwin.png +0 -0
  198. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-displays-a-tree-1-Chromium-linux.png +0 -0
  199. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-selects-a-node-1-Chromium-darwin.png +0 -0
  200. package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-selects-a-node-1-Chromium-linux.png +0 -0
  201. package/src/playwright/testUtils.ts +0 -153
  202. package/src/test/.eslintrc +0 -17
  203. package/src/test/global.d.ts +0 -1
  204. package/src/test/jqTree/accessibility.test.ts +0 -25
  205. package/src/test/jqTree/create.test.ts +0 -54
  206. package/src/test/jqTree/events.test.ts +0 -290
  207. package/src/test/jqTree/keyboard.test.ts +0 -247
  208. package/src/test/jqTree/loadOnDemand.test.ts +0 -198
  209. package/src/test/jqTree/methods.test.ts +0 -1491
  210. package/src/test/jqTree/mouse.test.ts +0 -82
  211. package/src/test/jqTree/options.test.ts +0 -595
  212. package/src/test/node.test.ts +0 -1396
  213. package/src/test/nodeUtils.test.ts +0 -21
  214. package/src/test/position.test.ts +0 -30
  215. package/src/test/support/exampleData.ts +0 -23
  216. package/src/test/support/jqTreeMatchers.ts +0 -68
  217. package/src/test/support/matchers.d.ts +0 -31
  218. package/src/test/support/setupTests.ts +0 -5
  219. package/src/test/support/testUtil.ts +0 -30
  220. package/src/test/support/treeStructure.ts +0 -39
  221. package/src/test/util.test.ts +0 -27
  222. package/tsconfig.json +0 -24
@@ -1,5 +1,5 @@
1
1
  /*
2
- JqTree 1.8.2
2
+ JqTree 1.8.3
3
3
 
4
4
  Copyright 2024 Marco Braak
5
5
 
@@ -20,7 +20,7 @@ limitations under the License.
20
20
  var jqtree = (function (exports) {
21
21
  'use strict';
22
22
 
23
- const version = "1.8.2";
23
+ const version = "1.8.3";
24
24
 
25
25
  let Position = /*#__PURE__*/function (Position) {
26
26
  Position[Position["Before"] = 1] = "Before";
@@ -146,59 +146,57 @@ var jqtree = (function (exports) {
146
146
  iterate(tree, null);
147
147
  };
148
148
 
149
- const generatePositions = (tree, currentNode) => {
150
- const positions = [];
149
+ const generateHitPositions = (tree, currentNode) => {
150
+ const hitPositions = [];
151
151
  let lastTop = 0;
152
- const addPosition = (node, position, top) => {
153
- const area = {
152
+ const addHitPosition = (node, position, top) => {
153
+ hitPositions.push({
154
154
  top,
155
- bottom: 0,
156
155
  node,
157
156
  position
158
- };
159
- positions.push(area);
157
+ });
160
158
  lastTop = top;
161
159
  };
162
160
  const handleAfterOpenFolder = (node, nextNode) => {
163
161
  if (node === currentNode || nextNode === currentNode) {
164
162
  // Cannot move before or after current item
165
- addPosition(node, Position.None, lastTop);
163
+ addHitPosition(node, Position.None, lastTop);
166
164
  } else {
167
- addPosition(node, Position.After, lastTop);
165
+ addHitPosition(node, Position.After, lastTop);
168
166
  }
169
167
  };
170
168
  const handleClosedFolder = (node, nextNode, element) => {
171
169
  const top = getOffsetTop(element);
172
170
  if (node === currentNode) {
173
171
  // Cannot move after current item
174
- addPosition(node, Position.None, top);
172
+ addHitPosition(node, Position.None, top);
175
173
  } else {
176
- addPosition(node, Position.Inside, top);
174
+ addHitPosition(node, Position.Inside, top);
177
175
 
178
176
  // Cannot move before current item
179
177
  if (nextNode !== currentNode) {
180
- addPosition(node, Position.After, top);
178
+ addHitPosition(node, Position.After, top);
181
179
  }
182
180
  }
183
181
  };
184
182
  const handleFirstNode = node => {
185
183
  if (node !== currentNode) {
186
- addPosition(node, Position.Before, getOffsetTop(node.element));
184
+ addHitPosition(node, Position.Before, getOffsetTop(node.element));
187
185
  }
188
186
  };
189
187
  const handleNode = (node, nextNode, element) => {
190
188
  const top = getOffsetTop(element);
191
189
  if (node === currentNode) {
192
190
  // Cannot move inside current item
193
- addPosition(node, Position.None, top);
191
+ addHitPosition(node, Position.None, top);
194
192
  } else {
195
- addPosition(node, Position.Inside, top);
193
+ addHitPosition(node, Position.Inside, top);
196
194
  }
197
195
  if (nextNode === currentNode || node === currentNode) {
198
196
  // Cannot move before or after current item
199
- addPosition(node, Position.None, top);
197
+ addHitPosition(node, Position.None, top);
200
198
  } else {
201
- addPosition(node, Position.After, top);
199
+ addHitPosition(node, Position.After, top);
202
200
  }
203
201
  };
204
202
  const handleOpenFolder = (node, element) => {
@@ -208,10 +206,10 @@ var jqtree = (function (exports) {
208
206
  // Dnd over the current element is not possible: add a position with type None for the top and the bottom.
209
207
  const top = getOffsetTop(element);
210
208
  const height = element.clientHeight;
211
- addPosition(node, Position.None, top);
209
+ addHitPosition(node, Position.None, top);
212
210
  if (height > 5) {
213
211
  // Subtract 5 pixels to allow more space for the next element.
214
- addPosition(node, Position.None, top + height - 5);
212
+ addHitPosition(node, Position.None, top + height - 5);
215
213
  }
216
214
 
217
215
  // Stop iterating
@@ -220,7 +218,7 @@ var jqtree = (function (exports) {
220
218
 
221
219
  // Cannot move before current item
222
220
  if (node.children[0] !== currentNode) {
223
- addPosition(node, Position.Inside, getOffsetTop(element));
221
+ addHitPosition(node, Position.Inside, getOffsetTop(element));
224
222
  }
225
223
 
226
224
  // Continue iterating
@@ -233,17 +231,16 @@ var jqtree = (function (exports) {
233
231
  handleNode,
234
232
  handleOpenFolder
235
233
  });
236
- return positions;
234
+ return hitPositions;
237
235
  };
238
236
  const generateHitAreasForGroup = (hitAreas, positionsInGroup, top, bottom) => {
239
237
  // limit positions in group
240
238
  const positionCount = Math.min(positionsInGroup.length, 4);
241
239
  const areaHeight = Math.round((bottom - top) / positionCount);
242
240
  let areaTop = top;
243
- let i = 0;
244
- while (i < positionCount) {
241
+ for (let i = 0; i < positionCount; i++) {
245
242
  const position = positionsInGroup[i];
246
- if (position && position.position !== Position.None) {
243
+ if (position.position !== Position.None) {
247
244
  hitAreas.push({
248
245
  top: areaTop,
249
246
  bottom: areaTop + areaHeight,
@@ -252,14 +249,16 @@ var jqtree = (function (exports) {
252
249
  });
253
250
  }
254
251
  areaTop += areaHeight;
255
- i += 1;
256
252
  }
257
253
  };
258
- const generateHitAreasFromPositions = (positions, treeBottom) => {
259
- let previousTop = positions[0]?.top ?? 0;
254
+ const generateHitAreasFromPositions = (hitPositions, treeBottom) => {
255
+ if (!hitPositions.length) {
256
+ return [];
257
+ }
258
+ let previousTop = hitPositions[0].top;
260
259
  let group = [];
261
260
  const hitAreas = [];
262
- for (const position of positions) {
261
+ for (const position of hitPositions) {
263
262
  if (position.top !== previousTop && group.length) {
264
263
  generateHitAreasForGroup(hitAreas, group, previousTop, position.top);
265
264
  previousTop = position.top;
@@ -270,10 +269,7 @@ var jqtree = (function (exports) {
270
269
  generateHitAreasForGroup(hitAreas, group, previousTop, treeBottom);
271
270
  return hitAreas;
272
271
  };
273
- const generateHitAreas = (tree, currentNode, treeBottom) => {
274
- const positions = generatePositions(tree, currentNode);
275
- return generateHitAreasFromPositions(positions, treeBottom);
276
- };
272
+ const generateHitAreas = (tree, currentNode, treeBottom) => generateHitAreasFromPositions(generateHitPositions(tree, currentNode), treeBottom);
277
273
 
278
274
  class DragAndDropHandler {
279
275
  constructor(_ref) {
@@ -1351,15 +1347,44 @@ var jqtree = (function (exports) {
1351
1347
  }
1352
1348
  }
1353
1349
  setInitialStateOnDemand(state, cbFinished) {
1354
- if (state) {
1355
- this.doSetInitialStateOnDemand(state.open_nodes, state.selected_node, cbFinished);
1356
- } else {
1357
- cbFinished();
1358
- }
1350
+ let loadingCount = 0;
1351
+ let nodeIds = state.open_nodes;
1352
+ const openNodes = () => {
1353
+ const newNodesIds = [];
1354
+ for (const nodeId of nodeIds) {
1355
+ const node = this.getNodeById(nodeId);
1356
+ if (!node) {
1357
+ newNodesIds.push(nodeId);
1358
+ } else {
1359
+ if (!node.is_loading) {
1360
+ if (node.load_on_demand) {
1361
+ loadAndOpenNode(node);
1362
+ } else {
1363
+ this.openNode(node, false);
1364
+ }
1365
+ }
1366
+ }
1367
+ }
1368
+ nodeIds = newNodesIds;
1369
+ if (this.selectInitialNodes(state.selected_node)) {
1370
+ this.refreshElements(null);
1371
+ }
1372
+ if (loadingCount === 0) {
1373
+ cbFinished();
1374
+ }
1375
+ };
1376
+ const loadAndOpenNode = node => {
1377
+ loadingCount += 1;
1378
+ this.openNode(node, false, () => {
1379
+ loadingCount -= 1;
1380
+ openNodes();
1381
+ });
1382
+ };
1383
+ openNodes();
1359
1384
  }
1360
1385
  getNodeIdToBeSelected() {
1361
1386
  const state = this.getStateFromStorage();
1362
- if (state && state.selected_node) {
1387
+ if (state?.selected_node) {
1363
1388
  return state.selected_node[0] || null;
1364
1389
  } else {
1365
1390
  return null;
@@ -1415,42 +1440,6 @@ var jqtree = (function (exports) {
1415
1440
  this.removeFromSelection(node);
1416
1441
  });
1417
1442
  }
1418
- doSetInitialStateOnDemand(nodeIdsParam, selectedNodes, cbFinished) {
1419
- let loadingCount = 0;
1420
- let nodeIds = nodeIdsParam;
1421
- const openNodes = () => {
1422
- const newNodesIds = [];
1423
- for (const nodeId of nodeIds) {
1424
- const node = this.getNodeById(nodeId);
1425
- if (!node) {
1426
- newNodesIds.push(nodeId);
1427
- } else {
1428
- if (!node.is_loading) {
1429
- if (node.load_on_demand) {
1430
- loadAndOpenNode(node);
1431
- } else {
1432
- this.openNode(node, false);
1433
- }
1434
- }
1435
- }
1436
- }
1437
- nodeIds = newNodesIds;
1438
- if (this.selectInitialNodes(selectedNodes)) {
1439
- this.refreshElements(null);
1440
- }
1441
- if (loadingCount === 0) {
1442
- cbFinished();
1443
- }
1444
- };
1445
- const loadAndOpenNode = node => {
1446
- loadingCount += 1;
1447
- this.openNode(node, false, () => {
1448
- loadingCount -= 1;
1449
- openNodes();
1450
- });
1451
- };
1452
- openNodes();
1453
- }
1454
1443
  getKeyName() {
1455
1444
  if (typeof this.saveStateOption === "string") {
1456
1445
  return this.saveStateOption;
@@ -2518,41 +2507,15 @@ var jqtree = (function (exports) {
2518
2507
  }
2519
2508
 
2520
2509
  class GhostDropHint {
2521
- constructor(node, element, position) {
2510
+ constructor(element) {
2522
2511
  this.element = element;
2523
- this.node = node;
2524
2512
  this.ghost = this.createGhostElement();
2525
- if (position === Position.After) {
2526
- this.moveAfter();
2527
- } else if (position === Position.Before) {
2528
- this.moveBefore();
2529
- } else if (position === Position.Inside) {
2530
- if (node.isFolder() && node.is_open) {
2531
- this.moveInsideOpenFolder();
2532
- } else {
2533
- this.moveInside();
2534
- }
2535
- }
2513
+ this.element.after(this.ghost);
2514
+ this.ghost.classList.add("jqtree-inside");
2536
2515
  }
2537
2516
  remove() {
2538
2517
  this.ghost.remove();
2539
2518
  }
2540
- moveAfter() {
2541
- this.element.after(this.ghost);
2542
- }
2543
- moveBefore() {
2544
- this.element.before(this.ghost);
2545
- }
2546
- moveInsideOpenFolder() {
2547
- const childElement = this.node.children[0]?.element;
2548
- if (childElement) {
2549
- childElement.before(this.ghost);
2550
- }
2551
- }
2552
- moveInside() {
2553
- this.element.after(this.ghost);
2554
- this.ghost.classList.add("jqtree-inside");
2555
- }
2556
2519
  createGhostElement() {
2557
2520
  const ghost = document.createElement("li");
2558
2521
  ghost.className = "jqtree_common jqtree-ghost";
@@ -2595,7 +2558,7 @@ var jqtree = (function (exports) {
2595
2558
  if (this.mustShowBorderDropHint(position)) {
2596
2559
  return new BorderDropHint(this.element, this.getScrollLeft());
2597
2560
  } else {
2598
- return new GhostDropHint(this.node, this.element, position);
2561
+ return new GhostDropHint(this.element);
2599
2562
  }
2600
2563
  }
2601
2564
  select(mustSetFocus) {