jqtree 1.8.10 → 1.8.11
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 +3 -10
- package/eslint.config.mjs +27 -3
- package/package.json +50 -47
- package/src/elementsRenderer.ts +1 -1
- package/src/mouseHandler.ts +10 -7
- package/src/node.ts +1 -5
- package/src/nodeElement/index.ts +1 -3
- package/src/scrollHandler/containerScrollParent.ts +19 -118
- package/src/scrollHandler/createScrollParent.ts +1 -1
- package/src/scrollHandler/documentScrollParent.ts +35 -118
- package/src/scrollHandler/scrollParent.ts +117 -0
- package/src/scrollHandler.ts +5 -7
- package/src/simple.widget.ts +1 -3
- package/src/tree.jquery.ts +5 -13
- package/src/version.ts +1 -1
- package/tree.jquery.debug.js +202 -295
- package/tree.jquery.debug.js.map +1 -1
- package/tree.jquery.js +3 -3
- package/tree.jquery.js.map +1 -1
- package/.tool-versions +0 -2
- package/src/scrollHandler/types.ts +0 -7
package/tree.jquery.debug.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
|
-
JqTree 1.8.
|
|
2
|
+
JqTree 1.8.11
|
|
3
3
|
|
|
4
|
-
Copyright
|
|
4
|
+
Copyright 2026 Marco Braak
|
|
5
5
|
|
|
6
6
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
7
|
you may not use this file except in compliance with the License.
|
|
@@ -21,15 +21,14 @@ var jqtree = (function (exports) {
|
|
|
21
21
|
'use strict';
|
|
22
22
|
|
|
23
23
|
class DataLoader {
|
|
24
|
-
constructor(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
} = _ref;
|
|
24
|
+
constructor({
|
|
25
|
+
dataFilter,
|
|
26
|
+
loadData,
|
|
27
|
+
onLoadFailed,
|
|
28
|
+
onLoading,
|
|
29
|
+
treeElement,
|
|
30
|
+
triggerEvent
|
|
31
|
+
}) {
|
|
33
32
|
this.dataFilter = dataFilter;
|
|
34
33
|
this.loadData = loadData;
|
|
35
34
|
this.onLoadFailed = onLoadFailed;
|
|
@@ -153,14 +152,13 @@ var jqtree = (function (exports) {
|
|
|
153
152
|
}
|
|
154
153
|
|
|
155
154
|
class DragElement {
|
|
156
|
-
constructor(
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
} = _ref;
|
|
155
|
+
constructor({
|
|
156
|
+
autoEscape,
|
|
157
|
+
nodeName,
|
|
158
|
+
offsetX,
|
|
159
|
+
offsetY,
|
|
160
|
+
treeElement
|
|
161
|
+
}) {
|
|
164
162
|
this.offsetX = offsetX;
|
|
165
163
|
this.offsetY = offsetY;
|
|
166
164
|
this.element = this.createElement(nodeName, autoEscape);
|
|
@@ -186,14 +184,13 @@ var jqtree = (function (exports) {
|
|
|
186
184
|
}
|
|
187
185
|
}
|
|
188
186
|
|
|
189
|
-
const iterateVisibleNodes = (tree,
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
} = _ref;
|
|
187
|
+
const iterateVisibleNodes = (tree, {
|
|
188
|
+
handleAfterOpenFolder,
|
|
189
|
+
handleClosedFolder,
|
|
190
|
+
handleFirstNode,
|
|
191
|
+
handleNode,
|
|
192
|
+
handleOpenFolder
|
|
193
|
+
}) => {
|
|
197
194
|
let isFirstNode = true;
|
|
198
195
|
const iterate = (node, nextNode) => {
|
|
199
196
|
let mustIterateInside = (node.is_open || !node.element) && node.hasChildren();
|
|
@@ -365,25 +362,24 @@ var jqtree = (function (exports) {
|
|
|
365
362
|
const generateHitAreas = (tree, currentNode, treeBottom) => generateHitAreasFromPositions(generateHitPositions(tree, currentNode), treeBottom);
|
|
366
363
|
|
|
367
364
|
class DragAndDropHandler {
|
|
368
|
-
constructor(
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
} = _ref;
|
|
365
|
+
constructor({
|
|
366
|
+
autoEscape,
|
|
367
|
+
getNodeElement,
|
|
368
|
+
getNodeElementForNode,
|
|
369
|
+
getScrollLeft,
|
|
370
|
+
getTree,
|
|
371
|
+
onCanMove,
|
|
372
|
+
onCanMoveTo,
|
|
373
|
+
onDragMove,
|
|
374
|
+
onDragStop,
|
|
375
|
+
onIsMoveHandle,
|
|
376
|
+
openFolderDelay,
|
|
377
|
+
openNode,
|
|
378
|
+
refreshElements,
|
|
379
|
+
slide,
|
|
380
|
+
treeElement,
|
|
381
|
+
triggerEvent
|
|
382
|
+
}) {
|
|
387
383
|
this.autoEscape = autoEscape;
|
|
388
384
|
this.getNodeElement = getNodeElement;
|
|
389
385
|
this.getNodeElementForNode = getNodeElementForNode;
|
|
@@ -641,21 +637,20 @@ var jqtree = (function (exports) {
|
|
|
641
637
|
}
|
|
642
638
|
|
|
643
639
|
class ElementsRenderer {
|
|
644
|
-
constructor(
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
} = _ref;
|
|
640
|
+
constructor({
|
|
641
|
+
$element,
|
|
642
|
+
autoEscape,
|
|
643
|
+
buttonLeft,
|
|
644
|
+
closedIcon,
|
|
645
|
+
dragAndDrop,
|
|
646
|
+
getTree,
|
|
647
|
+
isNodeSelected,
|
|
648
|
+
onCreateLi,
|
|
649
|
+
openedIcon,
|
|
650
|
+
rtl,
|
|
651
|
+
showEmptyFolder,
|
|
652
|
+
tabIndex
|
|
653
|
+
}) {
|
|
659
654
|
this.autoEscape = autoEscape;
|
|
660
655
|
this.buttonLeft = buttonLeft;
|
|
661
656
|
this.dragAndDrop = dragAndDrop;
|
|
@@ -771,7 +766,7 @@ var jqtree = (function (exports) {
|
|
|
771
766
|
* Call onCreateLi
|
|
772
767
|
*/
|
|
773
768
|
createLi(node, level) {
|
|
774
|
-
const isSelected =
|
|
769
|
+
const isSelected = this.isNodeSelected(node);
|
|
775
770
|
const mustShowFolder = node.isFolder() || node.isEmptyFolder && this.showEmptyFolder;
|
|
776
771
|
const li = mustShowFolder ? this.createFolderLi(node, level, isSelected) : this.createNodeLi(node, level, isSelected);
|
|
777
772
|
this.attachNodeData(node, li);
|
|
@@ -880,15 +875,14 @@ var jqtree = (function (exports) {
|
|
|
880
875
|
}
|
|
881
876
|
|
|
882
877
|
class KeyHandler {
|
|
883
|
-
constructor(
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
} = _ref;
|
|
878
|
+
constructor({
|
|
879
|
+
closeNode,
|
|
880
|
+
getSelectedNode,
|
|
881
|
+
isFocusOnTree,
|
|
882
|
+
keyboardSupport,
|
|
883
|
+
openNode,
|
|
884
|
+
selectNode
|
|
885
|
+
}) {
|
|
892
886
|
this.closeNode = closeNode;
|
|
893
887
|
this.getSelectedNode = getSelectedNode;
|
|
894
888
|
this.isFocusOnTree = isFocusOnTree;
|
|
@@ -993,20 +987,19 @@ var jqtree = (function (exports) {
|
|
|
993
987
|
});
|
|
994
988
|
|
|
995
989
|
class MouseHandler {
|
|
996
|
-
constructor(
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
} = _ref;
|
|
990
|
+
constructor({
|
|
991
|
+
element,
|
|
992
|
+
getMouseDelay,
|
|
993
|
+
getNode,
|
|
994
|
+
onClickButton,
|
|
995
|
+
onClickTitle,
|
|
996
|
+
onMouseCapture,
|
|
997
|
+
onMouseDrag,
|
|
998
|
+
onMouseStart,
|
|
999
|
+
onMouseStop,
|
|
1000
|
+
triggerEvent,
|
|
1001
|
+
useContextMenu
|
|
1002
|
+
}) {
|
|
1010
1003
|
this.element = element;
|
|
1011
1004
|
this.getMouseDelay = getMouseDelay;
|
|
1012
1005
|
this.getNode = getNode;
|
|
@@ -1258,10 +1251,7 @@ var jqtree = (function (exports) {
|
|
|
1258
1251
|
const isNodeRecordWithChildren = data => typeof data === "object" && "children" in data && data.children instanceof Array;
|
|
1259
1252
|
|
|
1260
1253
|
class Node {
|
|
1261
|
-
constructor() {
|
|
1262
|
-
let nodeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
1263
|
-
let isRoot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1264
|
-
let nodeClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Node;
|
|
1254
|
+
constructor(nodeData = null, isRoot = false, nodeClass = Node) {
|
|
1265
1255
|
this.name = "";
|
|
1266
1256
|
this.load_on_demand = false;
|
|
1267
1257
|
this.isEmptyFolder = nodeData != null && isNodeRecordWithChildren(nodeData) && nodeData.children.length === 0;
|
|
@@ -1369,8 +1359,7 @@ var jqtree = (function (exports) {
|
|
|
1369
1359
|
/*
|
|
1370
1360
|
Get the tree as data.
|
|
1371
1361
|
*/
|
|
1372
|
-
getData() {
|
|
1373
|
-
let includeParent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
1362
|
+
getData(includeParent = false) {
|
|
1374
1363
|
const getDataFromNodes = nodes => {
|
|
1375
1364
|
return nodes.map(node => {
|
|
1376
1365
|
const tmpNode = {};
|
|
@@ -1397,9 +1386,6 @@ var jqtree = (function (exports) {
|
|
|
1397
1386
|
return null;
|
|
1398
1387
|
} else {
|
|
1399
1388
|
const lastChild = this.children[this.children.length - 1];
|
|
1400
|
-
if (!lastChild) {
|
|
1401
|
-
return null;
|
|
1402
|
-
}
|
|
1403
1389
|
if (!(lastChild.hasChildren() && lastChild.is_open)) {
|
|
1404
1390
|
return lastChild;
|
|
1405
1391
|
} else {
|
|
@@ -1417,8 +1403,7 @@ var jqtree = (function (exports) {
|
|
|
1417
1403
|
}
|
|
1418
1404
|
return level;
|
|
1419
1405
|
}
|
|
1420
|
-
getNextNode() {
|
|
1421
|
-
let includeChildren = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
1406
|
+
getNextNode(includeChildren = true) {
|
|
1422
1407
|
if (includeChildren && this.hasChildren()) {
|
|
1423
1408
|
return this.children[0] ?? null;
|
|
1424
1409
|
} else if (!this.parent) {
|
|
@@ -1848,13 +1833,12 @@ var jqtree = (function (exports) {
|
|
|
1848
1833
|
}
|
|
1849
1834
|
|
|
1850
1835
|
class NodeElement {
|
|
1851
|
-
constructor(
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
} = _ref;
|
|
1836
|
+
constructor({
|
|
1837
|
+
getScrollLeft,
|
|
1838
|
+
node,
|
|
1839
|
+
tabIndex,
|
|
1840
|
+
treeElement
|
|
1841
|
+
}) {
|
|
1858
1842
|
this.getScrollLeft = getScrollLeft;
|
|
1859
1843
|
this.tabIndex = tabIndex;
|
|
1860
1844
|
this.treeElement = treeElement;
|
|
@@ -1876,9 +1860,7 @@ var jqtree = (function (exports) {
|
|
|
1876
1860
|
}
|
|
1877
1861
|
init(node) {
|
|
1878
1862
|
this.node = node;
|
|
1879
|
-
|
|
1880
|
-
node.element = this.treeElement;
|
|
1881
|
-
}
|
|
1863
|
+
node.element ??= this.treeElement;
|
|
1882
1864
|
this.element = node.element;
|
|
1883
1865
|
}
|
|
1884
1866
|
select(mustSetFocus) {
|
|
@@ -1907,16 +1889,15 @@ var jqtree = (function (exports) {
|
|
|
1907
1889
|
}
|
|
1908
1890
|
|
|
1909
1891
|
class FolderElement extends NodeElement {
|
|
1910
|
-
constructor(
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
} = _ref;
|
|
1892
|
+
constructor({
|
|
1893
|
+
closedIconElement,
|
|
1894
|
+
getScrollLeft,
|
|
1895
|
+
node,
|
|
1896
|
+
openedIconElement,
|
|
1897
|
+
tabIndex,
|
|
1898
|
+
treeElement,
|
|
1899
|
+
triggerEvent
|
|
1900
|
+
}) {
|
|
1920
1901
|
super({
|
|
1921
1902
|
getScrollLeft,
|
|
1922
1903
|
node,
|
|
@@ -1995,19 +1976,18 @@ var jqtree = (function (exports) {
|
|
|
1995
1976
|
}
|
|
1996
1977
|
|
|
1997
1978
|
class SaveStateHandler {
|
|
1998
|
-
constructor(
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
} = _ref;
|
|
1979
|
+
constructor({
|
|
1980
|
+
addToSelection,
|
|
1981
|
+
getNodeById,
|
|
1982
|
+
getSelectedNodes,
|
|
1983
|
+
getTree,
|
|
1984
|
+
onGetStateFromStorage,
|
|
1985
|
+
onSetStateFromStorage,
|
|
1986
|
+
openNode,
|
|
1987
|
+
refreshElements,
|
|
1988
|
+
removeFromSelection,
|
|
1989
|
+
saveState
|
|
1990
|
+
}) {
|
|
2011
1991
|
this.addToSelection = addToSelection;
|
|
2012
1992
|
this.getNodeById = getNodeById;
|
|
2013
1993
|
this.getSelectedNodes = getSelectedNodes;
|
|
@@ -2183,12 +2163,11 @@ var jqtree = (function (exports) {
|
|
|
2183
2163
|
}
|
|
2184
2164
|
}
|
|
2185
2165
|
|
|
2186
|
-
class
|
|
2187
|
-
constructor(
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
} = _ref;
|
|
2166
|
+
class ScrollParent {
|
|
2167
|
+
constructor({
|
|
2168
|
+
container,
|
|
2169
|
+
refreshHitAreas
|
|
2170
|
+
}) {
|
|
2192
2171
|
this.container = container;
|
|
2193
2172
|
this.refreshHitAreas = refreshHitAreas;
|
|
2194
2173
|
}
|
|
@@ -2197,7 +2176,7 @@ var jqtree = (function (exports) {
|
|
|
2197
2176
|
if (this.horizontalScrollDirection !== newHorizontalScrollDirection) {
|
|
2198
2177
|
this.horizontalScrollDirection = newHorizontalScrollDirection;
|
|
2199
2178
|
if (this.horizontalScrollTimeout != null) {
|
|
2200
|
-
window.clearTimeout(this.
|
|
2179
|
+
window.clearTimeout(this.horizontalScrollTimeout);
|
|
2201
2180
|
}
|
|
2202
2181
|
if (newHorizontalScrollDirection) {
|
|
2203
2182
|
this.horizontalScrollTimeout = window.setTimeout(this.scrollHorizontally.bind(this), 40);
|
|
@@ -2226,42 +2205,6 @@ var jqtree = (function (exports) {
|
|
|
2226
2205
|
stopScrolling() {
|
|
2227
2206
|
this.horizontalScrollDirection = undefined;
|
|
2228
2207
|
this.verticalScrollDirection = undefined;
|
|
2229
|
-
this.scrollParentTop = undefined;
|
|
2230
|
-
this.scrollParentBottom = undefined;
|
|
2231
|
-
}
|
|
2232
|
-
getNewHorizontalScrollDirection(pageX) {
|
|
2233
|
-
const scrollParentOffset = getElementPosition(this.container);
|
|
2234
|
-
const rightEdge = scrollParentOffset.left + this.container.clientWidth;
|
|
2235
|
-
const leftEdge = scrollParentOffset.left;
|
|
2236
|
-
const isNearRightEdge = pageX > rightEdge - 20;
|
|
2237
|
-
const isNearLeftEdge = pageX < leftEdge + 20;
|
|
2238
|
-
if (isNearRightEdge) {
|
|
2239
|
-
return "right";
|
|
2240
|
-
} else if (isNearLeftEdge) {
|
|
2241
|
-
return "left";
|
|
2242
|
-
}
|
|
2243
|
-
return undefined;
|
|
2244
|
-
}
|
|
2245
|
-
getNewVerticalScrollDirection(pageY) {
|
|
2246
|
-
if (pageY < this.getScrollParentTop()) {
|
|
2247
|
-
return "top";
|
|
2248
|
-
}
|
|
2249
|
-
if (pageY > this.getScrollParentBottom()) {
|
|
2250
|
-
return "bottom";
|
|
2251
|
-
}
|
|
2252
|
-
return undefined;
|
|
2253
|
-
}
|
|
2254
|
-
getScrollParentBottom() {
|
|
2255
|
-
if (this.scrollParentBottom == null) {
|
|
2256
|
-
this.scrollParentBottom = this.getScrollParentTop() + this.container.clientHeight;
|
|
2257
|
-
}
|
|
2258
|
-
return this.scrollParentBottom;
|
|
2259
|
-
}
|
|
2260
|
-
getScrollParentTop() {
|
|
2261
|
-
if (this.scrollParentTop == null) {
|
|
2262
|
-
this.scrollParentTop = getOffsetTop(this.container);
|
|
2263
|
-
}
|
|
2264
|
-
return this.scrollParentTop;
|
|
2265
2208
|
}
|
|
2266
2209
|
scrollHorizontally() {
|
|
2267
2210
|
if (!this.horizontalScrollDirection) {
|
|
@@ -2291,77 +2234,70 @@ var jqtree = (function (exports) {
|
|
|
2291
2234
|
}
|
|
2292
2235
|
}
|
|
2293
2236
|
|
|
2294
|
-
class
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
} = _ref;
|
|
2300
|
-
this.refreshHitAreas = refreshHitAreas;
|
|
2301
|
-
this.treeElement = treeElement;
|
|
2237
|
+
class ContainerScrollParent extends ScrollParent {
|
|
2238
|
+
stopScrolling() {
|
|
2239
|
+
super.stopScrolling();
|
|
2240
|
+
this.horizontalScrollDirection = undefined;
|
|
2241
|
+
this.verticalScrollDirection = undefined;
|
|
2302
2242
|
}
|
|
2303
|
-
|
|
2304
|
-
const
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2243
|
+
getNewHorizontalScrollDirection(pageX) {
|
|
2244
|
+
const scrollParentOffset = getElementPosition(this.container);
|
|
2245
|
+
const containerWidth = this.container.getBoundingClientRect().width;
|
|
2246
|
+
const rightEdge = scrollParentOffset.left + containerWidth;
|
|
2247
|
+
const leftEdge = scrollParentOffset.left;
|
|
2248
|
+
const isNearRightEdge = pageX > rightEdge - 20;
|
|
2249
|
+
const isNearLeftEdge = pageX < leftEdge + 20;
|
|
2250
|
+
if (isNearRightEdge) {
|
|
2251
|
+
return "right";
|
|
2252
|
+
} else if (isNearLeftEdge) {
|
|
2253
|
+
return "left";
|
|
2313
2254
|
}
|
|
2255
|
+
return undefined;
|
|
2314
2256
|
}
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
this.verticalScrollDirection = newVerticalScrollDirection;
|
|
2319
|
-
if (this.verticalScrollTimeout != null) {
|
|
2320
|
-
window.clearTimeout(this.verticalScrollTimeout);
|
|
2321
|
-
this.verticalScrollTimeout = undefined;
|
|
2322
|
-
}
|
|
2323
|
-
if (newVerticalScrollDirection) {
|
|
2324
|
-
this.verticalScrollTimeout = window.setTimeout(this.scrollVertically.bind(this), 40);
|
|
2325
|
-
}
|
|
2257
|
+
getNewVerticalScrollDirection(pageY) {
|
|
2258
|
+
if (pageY < this.getScrollParentTop()) {
|
|
2259
|
+
return "top";
|
|
2326
2260
|
}
|
|
2261
|
+
if (pageY > this.getScrollParentBottom()) {
|
|
2262
|
+
return "bottom";
|
|
2263
|
+
}
|
|
2264
|
+
return undefined;
|
|
2327
2265
|
}
|
|
2328
|
-
|
|
2329
|
-
|
|
2266
|
+
getScrollParentBottom() {
|
|
2267
|
+
if (this.scrollParentBottom == null) {
|
|
2268
|
+
const containerHeight = this.container.getBoundingClientRect().height;
|
|
2269
|
+
this.scrollParentBottom = this.getScrollParentTop() + containerHeight;
|
|
2270
|
+
}
|
|
2271
|
+
return this.scrollParentBottom;
|
|
2272
|
+
}
|
|
2273
|
+
getScrollParentTop() {
|
|
2274
|
+
this.scrollParentTop ??= getOffsetTop(this.container);
|
|
2275
|
+
return this.scrollParentTop;
|
|
2276
|
+
}
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2279
|
+
class DocumentScrollParent extends ScrollParent {
|
|
2280
|
+
constructor({
|
|
2281
|
+
refreshHitAreas,
|
|
2282
|
+
treeElement
|
|
2283
|
+
}) {
|
|
2284
|
+
super({
|
|
2285
|
+
container: document.documentElement,
|
|
2286
|
+
refreshHitAreas
|
|
2287
|
+
});
|
|
2288
|
+
this.treeElement = treeElement;
|
|
2330
2289
|
}
|
|
2331
2290
|
scrollToY(top) {
|
|
2332
2291
|
const treeTop = getOffsetTop(this.treeElement);
|
|
2333
|
-
|
|
2292
|
+
super.scrollToY(top + treeTop);
|
|
2334
2293
|
}
|
|
2335
2294
|
stopScrolling() {
|
|
2336
|
-
|
|
2337
|
-
this.verticalScrollDirection = undefined;
|
|
2295
|
+
super.stopScrolling();
|
|
2338
2296
|
this.documentScrollHeight = undefined;
|
|
2339
2297
|
this.documentScrollWidth = undefined;
|
|
2340
2298
|
}
|
|
2341
|
-
canScrollDown() {
|
|
2342
|
-
const documentElement = document.documentElement;
|
|
2343
|
-
return documentElement.scrollTop + documentElement.clientHeight < this.getDocumentScrollHeight();
|
|
2344
|
-
}
|
|
2345
|
-
canScrollRight() {
|
|
2346
|
-
const documentElement = document.documentElement;
|
|
2347
|
-
return documentElement.scrollLeft + documentElement.clientWidth < this.getDocumentScrollWidth();
|
|
2348
|
-
}
|
|
2349
|
-
getDocumentScrollHeight() {
|
|
2350
|
-
// Store the original scroll height because the scroll height can increase when the drag element is moved beyond the scroll height.
|
|
2351
|
-
if (this.documentScrollHeight == null) {
|
|
2352
|
-
this.documentScrollHeight = document.documentElement.scrollHeight;
|
|
2353
|
-
}
|
|
2354
|
-
return this.documentScrollHeight;
|
|
2355
|
-
}
|
|
2356
|
-
getDocumentScrollWidth() {
|
|
2357
|
-
// Store the original scroll width because the scroll width can increase when the drag element is moved beyond the scroll width.
|
|
2358
|
-
if (this.documentScrollWidth == null) {
|
|
2359
|
-
this.documentScrollWidth = document.documentElement.scrollWidth;
|
|
2360
|
-
}
|
|
2361
|
-
return this.documentScrollWidth;
|
|
2362
|
-
}
|
|
2363
2299
|
getNewHorizontalScrollDirection(pageX) {
|
|
2364
|
-
const scrollLeft =
|
|
2300
|
+
const scrollLeft = this.container.scrollLeft;
|
|
2365
2301
|
const windowWidth = window.innerWidth;
|
|
2366
2302
|
const isNearRightEdge = pageX > windowWidth - 20;
|
|
2367
2303
|
const isNearLeftEdge = pageX - scrollLeft < 20;
|
|
@@ -2374,7 +2310,7 @@ var jqtree = (function (exports) {
|
|
|
2374
2310
|
return undefined;
|
|
2375
2311
|
}
|
|
2376
2312
|
getNewVerticalScrollDirection(pageY) {
|
|
2377
|
-
const scrollTop =
|
|
2313
|
+
const scrollTop = this.container.scrollTop;
|
|
2378
2314
|
const distanceTop = pageY - scrollTop;
|
|
2379
2315
|
if (distanceTop < 20) {
|
|
2380
2316
|
return "top";
|
|
@@ -2385,31 +2321,21 @@ var jqtree = (function (exports) {
|
|
|
2385
2321
|
}
|
|
2386
2322
|
return undefined;
|
|
2387
2323
|
}
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
return;
|
|
2391
|
-
}
|
|
2392
|
-
const distance = this.horizontalScrollDirection === "left" ? -20 : 20;
|
|
2393
|
-
window.scrollBy({
|
|
2394
|
-
behavior: "instant",
|
|
2395
|
-
left: distance,
|
|
2396
|
-
top: 0
|
|
2397
|
-
});
|
|
2398
|
-
this.refreshHitAreas();
|
|
2399
|
-
setTimeout(this.scrollHorizontally.bind(this), 40);
|
|
2324
|
+
canScrollDown() {
|
|
2325
|
+
return this.container.scrollTop + this.container.clientHeight < this.getDocumentScrollHeight();
|
|
2400
2326
|
}
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
this.
|
|
2412
|
-
|
|
2327
|
+
canScrollRight() {
|
|
2328
|
+
return this.container.scrollLeft + this.container.clientWidth < this.getDocumentScrollWidth();
|
|
2329
|
+
}
|
|
2330
|
+
getDocumentScrollHeight() {
|
|
2331
|
+
// Store the original scroll height because the scroll height can increase when the drag element is moved beyond the scroll height.
|
|
2332
|
+
this.documentScrollHeight ??= this.container.scrollHeight;
|
|
2333
|
+
return this.documentScrollHeight;
|
|
2334
|
+
}
|
|
2335
|
+
getDocumentScrollWidth() {
|
|
2336
|
+
// Store the original scroll width because the scroll width can increase when the drag element is moved beyond the scroll width.
|
|
2337
|
+
this.documentScrollWidth ??= this.container.scrollWidth;
|
|
2338
|
+
return this.documentScrollWidth;
|
|
2413
2339
|
}
|
|
2414
2340
|
}
|
|
2415
2341
|
|
|
@@ -2447,11 +2373,10 @@ var jqtree = (function (exports) {
|
|
|
2447
2373
|
};
|
|
2448
2374
|
|
|
2449
2375
|
class ScrollHandler {
|
|
2450
|
-
constructor(
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
} = _ref;
|
|
2376
|
+
constructor({
|
|
2377
|
+
refreshHitAreas,
|
|
2378
|
+
treeElement
|
|
2379
|
+
}) {
|
|
2455
2380
|
this.refreshHitAreas = refreshHitAreas;
|
|
2456
2381
|
this.scrollParent = undefined;
|
|
2457
2382
|
this.treeElement = treeElement;
|
|
@@ -2476,18 +2401,15 @@ var jqtree = (function (exports) {
|
|
|
2476
2401
|
this.getScrollParent().checkVerticalScrolling(positionInfo.pageY);
|
|
2477
2402
|
}
|
|
2478
2403
|
getScrollParent() {
|
|
2479
|
-
|
|
2480
|
-
this.scrollParent = createScrollParent(this.treeElement, this.refreshHitAreas);
|
|
2481
|
-
}
|
|
2404
|
+
this.scrollParent ??= createScrollParent(this.treeElement, this.refreshHitAreas);
|
|
2482
2405
|
return this.scrollParent;
|
|
2483
2406
|
}
|
|
2484
2407
|
}
|
|
2485
2408
|
|
|
2486
2409
|
class SelectNodeHandler {
|
|
2487
|
-
constructor(
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
} = _ref;
|
|
2410
|
+
constructor({
|
|
2411
|
+
getNodeById
|
|
2412
|
+
}) {
|
|
2491
2413
|
this.getNodeById = getNodeById;
|
|
2492
2414
|
this.selectedNodes = new Set();
|
|
2493
2415
|
this.clear();
|
|
@@ -2552,8 +2474,7 @@ var jqtree = (function (exports) {
|
|
|
2552
2474
|
return false;
|
|
2553
2475
|
}
|
|
2554
2476
|
}
|
|
2555
|
-
removeFromSelection(node) {
|
|
2556
|
-
let includeChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
2477
|
+
removeFromSelection(node, includeChildren = false) {
|
|
2557
2478
|
if (node.id == null) {
|
|
2558
2479
|
if (this.selectedSingleNode && node.element === this.selectedSingleNode.element) {
|
|
2559
2480
|
this.selectedSingleNode = null;
|
|
@@ -2625,7 +2546,7 @@ var jqtree = (function (exports) {
|
|
|
2625
2546
|
};
|
|
2626
2547
|
|
|
2627
2548
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
2628
|
-
jQuery.fn[widgetName] = function (argument1) {
|
|
2549
|
+
jQuery.fn[widgetName] = function (argument1, ...args) {
|
|
2629
2550
|
if (!argument1) {
|
|
2630
2551
|
return createWidget(this, null);
|
|
2631
2552
|
} else if (typeof argument1 === "object") {
|
|
@@ -2633,15 +2554,10 @@ var jqtree = (function (exports) {
|
|
|
2633
2554
|
return createWidget(this, options);
|
|
2634
2555
|
} else if (typeof argument1 === "string" && argument1[0] !== "_") {
|
|
2635
2556
|
const functionName = argument1;
|
|
2636
|
-
if (
|
|
2557
|
+
if (argument1 === "destroy") {
|
|
2637
2558
|
destroyWidget(this);
|
|
2638
2559
|
return undefined;
|
|
2639
|
-
} else if (functionName === "get_widget_class") {
|
|
2640
|
-
return widgetClass;
|
|
2641
2560
|
} else {
|
|
2642
|
-
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
2643
|
-
args[_key - 1] = arguments[_key];
|
|
2644
|
-
}
|
|
2645
2561
|
return callFunction(this, functionName, args);
|
|
2646
2562
|
}
|
|
2647
2563
|
} else {
|
|
@@ -2675,12 +2591,12 @@ var jqtree = (function (exports) {
|
|
|
2675
2591
|
}
|
|
2676
2592
|
}
|
|
2677
2593
|
|
|
2678
|
-
const version = "1.8.
|
|
2594
|
+
const version = "1.8.11";
|
|
2679
2595
|
|
|
2680
2596
|
const NODE_PARAM_IS_EMPTY = "Node parameter is empty";
|
|
2681
2597
|
const PARAM_IS_EMPTY = "Parameter is empty: ";
|
|
2682
2598
|
class JqTreeWidget extends SimpleWidget {
|
|
2683
|
-
static defaults =
|
|
2599
|
+
static defaults = {
|
|
2684
2600
|
animationSpeed: "fast",
|
|
2685
2601
|
autoEscape: true,
|
|
2686
2602
|
autoOpen: false,
|
|
@@ -2725,7 +2641,7 @@ var jqtree = (function (exports) {
|
|
|
2725
2641
|
// The delay for starting dnd (in milliseconds)
|
|
2726
2642
|
tabIndex: 0,
|
|
2727
2643
|
useContextMenu: true
|
|
2728
|
-
}
|
|
2644
|
+
};
|
|
2729
2645
|
addNodeAfter(newNodeInfo, existingNode) {
|
|
2730
2646
|
const newNode = existingNode.addAfter(newNodeInfo);
|
|
2731
2647
|
if (newNode) {
|
|
@@ -2792,7 +2708,7 @@ var jqtree = (function (exports) {
|
|
|
2792
2708
|
return this.tree.getNodeByCallback(callback);
|
|
2793
2709
|
}
|
|
2794
2710
|
getNodeByHtmlElement(inputElement) {
|
|
2795
|
-
const element = inputElement instanceof HTMLElement ? inputElement : inputElement
|
|
2711
|
+
const element = inputElement instanceof HTMLElement ? inputElement : inputElement.get(0);
|
|
2796
2712
|
if (!element) {
|
|
2797
2713
|
return null;
|
|
2798
2714
|
}
|
|
@@ -2833,9 +2749,7 @@ var jqtree = (function (exports) {
|
|
|
2833
2749
|
this.element = this.$el;
|
|
2834
2750
|
this.isInitialized = false;
|
|
2835
2751
|
this.options.rtl = this.getRtlOption();
|
|
2836
|
-
|
|
2837
|
-
this.options.closedIcon = this.getDefaultClosedIcon();
|
|
2838
|
-
}
|
|
2752
|
+
this.options.closedIcon ??= this.getDefaultClosedIcon();
|
|
2839
2753
|
this.connectHandlers();
|
|
2840
2754
|
this.initData();
|
|
2841
2755
|
}
|
|
@@ -2918,9 +2832,7 @@ var jqtree = (function (exports) {
|
|
|
2918
2832
|
slide = param1;
|
|
2919
2833
|
onFinished = param2;
|
|
2920
2834
|
}
|
|
2921
|
-
|
|
2922
|
-
slide = this.options.slide;
|
|
2923
|
-
}
|
|
2835
|
+
slide ??= this.options.slide;
|
|
2924
2836
|
return [slide, onFinished];
|
|
2925
2837
|
};
|
|
2926
2838
|
const [slide, onFinished] = parseParams();
|
|
@@ -2994,8 +2906,7 @@ var jqtree = (function (exports) {
|
|
|
2994
2906
|
}
|
|
2995
2907
|
return this.element;
|
|
2996
2908
|
}
|
|
2997
|
-
toggle(node) {
|
|
2998
|
-
let slideParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
2909
|
+
toggle(node, slideParam = null) {
|
|
2999
2910
|
if (!node) {
|
|
3000
2911
|
throw Error(NODE_PARAM_IS_EMPTY);
|
|
3001
2912
|
}
|
|
@@ -3177,7 +3088,7 @@ var jqtree = (function (exports) {
|
|
|
3177
3088
|
}
|
|
3178
3089
|
containsElement(element) {
|
|
3179
3090
|
const node = this.getNode(element);
|
|
3180
|
-
return node
|
|
3091
|
+
return node?.tree === this.tree;
|
|
3181
3092
|
}
|
|
3182
3093
|
createFolderElement(node) {
|
|
3183
3094
|
const closedIconElement = this.renderer.closedIconElement;
|
|
@@ -3423,7 +3334,7 @@ var jqtree = (function (exports) {
|
|
|
3423
3334
|
}
|
|
3424
3335
|
isFocusOnTree() {
|
|
3425
3336
|
const activeElement = document.activeElement;
|
|
3426
|
-
return
|
|
3337
|
+
return activeElement?.tagName === "SPAN" && this.containsElement(activeElement);
|
|
3427
3338
|
}
|
|
3428
3339
|
isSelectedNodeInSubtree(subtree) {
|
|
3429
3340
|
const selectedNode = this.getSelectedNode();
|
|
@@ -3433,9 +3344,7 @@ var jqtree = (function (exports) {
|
|
|
3433
3344
|
return subtree === selectedNode || subtree.isParentOf(selectedNode);
|
|
3434
3345
|
}
|
|
3435
3346
|
}
|
|
3436
|
-
loadFolderOnDemand(node) {
|
|
3437
|
-
let slide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
3438
|
-
let onFinished = arguments.length > 2 ? arguments[2] : undefined;
|
|
3347
|
+
loadFolderOnDemand(node, slide = true, onFinished) {
|
|
3439
3348
|
node.is_loading = true;
|
|
3440
3349
|
this.doLoadDataFromUrl(null, node, () => {
|
|
3441
3350
|
this.openNodeInternal(node, slide, onFinished);
|
|
@@ -3478,9 +3387,7 @@ var jqtree = (function (exports) {
|
|
|
3478
3387
|
return false;
|
|
3479
3388
|
}
|
|
3480
3389
|
}
|
|
3481
|
-
openNodeInternal(node) {
|
|
3482
|
-
let slide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
3483
|
-
let onFinished = arguments.length > 2 ? arguments[2] : undefined;
|
|
3390
|
+
openNodeInternal(node, slide = true, onFinished) {
|
|
3484
3391
|
const doOpenNode = (_node, _slide, _onFinished) => {
|
|
3485
3392
|
if (!node.children.length) {
|
|
3486
3393
|
return;
|