jqtree 1.6.3 → 1.7.1
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/.github/workflows/ci.yml +15 -21
- package/.github/workflows/codeql-analysis.yml +2 -2
- package/README.md +1 -1
- package/bower.json +10 -3
- package/config/production +2 -2
- package/config/{rollup.config.js → rollup.config.mjs} +3 -8
- package/docs/Gemfile.lock +34 -37
- package/docs/_config.yml +1 -1
- package/docs/_entries/10_changelog.md +13 -0
- package/docs/_entries/93_getnextnode.md +4 -1
- package/docs/_entries/{95_getpreviousnode.md → 95_getnextvisiblenode.md} +1 -1
- package/docs/_entries/96_getpreviousnode.md +0 -0
- package/docs/_entries/98_getpreviousvisiblenode.md +14 -0
- package/docs/package.json +7 -7
- package/docs/pnpm-lock.yaml +413 -265
- package/docs/static/bower.json +2 -2
- package/docs/static/bower_components/fontawesome/css/all.min.css +6 -2
- 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 +944 -1121
- package/docs/static/bower_components/jquery/dist/jquery.min.js +2 -2
- package/docs/static/documentation.css +181 -159
- package/docs/static/example.css +0 -1
- package/docs/tree.jquery.js +3 -3
- package/lib/dataLoader.js +5 -31
- package/lib/dragAndDropHandler.js +40 -142
- package/lib/elementsRenderer.js +52 -72
- package/lib/keyHandler.js +8 -32
- package/lib/mouse.widget.js +24 -74
- package/lib/node.js +72 -134
- package/lib/nodeElement.js +24 -84
- package/lib/playwright/coverage.js +58 -97
- package/lib/playwright/playwright.test.js +148 -210
- package/lib/playwright/testUtils.js +116 -182
- package/lib/saveStateHandler.js +13 -62
- package/lib/scrollHandler.js +24 -77
- package/lib/selectNodeHandler.js +6 -25
- package/lib/simple.widget.js +20 -53
- package/lib/test/jqTree/accessibility.test.js +37 -0
- package/lib/test/jqTree/create.test.js +0 -4
- package/lib/test/jqTree/events.test.js +73 -84
- package/lib/test/jqTree/keyboard.test.js +0 -6
- package/lib/test/jqTree/loadOnDemand.test.js +84 -121
- package/lib/test/jqTree/methods.test.js +107 -150
- package/lib/test/jqTree/options.test.js +32 -54
- package/lib/test/node.test.js +134 -76
- package/lib/test/nodeUtil.test.js +0 -1
- package/lib/test/support/jqTreeMatchers.js +4 -9
- package/lib/test/support/setupTests.js +0 -4
- package/lib/test/support/testUtil.js +2 -11
- package/lib/test/support/treeStructure.js +0 -6
- package/lib/test/util.test.js +0 -1
- package/lib/tree.jquery.js +28 -239
- package/lib/util.js +0 -6
- package/lib/version.js +1 -1
- package/package.json +44 -47
- package/src/dragAndDropHandler.ts +24 -10
- package/src/elementsRenderer.ts +49 -42
- package/src/jqtreeOptions.ts +3 -3
- package/src/keyHandler.ts +3 -3
- package/src/mouse.widget.ts +12 -0
- package/src/node.ts +52 -16
- package/src/nodeElement.ts +27 -21
- package/src/saveStateHandler.ts +1 -1
- package/src/scrollHandler.ts +6 -2
- package/src/selectNodeHandler.ts +1 -1
- package/src/simple.widget.ts +2 -0
- package/src/test/.eslintrc +3 -1
- package/src/test/jqTree/accessibility.test.ts +25 -0
- package/src/test/jqTree/events.test.ts +79 -93
- package/src/test/jqTree/methods.test.ts +1 -1
- package/src/test/node.test.ts +152 -58
- package/src/test/nodeUtil.test.ts +1 -1
- package/src/tree.jquery.ts +7 -6
- package/src/version.ts +1 -1
- package/tree.jquery.debug.js +297 -904
- package/tree.jquery.debug.js.map +1 -1
- package/tree.jquery.js +3 -3
- package/tree.jquery.js.map +1 -1
- package/tsconfig.json +1 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.eot +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.svg +0 -3717
- package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.eot +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.svg +0 -801
- package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.eot +0 -0
- package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.svg +0 -5028
- package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff +0 -0
- /package/docs/_entries/{96_getprevioussibling.md → 97_getprevioussibling.md} +0 -0
- /package/docs/_entries/{97_parent.md → 99_parent.md} +0 -0
|
@@ -1,64 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.HitAreasGenerator = exports.DragAndDropHandler = void 0;
|
|
9
|
-
|
|
10
7
|
var _node = require("./node");
|
|
11
|
-
|
|
8
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
12
9
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
13
|
-
|
|
14
10
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
|
-
|
|
16
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
17
|
-
|
|
11
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
18
12
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
19
|
-
|
|
20
13
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
21
|
-
|
|
22
14
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
23
|
-
|
|
24
15
|
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
25
|
-
|
|
26
16
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
27
|
-
|
|
28
17
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
29
|
-
|
|
30
18
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
31
|
-
|
|
32
19
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
33
|
-
|
|
34
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
35
|
-
|
|
20
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
36
21
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
37
|
-
|
|
38
|
-
function
|
|
39
|
-
|
|
22
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
24
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
40
25
|
var DragAndDropHandler = /*#__PURE__*/function () {
|
|
41
26
|
function DragAndDropHandler(treeWidget) {
|
|
42
27
|
_classCallCheck(this, DragAndDropHandler);
|
|
43
|
-
|
|
44
28
|
_defineProperty(this, "hitAreas", void 0);
|
|
45
|
-
|
|
46
29
|
_defineProperty(this, "isDragging", void 0);
|
|
47
|
-
|
|
48
30
|
_defineProperty(this, "currentItem", void 0);
|
|
49
|
-
|
|
50
31
|
_defineProperty(this, "hoveredArea", void 0);
|
|
51
|
-
|
|
52
32
|
_defineProperty(this, "positionInfo", void 0);
|
|
53
|
-
|
|
54
33
|
_defineProperty(this, "treeWidget", void 0);
|
|
55
|
-
|
|
56
34
|
_defineProperty(this, "dragElement", void 0);
|
|
57
|
-
|
|
58
35
|
_defineProperty(this, "previousGhost", void 0);
|
|
59
|
-
|
|
60
36
|
_defineProperty(this, "openFolderTimer", void 0);
|
|
61
|
-
|
|
62
37
|
this.treeWidget = treeWidget;
|
|
63
38
|
this.hoveredArea = null;
|
|
64
39
|
this.hitAreas = [];
|
|
@@ -66,28 +41,22 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
66
41
|
this.currentItem = null;
|
|
67
42
|
this.positionInfo = null;
|
|
68
43
|
}
|
|
69
|
-
|
|
70
44
|
_createClass(DragAndDropHandler, [{
|
|
71
45
|
key: "mouseCapture",
|
|
72
46
|
value: function mouseCapture(positionInfo) {
|
|
73
47
|
var $element = jQuery(positionInfo.target);
|
|
74
|
-
|
|
75
48
|
if (!this.mustCaptureElement($element)) {
|
|
76
49
|
return null;
|
|
77
50
|
}
|
|
78
|
-
|
|
79
51
|
if (this.treeWidget.options.onIsMoveHandle && !this.treeWidget.options.onIsMoveHandle($element)) {
|
|
80
52
|
return null;
|
|
81
53
|
}
|
|
82
|
-
|
|
83
54
|
var nodeElement = this.treeWidget._getNodeElement($element);
|
|
84
|
-
|
|
85
55
|
if (nodeElement && this.treeWidget.options.onCanMove) {
|
|
86
56
|
if (!this.treeWidget.options.onCanMove(nodeElement.node)) {
|
|
87
57
|
nodeElement = null;
|
|
88
58
|
}
|
|
89
59
|
}
|
|
90
|
-
|
|
91
60
|
this.currentItem = nodeElement;
|
|
92
61
|
return this.currentItem != null;
|
|
93
62
|
}
|
|
@@ -95,11 +64,9 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
95
64
|
key: "mouseStart",
|
|
96
65
|
value: function mouseStart(positionInfo) {
|
|
97
66
|
var _this$treeWidget$opti;
|
|
98
|
-
|
|
99
67
|
if (!this.currentItem || positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
|
|
100
68
|
return false;
|
|
101
69
|
}
|
|
102
|
-
|
|
103
70
|
this.refresh();
|
|
104
71
|
var offset = jQuery(positionInfo.target).offset();
|
|
105
72
|
var left = offset ? offset.left : 0;
|
|
@@ -117,25 +84,22 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
117
84
|
if (!this.currentItem || !this.dragElement || positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
|
|
118
85
|
return false;
|
|
119
86
|
}
|
|
120
|
-
|
|
121
87
|
this.dragElement.move(positionInfo.pageX, positionInfo.pageY);
|
|
122
88
|
this.positionInfo = positionInfo;
|
|
123
89
|
var area = this.findHoveredArea(positionInfo.pageX, positionInfo.pageY);
|
|
124
|
-
|
|
125
90
|
if (area && this.canMoveToArea(area)) {
|
|
126
91
|
if (!area.node.isFolder()) {
|
|
127
92
|
this.stopOpenFolderTimer();
|
|
128
93
|
}
|
|
129
|
-
|
|
130
94
|
if (this.hoveredArea !== area) {
|
|
131
|
-
this.hoveredArea = area;
|
|
95
|
+
this.hoveredArea = area;
|
|
132
96
|
|
|
97
|
+
// If this is a closed folder, start timer to open it
|
|
133
98
|
if (this.mustOpenFolderTimer(area)) {
|
|
134
99
|
this.startOpenFolderTimer(area.node);
|
|
135
100
|
} else {
|
|
136
101
|
this.stopOpenFolderTimer();
|
|
137
102
|
}
|
|
138
|
-
|
|
139
103
|
this.updateDropHint();
|
|
140
104
|
}
|
|
141
105
|
} else {
|
|
@@ -143,13 +107,11 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
143
107
|
this.stopOpenFolderTimer();
|
|
144
108
|
this.hoveredArea = area;
|
|
145
109
|
}
|
|
146
|
-
|
|
147
110
|
if (!area) {
|
|
148
111
|
if (this.treeWidget.options.onDragMove) {
|
|
149
112
|
this.treeWidget.options.onDragMove(this.currentItem.node, positionInfo.originalEvent);
|
|
150
113
|
}
|
|
151
114
|
}
|
|
152
|
-
|
|
153
115
|
return true;
|
|
154
116
|
}
|
|
155
117
|
}, {
|
|
@@ -161,32 +123,26 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
161
123
|
this.removeDropHint();
|
|
162
124
|
this.removeHitAreas();
|
|
163
125
|
var currentItem = this.currentItem;
|
|
164
|
-
|
|
165
126
|
if (this.currentItem) {
|
|
166
127
|
this.currentItem.$element.removeClass("jqtree-moving");
|
|
167
128
|
this.currentItem = null;
|
|
168
129
|
}
|
|
169
|
-
|
|
170
130
|
this.isDragging = false;
|
|
171
131
|
this.positionInfo = null;
|
|
172
|
-
|
|
173
132
|
if (!this.hoveredArea && currentItem) {
|
|
174
133
|
if (this.treeWidget.options.onDragStop) {
|
|
175
134
|
this.treeWidget.options.onDragStop(currentItem.node, positionInfo.originalEvent);
|
|
176
135
|
}
|
|
177
136
|
}
|
|
178
|
-
|
|
179
137
|
return false;
|
|
180
138
|
}
|
|
181
139
|
}, {
|
|
182
140
|
key: "refresh",
|
|
183
141
|
value: function refresh() {
|
|
184
142
|
this.removeHitAreas();
|
|
185
|
-
|
|
186
143
|
if (this.currentItem) {
|
|
187
144
|
this.generateHitAreas();
|
|
188
145
|
this.currentItem = this.treeWidget._getNodeElementForNode(this.currentItem.node);
|
|
189
|
-
|
|
190
146
|
if (this.isDragging) {
|
|
191
147
|
this.currentItem.$element.addClass("jqtree-moving");
|
|
192
148
|
}
|
|
@@ -213,11 +169,9 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
213
169
|
if (!this.treeWidget.options.onCanMoveTo) {
|
|
214
170
|
return true;
|
|
215
171
|
}
|
|
216
|
-
|
|
217
172
|
if (!this.currentItem) {
|
|
218
173
|
return false;
|
|
219
174
|
}
|
|
220
|
-
|
|
221
175
|
var positionName = (0, _node.getPositionName)(area.position);
|
|
222
176
|
return this.treeWidget.options.onCanMoveTo(this.currentItem.node, area.node, positionName);
|
|
223
177
|
}
|
|
@@ -250,18 +204,17 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
250
204
|
key: "findHoveredArea",
|
|
251
205
|
value: function findHoveredArea(x, y) {
|
|
252
206
|
var dimensions = this.getTreeDimensions();
|
|
253
|
-
|
|
254
207
|
if (x < dimensions.left || y < dimensions.top || x > dimensions.right || y > dimensions.bottom) {
|
|
255
208
|
return null;
|
|
256
209
|
}
|
|
257
|
-
|
|
258
210
|
var low = 0;
|
|
259
211
|
var high = this.hitAreas.length;
|
|
260
|
-
|
|
261
212
|
while (low < high) {
|
|
262
213
|
var mid = low + high >> 1;
|
|
263
214
|
var area = this.hitAreas[mid];
|
|
264
|
-
|
|
215
|
+
if (!area) {
|
|
216
|
+
return null;
|
|
217
|
+
}
|
|
265
218
|
if (y < area.top) {
|
|
266
219
|
high = mid;
|
|
267
220
|
} else if (y > area.bottom) {
|
|
@@ -270,7 +223,6 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
270
223
|
return area;
|
|
271
224
|
}
|
|
272
225
|
}
|
|
273
|
-
|
|
274
226
|
return null;
|
|
275
227
|
}
|
|
276
228
|
}, {
|
|
@@ -284,31 +236,27 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
284
236
|
value: function updateDropHint() {
|
|
285
237
|
if (!this.hoveredArea) {
|
|
286
238
|
return;
|
|
287
|
-
}
|
|
288
|
-
|
|
239
|
+
}
|
|
289
240
|
|
|
290
|
-
|
|
241
|
+
// remove previous drop hint
|
|
242
|
+
this.removeDropHint();
|
|
291
243
|
|
|
244
|
+
// add new drop hint
|
|
292
245
|
var nodeElement = this.treeWidget._getNodeElementForNode(this.hoveredArea.node);
|
|
293
|
-
|
|
294
246
|
this.previousGhost = nodeElement.addDropHint(this.hoveredArea.position);
|
|
295
247
|
}
|
|
296
248
|
}, {
|
|
297
249
|
key: "startOpenFolderTimer",
|
|
298
250
|
value: function startOpenFolderTimer(folder) {
|
|
299
251
|
var _this = this;
|
|
300
|
-
|
|
301
252
|
var openFolder = function openFolder() {
|
|
302
253
|
_this.treeWidget._openNode(folder, _this.treeWidget.options.slide, function () {
|
|
303
254
|
_this.refresh();
|
|
304
|
-
|
|
305
255
|
_this.updateDropHint();
|
|
306
256
|
});
|
|
307
257
|
};
|
|
308
|
-
|
|
309
258
|
this.stopOpenFolderTimer();
|
|
310
259
|
var openFolderDelay = this.treeWidget.options.openFolderDelay;
|
|
311
|
-
|
|
312
260
|
if (openFolderDelay !== false) {
|
|
313
261
|
this.openFolderTimer = window.setTimeout(openFolder, openFolderDelay);
|
|
314
262
|
}
|
|
@@ -325,25 +273,19 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
325
273
|
key: "moveItem",
|
|
326
274
|
value: function moveItem(positionInfo) {
|
|
327
275
|
var _this2 = this;
|
|
328
|
-
|
|
329
276
|
if (this.currentItem && this.hoveredArea && this.hoveredArea.position !== _node.Position.None && this.canMoveToArea(this.hoveredArea)) {
|
|
330
277
|
var movedNode = this.currentItem.node;
|
|
331
278
|
var targetNode = this.hoveredArea.node;
|
|
332
279
|
var position = this.hoveredArea.position;
|
|
333
280
|
var previousParent = movedNode.parent;
|
|
334
|
-
|
|
335
281
|
if (position === _node.Position.Inside) {
|
|
336
282
|
this.hoveredArea.node.is_open = true;
|
|
337
283
|
}
|
|
338
|
-
|
|
339
284
|
var doMove = function doMove() {
|
|
340
285
|
_this2.treeWidget.tree.moveNode(movedNode, targetNode, position);
|
|
341
|
-
|
|
342
286
|
_this2.treeWidget.element.empty();
|
|
343
|
-
|
|
344
287
|
_this2.treeWidget._refreshElements(null);
|
|
345
288
|
};
|
|
346
|
-
|
|
347
289
|
var event = this.treeWidget._triggerEvent("tree.move", {
|
|
348
290
|
move_info: {
|
|
349
291
|
moved_node: movedNode,
|
|
@@ -354,7 +296,6 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
354
296
|
original_event: positionInfo.originalEvent
|
|
355
297
|
}
|
|
356
298
|
});
|
|
357
|
-
|
|
358
299
|
if (!event.isDefaultPrevented()) {
|
|
359
300
|
doMove();
|
|
360
301
|
}
|
|
@@ -366,7 +307,6 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
366
307
|
// Return the dimensions of the tree. Add a margin to the bottom to allow
|
|
367
308
|
// to drag-and-drop after the last element.
|
|
368
309
|
var offset = this.treeWidget.element.offset();
|
|
369
|
-
|
|
370
310
|
if (!offset) {
|
|
371
311
|
return {
|
|
372
312
|
left: 0,
|
|
@@ -378,9 +318,7 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
378
318
|
var el = this.treeWidget.element;
|
|
379
319
|
var width = el.width() || 0;
|
|
380
320
|
var height = el.height() || 0;
|
|
381
|
-
|
|
382
321
|
var left = offset.left + this.treeWidget._getScrollLeft();
|
|
383
|
-
|
|
384
322
|
return {
|
|
385
323
|
left: left,
|
|
386
324
|
top: offset.top,
|
|
@@ -390,45 +328,32 @@ var DragAndDropHandler = /*#__PURE__*/function () {
|
|
|
390
328
|
}
|
|
391
329
|
}
|
|
392
330
|
}]);
|
|
393
|
-
|
|
394
331
|
return DragAndDropHandler;
|
|
395
332
|
}();
|
|
396
|
-
|
|
397
333
|
exports.DragAndDropHandler = DragAndDropHandler;
|
|
398
|
-
|
|
399
334
|
var VisibleNodeIterator = /*#__PURE__*/function () {
|
|
400
335
|
function VisibleNodeIterator(tree) {
|
|
401
336
|
_classCallCheck(this, VisibleNodeIterator);
|
|
402
|
-
|
|
403
337
|
_defineProperty(this, "tree", void 0);
|
|
404
|
-
|
|
405
338
|
this.tree = tree;
|
|
406
339
|
}
|
|
407
|
-
|
|
408
340
|
_createClass(VisibleNodeIterator, [{
|
|
409
341
|
key: "iterate",
|
|
410
342
|
value: function iterate() {
|
|
411
343
|
var _this3 = this;
|
|
412
|
-
|
|
413
344
|
var isFirstNode = true;
|
|
414
|
-
|
|
415
345
|
var _iterateNode = function _iterateNode(node, nextNode) {
|
|
416
346
|
var mustIterateInside = (node.is_open || !node.element) && node.hasChildren();
|
|
417
347
|
var $element = null;
|
|
418
|
-
|
|
419
348
|
if (node.element) {
|
|
420
349
|
$element = jQuery(node.element);
|
|
421
|
-
|
|
422
350
|
if (!$element.is(":visible")) {
|
|
423
351
|
return;
|
|
424
352
|
}
|
|
425
|
-
|
|
426
353
|
if (isFirstNode) {
|
|
427
354
|
_this3.handleFirstNode(node);
|
|
428
|
-
|
|
429
355
|
isFirstNode = false;
|
|
430
356
|
}
|
|
431
|
-
|
|
432
357
|
if (!node.hasChildren()) {
|
|
433
358
|
_this3.handleNode(node, nextNode, $element);
|
|
434
359
|
} else if (node.is_open) {
|
|
@@ -439,55 +364,46 @@ var VisibleNodeIterator = /*#__PURE__*/function () {
|
|
|
439
364
|
_this3.handleClosedFolder(node, nextNode, $element);
|
|
440
365
|
}
|
|
441
366
|
}
|
|
442
|
-
|
|
443
367
|
if (mustIterateInside) {
|
|
444
368
|
var childrenLength = node.children.length;
|
|
445
369
|
node.children.forEach(function (_, i) {
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
370
|
+
var child = node.children[i];
|
|
371
|
+
if (child) {
|
|
372
|
+
if (i === childrenLength - 1) {
|
|
373
|
+
_iterateNode(child, null);
|
|
374
|
+
} else {
|
|
375
|
+
var nextChild = node.children[i + 1];
|
|
376
|
+
if (nextChild) {
|
|
377
|
+
_iterateNode(child, nextChild);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
450
380
|
}
|
|
451
381
|
});
|
|
452
|
-
|
|
453
382
|
if (node.is_open && $element) {
|
|
454
383
|
_this3.handleAfterOpenFolder(node, nextNode);
|
|
455
384
|
}
|
|
456
385
|
}
|
|
457
386
|
};
|
|
458
|
-
|
|
459
387
|
_iterateNode(this.tree, null);
|
|
460
388
|
}
|
|
461
389
|
}]);
|
|
462
|
-
|
|
463
390
|
return VisibleNodeIterator;
|
|
464
391
|
}();
|
|
465
|
-
|
|
466
392
|
var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
|
|
467
393
|
_inherits(HitAreasGenerator, _VisibleNodeIterator);
|
|
468
|
-
|
|
469
394
|
var _super = _createSuper(HitAreasGenerator);
|
|
470
|
-
|
|
471
395
|
function HitAreasGenerator(tree, currentNode, treeBottom) {
|
|
472
396
|
var _this4;
|
|
473
|
-
|
|
474
397
|
_classCallCheck(this, HitAreasGenerator);
|
|
475
|
-
|
|
476
398
|
_this4 = _super.call(this, tree);
|
|
477
|
-
|
|
478
399
|
_defineProperty(_assertThisInitialized(_this4), "currentNode", void 0);
|
|
479
|
-
|
|
480
400
|
_defineProperty(_assertThisInitialized(_this4), "treeBottom", void 0);
|
|
481
|
-
|
|
482
401
|
_defineProperty(_assertThisInitialized(_this4), "positions", void 0);
|
|
483
|
-
|
|
484
402
|
_defineProperty(_assertThisInitialized(_this4), "lastTop", void 0);
|
|
485
|
-
|
|
486
403
|
_this4.currentNode = currentNode;
|
|
487
404
|
_this4.treeBottom = treeBottom;
|
|
488
405
|
return _this4;
|
|
489
406
|
}
|
|
490
|
-
|
|
491
407
|
_createClass(HitAreasGenerator, [{
|
|
492
408
|
key: "generate",
|
|
493
409
|
value: function generate() {
|
|
@@ -502,23 +418,18 @@ var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
|
|
|
502
418
|
var previousTop = -1;
|
|
503
419
|
var group = [];
|
|
504
420
|
var hitAreas = [];
|
|
505
|
-
|
|
506
421
|
var _iterator = _createForOfIteratorHelper(positions),
|
|
507
|
-
|
|
508
|
-
|
|
422
|
+
_step;
|
|
509
423
|
try {
|
|
510
424
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
511
425
|
var position = _step.value;
|
|
512
|
-
|
|
513
426
|
if (position.top !== previousTop && group.length) {
|
|
514
427
|
if (group.length) {
|
|
515
428
|
this.generateHitAreasForGroup(hitAreas, group, previousTop, position.top);
|
|
516
429
|
}
|
|
517
|
-
|
|
518
430
|
previousTop = position.top;
|
|
519
431
|
group = [];
|
|
520
432
|
}
|
|
521
|
-
|
|
522
433
|
group.push(position);
|
|
523
434
|
}
|
|
524
435
|
} catch (err) {
|
|
@@ -526,7 +437,6 @@ var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
|
|
|
526
437
|
} finally {
|
|
527
438
|
_iterator.f();
|
|
528
439
|
}
|
|
529
|
-
|
|
530
440
|
this.generateHitAreasForGroup(hitAreas, group, previousTop, this.treeBottom);
|
|
531
441
|
return hitAreas;
|
|
532
442
|
}
|
|
@@ -537,27 +447,27 @@ var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
|
|
|
537
447
|
// Cannot move inside current item
|
|
538
448
|
// Stop iterating
|
|
539
449
|
return false;
|
|
540
|
-
}
|
|
541
|
-
|
|
450
|
+
}
|
|
542
451
|
|
|
452
|
+
// Cannot move before current item
|
|
543
453
|
if (node.children[0] !== this.currentNode) {
|
|
544
454
|
this.addPosition(node, _node.Position.Inside, this.getTop($element));
|
|
545
|
-
}
|
|
546
|
-
|
|
455
|
+
}
|
|
547
456
|
|
|
457
|
+
// Continue iterating
|
|
548
458
|
return true;
|
|
549
459
|
}
|
|
550
460
|
}, {
|
|
551
461
|
key: "handleClosedFolder",
|
|
552
462
|
value: function handleClosedFolder(node, nextNode, $element) {
|
|
553
463
|
var top = this.getTop($element);
|
|
554
|
-
|
|
555
464
|
if (node === this.currentNode) {
|
|
556
465
|
// Cannot move after current item
|
|
557
466
|
this.addPosition(node, _node.Position.None, top);
|
|
558
467
|
} else {
|
|
559
|
-
this.addPosition(node, _node.Position.Inside, top);
|
|
468
|
+
this.addPosition(node, _node.Position.Inside, top);
|
|
560
469
|
|
|
470
|
+
// Cannot move before current item
|
|
561
471
|
if (nextNode !== this.currentNode) {
|
|
562
472
|
this.addPosition(node, _node.Position.After, top);
|
|
563
473
|
}
|
|
@@ -584,14 +494,12 @@ var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
|
|
|
584
494
|
key: "handleNode",
|
|
585
495
|
value: function handleNode(node, nextNode, $element) {
|
|
586
496
|
var top = this.getTop($element);
|
|
587
|
-
|
|
588
497
|
if (node === this.currentNode) {
|
|
589
498
|
// Cannot move inside current item
|
|
590
499
|
this.addPosition(node, _node.Position.None, top);
|
|
591
500
|
} else {
|
|
592
501
|
this.addPosition(node, _node.Position.Inside, top);
|
|
593
502
|
}
|
|
594
|
-
|
|
595
503
|
if (nextNode === this.currentNode || node === this.currentNode) {
|
|
596
504
|
// Cannot move before or after current item
|
|
597
505
|
this.addPosition(node, _node.Position.None, top);
|
|
@@ -625,50 +533,41 @@ var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
|
|
|
625
533
|
var areaHeight = Math.round((bottom - top) / positionCount);
|
|
626
534
|
var areaTop = top;
|
|
627
535
|
var i = 0;
|
|
628
|
-
|
|
629
536
|
while (i < positionCount) {
|
|
630
537
|
var position = positionsInGroup[i];
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
538
|
+
if (position) {
|
|
539
|
+
hitAreas.push({
|
|
540
|
+
top: areaTop,
|
|
541
|
+
bottom: areaTop + areaHeight,
|
|
542
|
+
node: position.node,
|
|
543
|
+
position: position.position
|
|
544
|
+
});
|
|
545
|
+
}
|
|
637
546
|
areaTop += areaHeight;
|
|
638
547
|
i += 1;
|
|
639
548
|
}
|
|
640
549
|
}
|
|
641
550
|
}]);
|
|
642
|
-
|
|
643
551
|
return HitAreasGenerator;
|
|
644
552
|
}(VisibleNodeIterator);
|
|
645
|
-
|
|
646
553
|
exports.HitAreasGenerator = HitAreasGenerator;
|
|
647
|
-
|
|
648
554
|
var DragElement = /*#__PURE__*/function () {
|
|
649
555
|
function DragElement(nodeName, offsetX, offsetY, $tree, autoEscape) {
|
|
650
556
|
_classCallCheck(this, DragElement);
|
|
651
|
-
|
|
652
557
|
_defineProperty(this, "offsetX", void 0);
|
|
653
|
-
|
|
654
558
|
_defineProperty(this, "offsetY", void 0);
|
|
655
|
-
|
|
656
559
|
_defineProperty(this, "$element", void 0);
|
|
657
|
-
|
|
658
560
|
this.offsetX = offsetX;
|
|
659
561
|
this.offsetY = offsetY;
|
|
660
562
|
this.$element = jQuery("<span>").addClass("jqtree-title jqtree-dragging");
|
|
661
|
-
|
|
662
563
|
if (autoEscape) {
|
|
663
564
|
this.$element.text(nodeName);
|
|
664
565
|
} else {
|
|
665
566
|
this.$element.html(nodeName);
|
|
666
567
|
}
|
|
667
|
-
|
|
668
568
|
this.$element.css("position", "absolute");
|
|
669
569
|
$tree.append(this.$element);
|
|
670
570
|
}
|
|
671
|
-
|
|
672
571
|
_createClass(DragElement, [{
|
|
673
572
|
key: "move",
|
|
674
573
|
value: function move(pageX, pageY) {
|
|
@@ -683,6 +582,5 @@ var DragElement = /*#__PURE__*/function () {
|
|
|
683
582
|
this.$element.remove();
|
|
684
583
|
}
|
|
685
584
|
}]);
|
|
686
|
-
|
|
687
585
|
return DragElement;
|
|
688
586
|
}();
|