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
package/lib/saveStateHandler.js
CHANGED
|
@@ -4,39 +4,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _util = require("./util");
|
|
9
|
-
|
|
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); }
|
|
10
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; } } }; }
|
|
11
|
-
|
|
12
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); }
|
|
13
|
-
|
|
14
|
-
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; }
|
|
15
|
-
|
|
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; }
|
|
16
12
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
17
|
-
|
|
18
|
-
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); } }
|
|
19
|
-
|
|
13
|
+
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); } }
|
|
20
14
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
21
|
-
|
|
22
|
-
function
|
|
23
|
-
|
|
15
|
+
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; }
|
|
16
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
17
|
+
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); }
|
|
24
18
|
var SaveStateHandler = /*#__PURE__*/function () {
|
|
25
19
|
function SaveStateHandler(treeWidget) {
|
|
26
20
|
_classCallCheck(this, SaveStateHandler);
|
|
27
|
-
|
|
28
21
|
_defineProperty(this, "treeWidget", void 0);
|
|
29
|
-
|
|
30
22
|
_defineProperty(this, "_supportsLocalStorage", void 0);
|
|
31
|
-
|
|
32
23
|
this.treeWidget = treeWidget;
|
|
33
24
|
}
|
|
34
|
-
|
|
35
25
|
_createClass(SaveStateHandler, [{
|
|
36
26
|
key: "saveState",
|
|
37
27
|
value: function saveState() {
|
|
38
28
|
var state = JSON.stringify(this.getState());
|
|
39
|
-
|
|
40
29
|
if (this.treeWidget.options.onSetStateFromStorage) {
|
|
41
30
|
this.treeWidget.options.onSetStateFromStorage(state);
|
|
42
31
|
} else if (this.supportsLocalStorage()) {
|
|
@@ -47,7 +36,6 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
47
36
|
key: "getStateFromStorage",
|
|
48
37
|
value: function getStateFromStorage() {
|
|
49
38
|
var jsonData = this.loadFromStorage();
|
|
50
|
-
|
|
51
39
|
if (jsonData) {
|
|
52
40
|
return this.parseState(jsonData);
|
|
53
41
|
} else {
|
|
@@ -58,44 +46,36 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
58
46
|
key: "getState",
|
|
59
47
|
value: function getState() {
|
|
60
48
|
var _this = this;
|
|
61
|
-
|
|
62
49
|
var getOpenNodeIds = function getOpenNodeIds() {
|
|
63
50
|
var openNodes = [];
|
|
64
|
-
|
|
65
51
|
_this.treeWidget.tree.iterate(function (node) {
|
|
66
52
|
if (node.is_open && node.id && node.hasChildren()) {
|
|
67
53
|
openNodes.push(node.id);
|
|
68
54
|
}
|
|
69
|
-
|
|
70
55
|
return true;
|
|
71
56
|
});
|
|
72
|
-
|
|
73
57
|
return openNodes;
|
|
74
58
|
};
|
|
75
|
-
|
|
76
59
|
var getSelectedNodeIds = function getSelectedNodeIds() {
|
|
77
60
|
var selectedNodeIds = [];
|
|
78
|
-
|
|
79
61
|
_this.treeWidget.getSelectedNodes().forEach(function (node) {
|
|
80
62
|
if (node.id != null) {
|
|
81
63
|
selectedNodeIds.push(node.id);
|
|
82
64
|
}
|
|
83
65
|
});
|
|
84
|
-
|
|
85
66
|
return selectedNodeIds;
|
|
86
67
|
};
|
|
87
|
-
|
|
88
68
|
return {
|
|
89
69
|
open_nodes: getOpenNodeIds(),
|
|
90
70
|
selected_node: getSelectedNodeIds()
|
|
91
71
|
};
|
|
92
72
|
}
|
|
73
|
+
|
|
93
74
|
/*
|
|
94
75
|
Set initial state
|
|
95
76
|
Don't handle nodes that are loaded on demand
|
|
96
77
|
result: must load on demand
|
|
97
78
|
*/
|
|
98
|
-
|
|
99
79
|
}, {
|
|
100
80
|
key: "setInitialState",
|
|
101
81
|
value: function setInitialState(state) {
|
|
@@ -103,16 +83,13 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
103
83
|
return false;
|
|
104
84
|
} else {
|
|
105
85
|
var mustLoadOnDemand = false;
|
|
106
|
-
|
|
107
86
|
if (state.open_nodes) {
|
|
108
87
|
mustLoadOnDemand = this.openInitialNodes(state.open_nodes);
|
|
109
88
|
}
|
|
110
|
-
|
|
111
89
|
if (state.selected_node) {
|
|
112
90
|
this.resetSelection();
|
|
113
91
|
this.selectInitialNodes(state.selected_node);
|
|
114
92
|
}
|
|
115
|
-
|
|
116
93
|
return mustLoadOnDemand;
|
|
117
94
|
}
|
|
118
95
|
}
|
|
@@ -129,9 +106,8 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
129
106
|
key: "getNodeIdToBeSelected",
|
|
130
107
|
value: function getNodeIdToBeSelected() {
|
|
131
108
|
var state = this.getStateFromStorage();
|
|
132
|
-
|
|
133
109
|
if (state && state.selected_node) {
|
|
134
|
-
return state.selected_node[0];
|
|
110
|
+
return state.selected_node[0] || null;
|
|
135
111
|
} else {
|
|
136
112
|
return null;
|
|
137
113
|
}
|
|
@@ -139,13 +115,13 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
139
115
|
}, {
|
|
140
116
|
key: "parseState",
|
|
141
117
|
value: function parseState(jsonData) {
|
|
142
|
-
var state = JSON.parse(jsonData);
|
|
118
|
+
var state = JSON.parse(jsonData);
|
|
143
119
|
|
|
120
|
+
// Check if selected_node is an int (instead of an array)
|
|
144
121
|
if (state && state.selected_node && (0, _util.isInt)(state.selected_node)) {
|
|
145
122
|
// Convert to array
|
|
146
123
|
state.selected_node = [state.selected_node];
|
|
147
124
|
}
|
|
148
|
-
|
|
149
125
|
return state;
|
|
150
126
|
}
|
|
151
127
|
}, {
|
|
@@ -163,15 +139,12 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
163
139
|
key: "openInitialNodes",
|
|
164
140
|
value: function openInitialNodes(nodeIds) {
|
|
165
141
|
var mustLoadOnDemand = false;
|
|
166
|
-
|
|
167
142
|
var _iterator = _createForOfIteratorHelper(nodeIds),
|
|
168
|
-
|
|
169
|
-
|
|
143
|
+
_step;
|
|
170
144
|
try {
|
|
171
145
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
172
146
|
var nodeId = _step.value;
|
|
173
147
|
var node = this.treeWidget.getNodeById(nodeId);
|
|
174
|
-
|
|
175
148
|
if (node) {
|
|
176
149
|
if (!node.load_on_demand) {
|
|
177
150
|
node.is_open = true;
|
|
@@ -185,22 +158,18 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
185
158
|
} finally {
|
|
186
159
|
_iterator.f();
|
|
187
160
|
}
|
|
188
|
-
|
|
189
161
|
return mustLoadOnDemand;
|
|
190
162
|
}
|
|
191
163
|
}, {
|
|
192
164
|
key: "selectInitialNodes",
|
|
193
165
|
value: function selectInitialNodes(nodeIds) {
|
|
194
166
|
var selectCount = 0;
|
|
195
|
-
|
|
196
167
|
var _iterator2 = _createForOfIteratorHelper(nodeIds),
|
|
197
|
-
|
|
198
|
-
|
|
168
|
+
_step2;
|
|
199
169
|
try {
|
|
200
170
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
201
171
|
var nodeId = _step2.value;
|
|
202
172
|
var node = this.treeWidget.getNodeById(nodeId);
|
|
203
|
-
|
|
204
173
|
if (node) {
|
|
205
174
|
selectCount += 1;
|
|
206
175
|
this.treeWidget.selectNodeHandler.addToSelection(node);
|
|
@@ -211,7 +180,6 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
211
180
|
} finally {
|
|
212
181
|
_iterator2.f();
|
|
213
182
|
}
|
|
214
|
-
|
|
215
183
|
return selectCount !== 0;
|
|
216
184
|
}
|
|
217
185
|
}, {
|
|
@@ -227,22 +195,16 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
227
195
|
key: "doSetInitialStateOnDemand",
|
|
228
196
|
value: function doSetInitialStateOnDemand(nodeIdsParam, selectedNodes, cbFinished) {
|
|
229
197
|
var _this2 = this;
|
|
230
|
-
|
|
231
198
|
var loadingCount = 0;
|
|
232
199
|
var nodeIds = nodeIdsParam;
|
|
233
|
-
|
|
234
200
|
var openNodes = function openNodes() {
|
|
235
201
|
var newNodesIds = [];
|
|
236
|
-
|
|
237
202
|
var _iterator3 = _createForOfIteratorHelper(nodeIds),
|
|
238
|
-
|
|
239
|
-
|
|
203
|
+
_step3;
|
|
240
204
|
try {
|
|
241
205
|
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
242
206
|
var nodeId = _step3.value;
|
|
243
|
-
|
|
244
207
|
var node = _this2.treeWidget.getNodeById(nodeId);
|
|
245
|
-
|
|
246
208
|
if (!node) {
|
|
247
209
|
newNodesIds.push(nodeId);
|
|
248
210
|
} else {
|
|
@@ -260,27 +222,21 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
260
222
|
} finally {
|
|
261
223
|
_iterator3.f();
|
|
262
224
|
}
|
|
263
|
-
|
|
264
225
|
nodeIds = newNodesIds;
|
|
265
|
-
|
|
266
226
|
if (_this2.selectInitialNodes(selectedNodes)) {
|
|
267
227
|
_this2.treeWidget._refreshElements(null);
|
|
268
228
|
}
|
|
269
|
-
|
|
270
229
|
if (loadingCount === 0) {
|
|
271
230
|
cbFinished();
|
|
272
231
|
}
|
|
273
232
|
};
|
|
274
|
-
|
|
275
233
|
var loadAndOpenNode = function loadAndOpenNode(node) {
|
|
276
234
|
loadingCount += 1;
|
|
277
|
-
|
|
278
235
|
_this2.treeWidget._openNode(node, false, function () {
|
|
279
236
|
loadingCount -= 1;
|
|
280
237
|
openNodes();
|
|
281
238
|
});
|
|
282
239
|
};
|
|
283
|
-
|
|
284
240
|
openNodes();
|
|
285
241
|
}
|
|
286
242
|
}, {
|
|
@@ -308,20 +264,15 @@ var SaveStateHandler = /*#__PURE__*/function () {
|
|
|
308
264
|
} catch (error) {
|
|
309
265
|
return false;
|
|
310
266
|
}
|
|
311
|
-
|
|
312
267
|
return true;
|
|
313
268
|
}
|
|
314
269
|
};
|
|
315
|
-
|
|
316
270
|
if (this._supportsLocalStorage == null) {
|
|
317
271
|
this._supportsLocalStorage = testSupport();
|
|
318
272
|
}
|
|
319
|
-
|
|
320
273
|
return this._supportsLocalStorage;
|
|
321
274
|
}
|
|
322
275
|
}]);
|
|
323
|
-
|
|
324
276
|
return SaveStateHandler;
|
|
325
277
|
}();
|
|
326
|
-
|
|
327
278
|
exports["default"] = SaveStateHandler;
|
package/lib/scrollHandler.js
CHANGED
|
@@ -4,40 +4,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
7
|
+
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); }
|
|
8
8
|
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; } } }; }
|
|
9
|
-
|
|
10
9
|
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); }
|
|
11
|
-
|
|
12
|
-
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; }
|
|
13
|
-
|
|
10
|
+
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; }
|
|
14
11
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
15
|
-
|
|
16
|
-
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); } }
|
|
17
|
-
|
|
12
|
+
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); } }
|
|
18
13
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
19
|
-
|
|
20
|
-
function
|
|
21
|
-
|
|
14
|
+
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; }
|
|
15
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
16
|
+
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); }
|
|
22
17
|
var ScrollHandler = /*#__PURE__*/function () {
|
|
23
18
|
function ScrollHandler(treeWidget) {
|
|
24
19
|
_classCallCheck(this, ScrollHandler);
|
|
25
|
-
|
|
26
20
|
_defineProperty(this, "treeWidget", void 0);
|
|
27
|
-
|
|
28
21
|
_defineProperty(this, "previousTop", void 0);
|
|
29
|
-
|
|
30
22
|
_defineProperty(this, "isInitialized", void 0);
|
|
31
|
-
|
|
32
23
|
_defineProperty(this, "$scrollParent", void 0);
|
|
33
|
-
|
|
34
24
|
_defineProperty(this, "scrollParentTop", void 0);
|
|
35
|
-
|
|
36
25
|
this.treeWidget = treeWidget;
|
|
37
26
|
this.previousTop = -1;
|
|
38
27
|
this.isInitialized = false;
|
|
39
28
|
}
|
|
40
|
-
|
|
41
29
|
_createClass(ScrollHandler, [{
|
|
42
30
|
key: "checkScrolling",
|
|
43
31
|
value: function checkScrolling() {
|
|
@@ -49,8 +37,7 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
49
37
|
key: "scrollToY",
|
|
50
38
|
value: function scrollToY(top) {
|
|
51
39
|
this.ensureInit();
|
|
52
|
-
|
|
53
|
-
if (this.$scrollParent) {
|
|
40
|
+
if (this.$scrollParent && this.$scrollParent[0]) {
|
|
54
41
|
this.$scrollParent[0].scrollTop = top;
|
|
55
42
|
} else {
|
|
56
43
|
var offset = this.treeWidget.$el.offset();
|
|
@@ -67,7 +54,6 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
67
54
|
var elementTop;
|
|
68
55
|
var viewTop;
|
|
69
56
|
var elHeight = $element.height() || 0;
|
|
70
|
-
|
|
71
57
|
if (this.$scrollParent) {
|
|
72
58
|
viewTop = 0;
|
|
73
59
|
viewBottom = this.$scrollParent.height() || 0;
|
|
@@ -79,13 +65,10 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
79
65
|
viewTop = jQuery(window).scrollTop() || 0;
|
|
80
66
|
var windowHeight = jQuery(window).height() || 0;
|
|
81
67
|
viewBottom = viewTop + windowHeight;
|
|
82
|
-
|
|
83
68
|
var _offset = $element.offset();
|
|
84
|
-
|
|
85
69
|
elementTop = _offset ? _offset.top : 0;
|
|
86
70
|
elementBottom = elementTop + elHeight;
|
|
87
71
|
}
|
|
88
|
-
|
|
89
72
|
return elementBottom <= viewBottom && elementTop >= viewTop;
|
|
90
73
|
}
|
|
91
74
|
}, {
|
|
@@ -100,77 +83,55 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
100
83
|
}, {
|
|
101
84
|
key: "initScrollParent",
|
|
102
85
|
value: function initScrollParent() {
|
|
103
|
-
var _this = this
|
|
104
|
-
|
|
86
|
+
var _this = this,
|
|
87
|
+
_$scrollParent$;
|
|
105
88
|
var getParentWithOverflow = function getParentWithOverflow() {
|
|
106
89
|
var cssAttributes = ["overflow", "overflow-y"];
|
|
107
|
-
|
|
108
90
|
var hasOverFlow = function hasOverFlow($el) {
|
|
109
|
-
var
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
var attr = _step.value;
|
|
115
|
-
var overflowValue = $el.css(attr);
|
|
116
|
-
|
|
117
|
-
if (overflowValue === "auto" || overflowValue === "scroll") {
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
91
|
+
for (var _i = 0, _cssAttributes = cssAttributes; _i < _cssAttributes.length; _i++) {
|
|
92
|
+
var attr = _cssAttributes[_i];
|
|
93
|
+
var overflowValue = $el.css(attr);
|
|
94
|
+
if (overflowValue === "auto" || overflowValue === "scroll") {
|
|
95
|
+
return true;
|
|
120
96
|
}
|
|
121
|
-
} catch (err) {
|
|
122
|
-
_iterator.e(err);
|
|
123
|
-
} finally {
|
|
124
|
-
_iterator.f();
|
|
125
97
|
}
|
|
126
|
-
|
|
127
98
|
return false;
|
|
128
99
|
};
|
|
129
|
-
|
|
130
100
|
if (hasOverFlow(_this.treeWidget.$el)) {
|
|
131
101
|
return _this.treeWidget.$el;
|
|
132
102
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
_step2;
|
|
136
|
-
|
|
103
|
+
var _iterator = _createForOfIteratorHelper(_this.treeWidget.$el.parents().get()),
|
|
104
|
+
_step;
|
|
137
105
|
try {
|
|
138
|
-
for (
|
|
139
|
-
var el =
|
|
106
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
107
|
+
var el = _step.value;
|
|
140
108
|
var $el = jQuery(el);
|
|
141
|
-
|
|
142
109
|
if (hasOverFlow($el)) {
|
|
143
110
|
return $el;
|
|
144
111
|
}
|
|
145
112
|
}
|
|
146
113
|
} catch (err) {
|
|
147
|
-
|
|
114
|
+
_iterator.e(err);
|
|
148
115
|
} finally {
|
|
149
|
-
|
|
116
|
+
_iterator.f();
|
|
150
117
|
}
|
|
151
|
-
|
|
152
118
|
return null;
|
|
153
119
|
};
|
|
154
|
-
|
|
155
120
|
var setDocumentAsScrollParent = function setDocumentAsScrollParent() {
|
|
156
121
|
_this.scrollParentTop = 0;
|
|
157
122
|
_this.$scrollParent = null;
|
|
158
123
|
};
|
|
159
|
-
|
|
160
124
|
if (this.treeWidget.$el.css("position") === "fixed") {
|
|
161
125
|
setDocumentAsScrollParent();
|
|
162
126
|
}
|
|
163
|
-
|
|
164
127
|
var $scrollParent = getParentWithOverflow();
|
|
165
|
-
|
|
166
|
-
if ($scrollParent && $scrollParent.length && $scrollParent[0].tagName !== "HTML") {
|
|
128
|
+
if ($scrollParent && $scrollParent.length && ((_$scrollParent$ = $scrollParent[0]) === null || _$scrollParent$ === void 0 ? void 0 : _$scrollParent$.tagName) !== "HTML") {
|
|
167
129
|
this.$scrollParent = $scrollParent;
|
|
168
130
|
var offset = this.$scrollParent.offset();
|
|
169
131
|
this.scrollParentTop = offset ? offset.top : 0;
|
|
170
132
|
} else {
|
|
171
133
|
setDocumentAsScrollParent();
|
|
172
134
|
}
|
|
173
|
-
|
|
174
135
|
this.isInitialized = true;
|
|
175
136
|
}
|
|
176
137
|
}, {
|
|
@@ -184,13 +145,10 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
184
145
|
key: "handleVerticalScrollingWithScrollParent",
|
|
185
146
|
value: function handleVerticalScrollingWithScrollParent(area) {
|
|
186
147
|
var scrollParent = this.$scrollParent && this.$scrollParent[0];
|
|
187
|
-
|
|
188
148
|
if (!scrollParent) {
|
|
189
149
|
return;
|
|
190
150
|
}
|
|
191
|
-
|
|
192
151
|
var distanceBottom = this.scrollParentTop + scrollParent.offsetHeight - area.bottom;
|
|
193
|
-
|
|
194
152
|
if (distanceBottom < 20) {
|
|
195
153
|
scrollParent.scrollTop += 20;
|
|
196
154
|
this.treeWidget.refreshHitAreas();
|
|
@@ -206,12 +164,10 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
206
164
|
value: function handleVerticalScrollingWithDocument(area) {
|
|
207
165
|
var scrollTop = jQuery(document).scrollTop() || 0;
|
|
208
166
|
var distanceTop = area.top - scrollTop;
|
|
209
|
-
|
|
210
167
|
if (distanceTop < 20) {
|
|
211
168
|
jQuery(document).scrollTop(scrollTop - 20);
|
|
212
169
|
} else {
|
|
213
170
|
var windowHeight = jQuery(window).height() || 0;
|
|
214
|
-
|
|
215
171
|
if (windowHeight - (area.bottom - scrollTop) < 20) {
|
|
216
172
|
jQuery(document).scrollTop(scrollTop + 20);
|
|
217
173
|
}
|
|
@@ -221,10 +177,8 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
221
177
|
key: "checkVerticalScrolling",
|
|
222
178
|
value: function checkVerticalScrolling() {
|
|
223
179
|
var hoveredArea = this.treeWidget.dndHandler.hoveredArea;
|
|
224
|
-
|
|
225
180
|
if (hoveredArea && hoveredArea.top !== this.previousTop) {
|
|
226
181
|
this.previousTop = hoveredArea.top;
|
|
227
|
-
|
|
228
182
|
if (this.$scrollParent) {
|
|
229
183
|
this.handleVerticalScrollingWithScrollParent(hoveredArea);
|
|
230
184
|
} else {
|
|
@@ -236,11 +190,9 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
236
190
|
key: "checkHorizontalScrolling",
|
|
237
191
|
value: function checkHorizontalScrolling() {
|
|
238
192
|
var positionInfo = this.treeWidget.dndHandler.positionInfo;
|
|
239
|
-
|
|
240
193
|
if (!positionInfo) {
|
|
241
194
|
return;
|
|
242
195
|
}
|
|
243
|
-
|
|
244
196
|
if (this.$scrollParent) {
|
|
245
197
|
this.handleHorizontalScrollingWithParent(positionInfo);
|
|
246
198
|
} else {
|
|
@@ -253,22 +205,21 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
253
205
|
if (positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
|
|
254
206
|
return;
|
|
255
207
|
}
|
|
256
|
-
|
|
257
208
|
var $scrollParent = this.$scrollParent;
|
|
258
209
|
var scrollParentOffset = $scrollParent && $scrollParent.offset();
|
|
259
|
-
|
|
260
210
|
if (!($scrollParent && scrollParentOffset)) {
|
|
261
211
|
return;
|
|
262
212
|
}
|
|
263
|
-
|
|
264
213
|
var scrollParent = $scrollParent[0];
|
|
214
|
+
if (!scrollParent) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
265
217
|
var canScrollRight = scrollParent.scrollLeft + scrollParent.clientWidth < scrollParent.scrollWidth;
|
|
266
218
|
var canScrollLeft = scrollParent.scrollLeft > 0;
|
|
267
219
|
var rightEdge = scrollParentOffset.left + scrollParent.clientWidth;
|
|
268
220
|
var leftEdge = scrollParentOffset.left;
|
|
269
221
|
var isNearRightEdge = positionInfo.pageX > rightEdge - 20;
|
|
270
222
|
var isNearLeftEdge = positionInfo.pageX < leftEdge + 20;
|
|
271
|
-
|
|
272
223
|
if (isNearRightEdge && canScrollRight) {
|
|
273
224
|
scrollParent.scrollLeft = Math.min(scrollParent.scrollLeft + 20, scrollParent.scrollWidth);
|
|
274
225
|
} else if (isNearLeftEdge && canScrollLeft) {
|
|
@@ -281,14 +232,12 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
281
232
|
if (positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
|
|
282
233
|
return;
|
|
283
234
|
}
|
|
284
|
-
|
|
285
235
|
var $document = jQuery(document);
|
|
286
236
|
var scrollLeft = $document.scrollLeft() || 0;
|
|
287
237
|
var windowWidth = jQuery(window).width() || 0;
|
|
288
238
|
var canScrollLeft = scrollLeft > 0;
|
|
289
239
|
var isNearRightEdge = positionInfo.pageX > windowWidth - 20;
|
|
290
240
|
var isNearLeftEdge = positionInfo.pageX - scrollLeft < 20;
|
|
291
|
-
|
|
292
241
|
if (isNearRightEdge) {
|
|
293
242
|
$document.scrollLeft(scrollLeft + 20);
|
|
294
243
|
} else if (isNearLeftEdge && canScrollLeft) {
|
|
@@ -296,8 +245,6 @@ var ScrollHandler = /*#__PURE__*/function () {
|
|
|
296
245
|
}
|
|
297
246
|
}
|
|
298
247
|
}]);
|
|
299
|
-
|
|
300
248
|
return ScrollHandler;
|
|
301
249
|
}();
|
|
302
|
-
|
|
303
250
|
exports["default"] = ScrollHandler;
|
package/lib/selectNodeHandler.js
CHANGED
|
@@ -4,37 +4,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
7
|
+
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); }
|
|
8
8
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
9
|
-
|
|
10
|
-
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); } }
|
|
11
|
-
|
|
9
|
+
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); } }
|
|
12
10
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
|
|
11
|
+
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; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
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); }
|
|
16
14
|
var SelectNodeHandler = /*#__PURE__*/function () {
|
|
17
15
|
function SelectNodeHandler(treeWidget) {
|
|
18
16
|
_classCallCheck(this, SelectNodeHandler);
|
|
19
|
-
|
|
20
17
|
_defineProperty(this, "treeWidget", void 0);
|
|
21
|
-
|
|
22
18
|
_defineProperty(this, "selectedNodes", void 0);
|
|
23
|
-
|
|
24
19
|
_defineProperty(this, "selectedSingleNode", void 0);
|
|
25
|
-
|
|
26
20
|
this.treeWidget = treeWidget;
|
|
27
21
|
this.selectedNodes = new Set();
|
|
28
22
|
this.clear();
|
|
29
23
|
}
|
|
30
|
-
|
|
31
24
|
_createClass(SelectNodeHandler, [{
|
|
32
25
|
key: "getSelectedNode",
|
|
33
26
|
value: function getSelectedNode() {
|
|
34
27
|
var selectedNodes = this.getSelectedNodes();
|
|
35
|
-
|
|
36
28
|
if (selectedNodes.length) {
|
|
37
|
-
return selectedNodes[0];
|
|
29
|
+
return selectedNodes[0] || false;
|
|
38
30
|
} else {
|
|
39
31
|
return false;
|
|
40
32
|
}
|
|
@@ -43,14 +35,12 @@ var SelectNodeHandler = /*#__PURE__*/function () {
|
|
|
43
35
|
key: "getSelectedNodes",
|
|
44
36
|
value: function getSelectedNodes() {
|
|
45
37
|
var _this = this;
|
|
46
|
-
|
|
47
38
|
if (this.selectedSingleNode) {
|
|
48
39
|
return [this.selectedSingleNode];
|
|
49
40
|
} else {
|
|
50
41
|
var selectedNodes = [];
|
|
51
42
|
this.selectedNodes.forEach(function (id) {
|
|
52
43
|
var node = _this.treeWidget.getNodeById(id);
|
|
53
|
-
|
|
54
44
|
if (node) {
|
|
55
45
|
selectedNodes.push(node);
|
|
56
46
|
}
|
|
@@ -69,17 +59,14 @@ var SelectNodeHandler = /*#__PURE__*/function () {
|
|
|
69
59
|
}
|
|
70
60
|
} else {
|
|
71
61
|
var selectedNodes = [];
|
|
72
|
-
|
|
73
62
|
for (var id in this.selectedNodes) {
|
|
74
63
|
if (Object.prototype.hasOwnProperty.call(this.selectedNodes, id)) {
|
|
75
64
|
var node = this.treeWidget.getNodeById(id);
|
|
76
|
-
|
|
77
65
|
if (node && parent.isParentOf(node)) {
|
|
78
66
|
selectedNodes.push(node);
|
|
79
67
|
}
|
|
80
68
|
}
|
|
81
69
|
}
|
|
82
|
-
|
|
83
70
|
return selectedNodes;
|
|
84
71
|
}
|
|
85
72
|
}
|
|
@@ -104,22 +91,18 @@ var SelectNodeHandler = /*#__PURE__*/function () {
|
|
|
104
91
|
key: "removeFromSelection",
|
|
105
92
|
value: function removeFromSelection(node) {
|
|
106
93
|
var _this2 = this;
|
|
107
|
-
|
|
108
94
|
var includeChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
109
|
-
|
|
110
95
|
if (node.id == null) {
|
|
111
96
|
if (this.selectedSingleNode && node.element === this.selectedSingleNode.element) {
|
|
112
97
|
this.selectedSingleNode = null;
|
|
113
98
|
}
|
|
114
99
|
} else {
|
|
115
100
|
this.selectedNodes["delete"](node.id);
|
|
116
|
-
|
|
117
101
|
if (includeChildren) {
|
|
118
102
|
node.iterate(function () {
|
|
119
103
|
if (node.id != null) {
|
|
120
104
|
_this2.selectedNodes["delete"](node.id);
|
|
121
105
|
}
|
|
122
|
-
|
|
123
106
|
return true;
|
|
124
107
|
});
|
|
125
108
|
}
|
|
@@ -141,8 +124,6 @@ var SelectNodeHandler = /*#__PURE__*/function () {
|
|
|
141
124
|
return Boolean(activeElement && activeElement.tagName === "SPAN" && this.treeWidget._containsElement(activeElement));
|
|
142
125
|
}
|
|
143
126
|
}]);
|
|
144
|
-
|
|
145
127
|
return SelectNodeHandler;
|
|
146
128
|
}();
|
|
147
|
-
|
|
148
129
|
exports["default"] = SelectNodeHandler;
|