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.
- package/bower.json +1 -1
- package/package.json +20 -19
- package/src/dragAndDropHandler/generateHitAreas.ts +47 -43
- package/src/nodeElement/ghostDropHint.ts +3 -37
- package/src/nodeElement/index.ts +1 -1
- package/src/saveStateHandler.ts +43 -59
- package/src/version.ts +1 -1
- package/tree.jquery.debug.js +69 -106
- package/tree.jquery.debug.js.map +1 -1
- package/tree.jquery.js +2 -2
- package/tree.jquery.js.map +1 -1
- package/.editorconfig +0 -12
- package/.eslintrc +0 -48
- package/.github/workflows/ci.yml +0 -68
- package/.github/workflows/codeql-analysis.yml +0 -32
- package/.github/workflows/size.yml +0 -24
- package/.github/workflows/static.yml +0 -57
- package/.prettier +0 -3
- package/config/.postcssrc +0 -6
- package/config/babel.config.json +0 -11
- package/config/babel.coverage.config.json +0 -4
- package/config/jest.config.js +0 -24
- package/config/jest.polyfills.js +0 -14
- package/config/playwright.config.js +0 -18
- package/config/production +0 -6
- package/config/rollup.config.mjs +0 -71
- package/css/jqtree.postcss +0 -193
- package/devserver/devserver.js +0 -7
- package/devserver/devserver_scroll.js +0 -8
- package/devserver/index.html +0 -22
- package/devserver/test_index.html +0 -22
- package/devserver/test_scroll.html +0 -28
- package/devserver/test_scroll_container.html +0 -39
- package/docs/.ruby-version +0 -1
- package/docs/Gemfile +0 -5
- package/docs/Gemfile.lock +0 -82
- package/docs/_config.yml +0 -126
- package/docs/_entries/events/index.md +0 -6
- package/docs/_entries/events/tree-click.md +0 -37
- package/docs/_entries/events/tree-close.md +0 -15
- package/docs/_entries/events/tree-contextmenu.md +0 -21
- package/docs/_entries/events/tree-dblclick.md +0 -19
- package/docs/_entries/events/tree-init.md +0 -15
- package/docs/_entries/events/tree-load-data.md +0 -15
- package/docs/_entries/events/tree-loading-data.md +0 -27
- package/docs/_entries/events/tree-move.md +0 -73
- package/docs/_entries/events/tree-open.md +0 -15
- package/docs/_entries/events/tree-refresh.md +0 -12
- package/docs/_entries/events/tree-select.md +0 -28
- package/docs/_entries/functions/addnodeafter.md +0 -20
- package/docs/_entries/functions/addnodebefore.md +0 -8
- package/docs/_entries/functions/addparentnode.md +0 -20
- package/docs/_entries/functions/appendnode.md +0 -50
- package/docs/_entries/functions/closenode.md +0 -23
- package/docs/_entries/functions/destroy.md +0 -12
- package/docs/_entries/functions/getnodebycallback.md +0 -24
- package/docs/_entries/functions/getnodebyhtmlelement.md +0 -29
- package/docs/_entries/functions/getnodebyid.md +0 -21
- package/docs/_entries/functions/getselectednode.md +0 -10
- package/docs/_entries/functions/getstate.md +0 -19
- package/docs/_entries/functions/gettree.md +0 -12
- package/docs/_entries/functions/index.md +0 -6
- package/docs/_entries/functions/is-node-selected.md +0 -11
- package/docs/_entries/functions/isdragging.md +0 -12
- package/docs/_entries/functions/loaddata.md +0 -46
- package/docs/_entries/functions/loaddatafromurl.md +0 -55
- package/docs/_entries/functions/movedown.md +0 -8
- package/docs/_entries/functions/movenode.md +0 -15
- package/docs/_entries/functions/moveup.md +0 -8
- package/docs/_entries/functions/opennode.md +0 -44
- package/docs/_entries/functions/prependnode.md +0 -21
- package/docs/_entries/functions/refresh.md +0 -12
- package/docs/_entries/functions/reload.md +0 -22
- package/docs/_entries/functions/removenode.md +0 -12
- package/docs/_entries/functions/scrolltonode.md +0 -13
- package/docs/_entries/functions/selectnode.md +0 -45
- package/docs/_entries/functions/setoption.md +0 -12
- package/docs/_entries/functions/setstate.md +0 -8
- package/docs/_entries/functions/toggle.md +0 -25
- package/docs/_entries/functions/tojson.md +0 -13
- package/docs/_entries/functions/updatenode.md +0 -50
- package/docs/_entries/general/changelog.md +0 -434
- package/docs/_entries/general/demo.html +0 -28
- package/docs/_entries/general/downloads.md +0 -9
- package/docs/_entries/general/examples.md +0 -8
- package/docs/_entries/general/features.md +0 -15
- package/docs/_entries/general/index.md +0 -7
- package/docs/_entries/general/introduction.md +0 -9
- package/docs/_entries/general/requirements.md +0 -6
- package/docs/_entries/general/tutorial.md +0 -71
- package/docs/_entries/general/usecases.md +0 -15
- package/docs/_entries/multiple_selection/add-to-selection.md +0 -21
- package/docs/_entries/multiple_selection/get-selected-nodes.md +0 -10
- package/docs/_entries/multiple_selection/index.md +0 -9
- package/docs/_entries/multiple_selection/remove-from-selection.md +0 -11
- package/docs/_entries/node/children.md +0 -12
- package/docs/_entries/node/getdata.md +0 -17
- package/docs/_entries/node/getlevel.md +0 -13
- package/docs/_entries/node/getnextnode.md +0 -12
- package/docs/_entries/node/getnextsibling.md +0 -10
- package/docs/_entries/node/getnextvisiblenode.md +0 -15
- package/docs/_entries/node/getpreviousnode.md +0 -12
- package/docs/_entries/node/getprevioussibling.md +0 -10
- package/docs/_entries/node/getpreviousvisiblenode.md +0 -15
- package/docs/_entries/node/index.md +0 -13
- package/docs/_entries/node/parent.md +0 -10
- package/docs/_entries/options/animationspeed.md +0 -7
- package/docs/_entries/options/autoescape.md +0 -6
- package/docs/_entries/options/autoopen.md +0 -28
- package/docs/_entries/options/buttonleft.md +0 -12
- package/docs/_entries/options/closedicon.md +0 -26
- package/docs/_entries/options/data-url.md +0 -45
- package/docs/_entries/options/data.md +0 -46
- package/docs/_entries/options/datafilter.md +0 -17
- package/docs/_entries/options/draganddrop.md +0 -18
- package/docs/_entries/options/index.md +0 -6
- package/docs/_entries/options/keyboardsupport.md +0 -14
- package/docs/_entries/options/oncanmove.md +0 -22
- package/docs/_entries/options/oncanmoveto.md +0 -22
- package/docs/_entries/options/oncanselectnode.md +0 -26
- package/docs/_entries/options/oncreateli.md +0 -22
- package/docs/_entries/options/ondragmove.md +0 -20
- package/docs/_entries/options/ondragstop.md +0 -20
- package/docs/_entries/options/onismovehandle.md +0 -17
- package/docs/_entries/options/onloadfailed.md +0 -15
- package/docs/_entries/options/onloading.md +0 -22
- package/docs/_entries/options/openedicon.md +0 -26
- package/docs/_entries/options/openfolderdelay.md +0 -15
- package/docs/_entries/options/rtl.md +0 -18
- package/docs/_entries/options/savestate.md +0 -39
- package/docs/_entries/options/selectable.md +0 -18
- package/docs/_entries/options/showemptyfolder.md +0 -26
- package/docs/_entries/options/slide.md +0 -12
- package/docs/_entries/options/start_dnd_delay.md +0 -13
- package/docs/_entries/options/tabindex.md +0 -14
- package/docs/_entries/options/usecontextmenu.md +0 -14
- package/docs/_examples/01_load_json_data.html +0 -45
- package/docs/_examples/02_load_json_data_from_server.html +0 -29
- package/docs/_examples/03_drag_and_drop.html +0 -42
- package/docs/_examples/04_save_state.html +0 -46
- package/docs/_examples/05_load_on_demand.html +0 -68
- package/docs/_examples/06_autoescape.html +0 -45
- package/docs/_examples/07_autoscroll.html +0 -42
- package/docs/_examples/08_multiple_select.html +0 -60
- package/docs/_examples/09_custom_html.html +0 -61
- package/docs/_examples/10_icon_buttons.html +0 -26
- package/docs/_examples/11_right-to-left.html +0 -25
- package/docs/_examples/12_button_on_right.html +0 -26
- package/docs/_examples/13_drag_outside.html +0 -48
- package/docs/_examples/14_filter.html +0 -111
- package/docs/_layouts/example.html +0 -7
- package/docs/_layouts/page.html +0 -26
- package/docs/documentation.css +0 -3
- package/docs/index.html +0 -65
- package/docs/package.json +0 -22
- package/docs/pnpm-lock.yaml +0 -892
- package/docs/postcss.config.js +0 -7
- package/docs/static/bower.json +0 -8
- package/docs/static/bower_components/fontawesome/css/all.min.css +0 -9
- package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
- package/docs/static/bower_components/jquery/dist/jquery.js +0 -10704
- package/docs/static/bower_components/jquery/dist/jquery.min.js +0 -2
- package/docs/static/bower_components/jquery-mockjax/dist/jquery.mockjax.js +0 -1061
- package/docs/static/documentation.js +0 -26
- package/docs/static/example.postcss +0 -68
- package/docs/static/example_data.js +0 -122
- package/docs/static/examples/autoescape.js +0 -17
- package/docs/static/examples/autoscroll.js +0 -6
- package/docs/static/examples/button-on-right.js +0 -13
- package/docs/static/examples/custom_html.js +0 -27
- package/docs/static/examples/drag-outside.js +0 -37
- package/docs/static/examples/drag_and_drop.js +0 -13
- package/docs/static/examples/filter.js +0 -63
- package/docs/static/examples/icon_buttons.js +0 -12
- package/docs/static/examples/load_json_data.js +0 -16
- package/docs/static/examples/load_json_data_from_server.js +0 -9
- package/docs/static/examples/load_on_demand.js +0 -19
- package/docs/static/examples/multiple_select.js +0 -23
- package/docs/static/examples/right-to-left.js +0 -11
- package/docs/static/examples/save_state.js +0 -11
- package/docs/static/monokai.css +0 -70
- package/docs/static/spinner.gif +0 -0
- package/docs/tailwind.config.js +0 -16
- package/sitemap.txt +0 -14
- package/src/playwright/.eslintrc +0 -5
- package/src/playwright/coverage.ts +0 -38
- package/src/playwright/playwright.test.ts +0 -401
- package/src/playwright/playwright.test.ts-snapshots/with-dragAndDrop-moves-a-node-1-Chromium-darwin.png +0 -0
- package/src/playwright/playwright.test.ts-snapshots/with-dragAndDrop-moves-a-node-1-Chromium-linux.png +0 -0
- package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-displays-a-tree-1-Chromium-darwin.png +0 -0
- package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-displays-a-tree-1-Chromium-linux.png +0 -0
- package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-selects-a-node-1-Chromium-darwin.png +0 -0
- package/src/playwright/playwright.test.ts-snapshots/without-dragAndDrop-selects-a-node-1-Chromium-linux.png +0 -0
- package/src/playwright/testUtils.ts +0 -153
- package/src/test/.eslintrc +0 -17
- package/src/test/global.d.ts +0 -1
- package/src/test/jqTree/accessibility.test.ts +0 -25
- package/src/test/jqTree/create.test.ts +0 -54
- package/src/test/jqTree/events.test.ts +0 -290
- package/src/test/jqTree/keyboard.test.ts +0 -247
- package/src/test/jqTree/loadOnDemand.test.ts +0 -198
- package/src/test/jqTree/methods.test.ts +0 -1491
- package/src/test/jqTree/mouse.test.ts +0 -82
- package/src/test/jqTree/options.test.ts +0 -595
- package/src/test/node.test.ts +0 -1396
- package/src/test/nodeUtils.test.ts +0 -21
- package/src/test/position.test.ts +0 -30
- package/src/test/support/exampleData.ts +0 -23
- package/src/test/support/jqTreeMatchers.ts +0 -68
- package/src/test/support/matchers.d.ts +0 -31
- package/src/test/support/setupTests.ts +0 -5
- package/src/test/support/testUtil.ts +0 -30
- package/src/test/support/treeStructure.ts +0 -39
- package/src/test/util.test.ts +0 -27
- package/tsconfig.json +0 -24
package/tree.jquery.debug.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
JqTree 1.8.
|
|
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.
|
|
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
|
|
150
|
-
const
|
|
149
|
+
const generateHitPositions = (tree, currentNode) => {
|
|
150
|
+
const hitPositions = [];
|
|
151
151
|
let lastTop = 0;
|
|
152
|
-
const
|
|
153
|
-
|
|
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
|
-
|
|
163
|
+
addHitPosition(node, Position.None, lastTop);
|
|
166
164
|
} else {
|
|
167
|
-
|
|
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
|
-
|
|
172
|
+
addHitPosition(node, Position.None, top);
|
|
175
173
|
} else {
|
|
176
|
-
|
|
174
|
+
addHitPosition(node, Position.Inside, top);
|
|
177
175
|
|
|
178
176
|
// Cannot move before current item
|
|
179
177
|
if (nextNode !== currentNode) {
|
|
180
|
-
|
|
178
|
+
addHitPosition(node, Position.After, top);
|
|
181
179
|
}
|
|
182
180
|
}
|
|
183
181
|
};
|
|
184
182
|
const handleFirstNode = node => {
|
|
185
183
|
if (node !== currentNode) {
|
|
186
|
-
|
|
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
|
-
|
|
191
|
+
addHitPosition(node, Position.None, top);
|
|
194
192
|
} else {
|
|
195
|
-
|
|
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
|
-
|
|
197
|
+
addHitPosition(node, Position.None, top);
|
|
200
198
|
} else {
|
|
201
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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 = (
|
|
259
|
-
|
|
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
|
|
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
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
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
|
|
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(
|
|
2510
|
+
constructor(element) {
|
|
2522
2511
|
this.element = element;
|
|
2523
|
-
this.node = node;
|
|
2524
2512
|
this.ghost = this.createGhostElement();
|
|
2525
|
-
|
|
2526
|
-
|
|
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.
|
|
2561
|
+
return new GhostDropHint(this.element);
|
|
2599
2562
|
}
|
|
2600
2563
|
}
|
|
2601
2564
|
select(mustSetFocus) {
|