jqtree 1.8.1 → 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 +56 -41
- 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 +77 -104
- 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 -430
- 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,71 +146,79 @@ 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) => {
|
|
205
203
|
if (node === currentNode) {
|
|
206
204
|
// Cannot move inside current item
|
|
205
|
+
|
|
206
|
+
// Dnd over the current element is not possible: add a position with type None for the top and the bottom.
|
|
207
|
+
const top = getOffsetTop(element);
|
|
208
|
+
const height = element.clientHeight;
|
|
209
|
+
addHitPosition(node, Position.None, top);
|
|
210
|
+
if (height > 5) {
|
|
211
|
+
// Subtract 5 pixels to allow more space for the next element.
|
|
212
|
+
addHitPosition(node, Position.None, top + height - 5);
|
|
213
|
+
}
|
|
214
|
+
|
|
207
215
|
// Stop iterating
|
|
208
216
|
return false;
|
|
209
217
|
}
|
|
210
218
|
|
|
211
219
|
// Cannot move before current item
|
|
212
220
|
if (node.children[0] !== currentNode) {
|
|
213
|
-
|
|
221
|
+
addHitPosition(node, Position.Inside, getOffsetTop(element));
|
|
214
222
|
}
|
|
215
223
|
|
|
216
224
|
// Continue iterating
|
|
@@ -223,17 +231,16 @@ var jqtree = (function (exports) {
|
|
|
223
231
|
handleNode,
|
|
224
232
|
handleOpenFolder
|
|
225
233
|
});
|
|
226
|
-
return
|
|
234
|
+
return hitPositions;
|
|
227
235
|
};
|
|
228
236
|
const generateHitAreasForGroup = (hitAreas, positionsInGroup, top, bottom) => {
|
|
229
237
|
// limit positions in group
|
|
230
238
|
const positionCount = Math.min(positionsInGroup.length, 4);
|
|
231
239
|
const areaHeight = Math.round((bottom - top) / positionCount);
|
|
232
240
|
let areaTop = top;
|
|
233
|
-
let i = 0;
|
|
234
|
-
while (i < positionCount) {
|
|
241
|
+
for (let i = 0; i < positionCount; i++) {
|
|
235
242
|
const position = positionsInGroup[i];
|
|
236
|
-
if (position) {
|
|
243
|
+
if (position.position !== Position.None) {
|
|
237
244
|
hitAreas.push({
|
|
238
245
|
top: areaTop,
|
|
239
246
|
bottom: areaTop + areaHeight,
|
|
@@ -242,14 +249,16 @@ var jqtree = (function (exports) {
|
|
|
242
249
|
});
|
|
243
250
|
}
|
|
244
251
|
areaTop += areaHeight;
|
|
245
|
-
i += 1;
|
|
246
252
|
}
|
|
247
253
|
};
|
|
248
|
-
const generateHitAreasFromPositions = (
|
|
249
|
-
|
|
254
|
+
const generateHitAreasFromPositions = (hitPositions, treeBottom) => {
|
|
255
|
+
if (!hitPositions.length) {
|
|
256
|
+
return [];
|
|
257
|
+
}
|
|
258
|
+
let previousTop = hitPositions[0].top;
|
|
250
259
|
let group = [];
|
|
251
260
|
const hitAreas = [];
|
|
252
|
-
for (const position of
|
|
261
|
+
for (const position of hitPositions) {
|
|
253
262
|
if (position.top !== previousTop && group.length) {
|
|
254
263
|
generateHitAreasForGroup(hitAreas, group, previousTop, position.top);
|
|
255
264
|
previousTop = position.top;
|
|
@@ -260,10 +269,7 @@ var jqtree = (function (exports) {
|
|
|
260
269
|
generateHitAreasForGroup(hitAreas, group, previousTop, treeBottom);
|
|
261
270
|
return hitAreas;
|
|
262
271
|
};
|
|
263
|
-
const generateHitAreas = (tree, currentNode, treeBottom) =>
|
|
264
|
-
const positions = generatePositions(tree, currentNode);
|
|
265
|
-
return generateHitAreasFromPositions(positions, treeBottom);
|
|
266
|
-
};
|
|
272
|
+
const generateHitAreas = (tree, currentNode, treeBottom) => generateHitAreasFromPositions(generateHitPositions(tree, currentNode), treeBottom);
|
|
267
273
|
|
|
268
274
|
class DragAndDropHandler {
|
|
269
275
|
constructor(_ref) {
|
|
@@ -1341,15 +1347,44 @@ var jqtree = (function (exports) {
|
|
|
1341
1347
|
}
|
|
1342
1348
|
}
|
|
1343
1349
|
setInitialStateOnDemand(state, cbFinished) {
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
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();
|
|
1349
1384
|
}
|
|
1350
1385
|
getNodeIdToBeSelected() {
|
|
1351
1386
|
const state = this.getStateFromStorage();
|
|
1352
|
-
if (state
|
|
1387
|
+
if (state?.selected_node) {
|
|
1353
1388
|
return state.selected_node[0] || null;
|
|
1354
1389
|
} else {
|
|
1355
1390
|
return null;
|
|
@@ -1405,42 +1440,6 @@ var jqtree = (function (exports) {
|
|
|
1405
1440
|
this.removeFromSelection(node);
|
|
1406
1441
|
});
|
|
1407
1442
|
}
|
|
1408
|
-
doSetInitialStateOnDemand(nodeIdsParam, selectedNodes, cbFinished) {
|
|
1409
|
-
let loadingCount = 0;
|
|
1410
|
-
let nodeIds = nodeIdsParam;
|
|
1411
|
-
const openNodes = () => {
|
|
1412
|
-
const newNodesIds = [];
|
|
1413
|
-
for (const nodeId of nodeIds) {
|
|
1414
|
-
const node = this.getNodeById(nodeId);
|
|
1415
|
-
if (!node) {
|
|
1416
|
-
newNodesIds.push(nodeId);
|
|
1417
|
-
} else {
|
|
1418
|
-
if (!node.is_loading) {
|
|
1419
|
-
if (node.load_on_demand) {
|
|
1420
|
-
loadAndOpenNode(node);
|
|
1421
|
-
} else {
|
|
1422
|
-
this.openNode(node, false);
|
|
1423
|
-
}
|
|
1424
|
-
}
|
|
1425
|
-
}
|
|
1426
|
-
}
|
|
1427
|
-
nodeIds = newNodesIds;
|
|
1428
|
-
if (this.selectInitialNodes(selectedNodes)) {
|
|
1429
|
-
this.refreshElements(null);
|
|
1430
|
-
}
|
|
1431
|
-
if (loadingCount === 0) {
|
|
1432
|
-
cbFinished();
|
|
1433
|
-
}
|
|
1434
|
-
};
|
|
1435
|
-
const loadAndOpenNode = node => {
|
|
1436
|
-
loadingCount += 1;
|
|
1437
|
-
this.openNode(node, false, () => {
|
|
1438
|
-
loadingCount -= 1;
|
|
1439
|
-
openNodes();
|
|
1440
|
-
});
|
|
1441
|
-
};
|
|
1442
|
-
openNodes();
|
|
1443
|
-
}
|
|
1444
1443
|
getKeyName() {
|
|
1445
1444
|
if (typeof this.saveStateOption === "string") {
|
|
1446
1445
|
return this.saveStateOption;
|
|
@@ -2508,41 +2507,15 @@ var jqtree = (function (exports) {
|
|
|
2508
2507
|
}
|
|
2509
2508
|
|
|
2510
2509
|
class GhostDropHint {
|
|
2511
|
-
constructor(
|
|
2510
|
+
constructor(element) {
|
|
2512
2511
|
this.element = element;
|
|
2513
|
-
this.node = node;
|
|
2514
2512
|
this.ghost = this.createGhostElement();
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
} else if (position === Position.Before) {
|
|
2518
|
-
this.moveBefore();
|
|
2519
|
-
} else if (position === Position.Inside) {
|
|
2520
|
-
if (node.isFolder() && node.is_open) {
|
|
2521
|
-
this.moveInsideOpenFolder();
|
|
2522
|
-
} else {
|
|
2523
|
-
this.moveInside();
|
|
2524
|
-
}
|
|
2525
|
-
}
|
|
2513
|
+
this.element.after(this.ghost);
|
|
2514
|
+
this.ghost.classList.add("jqtree-inside");
|
|
2526
2515
|
}
|
|
2527
2516
|
remove() {
|
|
2528
2517
|
this.ghost.remove();
|
|
2529
2518
|
}
|
|
2530
|
-
moveAfter() {
|
|
2531
|
-
this.element.after(this.ghost);
|
|
2532
|
-
}
|
|
2533
|
-
moveBefore() {
|
|
2534
|
-
this.element.before(this.ghost);
|
|
2535
|
-
}
|
|
2536
|
-
moveInsideOpenFolder() {
|
|
2537
|
-
const childElement = this.node.children[0]?.element;
|
|
2538
|
-
if (childElement) {
|
|
2539
|
-
childElement.before(this.ghost);
|
|
2540
|
-
}
|
|
2541
|
-
}
|
|
2542
|
-
moveInside() {
|
|
2543
|
-
this.element.after(this.ghost);
|
|
2544
|
-
this.ghost.classList.add("jqtree-inside");
|
|
2545
|
-
}
|
|
2546
2519
|
createGhostElement() {
|
|
2547
2520
|
const ghost = document.createElement("li");
|
|
2548
2521
|
ghost.className = "jqtree_common jqtree-ghost";
|
|
@@ -2585,7 +2558,7 @@ var jqtree = (function (exports) {
|
|
|
2585
2558
|
if (this.mustShowBorderDropHint(position)) {
|
|
2586
2559
|
return new BorderDropHint(this.element, this.getScrollLeft());
|
|
2587
2560
|
} else {
|
|
2588
|
-
return new GhostDropHint(this.
|
|
2561
|
+
return new GhostDropHint(this.element);
|
|
2589
2562
|
}
|
|
2590
2563
|
}
|
|
2591
2564
|
select(mustSetFocus) {
|