jqtree 1.6.3 → 1.7.0

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.
Files changed (64) hide show
  1. package/.github/workflows/ci.yml +21 -19
  2. package/.tool-versions +1 -0
  3. package/README.md +1 -1
  4. package/bower.json +10 -3
  5. package/config/production +2 -2
  6. package/config/{rollup.config.js → rollup.config.mjs} +3 -8
  7. package/docs/Gemfile.lock +3 -3
  8. package/docs/_config.yml +1 -1
  9. package/docs/_entries/10_changelog.md +9 -0
  10. package/docs/_entries/93_getnextnode.md +4 -1
  11. package/docs/_entries/{95_getpreviousnode.md → 95_getnextvisiblenode.md} +1 -1
  12. package/docs/_entries/96_getpreviousnode.md +0 -0
  13. package/docs/_entries/{96_getprevioussibling.md → 97_getprevioussibling.md} +0 -0
  14. package/docs/_entries/98_getpreviousvisiblenode.md +14 -0
  15. package/docs/_entries/{97_parent.md → 99_parent.md} +0 -0
  16. package/docs/package.json +7 -7
  17. package/docs/pnpm-lock.yaml +138 -108
  18. package/docs/static/bower.json +1 -1
  19. package/docs/static/bower_components/jquery/dist/jquery.js +209 -97
  20. package/docs/static/bower_components/jquery/dist/jquery.min.js +2 -2
  21. package/docs/static/documentation.css +224 -84
  22. package/docs/static/example.css +0 -1
  23. package/docs/tree.jquery.js +2 -2
  24. package/lib/dataLoader.js +5 -31
  25. package/lib/dragAndDropHandler.js +19 -132
  26. package/lib/elementsRenderer.js +29 -59
  27. package/lib/keyHandler.js +8 -32
  28. package/lib/mouse.widget.js +13 -74
  29. package/lib/node.js +60 -125
  30. package/lib/nodeElement.js +5 -72
  31. package/lib/playwright/coverage.js +58 -97
  32. package/lib/playwright/playwright.test.js +148 -210
  33. package/lib/playwright/testUtils.js +116 -182
  34. package/lib/saveStateHandler.js +12 -61
  35. package/lib/scrollHandler.js +17 -74
  36. package/lib/selectNodeHandler.js +5 -24
  37. package/lib/simple.widget.js +18 -53
  38. package/lib/test/jqTree/create.test.js +0 -4
  39. package/lib/test/jqTree/events.test.js +0 -7
  40. package/lib/test/jqTree/keyboard.test.js +0 -6
  41. package/lib/test/jqTree/loadOnDemand.test.js +84 -121
  42. package/lib/test/jqTree/methods.test.js +107 -150
  43. package/lib/test/jqTree/options.test.js +32 -54
  44. package/lib/test/node.test.js +127 -72
  45. package/lib/test/nodeUtil.test.js +0 -1
  46. package/lib/test/support/jqTreeMatchers.js +4 -9
  47. package/lib/test/support/setupTests.js +0 -4
  48. package/lib/test/support/testUtil.js +2 -11
  49. package/lib/test/support/treeStructure.js +0 -6
  50. package/lib/test/util.test.js +0 -1
  51. package/lib/tree.jquery.js +28 -239
  52. package/lib/util.js +0 -6
  53. package/lib/version.js +1 -1
  54. package/package.json +40 -39
  55. package/src/keyHandler.ts +3 -3
  56. package/src/node.ts +43 -12
  57. package/src/test/.eslintrc +3 -1
  58. package/src/test/node.test.ts +146 -54
  59. package/src/tree.jquery.ts +6 -5
  60. package/src/version.ts +1 -1
  61. package/tree.jquery.debug.js +202 -855
  62. package/tree.jquery.debug.js.map +1 -1
  63. package/tree.jquery.js +2 -2
  64. package/tree.jquery.js.map +1 -1
@@ -1,5 +1,5 @@
1
1
  /*
2
- JqTree 1.6.3
2
+ JqTree 1.7.0
3
3
 
4
4
  Copyright 2022 Marco Braak
5
5
 
@@ -20,19 +20,43 @@ limitations under the License.
20
20
  var jqtree = (function (exports) {
21
21
  'use strict';
22
22
 
23
+ function _iterableToArrayLimit(arr, i) {
24
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
25
+ if (null != _i) {
26
+ var _s,
27
+ _e,
28
+ _x,
29
+ _r,
30
+ _arr = [],
31
+ _n = !0,
32
+ _d = !1;
33
+ try {
34
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
35
+ if (Object(_i) !== _i) return;
36
+ _n = !1;
37
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
38
+ } catch (err) {
39
+ _d = !0, _e = err;
40
+ } finally {
41
+ try {
42
+ if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;
43
+ } finally {
44
+ if (_d) throw _e;
45
+ }
46
+ }
47
+ return _arr;
48
+ }
49
+ }
23
50
  function ownKeys(object, enumerableOnly) {
24
51
  var keys = Object.keys(object);
25
-
26
52
  if (Object.getOwnPropertySymbols) {
27
53
  var symbols = Object.getOwnPropertySymbols(object);
28
54
  enumerableOnly && (symbols = symbols.filter(function (sym) {
29
55
  return Object.getOwnPropertyDescriptor(object, sym).enumerable;
30
56
  })), keys.push.apply(keys, symbols);
31
57
  }
32
-
33
58
  return keys;
34
59
  }
35
-
36
60
  function _objectSpread2(target) {
37
61
  for (var i = 1; i < arguments.length; i++) {
38
62
  var source = null != arguments[i] ? arguments[i] : {};
@@ -42,10 +66,8 @@ var jqtree = (function (exports) {
42
66
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
43
67
  });
44
68
  }
45
-
46
69
  return target;
47
70
  }
48
-
49
71
  function _typeof(obj) {
50
72
  "@babel/helpers - typeof";
51
73
 
@@ -55,23 +77,20 @@ var jqtree = (function (exports) {
55
77
  return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
56
78
  }, _typeof(obj);
57
79
  }
58
-
59
80
  function _classCallCheck(instance, Constructor) {
60
81
  if (!(instance instanceof Constructor)) {
61
82
  throw new TypeError("Cannot call a class as a function");
62
83
  }
63
84
  }
64
-
65
85
  function _defineProperties(target, props) {
66
86
  for (var i = 0; i < props.length; i++) {
67
87
  var descriptor = props[i];
68
88
  descriptor.enumerable = descriptor.enumerable || false;
69
89
  descriptor.configurable = true;
70
90
  if ("value" in descriptor) descriptor.writable = true;
71
- Object.defineProperty(target, descriptor.key, descriptor);
91
+ Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
72
92
  }
73
93
  }
74
-
75
94
  function _createClass(Constructor, protoProps, staticProps) {
76
95
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
77
96
  if (staticProps) _defineProperties(Constructor, staticProps);
@@ -80,8 +99,8 @@ var jqtree = (function (exports) {
80
99
  });
81
100
  return Constructor;
82
101
  }
83
-
84
102
  function _defineProperty(obj, key, value) {
103
+ key = _toPropertyKey(key);
85
104
  if (key in obj) {
86
105
  Object.defineProperty(obj, key, {
87
106
  value: value,
@@ -92,15 +111,12 @@ var jqtree = (function (exports) {
92
111
  } else {
93
112
  obj[key] = value;
94
113
  }
95
-
96
114
  return obj;
97
115
  }
98
-
99
116
  function _inherits(subClass, superClass) {
100
117
  if (typeof superClass !== "function" && superClass !== null) {
101
118
  throw new TypeError("Super expression must either be null or a function");
102
119
  }
103
-
104
120
  subClass.prototype = Object.create(superClass && superClass.prototype, {
105
121
  constructor: {
106
122
  value: subClass,
@@ -113,14 +129,12 @@ var jqtree = (function (exports) {
113
129
  });
114
130
  if (superClass) _setPrototypeOf(subClass, superClass);
115
131
  }
116
-
117
132
  function _getPrototypeOf(o) {
118
133
  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
119
134
  return o.__proto__ || Object.getPrototypeOf(o);
120
135
  };
121
136
  return _getPrototypeOf(o);
122
137
  }
123
-
124
138
  function _setPrototypeOf(o, p) {
125
139
  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
126
140
  o.__proto__ = p;
@@ -128,12 +142,10 @@ var jqtree = (function (exports) {
128
142
  };
129
143
  return _setPrototypeOf(o, p);
130
144
  }
131
-
132
145
  function _isNativeReflectConstruct() {
133
146
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
134
147
  if (Reflect.construct.sham) return false;
135
148
  if (typeof Proxy === "function") return true;
136
-
137
149
  try {
138
150
  Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
139
151
  return true;
@@ -141,112 +153,63 @@ var jqtree = (function (exports) {
141
153
  return false;
142
154
  }
143
155
  }
144
-
145
156
  function _assertThisInitialized(self) {
146
157
  if (self === void 0) {
147
158
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
148
159
  }
149
-
150
160
  return self;
151
161
  }
152
-
153
162
  function _possibleConstructorReturn(self, call) {
154
163
  if (call && (typeof call === "object" || typeof call === "function")) {
155
164
  return call;
156
165
  } else if (call !== void 0) {
157
166
  throw new TypeError("Derived constructors may only return object or undefined");
158
167
  }
159
-
160
168
  return _assertThisInitialized(self);
161
169
  }
162
-
163
170
  function _createSuper(Derived) {
164
171
  var hasNativeReflectConstruct = _isNativeReflectConstruct();
165
-
166
172
  return function _createSuperInternal() {
167
173
  var Super = _getPrototypeOf(Derived),
168
- result;
169
-
174
+ result;
170
175
  if (hasNativeReflectConstruct) {
171
176
  var NewTarget = _getPrototypeOf(this).constructor;
172
-
173
177
  result = Reflect.construct(Super, arguments, NewTarget);
174
178
  } else {
175
179
  result = Super.apply(this, arguments);
176
180
  }
177
-
178
181
  return _possibleConstructorReturn(this, result);
179
182
  };
180
183
  }
181
-
182
184
  function _superPropBase(object, property) {
183
185
  while (!Object.prototype.hasOwnProperty.call(object, property)) {
184
186
  object = _getPrototypeOf(object);
185
187
  if (object === null) break;
186
188
  }
187
-
188
189
  return object;
189
190
  }
190
-
191
191
  function _get() {
192
192
  if (typeof Reflect !== "undefined" && Reflect.get) {
193
193
  _get = Reflect.get.bind();
194
194
  } else {
195
195
  _get = function _get(target, property, receiver) {
196
196
  var base = _superPropBase(target, property);
197
-
198
197
  if (!base) return;
199
198
  var desc = Object.getOwnPropertyDescriptor(base, property);
200
-
201
199
  if (desc.get) {
202
200
  return desc.get.call(arguments.length < 3 ? target : receiver);
203
201
  }
204
-
205
202
  return desc.value;
206
203
  };
207
204
  }
208
-
209
205
  return _get.apply(this, arguments);
210
206
  }
211
-
212
207
  function _slicedToArray(arr, i) {
213
208
  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
214
209
  }
215
-
216
210
  function _arrayWithHoles(arr) {
217
211
  if (Array.isArray(arr)) return arr;
218
212
  }
219
-
220
- function _iterableToArrayLimit(arr, i) {
221
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
222
-
223
- if (_i == null) return;
224
- var _arr = [];
225
- var _n = true;
226
- var _d = false;
227
-
228
- var _s, _e;
229
-
230
- try {
231
- for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
232
- _arr.push(_s.value);
233
-
234
- if (i && _arr.length === i) break;
235
- }
236
- } catch (err) {
237
- _d = true;
238
- _e = err;
239
- } finally {
240
- try {
241
- if (!_n && _i["return"] != null) _i["return"]();
242
- } finally {
243
- if (_d) throw _e;
244
- }
245
- }
246
-
247
- return _arr;
248
- }
249
-
250
213
  function _unsupportedIterableToArray(o, minLen) {
251
214
  if (!o) return;
252
215
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
@@ -255,29 +218,21 @@ var jqtree = (function (exports) {
255
218
  if (n === "Map" || n === "Set") return Array.from(o);
256
219
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
257
220
  }
258
-
259
221
  function _arrayLikeToArray(arr, len) {
260
222
  if (len == null || len > arr.length) len = arr.length;
261
-
262
223
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
263
-
264
224
  return arr2;
265
225
  }
266
-
267
226
  function _nonIterableRest() {
268
227
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
269
228
  }
270
-
271
229
  function _createForOfIteratorHelper(o, allowArrayLike) {
272
230
  var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
273
-
274
231
  if (!it) {
275
232
  if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
276
233
  if (it) o = it;
277
234
  var i = 0;
278
-
279
235
  var F = function () {};
280
-
281
236
  return {
282
237
  s: F,
283
238
  n: function () {
@@ -295,13 +250,11 @@ var jqtree = (function (exports) {
295
250
  f: F
296
251
  };
297
252
  }
298
-
299
253
  throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
300
254
  }
301
-
302
255
  var normalCompletion = true,
303
- didErr = false,
304
- err;
256
+ didErr = false,
257
+ err;
305
258
  return {
306
259
  s: function () {
307
260
  it = it.call(o);
@@ -324,18 +277,30 @@ var jqtree = (function (exports) {
324
277
  }
325
278
  };
326
279
  }
280
+ function _toPrimitive(input, hint) {
281
+ if (typeof input !== "object" || input === null) return input;
282
+ var prim = input[Symbol.toPrimitive];
283
+ if (prim !== undefined) {
284
+ var res = prim.call(input, hint || "default");
285
+ if (typeof res !== "object") return res;
286
+ throw new TypeError("@@toPrimitive must return a primitive value.");
287
+ }
288
+ return (hint === "string" ? String : Number)(input);
289
+ }
290
+ function _toPropertyKey(arg) {
291
+ var key = _toPrimitive(arg, "string");
292
+ return typeof key === "symbol" ? key : String(key);
293
+ }
327
294
 
328
- var version = "1.6.2";
295
+ var version = "1.7.0";
329
296
 
330
297
  var Position;
331
-
332
298
  (function (Position) {
333
299
  Position[Position["Before"] = 1] = "Before";
334
300
  Position[Position["After"] = 2] = "After";
335
301
  Position[Position["Inside"] = 3] = "Inside";
336
302
  Position[Position["None"] = 4] = "None";
337
303
  })(Position || (Position = {}));
338
-
339
304
  var positionNames = {
340
305
  before: Position.Before,
341
306
  after: Position.After,
@@ -350,62 +315,45 @@ var jqtree = (function (exports) {
350
315
  }
351
316
  }
352
317
  }
353
-
354
318
  return "";
355
319
  };
356
320
  var getPosition = function getPosition(name) {
357
321
  return positionNames[name];
358
322
  };
359
-
360
323
  var isNodeRecordWithChildren = function isNodeRecordWithChildren(data) {
361
324
  return _typeof(data) === "object" && "children" in data && data["children"] instanceof Array;
362
325
  };
363
-
364
326
  var Node = /*#__PURE__*/function () {
365
327
  function Node() {
366
328
  var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
367
329
  var isRoot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
368
330
  var nodeClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Node;
369
-
370
331
  _classCallCheck(this, Node);
371
-
372
332
  _defineProperty(this, "id", void 0);
373
-
374
333
  _defineProperty(this, "name", void 0);
375
-
376
334
  _defineProperty(this, "children", void 0);
377
-
378
335
  _defineProperty(this, "parent", void 0);
379
-
380
336
  _defineProperty(this, "idMapping", void 0);
381
-
382
337
  _defineProperty(this, "tree", void 0);
383
-
384
338
  _defineProperty(this, "nodeClass", void 0);
385
-
386
339
  _defineProperty(this, "load_on_demand", void 0);
387
-
388
340
  _defineProperty(this, "is_open", void 0);
389
-
390
341
  _defineProperty(this, "element", void 0);
391
-
392
342
  _defineProperty(this, "is_loading", void 0);
393
-
394
343
  _defineProperty(this, "isEmptyFolder", void 0);
395
-
396
344
  this.name = "";
397
345
  this.isEmptyFolder = false;
398
346
  this.load_on_demand = false;
399
347
  this.setData(o);
400
348
  this.children = [];
401
349
  this.parent = null;
402
-
403
350
  if (isRoot) {
404
351
  this.idMapping = new Map();
405
352
  this.tree = this;
406
353
  this.nodeClass = nodeClass;
407
354
  }
408
355
  }
356
+
409
357
  /*
410
358
  Set the data of this node.
411
359
  setData(string): set the name of the node
@@ -417,8 +365,6 @@ var jqtree = (function (exports) {
417
365
  * This is an internal function; it is not in the docs
418
366
  * Does not remove existing node values
419
367
  */
420
-
421
-
422
368
  _createClass(Node, [{
423
369
  key: "setData",
424
370
  value: function setData(o) {
@@ -430,7 +376,6 @@ var jqtree = (function (exports) {
430
376
  for (var _key in o) {
431
377
  if (Object.prototype.hasOwnProperty.call(o, _key)) {
432
378
  var value = o[_key];
433
-
434
379
  if (_key === "label" || _key === "name") {
435
380
  // You can use the 'label' key instead of 'name'; this is a legacy feature
436
381
  if (typeof value === "string") {
@@ -444,6 +389,7 @@ var jqtree = (function (exports) {
444
389
  }
445
390
  }
446
391
  }
392
+
447
393
  /*
448
394
  Create tree from data.
449
395
  Structure of data is:
@@ -460,23 +406,17 @@ var jqtree = (function (exports) {
460
406
  }
461
407
  ]
462
408
  */
463
-
464
409
  }, {
465
410
  key: "loadFromData",
466
411
  value: function loadFromData(data) {
467
412
  this.removeChildren();
468
-
469
413
  var _iterator = _createForOfIteratorHelper(data),
470
- _step;
471
-
414
+ _step;
472
415
  try {
473
416
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
474
417
  var o = _step.value;
475
-
476
418
  var _node = this.createNode(o);
477
-
478
419
  this.addChild(_node);
479
-
480
420
  if (isNodeRecordWithChildren(o)) {
481
421
  if (o.children.length === 0) {
482
422
  _node.isEmptyFolder = true;
@@ -490,22 +430,22 @@ var jqtree = (function (exports) {
490
430
  } finally {
491
431
  _iterator.f();
492
432
  }
493
-
494
433
  return this;
495
434
  }
435
+
496
436
  /*
497
437
  Add child.
498
438
  tree.addChild(
499
439
  new Node('child1')
500
440
  );
501
441
  */
502
-
503
442
  }, {
504
443
  key: "addChild",
505
444
  value: function addChild(node) {
506
445
  this.children.push(node);
507
446
  node.setParent(this);
508
447
  }
448
+
509
449
  /*
510
450
  Add child at position. Index starts at 0.
511
451
  tree.addChildAtPosition(
@@ -513,18 +453,17 @@ var jqtree = (function (exports) {
513
453
  1
514
454
  );
515
455
  */
516
-
517
456
  }, {
518
457
  key: "addChildAtPosition",
519
458
  value: function addChildAtPosition(node, index) {
520
459
  this.children.splice(index, 0, node);
521
460
  node.setParent(this);
522
461
  }
462
+
523
463
  /*
524
464
  Remove child. This also removes the children of the node.
525
465
  tree.removeChild(tree.children[0]);
526
466
  */
527
-
528
467
  }, {
529
468
  key: "removeChild",
530
469
  value: function removeChild(node) {
@@ -532,23 +471,23 @@ var jqtree = (function (exports) {
532
471
  node.removeChildren();
533
472
  this.doRemoveChild(node);
534
473
  }
474
+
535
475
  /*
536
476
  Get child index.
537
477
  var index = getChildIndex(node);
538
478
  */
539
-
540
479
  }, {
541
480
  key: "getChildIndex",
542
481
  value: function getChildIndex(node) {
543
482
  return this.children.indexOf(node);
544
483
  }
484
+
545
485
  /*
546
486
  Does the tree have children?
547
487
  if (tree.hasChildren()) {
548
488
  //
549
489
  }
550
490
  */
551
-
552
491
  }, {
553
492
  key: "hasChildren",
554
493
  value: function hasChildren() {
@@ -559,6 +498,7 @@ var jqtree = (function (exports) {
559
498
  value: function isFolder() {
560
499
  return this.hasChildren() || this.load_on_demand;
561
500
  }
501
+
562
502
  /*
563
503
  Iterate over all the nodes in the tree.
564
504
  Calls callback with (node, level).
@@ -571,20 +511,17 @@ var jqtree = (function (exports) {
571
511
  }
572
512
  );
573
513
  */
574
-
575
514
  }, {
576
515
  key: "iterate",
577
516
  value: function iterate(callback) {
578
517
  var _iterate = function _iterate(node, level) {
579
518
  if (node.children) {
580
519
  var _iterator2 = _createForOfIteratorHelper(node.children),
581
- _step2;
582
-
520
+ _step2;
583
521
  try {
584
522
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
585
523
  var child = _step2.value;
586
524
  var result = callback(child, level);
587
-
588
525
  if (result && child.hasChildren()) {
589
526
  _iterate(child, level + 1);
590
527
  }
@@ -596,16 +533,15 @@ var jqtree = (function (exports) {
596
533
  }
597
534
  }
598
535
  };
599
-
600
536
  _iterate(this, 0);
601
537
  }
538
+
602
539
  /*
603
540
  Move node relative to another node.
604
541
  Argument position: Position.BEFORE, Position.AFTER or Position.Inside
605
542
  // move node1 after node2
606
543
  tree.moveNode(node1, node2, Position.AFTER);
607
544
  */
608
-
609
545
  }, {
610
546
  key: "moveNode",
611
547
  value: function moveNode(movedNode, targetNode, position) {
@@ -615,7 +551,6 @@ var jqtree = (function (exports) {
615
551
  return false;
616
552
  } else {
617
553
  movedNode.parent.doRemoveChild(movedNode);
618
-
619
554
  switch (position) {
620
555
  case Position.After:
621
556
  {
@@ -623,60 +558,50 @@ var jqtree = (function (exports) {
623
558
  targetNode.parent.addChildAtPosition(movedNode, targetNode.parent.getChildIndex(targetNode) + 1);
624
559
  return true;
625
560
  }
626
-
627
561
  return false;
628
562
  }
629
-
630
563
  case Position.Before:
631
564
  {
632
565
  if (targetNode.parent) {
633
566
  targetNode.parent.addChildAtPosition(movedNode, targetNode.parent.getChildIndex(targetNode));
634
567
  return true;
635
568
  }
636
-
637
569
  return false;
638
570
  }
639
-
640
571
  case Position.Inside:
641
572
  {
642
573
  // move inside as first child
643
574
  targetNode.addChildAtPosition(movedNode, 0);
644
575
  return true;
645
576
  }
646
-
647
577
  default:
648
578
  return false;
649
579
  }
650
580
  }
651
581
  }
582
+
652
583
  /*
653
584
  Get the tree as data.
654
585
  */
655
-
656
586
  }, {
657
587
  key: "getData",
658
588
  value: function getData() {
659
589
  var includeParent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
660
-
661
590
  var getDataFromNodes = function getDataFromNodes(nodes) {
662
591
  return nodes.map(function (node) {
663
592
  var tmpNode = {};
664
-
665
593
  for (var k in node) {
666
594
  if (["parent", "children", "element", "idMapping", "load_on_demand", "nodeClass", "tree", "isEmptyFolder"].indexOf(k) === -1 && Object.prototype.hasOwnProperty.call(node, k)) {
667
595
  var v = node[k];
668
596
  tmpNode[k] = v;
669
597
  }
670
598
  }
671
-
672
599
  if (node.hasChildren()) {
673
600
  tmpNode["children"] = getDataFromNodes(node.children);
674
601
  }
675
-
676
602
  return tmpNode;
677
603
  });
678
604
  };
679
-
680
605
  if (includeParent) {
681
606
  return getDataFromNodes([this]);
682
607
  } else {
@@ -696,11 +621,9 @@ var jqtree = (function (exports) {
696
621
  var node = this.getNodeByCallback(function (n) {
697
622
  return n.name === name;
698
623
  });
699
-
700
624
  if (!node) {
701
625
  throw "Node with name ".concat(name, " not found");
702
626
  }
703
-
704
627
  return node;
705
628
  }
706
629
  }, {
@@ -726,14 +649,11 @@ var jqtree = (function (exports) {
726
649
  return null;
727
650
  } else {
728
651
  var _node2 = this.createNode(nodeInfo);
729
-
730
652
  var childIndex = this.parent.getChildIndex(this);
731
653
  this.parent.addChildAtPosition(_node2, childIndex + 1);
732
-
733
654
  if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {
734
655
  _node2.loadFromData(nodeInfo.children);
735
656
  }
736
-
737
657
  return _node2;
738
658
  }
739
659
  }
@@ -744,14 +664,11 @@ var jqtree = (function (exports) {
744
664
  return null;
745
665
  } else {
746
666
  var _node3 = this.createNode(nodeInfo);
747
-
748
667
  var childIndex = this.parent.getChildIndex(this);
749
668
  this.parent.addChildAtPosition(_node3, childIndex);
750
-
751
669
  if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {
752
670
  _node3.loadFromData(nodeInfo.children);
753
671
  }
754
-
755
672
  return _node3;
756
673
  }
757
674
  }
@@ -762,16 +679,12 @@ var jqtree = (function (exports) {
762
679
  return null;
763
680
  } else {
764
681
  var newParent = this.createNode(nodeInfo);
765
-
766
682
  if (this.tree) {
767
683
  newParent.setParent(this.tree);
768
684
  }
769
-
770
685
  var originalParent = this.parent;
771
-
772
686
  var _iterator3 = _createForOfIteratorHelper(originalParent.children),
773
- _step3;
774
-
687
+ _step3;
775
688
  try {
776
689
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
777
690
  var child = _step3.value;
@@ -782,7 +695,6 @@ var jqtree = (function (exports) {
782
695
  } finally {
783
696
  _iterator3.f();
784
697
  }
785
-
786
698
  originalParent.children = [];
787
699
  originalParent.addChild(newParent);
788
700
  return newParent;
@@ -801,11 +713,9 @@ var jqtree = (function (exports) {
801
713
  value: function append(nodeInfo) {
802
714
  var node = this.createNode(nodeInfo);
803
715
  this.addChild(node);
804
-
805
716
  if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {
806
717
  node.loadFromData(nodeInfo.children);
807
718
  }
808
-
809
719
  return node;
810
720
  }
811
721
  }, {
@@ -813,26 +723,21 @@ var jqtree = (function (exports) {
813
723
  value: function prepend(nodeInfo) {
814
724
  var node = this.createNode(nodeInfo);
815
725
  this.addChildAtPosition(node, 0);
816
-
817
726
  if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {
818
727
  node.loadFromData(nodeInfo.children);
819
728
  }
820
-
821
729
  return node;
822
730
  }
823
731
  }, {
824
732
  key: "isParentOf",
825
733
  value: function isParentOf(node) {
826
734
  var parent = node.parent;
827
-
828
735
  while (parent) {
829
736
  if (parent === this) {
830
737
  return true;
831
738
  }
832
-
833
739
  parent = parent.parent;
834
740
  }
835
-
836
741
  return false;
837
742
  }
838
743
  }, {
@@ -845,7 +750,6 @@ var jqtree = (function (exports) {
845
750
  level += 1;
846
751
  node = node.parent;
847
752
  }
848
-
849
753
  return level;
850
754
  }
851
755
  }, {
@@ -871,10 +775,8 @@ var jqtree = (function (exports) {
871
775
  key: "removeChildren",
872
776
  value: function removeChildren() {
873
777
  var _this = this;
874
-
875
778
  this.iterate(function (child) {
876
779
  var _this$tree;
877
-
878
780
  (_this$tree = _this.tree) === null || _this$tree === void 0 ? void 0 : _this$tree.removeNodeFromIndex(child);
879
781
  return true;
880
782
  });
@@ -887,7 +789,6 @@ var jqtree = (function (exports) {
887
789
  return null;
888
790
  } else {
889
791
  var previousIndex = this.parent.getChildIndex(this) - 1;
890
-
891
792
  if (previousIndex >= 0) {
892
793
  return this.parent.children[previousIndex];
893
794
  } else {
@@ -902,7 +803,6 @@ var jqtree = (function (exports) {
902
803
  return null;
903
804
  } else {
904
805
  var nextIndex = this.parent.getChildIndex(this) + 1;
905
-
906
806
  if (nextIndex < this.parent.children.length) {
907
807
  return this.parent.children[nextIndex];
908
808
  } else {
@@ -925,7 +825,6 @@ var jqtree = (function (exports) {
925
825
  if (f(node)) {
926
826
  result.push(node);
927
827
  }
928
-
929
828
  return true;
930
829
  });
931
830
  return result;
@@ -934,8 +833,23 @@ var jqtree = (function (exports) {
934
833
  key: "getNextNode",
935
834
  value: function getNextNode() {
936
835
  var includeChildren = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
937
-
938
- if (includeChildren && this.hasChildren() && this.is_open) {
836
+ if (includeChildren && this.hasChildren()) {
837
+ return this.children[0];
838
+ } else if (!this.parent) {
839
+ return null;
840
+ } else {
841
+ var nextSibling = this.getNextSibling();
842
+ if (nextSibling) {
843
+ return nextSibling;
844
+ } else {
845
+ return this.parent.getNextNode(false);
846
+ }
847
+ }
848
+ }
849
+ }, {
850
+ key: "getNextVisibleNode",
851
+ value: function getNextVisibleNode() {
852
+ if (this.hasChildren() && this.is_open) {
939
853
  // First child
940
854
  return this.children[0];
941
855
  } else {
@@ -943,7 +857,6 @@ var jqtree = (function (exports) {
943
857
  return null;
944
858
  } else {
945
859
  var nextSibling = this.getNextSibling();
946
-
947
860
  if (nextSibling) {
948
861
  // Next sibling
949
862
  return nextSibling;
@@ -961,17 +874,30 @@ var jqtree = (function (exports) {
961
874
  return null;
962
875
  } else {
963
876
  var previousSibling = this.getPreviousSibling();
964
-
965
- if (previousSibling) {
966
- if (!previousSibling.hasChildren() || !previousSibling.is_open) {
967
- // Previous sibling
968
- return previousSibling;
969
- } else {
970
- // Last child of previous sibling
971
- return previousSibling.getLastChild();
972
- }
877
+ if (!previousSibling) {
878
+ return this.getParent();
879
+ } else if (previousSibling.hasChildren()) {
880
+ return previousSibling.getLastChild();
973
881
  } else {
882
+ return previousSibling;
883
+ }
884
+ }
885
+ }
886
+ }, {
887
+ key: "getPreviousVisibleNode",
888
+ value: function getPreviousVisibleNode() {
889
+ if (!this.parent) {
890
+ return null;
891
+ } else {
892
+ var previousSibling = this.getPreviousSibling();
893
+ if (!previousSibling) {
974
894
  return this.getParent();
895
+ } else if (!previousSibling.hasChildren() || !previousSibling.is_open) {
896
+ // Previous sibling
897
+ return previousSibling;
898
+ } else {
899
+ // Last child of previous sibling
900
+ return previousSibling.getLastChild();
975
901
  }
976
902
  }
977
903
  }
@@ -995,40 +921,33 @@ var jqtree = (function (exports) {
995
921
  return null;
996
922
  } else {
997
923
  var lastChild = this.children[this.children.length - 1];
998
-
999
924
  if (!(lastChild.hasChildren() && lastChild.is_open)) {
1000
925
  return lastChild;
1001
926
  } else {
1002
927
  return lastChild.getLastChild();
1003
928
  }
1004
929
  }
1005
- } // Init Node from data without making it the root of the tree
930
+ }
1006
931
 
932
+ // Init Node from data without making it the root of the tree
1007
933
  }, {
1008
934
  key: "initFromData",
1009
935
  value: function initFromData(data) {
1010
936
  var _this2 = this;
1011
-
1012
937
  var addNode = function addNode(nodeData) {
1013
938
  _this2.setData(nodeData);
1014
-
1015
939
  if (isNodeRecordWithChildren(nodeData) && nodeData.children.length) {
1016
940
  addChildren(nodeData.children);
1017
941
  }
1018
942
  };
1019
-
1020
943
  var addChildren = function addChildren(childrenData) {
1021
944
  var _iterator4 = _createForOfIteratorHelper(childrenData),
1022
- _step4;
1023
-
945
+ _step4;
1024
946
  try {
1025
947
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
1026
948
  var child = _step4.value;
1027
-
1028
949
  var _node4 = _this2.createNode();
1029
-
1030
950
  _node4.initFromData(child);
1031
-
1032
951
  _this2.addChild(_node4);
1033
952
  }
1034
953
  } catch (err) {
@@ -1037,14 +956,12 @@ var jqtree = (function (exports) {
1037
956
  _iterator4.f();
1038
957
  }
1039
958
  };
1040
-
1041
959
  addNode(data);
1042
960
  }
1043
961
  }, {
1044
962
  key: "setParent",
1045
963
  value: function setParent(parent) {
1046
964
  var _this$tree2;
1047
-
1048
965
  this.parent = parent;
1049
966
  this.tree = parent.tree;
1050
967
  (_this$tree2 = this.tree) === null || _this$tree2 === void 0 ? void 0 : _this$tree2.addNodeToIndex(this);
@@ -1053,7 +970,6 @@ var jqtree = (function (exports) {
1053
970
  key: "doRemoveChild",
1054
971
  value: function doRemoveChild(node) {
1055
972
  var _this$tree3;
1056
-
1057
973
  this.children.splice(this.getChildIndex(node), 1);
1058
974
  (_this$tree3 = this.tree) === null || _this$tree3 === void 0 ? void 0 : _this$tree3.removeNodeFromIndex(node);
1059
975
  }
@@ -1061,7 +977,6 @@ var jqtree = (function (exports) {
1061
977
  key: "getNodeClass",
1062
978
  value: function getNodeClass() {
1063
979
  var _this$tree4;
1064
-
1065
980
  return this.nodeClass || (this === null || this === void 0 ? void 0 : (_this$tree4 = this.tree) === null || _this$tree4 === void 0 ? void 0 : _this$tree4.nodeClass) || Node;
1066
981
  }
1067
982
  }, {
@@ -1071,32 +986,21 @@ var jqtree = (function (exports) {
1071
986
  return new nodeClass(nodeData);
1072
987
  }
1073
988
  }]);
1074
-
1075
989
  return Node;
1076
990
  }();
1077
991
 
1078
992
  var DragAndDropHandler = /*#__PURE__*/function () {
1079
993
  function DragAndDropHandler(treeWidget) {
1080
994
  _classCallCheck(this, DragAndDropHandler);
1081
-
1082
995
  _defineProperty(this, "hitAreas", void 0);
1083
-
1084
996
  _defineProperty(this, "isDragging", void 0);
1085
-
1086
997
  _defineProperty(this, "currentItem", void 0);
1087
-
1088
998
  _defineProperty(this, "hoveredArea", void 0);
1089
-
1090
999
  _defineProperty(this, "positionInfo", void 0);
1091
-
1092
1000
  _defineProperty(this, "treeWidget", void 0);
1093
-
1094
1001
  _defineProperty(this, "dragElement", void 0);
1095
-
1096
1002
  _defineProperty(this, "previousGhost", void 0);
1097
-
1098
1003
  _defineProperty(this, "openFolderTimer", void 0);
1099
-
1100
1004
  this.treeWidget = treeWidget;
1101
1005
  this.hoveredArea = null;
1102
1006
  this.hitAreas = [];
@@ -1104,28 +1008,22 @@ var jqtree = (function (exports) {
1104
1008
  this.currentItem = null;
1105
1009
  this.positionInfo = null;
1106
1010
  }
1107
-
1108
1011
  _createClass(DragAndDropHandler, [{
1109
1012
  key: "mouseCapture",
1110
1013
  value: function mouseCapture(positionInfo) {
1111
1014
  var $element = jQuery(positionInfo.target);
1112
-
1113
1015
  if (!this.mustCaptureElement($element)) {
1114
1016
  return null;
1115
1017
  }
1116
-
1117
1018
  if (this.treeWidget.options.onIsMoveHandle && !this.treeWidget.options.onIsMoveHandle($element)) {
1118
1019
  return null;
1119
1020
  }
1120
-
1121
1021
  var nodeElement = this.treeWidget._getNodeElement($element);
1122
-
1123
1022
  if (nodeElement && this.treeWidget.options.onCanMove) {
1124
1023
  if (!this.treeWidget.options.onCanMove(nodeElement.node)) {
1125
1024
  nodeElement = null;
1126
1025
  }
1127
1026
  }
1128
-
1129
1027
  this.currentItem = nodeElement;
1130
1028
  return this.currentItem != null;
1131
1029
  }
@@ -1133,11 +1031,9 @@ var jqtree = (function (exports) {
1133
1031
  key: "mouseStart",
1134
1032
  value: function mouseStart(positionInfo) {
1135
1033
  var _this$treeWidget$opti;
1136
-
1137
1034
  if (!this.currentItem || positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
1138
1035
  return false;
1139
1036
  }
1140
-
1141
1037
  this.refresh();
1142
1038
  var offset = jQuery(positionInfo.target).offset();
1143
1039
  var left = offset ? offset.left : 0;
@@ -1155,25 +1051,22 @@ var jqtree = (function (exports) {
1155
1051
  if (!this.currentItem || !this.dragElement || positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
1156
1052
  return false;
1157
1053
  }
1158
-
1159
1054
  this.dragElement.move(positionInfo.pageX, positionInfo.pageY);
1160
1055
  this.positionInfo = positionInfo;
1161
1056
  var area = this.findHoveredArea(positionInfo.pageX, positionInfo.pageY);
1162
-
1163
1057
  if (area && this.canMoveToArea(area)) {
1164
1058
  if (!area.node.isFolder()) {
1165
1059
  this.stopOpenFolderTimer();
1166
1060
  }
1167
-
1168
1061
  if (this.hoveredArea !== area) {
1169
- this.hoveredArea = area; // If this is a closed folder, start timer to open it
1062
+ this.hoveredArea = area;
1170
1063
 
1064
+ // If this is a closed folder, start timer to open it
1171
1065
  if (this.mustOpenFolderTimer(area)) {
1172
1066
  this.startOpenFolderTimer(area.node);
1173
1067
  } else {
1174
1068
  this.stopOpenFolderTimer();
1175
1069
  }
1176
-
1177
1070
  this.updateDropHint();
1178
1071
  }
1179
1072
  } else {
@@ -1181,13 +1074,11 @@ var jqtree = (function (exports) {
1181
1074
  this.stopOpenFolderTimer();
1182
1075
  this.hoveredArea = area;
1183
1076
  }
1184
-
1185
1077
  if (!area) {
1186
1078
  if (this.treeWidget.options.onDragMove) {
1187
1079
  this.treeWidget.options.onDragMove(this.currentItem.node, positionInfo.originalEvent);
1188
1080
  }
1189
1081
  }
1190
-
1191
1082
  return true;
1192
1083
  }
1193
1084
  }, {
@@ -1199,32 +1090,26 @@ var jqtree = (function (exports) {
1199
1090
  this.removeDropHint();
1200
1091
  this.removeHitAreas();
1201
1092
  var currentItem = this.currentItem;
1202
-
1203
1093
  if (this.currentItem) {
1204
1094
  this.currentItem.$element.removeClass("jqtree-moving");
1205
1095
  this.currentItem = null;
1206
1096
  }
1207
-
1208
1097
  this.isDragging = false;
1209
1098
  this.positionInfo = null;
1210
-
1211
1099
  if (!this.hoveredArea && currentItem) {
1212
1100
  if (this.treeWidget.options.onDragStop) {
1213
1101
  this.treeWidget.options.onDragStop(currentItem.node, positionInfo.originalEvent);
1214
1102
  }
1215
1103
  }
1216
-
1217
1104
  return false;
1218
1105
  }
1219
1106
  }, {
1220
1107
  key: "refresh",
1221
1108
  value: function refresh() {
1222
1109
  this.removeHitAreas();
1223
-
1224
1110
  if (this.currentItem) {
1225
1111
  this.generateHitAreas();
1226
1112
  this.currentItem = this.treeWidget._getNodeElementForNode(this.currentItem.node);
1227
-
1228
1113
  if (this.isDragging) {
1229
1114
  this.currentItem.$element.addClass("jqtree-moving");
1230
1115
  }
@@ -1251,11 +1136,9 @@ var jqtree = (function (exports) {
1251
1136
  if (!this.treeWidget.options.onCanMoveTo) {
1252
1137
  return true;
1253
1138
  }
1254
-
1255
1139
  if (!this.currentItem) {
1256
1140
  return false;
1257
1141
  }
1258
-
1259
1142
  var positionName = getPositionName(area.position);
1260
1143
  return this.treeWidget.options.onCanMoveTo(this.currentItem.node, area.node, positionName);
1261
1144
  }
@@ -1288,18 +1171,14 @@ var jqtree = (function (exports) {
1288
1171
  key: "findHoveredArea",
1289
1172
  value: function findHoveredArea(x, y) {
1290
1173
  var dimensions = this.getTreeDimensions();
1291
-
1292
1174
  if (x < dimensions.left || y < dimensions.top || x > dimensions.right || y > dimensions.bottom) {
1293
1175
  return null;
1294
1176
  }
1295
-
1296
1177
  var low = 0;
1297
1178
  var high = this.hitAreas.length;
1298
-
1299
1179
  while (low < high) {
1300
1180
  var mid = low + high >> 1;
1301
1181
  var area = this.hitAreas[mid];
1302
-
1303
1182
  if (y < area.top) {
1304
1183
  high = mid;
1305
1184
  } else if (y > area.bottom) {
@@ -1308,7 +1187,6 @@ var jqtree = (function (exports) {
1308
1187
  return area;
1309
1188
  }
1310
1189
  }
1311
-
1312
1190
  return null;
1313
1191
  }
1314
1192
  }, {
@@ -1322,31 +1200,27 @@ var jqtree = (function (exports) {
1322
1200
  value: function updateDropHint() {
1323
1201
  if (!this.hoveredArea) {
1324
1202
  return;
1325
- } // remove previous drop hint
1326
-
1203
+ }
1327
1204
 
1328
- this.removeDropHint(); // add new drop hint
1205
+ // remove previous drop hint
1206
+ this.removeDropHint();
1329
1207
 
1208
+ // add new drop hint
1330
1209
  var nodeElement = this.treeWidget._getNodeElementForNode(this.hoveredArea.node);
1331
-
1332
1210
  this.previousGhost = nodeElement.addDropHint(this.hoveredArea.position);
1333
1211
  }
1334
1212
  }, {
1335
1213
  key: "startOpenFolderTimer",
1336
1214
  value: function startOpenFolderTimer(folder) {
1337
1215
  var _this = this;
1338
-
1339
1216
  var openFolder = function openFolder() {
1340
1217
  _this.treeWidget._openNode(folder, _this.treeWidget.options.slide, function () {
1341
1218
  _this.refresh();
1342
-
1343
1219
  _this.updateDropHint();
1344
1220
  });
1345
1221
  };
1346
-
1347
1222
  this.stopOpenFolderTimer();
1348
1223
  var openFolderDelay = this.treeWidget.options.openFolderDelay;
1349
-
1350
1224
  if (openFolderDelay !== false) {
1351
1225
  this.openFolderTimer = window.setTimeout(openFolder, openFolderDelay);
1352
1226
  }
@@ -1363,25 +1237,19 @@ var jqtree = (function (exports) {
1363
1237
  key: "moveItem",
1364
1238
  value: function moveItem(positionInfo) {
1365
1239
  var _this2 = this;
1366
-
1367
1240
  if (this.currentItem && this.hoveredArea && this.hoveredArea.position !== Position.None && this.canMoveToArea(this.hoveredArea)) {
1368
1241
  var movedNode = this.currentItem.node;
1369
1242
  var targetNode = this.hoveredArea.node;
1370
1243
  var position = this.hoveredArea.position;
1371
1244
  var previousParent = movedNode.parent;
1372
-
1373
1245
  if (position === Position.Inside) {
1374
1246
  this.hoveredArea.node.is_open = true;
1375
1247
  }
1376
-
1377
1248
  var doMove = function doMove() {
1378
1249
  _this2.treeWidget.tree.moveNode(movedNode, targetNode, position);
1379
-
1380
1250
  _this2.treeWidget.element.empty();
1381
-
1382
1251
  _this2.treeWidget._refreshElements(null);
1383
1252
  };
1384
-
1385
1253
  var event = this.treeWidget._triggerEvent("tree.move", {
1386
1254
  move_info: {
1387
1255
  moved_node: movedNode,
@@ -1392,7 +1260,6 @@ var jqtree = (function (exports) {
1392
1260
  original_event: positionInfo.originalEvent
1393
1261
  }
1394
1262
  });
1395
-
1396
1263
  if (!event.isDefaultPrevented()) {
1397
1264
  doMove();
1398
1265
  }
@@ -1404,7 +1271,6 @@ var jqtree = (function (exports) {
1404
1271
  // Return the dimensions of the tree. Add a margin to the bottom to allow
1405
1272
  // to drag-and-drop after the last element.
1406
1273
  var offset = this.treeWidget.element.offset();
1407
-
1408
1274
  if (!offset) {
1409
1275
  return {
1410
1276
  left: 0,
@@ -1416,9 +1282,7 @@ var jqtree = (function (exports) {
1416
1282
  var el = this.treeWidget.element;
1417
1283
  var width = el.width() || 0;
1418
1284
  var height = el.height() || 0;
1419
-
1420
1285
  var left = offset.left + this.treeWidget._getScrollLeft();
1421
-
1422
1286
  return {
1423
1287
  left: left,
1424
1288
  top: offset.top,
@@ -1428,43 +1292,31 @@ var jqtree = (function (exports) {
1428
1292
  }
1429
1293
  }
1430
1294
  }]);
1431
-
1432
1295
  return DragAndDropHandler;
1433
1296
  }();
1434
-
1435
1297
  var VisibleNodeIterator = /*#__PURE__*/function () {
1436
1298
  function VisibleNodeIterator(tree) {
1437
1299
  _classCallCheck(this, VisibleNodeIterator);
1438
-
1439
1300
  _defineProperty(this, "tree", void 0);
1440
-
1441
1301
  this.tree = tree;
1442
1302
  }
1443
-
1444
1303
  _createClass(VisibleNodeIterator, [{
1445
1304
  key: "iterate",
1446
1305
  value: function iterate() {
1447
1306
  var _this3 = this;
1448
-
1449
1307
  var isFirstNode = true;
1450
-
1451
1308
  var _iterateNode = function _iterateNode(node, nextNode) {
1452
1309
  var mustIterateInside = (node.is_open || !node.element) && node.hasChildren();
1453
1310
  var $element = null;
1454
-
1455
1311
  if (node.element) {
1456
1312
  $element = jQuery(node.element);
1457
-
1458
1313
  if (!$element.is(":visible")) {
1459
1314
  return;
1460
1315
  }
1461
-
1462
1316
  if (isFirstNode) {
1463
1317
  _this3.handleFirstNode(node);
1464
-
1465
1318
  isFirstNode = false;
1466
1319
  }
1467
-
1468
1320
  if (!node.hasChildren()) {
1469
1321
  _this3.handleNode(node, nextNode, $element);
1470
1322
  } else if (node.is_open) {
@@ -1475,7 +1327,6 @@ var jqtree = (function (exports) {
1475
1327
  _this3.handleClosedFolder(node, nextNode, $element);
1476
1328
  }
1477
1329
  }
1478
-
1479
1330
  if (mustIterateInside) {
1480
1331
  var childrenLength = node.children.length;
1481
1332
  node.children.forEach(function (_, i) {
@@ -1485,45 +1336,31 @@ var jqtree = (function (exports) {
1485
1336
  _iterateNode(node.children[i], node.children[i + 1]);
1486
1337
  }
1487
1338
  });
1488
-
1489
1339
  if (node.is_open && $element) {
1490
1340
  _this3.handleAfterOpenFolder(node, nextNode);
1491
1341
  }
1492
1342
  }
1493
1343
  };
1494
-
1495
1344
  _iterateNode(this.tree, null);
1496
1345
  }
1497
1346
  }]);
1498
-
1499
1347
  return VisibleNodeIterator;
1500
1348
  }();
1501
-
1502
1349
  var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
1503
1350
  _inherits(HitAreasGenerator, _VisibleNodeIterator);
1504
-
1505
1351
  var _super = _createSuper(HitAreasGenerator);
1506
-
1507
1352
  function HitAreasGenerator(tree, currentNode, treeBottom) {
1508
1353
  var _this4;
1509
-
1510
1354
  _classCallCheck(this, HitAreasGenerator);
1511
-
1512
1355
  _this4 = _super.call(this, tree);
1513
-
1514
1356
  _defineProperty(_assertThisInitialized(_this4), "currentNode", void 0);
1515
-
1516
1357
  _defineProperty(_assertThisInitialized(_this4), "treeBottom", void 0);
1517
-
1518
1358
  _defineProperty(_assertThisInitialized(_this4), "positions", void 0);
1519
-
1520
1359
  _defineProperty(_assertThisInitialized(_this4), "lastTop", void 0);
1521
-
1522
1360
  _this4.currentNode = currentNode;
1523
1361
  _this4.treeBottom = treeBottom;
1524
1362
  return _this4;
1525
1363
  }
1526
-
1527
1364
  _createClass(HitAreasGenerator, [{
1528
1365
  key: "generate",
1529
1366
  value: function generate() {
@@ -1538,23 +1375,18 @@ var jqtree = (function (exports) {
1538
1375
  var previousTop = -1;
1539
1376
  var group = [];
1540
1377
  var hitAreas = [];
1541
-
1542
1378
  var _iterator = _createForOfIteratorHelper(positions),
1543
- _step;
1544
-
1379
+ _step;
1545
1380
  try {
1546
1381
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
1547
1382
  var position = _step.value;
1548
-
1549
1383
  if (position.top !== previousTop && group.length) {
1550
1384
  if (group.length) {
1551
1385
  this.generateHitAreasForGroup(hitAreas, group, previousTop, position.top);
1552
1386
  }
1553
-
1554
1387
  previousTop = position.top;
1555
1388
  group = [];
1556
1389
  }
1557
-
1558
1390
  group.push(position);
1559
1391
  }
1560
1392
  } catch (err) {
@@ -1562,7 +1394,6 @@ var jqtree = (function (exports) {
1562
1394
  } finally {
1563
1395
  _iterator.f();
1564
1396
  }
1565
-
1566
1397
  this.generateHitAreasForGroup(hitAreas, group, previousTop, this.treeBottom);
1567
1398
  return hitAreas;
1568
1399
  }
@@ -1573,27 +1404,27 @@ var jqtree = (function (exports) {
1573
1404
  // Cannot move inside current item
1574
1405
  // Stop iterating
1575
1406
  return false;
1576
- } // Cannot move before current item
1577
-
1407
+ }
1578
1408
 
1409
+ // Cannot move before current item
1579
1410
  if (node.children[0] !== this.currentNode) {
1580
1411
  this.addPosition(node, Position.Inside, this.getTop($element));
1581
- } // Continue iterating
1582
-
1412
+ }
1583
1413
 
1414
+ // Continue iterating
1584
1415
  return true;
1585
1416
  }
1586
1417
  }, {
1587
1418
  key: "handleClosedFolder",
1588
1419
  value: function handleClosedFolder(node, nextNode, $element) {
1589
1420
  var top = this.getTop($element);
1590
-
1591
1421
  if (node === this.currentNode) {
1592
1422
  // Cannot move after current item
1593
1423
  this.addPosition(node, Position.None, top);
1594
1424
  } else {
1595
- this.addPosition(node, Position.Inside, top); // Cannot move before current item
1425
+ this.addPosition(node, Position.Inside, top);
1596
1426
 
1427
+ // Cannot move before current item
1597
1428
  if (nextNode !== this.currentNode) {
1598
1429
  this.addPosition(node, Position.After, top);
1599
1430
  }
@@ -1620,14 +1451,12 @@ var jqtree = (function (exports) {
1620
1451
  key: "handleNode",
1621
1452
  value: function handleNode(node, nextNode, $element) {
1622
1453
  var top = this.getTop($element);
1623
-
1624
1454
  if (node === this.currentNode) {
1625
1455
  // Cannot move inside current item
1626
1456
  this.addPosition(node, Position.None, top);
1627
1457
  } else {
1628
1458
  this.addPosition(node, Position.Inside, top);
1629
1459
  }
1630
-
1631
1460
  if (nextNode === this.currentNode || node === this.currentNode) {
1632
1461
  // Cannot move before or after current item
1633
1462
  this.addPosition(node, Position.None, top);
@@ -1661,7 +1490,6 @@ var jqtree = (function (exports) {
1661
1490
  var areaHeight = Math.round((bottom - top) / positionCount);
1662
1491
  var areaTop = top;
1663
1492
  var i = 0;
1664
-
1665
1493
  while (i < positionCount) {
1666
1494
  var position = positionsInGroup[i];
1667
1495
  hitAreas.push({
@@ -1675,34 +1503,25 @@ var jqtree = (function (exports) {
1675
1503
  }
1676
1504
  }
1677
1505
  }]);
1678
-
1679
1506
  return HitAreasGenerator;
1680
1507
  }(VisibleNodeIterator);
1681
-
1682
1508
  var DragElement = /*#__PURE__*/function () {
1683
1509
  function DragElement(nodeName, offsetX, offsetY, $tree, autoEscape) {
1684
1510
  _classCallCheck(this, DragElement);
1685
-
1686
1511
  _defineProperty(this, "offsetX", void 0);
1687
-
1688
1512
  _defineProperty(this, "offsetY", void 0);
1689
-
1690
1513
  _defineProperty(this, "$element", void 0);
1691
-
1692
1514
  this.offsetX = offsetX;
1693
1515
  this.offsetY = offsetY;
1694
1516
  this.$element = jQuery("<span>").addClass("jqtree-title jqtree-dragging");
1695
-
1696
1517
  if (autoEscape) {
1697
1518
  this.$element.text(nodeName);
1698
1519
  } else {
1699
1520
  this.$element.html(nodeName);
1700
1521
  }
1701
-
1702
1522
  this.$element.css("position", "absolute");
1703
1523
  $tree.append(this.$element);
1704
1524
  }
1705
-
1706
1525
  _createClass(DragElement, [{
1707
1526
  key: "move",
1708
1527
  value: function move(pageX, pageY) {
@@ -1717,7 +1536,6 @@ var jqtree = (function (exports) {
1717
1536
  this.$element.remove();
1718
1537
  }
1719
1538
  }]);
1720
-
1721
1539
  return DragElement;
1722
1540
  }();
1723
1541
 
@@ -1734,18 +1552,13 @@ var jqtree = (function (exports) {
1734
1552
  var ElementsRenderer = /*#__PURE__*/function () {
1735
1553
  function ElementsRenderer(treeWidget) {
1736
1554
  _classCallCheck(this, ElementsRenderer);
1737
-
1738
1555
  _defineProperty(this, "openedIconElement", void 0);
1739
-
1740
1556
  _defineProperty(this, "closedIconElement", void 0);
1741
-
1742
1557
  _defineProperty(this, "treeWidget", void 0);
1743
-
1744
1558
  this.treeWidget = treeWidget;
1745
1559
  this.openedIconElement = this.createButtonElement(treeWidget.options.openedIcon || "+");
1746
1560
  this.closedIconElement = this.createButtonElement(treeWidget.options.closedIcon || "-");
1747
1561
  }
1748
-
1749
1562
  _createClass(ElementsRenderer, [{
1750
1563
  key: "render",
1751
1564
  value: function render(fromNode) {
@@ -1766,15 +1579,19 @@ var jqtree = (function (exports) {
1766
1579
  key: "renderFromNode",
1767
1580
  value: function renderFromNode(node) {
1768
1581
  // remember current li
1769
- var $previousLi = jQuery(node.element); // create element
1582
+ var $previousLi = jQuery(node.element);
1770
1583
 
1584
+ // create element
1771
1585
  var li = this.createLi(node, node.getLevel());
1772
- this.attachNodeData(node, li); // add element to dom
1586
+ this.attachNodeData(node, li);
1773
1587
 
1774
- $previousLi.after(li); // remove previous li
1588
+ // add element to dom
1589
+ $previousLi.after(li);
1775
1590
 
1776
- $previousLi.remove(); // create children
1591
+ // remove previous li
1592
+ $previousLi.remove();
1777
1593
 
1594
+ // create children
1778
1595
  if (node.children) {
1779
1596
  this.createDomElements(li, node.children, false, node.getLevel() + 1);
1780
1597
  }
@@ -1784,17 +1601,14 @@ var jqtree = (function (exports) {
1784
1601
  value: function createDomElements(element, children, isRootNode, level) {
1785
1602
  var ul = this.createUl(isRootNode);
1786
1603
  element.appendChild(ul);
1787
-
1788
1604
  var _iterator = _createForOfIteratorHelper(children),
1789
- _step;
1790
-
1605
+ _step;
1791
1606
  try {
1792
1607
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
1793
1608
  var child = _step.value;
1794
1609
  var li = this.createLi(child, level);
1795
1610
  ul.appendChild(li);
1796
1611
  this.attachNodeData(child, li);
1797
-
1798
1612
  if (child.hasChildren()) {
1799
1613
  this.createDomElements(li, child.children, false, level + 1);
1800
1614
  }
@@ -1816,23 +1630,19 @@ var jqtree = (function (exports) {
1816
1630
  value: function createUl(isRootNode) {
1817
1631
  var classString;
1818
1632
  var role;
1819
-
1820
1633
  if (!isRootNode) {
1821
1634
  classString = "";
1822
1635
  role = "group";
1823
1636
  } else {
1824
1637
  classString = "jqtree-tree";
1825
1638
  role = "tree";
1826
-
1827
1639
  if (this.treeWidget.options.rtl) {
1828
1640
  classString += " jqtree-rtl";
1829
1641
  }
1830
1642
  }
1831
-
1832
1643
  if (this.treeWidget.options.dragAndDrop) {
1833
1644
  classString += " jqtree-dnd";
1834
1645
  }
1835
-
1836
1646
  var ul = document.createElement("ul");
1837
1647
  ul.className = "jqtree_common ".concat(classString);
1838
1648
  ul.setAttribute("role", role);
@@ -1844,11 +1654,9 @@ var jqtree = (function (exports) {
1844
1654
  var isSelected = Boolean(this.treeWidget.selectNodeHandler.isNodeSelected(node));
1845
1655
  var mustShowFolder = node.isFolder() || node.isEmptyFolder && this.treeWidget.options.showEmptyFolder;
1846
1656
  var li = mustShowFolder ? this.createFolderLi(node, level, isSelected) : this.createNodeLi(node, level, isSelected);
1847
-
1848
1657
  if (this.treeWidget.options.onCreateLi) {
1849
1658
  this.treeWidget.options.onCreateLi(node, jQuery(li), isSelected);
1850
1659
  }
1851
-
1852
1660
  return li;
1853
1661
  }
1854
1662
  }, {
@@ -1856,56 +1664,57 @@ var jqtree = (function (exports) {
1856
1664
  value: function createFolderLi(node, level, isSelected) {
1857
1665
  var buttonClasses = this.getButtonClasses(node);
1858
1666
  var folderClasses = this.getFolderClasses(node, isSelected);
1859
- var iconElement = node.is_open ? this.openedIconElement : this.closedIconElement; // li
1667
+ var iconElement = node.is_open ? this.openedIconElement : this.closedIconElement;
1860
1668
 
1669
+ // li
1861
1670
  var li = document.createElement("li");
1862
1671
  li.className = "jqtree_common ".concat(folderClasses);
1863
- li.setAttribute("role", "presentation"); // div
1672
+ li.setAttribute("role", "presentation");
1864
1673
 
1674
+ // div
1865
1675
  var div = document.createElement("div");
1866
1676
  div.className = "jqtree-element jqtree_common";
1867
1677
  div.setAttribute("role", "presentation");
1868
- li.appendChild(div); // button link
1678
+ li.appendChild(div);
1869
1679
 
1680
+ // button link
1870
1681
  var buttonLink = document.createElement("a");
1871
1682
  buttonLink.className = buttonClasses;
1872
1683
  buttonLink.appendChild(iconElement.cloneNode(true));
1873
1684
  buttonLink.setAttribute("role", "presentation");
1874
1685
  buttonLink.setAttribute("aria-hidden", "true");
1875
-
1876
1686
  if (this.treeWidget.options.buttonLeft) {
1877
1687
  div.appendChild(buttonLink);
1878
- } // title span
1879
-
1688
+ }
1880
1689
 
1690
+ // title span
1881
1691
  div.appendChild(this.createTitleSpan(node.name, level, isSelected, node.is_open, true));
1882
-
1883
1692
  if (!this.treeWidget.options.buttonLeft) {
1884
1693
  div.appendChild(buttonLink);
1885
1694
  }
1886
-
1887
1695
  return li;
1888
1696
  }
1889
1697
  }, {
1890
1698
  key: "createNodeLi",
1891
1699
  value: function createNodeLi(node, level, isSelected) {
1892
1700
  var liClasses = ["jqtree_common"];
1893
-
1894
1701
  if (isSelected) {
1895
1702
  liClasses.push("jqtree-selected");
1896
1703
  }
1704
+ var classString = liClasses.join(" ");
1897
1705
 
1898
- var classString = liClasses.join(" "); // li
1899
-
1706
+ // li
1900
1707
  var li = document.createElement("li");
1901
1708
  li.className = classString;
1902
- li.setAttribute("role", "presentation"); // div
1709
+ li.setAttribute("role", "presentation");
1903
1710
 
1711
+ // div
1904
1712
  var div = document.createElement("div");
1905
1713
  div.className = "jqtree-element jqtree_common";
1906
1714
  div.setAttribute("role", "presentation");
1907
- li.appendChild(div); // title span
1715
+ li.appendChild(div);
1908
1716
 
1717
+ // title span
1909
1718
  div.appendChild(this.createTitleSpan(node.name, level, isSelected, node.is_open, false));
1910
1719
  return li;
1911
1720
  }
@@ -1914,68 +1723,55 @@ var jqtree = (function (exports) {
1914
1723
  value: function createTitleSpan(nodeName, level, isSelected, isOpen, isFolder) {
1915
1724
  var titleSpan = document.createElement("span");
1916
1725
  var classes = "jqtree-title jqtree_common";
1917
-
1918
1726
  if (isFolder) {
1919
1727
  classes += " jqtree-title-folder";
1920
1728
  }
1921
-
1922
1729
  classes += " jqtree-title-button-".concat(this.treeWidget.options.buttonLeft ? "left" : "right");
1923
1730
  titleSpan.className = classes;
1924
1731
  titleSpan.setAttribute("role", "treeitem");
1925
1732
  titleSpan.setAttribute("aria-level", "".concat(level));
1926
1733
  titleSpan.setAttribute("aria-selected", getBoolString(isSelected));
1927
1734
  titleSpan.setAttribute("aria-expanded", getBoolString(isOpen));
1928
-
1929
1735
  if (isSelected) {
1930
1736
  var tabIndex = this.treeWidget.options.tabIndex;
1931
-
1932
1737
  if (tabIndex !== undefined) {
1933
1738
  titleSpan.setAttribute("tabindex", "".concat(tabIndex));
1934
1739
  }
1935
1740
  }
1936
-
1937
1741
  if (this.treeWidget.options.autoEscape) {
1938
1742
  titleSpan.textContent = nodeName;
1939
1743
  } else {
1940
1744
  titleSpan.innerHTML = nodeName;
1941
1745
  }
1942
-
1943
1746
  return titleSpan;
1944
1747
  }
1945
1748
  }, {
1946
1749
  key: "getButtonClasses",
1947
1750
  value: function getButtonClasses(node) {
1948
1751
  var classes = ["jqtree-toggler", "jqtree_common"];
1949
-
1950
1752
  if (!node.is_open) {
1951
1753
  classes.push("jqtree-closed");
1952
1754
  }
1953
-
1954
1755
  if (this.treeWidget.options.buttonLeft) {
1955
1756
  classes.push("jqtree-toggler-left");
1956
1757
  } else {
1957
1758
  classes.push("jqtree-toggler-right");
1958
1759
  }
1959
-
1960
1760
  return classes.join(" ");
1961
1761
  }
1962
1762
  }, {
1963
1763
  key: "getFolderClasses",
1964
1764
  value: function getFolderClasses(node, isSelected) {
1965
1765
  var classes = ["jqtree-folder"];
1966
-
1967
1766
  if (!node.is_open) {
1968
1767
  classes.push("jqtree-closed");
1969
1768
  }
1970
-
1971
1769
  if (isSelected) {
1972
1770
  classes.push("jqtree-selected");
1973
1771
  }
1974
-
1975
1772
  if (node.is_loading) {
1976
1773
  classes.push("jqtree-loading");
1977
1774
  }
1978
-
1979
1775
  return classes.join(" ");
1980
1776
  }
1981
1777
  }, {
@@ -1991,56 +1787,42 @@ var jqtree = (function (exports) {
1991
1787
  }
1992
1788
  }
1993
1789
  }]);
1994
-
1995
1790
  return ElementsRenderer;
1996
1791
  }();
1997
1792
 
1998
1793
  var DataLoader = /*#__PURE__*/function () {
1999
1794
  function DataLoader(treeWidget) {
2000
1795
  _classCallCheck(this, DataLoader);
2001
-
2002
1796
  _defineProperty(this, "treeWidget", void 0);
2003
-
2004
1797
  this.treeWidget = treeWidget;
2005
1798
  }
2006
-
2007
1799
  _createClass(DataLoader, [{
2008
1800
  key: "loadFromUrl",
2009
1801
  value: function loadFromUrl(urlInfo, parentNode, onFinished) {
2010
1802
  var _this = this;
2011
-
2012
1803
  if (!urlInfo) {
2013
1804
  return;
2014
1805
  }
2015
-
2016
1806
  var $el = this.getDomElement(parentNode);
2017
1807
  this.addLoadingClass($el);
2018
1808
  this.notifyLoading(true, parentNode, $el);
2019
-
2020
1809
  var stopLoading = function stopLoading() {
2021
1810
  _this.removeLoadingClass($el);
2022
-
2023
1811
  _this.notifyLoading(false, parentNode, $el);
2024
1812
  };
2025
-
2026
1813
  var handleSuccess = function handleSuccess(data) {
2027
1814
  stopLoading();
2028
-
2029
1815
  _this.treeWidget.loadData(_this.parseData(data), parentNode);
2030
-
2031
1816
  if (onFinished && typeof onFinished === "function") {
2032
1817
  onFinished();
2033
1818
  }
2034
1819
  };
2035
-
2036
1820
  var handleError = function handleError(jqXHR) {
2037
1821
  stopLoading();
2038
-
2039
1822
  if (_this.treeWidget.options.onLoadFailed) {
2040
1823
  _this.treeWidget.options.onLoadFailed(jqXHR);
2041
1824
  }
2042
1825
  };
2043
-
2044
1826
  this.submitRequest(urlInfo, handleSuccess, handleError);
2045
1827
  }
2046
1828
  }, {
@@ -2072,7 +1854,6 @@ var jqtree = (function (exports) {
2072
1854
  if (this.treeWidget.options.onLoading) {
2073
1855
  this.treeWidget.options.onLoading(isLoading, node, $el);
2074
1856
  }
2075
-
2076
1857
  this.treeWidget._triggerEvent("tree.loading_data", {
2077
1858
  isLoading: isLoading,
2078
1859
  node: node,
@@ -2083,11 +1864,9 @@ var jqtree = (function (exports) {
2083
1864
  key: "submitRequest",
2084
1865
  value: function submitRequest(urlInfoInput, handleSuccess, handleError) {
2085
1866
  var _ajaxSettings$method;
2086
-
2087
1867
  var urlInfo = typeof urlInfoInput === "string" ? {
2088
1868
  url: urlInfoInput
2089
1869
  } : urlInfoInput;
2090
-
2091
1870
  var ajaxSettings = _objectSpread2({
2092
1871
  method: "GET",
2093
1872
  cache: false,
@@ -2095,7 +1874,6 @@ var jqtree = (function (exports) {
2095
1874
  success: handleSuccess,
2096
1875
  error: handleError
2097
1876
  }, urlInfo);
2098
-
2099
1877
  ajaxSettings.method = ((_ajaxSettings$method = ajaxSettings.method) === null || _ajaxSettings$method === void 0 ? void 0 : _ajaxSettings$method.toUpperCase()) || "GET";
2100
1878
  void jQuery.ajax(ajaxSettings);
2101
1879
  }
@@ -2103,7 +1881,6 @@ var jqtree = (function (exports) {
2103
1881
  key: "parseData",
2104
1882
  value: function parseData(data) {
2105
1883
  var dataFilter = this.treeWidget.options.dataFilter;
2106
-
2107
1884
  var getParsedData = function getParsedData() {
2108
1885
  if (typeof data === "string") {
2109
1886
  return JSON.parse(data);
@@ -2111,9 +1888,7 @@ var jqtree = (function (exports) {
2111
1888
  return data;
2112
1889
  }
2113
1890
  };
2114
-
2115
1891
  var parsedData = getParsedData();
2116
-
2117
1892
  if (dataFilter) {
2118
1893
  return dataFilter(parsedData);
2119
1894
  } else {
@@ -2121,56 +1896,41 @@ var jqtree = (function (exports) {
2121
1896
  }
2122
1897
  }
2123
1898
  }]);
2124
-
2125
1899
  return DataLoader;
2126
1900
  }();
2127
1901
 
2128
1902
  var KeyHandler = /*#__PURE__*/function () {
2129
1903
  function KeyHandler(treeWidget) {
2130
1904
  var _this = this;
2131
-
2132
1905
  _classCallCheck(this, KeyHandler);
2133
-
2134
1906
  _defineProperty(this, "treeWidget", void 0);
2135
-
2136
1907
  _defineProperty(this, "handleKeyDown", function (e) {
2137
1908
  if (!_this.canHandleKeyboard()) {
2138
1909
  return true;
2139
1910
  }
2140
-
2141
1911
  var selectedNode = _this.treeWidget.getSelectedNode();
2142
-
2143
1912
  if (!selectedNode) {
2144
1913
  return true;
2145
1914
  }
2146
-
2147
1915
  var key = e.which;
2148
-
2149
1916
  switch (key) {
2150
1917
  case KeyHandler.DOWN:
2151
1918
  return _this.moveDown(selectedNode);
2152
-
2153
1919
  case KeyHandler.UP:
2154
1920
  return _this.moveUp(selectedNode);
2155
-
2156
1921
  case KeyHandler.RIGHT:
2157
1922
  return _this.moveRight(selectedNode);
2158
-
2159
1923
  case KeyHandler.LEFT:
2160
1924
  return _this.moveLeft(selectedNode);
2161
-
2162
1925
  default:
2163
1926
  return true;
2164
1927
  }
2165
1928
  });
2166
-
2167
1929
  this.treeWidget = treeWidget;
2168
-
2169
1930
  if (treeWidget.options.keyboardSupport) {
2170
1931
  jQuery(document).on("keydown.jqtree", this.handleKeyDown);
2171
1932
  }
2172
1933
  }
2173
-
2174
1934
  _createClass(KeyHandler, [{
2175
1935
  key: "deinit",
2176
1936
  value: function deinit() {
@@ -2179,12 +1939,12 @@ var jqtree = (function (exports) {
2179
1939
  }, {
2180
1940
  key: "moveDown",
2181
1941
  value: function moveDown(selectedNode) {
2182
- return this.selectNode(selectedNode.getNextNode());
1942
+ return this.selectNode(selectedNode.getNextVisibleNode());
2183
1943
  }
2184
1944
  }, {
2185
1945
  key: "moveUp",
2186
1946
  value: function moveUp(selectedNode) {
2187
- return this.selectNode(selectedNode.getPreviousNode());
1947
+ return this.selectNode(selectedNode.getPreviousVisibleNode());
2188
1948
  }
2189
1949
  }, {
2190
1950
  key: "moveRight",
@@ -2195,7 +1955,7 @@ var jqtree = (function (exports) {
2195
1955
  // folder node
2196
1956
  if (selectedNode.is_open) {
2197
1957
  // Right moves to the first child of an open node
2198
- return this.selectNode(selectedNode.getNextNode());
1958
+ return this.selectNode(selectedNode.getNextVisibleNode());
2199
1959
  } else {
2200
1960
  // Right expands a closed node
2201
1961
  this.treeWidget.openNode(selectedNode);
@@ -2222,11 +1982,9 @@ var jqtree = (function (exports) {
2222
1982
  return true;
2223
1983
  } else {
2224
1984
  this.treeWidget.selectNode(node);
2225
-
2226
1985
  if (!this.treeWidget.scrollHandler.isScrolledIntoView(jQuery(node.element).find(".jqtree-element"))) {
2227
1986
  this.treeWidget.scrollToNode(node);
2228
1987
  }
2229
-
2230
1988
  return false;
2231
1989
  }
2232
1990
  }
@@ -2236,53 +1994,41 @@ var jqtree = (function (exports) {
2236
1994
  return (this.treeWidget.options.keyboardSupport || false) && this.treeWidget.selectNodeHandler.isFocusOnTree();
2237
1995
  }
2238
1996
  }]);
2239
-
2240
1997
  return KeyHandler;
2241
1998
  }();
2242
-
2243
1999
  _defineProperty(KeyHandler, "LEFT", 37);
2244
-
2245
2000
  _defineProperty(KeyHandler, "UP", 38);
2246
-
2247
2001
  _defineProperty(KeyHandler, "RIGHT", 39);
2248
-
2249
2002
  _defineProperty(KeyHandler, "DOWN", 40);
2250
2003
 
2251
2004
  var _register = function register(widgetClass, widgetName) {
2252
2005
  var getDataKey = function getDataKey() {
2253
2006
  return "simple_widget_".concat(widgetName);
2254
2007
  };
2255
-
2256
2008
  var getWidgetData = function getWidgetData(el, dataKey) {
2257
2009
  var widget = jQuery.data(el, dataKey);
2258
-
2259
2010
  if (widget && widget instanceof SimpleWidget) {
2260
2011
  return widget;
2261
2012
  } else {
2262
2013
  return null;
2263
2014
  }
2264
2015
  };
2265
-
2266
2016
  var createWidget = function createWidget($el, options) {
2267
2017
  var dataKey = getDataKey();
2268
-
2269
2018
  var _iterator = _createForOfIteratorHelper($el.get()),
2270
- _step;
2271
-
2019
+ _step;
2272
2020
  try {
2273
2021
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2274
2022
  var el = _step.value;
2275
2023
  var existingWidget = getWidgetData(el, dataKey);
2276
-
2277
2024
  if (!existingWidget) {
2278
2025
  var simpleWidgetClass = widgetClass;
2279
2026
  var widget = new simpleWidgetClass(el, options);
2280
-
2281
2027
  if (!jQuery.data(el, dataKey)) {
2282
2028
  jQuery.data(el, dataKey, widget);
2283
- } // Call init after setting data, so we can call methods
2284
-
2029
+ }
2285
2030
 
2031
+ // Call init after setting data, so we can call methods
2286
2032
  widget.init();
2287
2033
  }
2288
2034
  }
@@ -2291,25 +2037,19 @@ var jqtree = (function (exports) {
2291
2037
  } finally {
2292
2038
  _iterator.f();
2293
2039
  }
2294
-
2295
2040
  return $el;
2296
2041
  };
2297
-
2298
2042
  var destroyWidget = function destroyWidget($el) {
2299
2043
  var dataKey = getDataKey();
2300
-
2301
2044
  var _iterator2 = _createForOfIteratorHelper($el.get()),
2302
- _step2;
2303
-
2045
+ _step2;
2304
2046
  try {
2305
2047
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
2306
2048
  var el = _step2.value;
2307
2049
  var widget = getWidgetData(el, dataKey);
2308
-
2309
2050
  if (widget) {
2310
2051
  widget.destroy();
2311
2052
  }
2312
-
2313
2053
  jQuery.removeData(el, dataKey);
2314
2054
  }
2315
2055
  } catch (err) {
@@ -2318,22 +2058,17 @@ var jqtree = (function (exports) {
2318
2058
  _iterator2.f();
2319
2059
  }
2320
2060
  };
2321
-
2322
2061
  var callFunction = function callFunction($el, functionName, args) {
2323
2062
  var result = null;
2324
-
2325
2063
  var _iterator3 = _createForOfIteratorHelper($el.get()),
2326
- _step3;
2327
-
2064
+ _step3;
2328
2065
  try {
2329
2066
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
2330
2067
  var el = _step3.value;
2331
2068
  var widget = jQuery.data(el, getDataKey());
2332
-
2333
2069
  if (widget && widget instanceof SimpleWidget) {
2334
2070
  var simpleWidget = widget;
2335
2071
  var widgetFunction = simpleWidget[functionName];
2336
-
2337
2072
  if (widgetFunction && typeof widgetFunction === "function") {
2338
2073
  result = widgetFunction.apply(widget, args);
2339
2074
  }
@@ -2344,11 +2079,10 @@ var jqtree = (function (exports) {
2344
2079
  } finally {
2345
2080
  _iterator3.f();
2346
2081
  }
2347
-
2348
2082
  return result;
2349
- }; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2350
-
2083
+ };
2351
2084
 
2085
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2352
2086
  jQuery.fn[widgetName] = function (argument1) {
2353
2087
  if (!argument1) {
2354
2088
  return createWidget(this, null);
@@ -2357,7 +2091,6 @@ var jqtree = (function (exports) {
2357
2091
  return createWidget(this, options);
2358
2092
  } else if (typeof argument1 === "string" && argument1[0] !== "_") {
2359
2093
  var functionName = argument1;
2360
-
2361
2094
  if (functionName === "destroy") {
2362
2095
  return destroyWidget(this);
2363
2096
  } else if (functionName === "get_widget_class") {
@@ -2366,27 +2099,22 @@ var jqtree = (function (exports) {
2366
2099
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2367
2100
  args[_key - 1] = arguments[_key];
2368
2101
  }
2369
-
2370
2102
  return callFunction(this, functionName, args);
2371
2103
  }
2372
2104
  }
2373
2105
  };
2374
2106
  };
2375
-
2376
2107
  var SimpleWidget = /*#__PURE__*/function () {
2377
2108
  function SimpleWidget(el, options) {
2378
2109
  _classCallCheck(this, SimpleWidget);
2379
-
2380
2110
  _defineProperty(this, "options", void 0);
2381
-
2382
2111
  _defineProperty(this, "$el", void 0);
2112
+ this.$el = jQuery(el);
2383
2113
 
2384
- this.$el = jQuery(el); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2385
-
2114
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2386
2115
  var defaults = this.constructor["defaults"];
2387
2116
  this.options = _objectSpread2(_objectSpread2({}, defaults), options);
2388
2117
  }
2389
-
2390
2118
  _createClass(SimpleWidget, [{
2391
2119
  key: "destroy",
2392
2120
  value: function destroy() {
@@ -2394,11 +2122,13 @@ var jqtree = (function (exports) {
2394
2122
  }
2395
2123
  }, {
2396
2124
  key: "init",
2397
- value: function init() {//
2125
+ value: function init() {
2126
+ //
2398
2127
  }
2399
2128
  }, {
2400
2129
  key: "deinit",
2401
- value: function deinit() {//
2130
+ value: function deinit() {
2131
+ //
2402
2132
  }
2403
2133
  }], [{
2404
2134
  key: "register",
@@ -2406,10 +2136,8 @@ var jqtree = (function (exports) {
2406
2136
  _register(widgetClass, widgetName);
2407
2137
  }
2408
2138
  }]);
2409
-
2410
2139
  return SimpleWidget;
2411
2140
  }();
2412
-
2413
2141
  _defineProperty(SimpleWidget, "defaults", {});
2414
2142
 
2415
2143
  var getPositionInfoFromMouseEvent = function getPositionInfoFromMouseEvent(e) {
@@ -2420,7 +2148,6 @@ var jqtree = (function (exports) {
2420
2148
  originalEvent: e
2421
2149
  };
2422
2150
  };
2423
-
2424
2151
  var getPositionInfoFromTouch = function getPositionInfoFromTouch(touch, e) {
2425
2152
  return {
2426
2153
  pageX: touch.pageX,
@@ -2429,102 +2156,72 @@ var jqtree = (function (exports) {
2429
2156
  originalEvent: e
2430
2157
  };
2431
2158
  };
2432
-
2433
2159
  var MouseWidget = /*#__PURE__*/function (_SimpleWidget) {
2434
2160
  _inherits(MouseWidget, _SimpleWidget);
2435
-
2436
2161
  var _super = _createSuper(MouseWidget);
2437
-
2438
2162
  function MouseWidget() {
2439
2163
  var _this;
2440
-
2441
2164
  _classCallCheck(this, MouseWidget);
2442
-
2443
2165
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
2444
2166
  args[_key] = arguments[_key];
2445
2167
  }
2446
-
2447
2168
  _this = _super.call.apply(_super, [this].concat(args));
2448
-
2449
2169
  _defineProperty(_assertThisInitialized(_this), "isMouseStarted", void 0);
2450
-
2451
2170
  _defineProperty(_assertThisInitialized(_this), "mouseDownInfo", void 0);
2452
-
2453
2171
  _defineProperty(_assertThisInitialized(_this), "mouseDelayTimer", void 0);
2454
-
2455
2172
  _defineProperty(_assertThisInitialized(_this), "isMouseDelayMet", void 0);
2456
-
2457
2173
  _defineProperty(_assertThisInitialized(_this), "mouseDown", function (e) {
2458
2174
  // Left mouse button?
2459
2175
  if (e.button !== 0) {
2460
2176
  return;
2461
2177
  }
2462
-
2463
2178
  var result = _this.handleMouseDown(getPositionInfoFromMouseEvent(e));
2464
-
2465
2179
  if (result && e.cancelable) {
2466
2180
  e.preventDefault();
2467
2181
  }
2468
2182
  });
2469
-
2470
2183
  _defineProperty(_assertThisInitialized(_this), "mouseMove", function (e) {
2471
2184
  _this.handleMouseMove(e, getPositionInfoFromMouseEvent(e));
2472
2185
  });
2473
-
2474
2186
  _defineProperty(_assertThisInitialized(_this), "mouseUp", function (e) {
2475
2187
  _this.handleMouseUp(getPositionInfoFromMouseEvent(e));
2476
2188
  });
2477
-
2478
2189
  _defineProperty(_assertThisInitialized(_this), "touchStart", function (e) {
2479
2190
  if (!e) {
2480
2191
  return;
2481
2192
  }
2482
-
2483
2193
  if (e.touches.length > 1) {
2484
2194
  return;
2485
2195
  }
2486
-
2487
2196
  var touch = e.changedTouches[0];
2488
-
2489
2197
  _this.handleMouseDown(getPositionInfoFromTouch(touch, e));
2490
2198
  });
2491
-
2492
2199
  _defineProperty(_assertThisInitialized(_this), "touchMove", function (e) {
2493
2200
  if (!e) {
2494
2201
  return;
2495
2202
  }
2496
-
2497
2203
  if (e.touches.length > 1) {
2498
2204
  return;
2499
2205
  }
2500
-
2501
2206
  var touch = e.changedTouches[0];
2502
-
2503
2207
  _this.handleMouseMove(e, getPositionInfoFromTouch(touch, e));
2504
2208
  });
2505
-
2506
2209
  _defineProperty(_assertThisInitialized(_this), "touchEnd", function (e) {
2507
2210
  if (!e) {
2508
2211
  return;
2509
2212
  }
2510
-
2511
2213
  if (e.touches.length > 1) {
2512
2214
  return;
2513
2215
  }
2514
-
2515
2216
  var touch = e.changedTouches[0];
2516
-
2517
2217
  _this.handleMouseUp(getPositionInfoFromTouch(touch, e));
2518
2218
  });
2519
-
2520
2219
  return _this;
2521
2220
  }
2522
-
2523
2221
  _createClass(MouseWidget, [{
2524
2222
  key: "init",
2525
2223
  value: function init() {
2526
2224
  var element = this.$el.get(0);
2527
-
2528
2225
  if (element) {
2529
2226
  element.addEventListener("mousedown", this.mouseDown, {
2530
2227
  passive: false
@@ -2533,7 +2230,6 @@ var jqtree = (function (exports) {
2533
2230
  passive: false
2534
2231
  });
2535
2232
  }
2536
-
2537
2233
  this.isMouseStarted = false;
2538
2234
  this.mouseDelayTimer = null;
2539
2235
  this.isMouseDelayMet = false;
@@ -2543,18 +2239,17 @@ var jqtree = (function (exports) {
2543
2239
  key: "deinit",
2544
2240
  value: function deinit() {
2545
2241
  var el = this.$el.get(0);
2546
-
2547
2242
  if (el) {
2548
2243
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2549
2244
  el.removeEventListener("mousedown", this.mouseDown, {
2550
2245
  passive: false
2551
- }); // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2246
+ });
2552
2247
 
2248
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2553
2249
  el.removeEventListener("touchstart", this.touchStart, {
2554
2250
  passive: false
2555
2251
  });
2556
2252
  }
2557
-
2558
2253
  this.removeMouseMoveEventListeners();
2559
2254
  }
2560
2255
  }, {
@@ -2564,13 +2259,10 @@ var jqtree = (function (exports) {
2564
2259
  if (this.isMouseStarted) {
2565
2260
  this.handleMouseUp(positionInfo);
2566
2261
  }
2567
-
2568
2262
  this.mouseDownInfo = positionInfo;
2569
-
2570
2263
  if (!this.mouseCapture(positionInfo)) {
2571
2264
  return false;
2572
2265
  }
2573
-
2574
2266
  this.handleStartMouse();
2575
2267
  return true;
2576
2268
  }
@@ -2590,7 +2282,6 @@ var jqtree = (function (exports) {
2590
2282
  passive: false
2591
2283
  });
2592
2284
  var mouseDelay = this.getMouseDelay();
2593
-
2594
2285
  if (mouseDelay) {
2595
2286
  this.startMouseDelayTimer(mouseDelay);
2596
2287
  } else {
@@ -2601,11 +2292,9 @@ var jqtree = (function (exports) {
2601
2292
  key: "startMouseDelayTimer",
2602
2293
  value: function startMouseDelayTimer(mouseDelay) {
2603
2294
  var _this2 = this;
2604
-
2605
2295
  if (this.mouseDelayTimer) {
2606
2296
  clearTimeout(this.mouseDelayTimer);
2607
2297
  }
2608
-
2609
2298
  this.mouseDelayTimer = window.setTimeout(function () {
2610
2299
  if (_this2.mouseDownInfo) {
2611
2300
  _this2.isMouseDelayMet = true;
@@ -2618,25 +2307,19 @@ var jqtree = (function (exports) {
2618
2307
  value: function handleMouseMove(e, positionInfo) {
2619
2308
  if (this.isMouseStarted) {
2620
2309
  this.mouseDrag(positionInfo);
2621
-
2622
2310
  if (e.cancelable) {
2623
2311
  e.preventDefault();
2624
2312
  }
2625
-
2626
2313
  return;
2627
2314
  }
2628
-
2629
2315
  if (!this.isMouseDelayMet) {
2630
2316
  return;
2631
2317
  }
2632
-
2633
2318
  if (this.mouseDownInfo) {
2634
2319
  this.isMouseStarted = this.mouseStart(this.mouseDownInfo) !== false;
2635
2320
  }
2636
-
2637
2321
  if (this.isMouseStarted) {
2638
2322
  this.mouseDrag(positionInfo);
2639
-
2640
2323
  if (e.cancelable) {
2641
2324
  e.preventDefault();
2642
2325
  }
@@ -2650,7 +2333,6 @@ var jqtree = (function (exports) {
2650
2333
  this.removeMouseMoveEventListeners();
2651
2334
  this.isMouseDelayMet = false;
2652
2335
  this.mouseDownInfo = null;
2653
-
2654
2336
  if (this.isMouseStarted) {
2655
2337
  this.isMouseStarted = false;
2656
2338
  this.mouseStop(positionInfo);
@@ -2662,41 +2344,35 @@ var jqtree = (function (exports) {
2662
2344
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2663
2345
  document.removeEventListener("mousemove", this.mouseMove, {
2664
2346
  passive: false
2665
- }); // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2666
-
2347
+ });
2348
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2667
2349
  document.removeEventListener("touchmove", this.touchMove, {
2668
2350
  passive: false
2669
- }); // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2670
-
2351
+ });
2352
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2671
2353
  document.removeEventListener("mouseup", this.mouseUp, {
2672
2354
  passive: false
2673
- }); // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2674
-
2355
+ });
2356
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2675
2357
  document.removeEventListener("touchend", this.touchEnd, {
2676
2358
  passive: false
2677
2359
  });
2678
2360
  }
2679
2361
  }]);
2680
-
2681
2362
  return MouseWidget;
2682
2363
  }(SimpleWidget);
2683
2364
 
2684
2365
  var SaveStateHandler = /*#__PURE__*/function () {
2685
2366
  function SaveStateHandler(treeWidget) {
2686
2367
  _classCallCheck(this, SaveStateHandler);
2687
-
2688
2368
  _defineProperty(this, "treeWidget", void 0);
2689
-
2690
2369
  _defineProperty(this, "_supportsLocalStorage", void 0);
2691
-
2692
2370
  this.treeWidget = treeWidget;
2693
2371
  }
2694
-
2695
2372
  _createClass(SaveStateHandler, [{
2696
2373
  key: "saveState",
2697
2374
  value: function saveState() {
2698
2375
  var state = JSON.stringify(this.getState());
2699
-
2700
2376
  if (this.treeWidget.options.onSetStateFromStorage) {
2701
2377
  this.treeWidget.options.onSetStateFromStorage(state);
2702
2378
  } else if (this.supportsLocalStorage()) {
@@ -2707,7 +2383,6 @@ var jqtree = (function (exports) {
2707
2383
  key: "getStateFromStorage",
2708
2384
  value: function getStateFromStorage() {
2709
2385
  var jsonData = this.loadFromStorage();
2710
-
2711
2386
  if (jsonData) {
2712
2387
  return this.parseState(jsonData);
2713
2388
  } else {
@@ -2718,44 +2393,36 @@ var jqtree = (function (exports) {
2718
2393
  key: "getState",
2719
2394
  value: function getState() {
2720
2395
  var _this = this;
2721
-
2722
2396
  var getOpenNodeIds = function getOpenNodeIds() {
2723
2397
  var openNodes = [];
2724
-
2725
2398
  _this.treeWidget.tree.iterate(function (node) {
2726
2399
  if (node.is_open && node.id && node.hasChildren()) {
2727
2400
  openNodes.push(node.id);
2728
2401
  }
2729
-
2730
2402
  return true;
2731
2403
  });
2732
-
2733
2404
  return openNodes;
2734
2405
  };
2735
-
2736
2406
  var getSelectedNodeIds = function getSelectedNodeIds() {
2737
2407
  var selectedNodeIds = [];
2738
-
2739
2408
  _this.treeWidget.getSelectedNodes().forEach(function (node) {
2740
2409
  if (node.id != null) {
2741
2410
  selectedNodeIds.push(node.id);
2742
2411
  }
2743
2412
  });
2744
-
2745
2413
  return selectedNodeIds;
2746
2414
  };
2747
-
2748
2415
  return {
2749
2416
  open_nodes: getOpenNodeIds(),
2750
2417
  selected_node: getSelectedNodeIds()
2751
2418
  };
2752
2419
  }
2420
+
2753
2421
  /*
2754
2422
  Set initial state
2755
2423
  Don't handle nodes that are loaded on demand
2756
2424
  result: must load on demand
2757
2425
  */
2758
-
2759
2426
  }, {
2760
2427
  key: "setInitialState",
2761
2428
  value: function setInitialState(state) {
@@ -2763,16 +2430,13 @@ var jqtree = (function (exports) {
2763
2430
  return false;
2764
2431
  } else {
2765
2432
  var mustLoadOnDemand = false;
2766
-
2767
2433
  if (state.open_nodes) {
2768
2434
  mustLoadOnDemand = this.openInitialNodes(state.open_nodes);
2769
2435
  }
2770
-
2771
2436
  if (state.selected_node) {
2772
2437
  this.resetSelection();
2773
2438
  this.selectInitialNodes(state.selected_node);
2774
2439
  }
2775
-
2776
2440
  return mustLoadOnDemand;
2777
2441
  }
2778
2442
  }
@@ -2789,7 +2453,6 @@ var jqtree = (function (exports) {
2789
2453
  key: "getNodeIdToBeSelected",
2790
2454
  value: function getNodeIdToBeSelected() {
2791
2455
  var state = this.getStateFromStorage();
2792
-
2793
2456
  if (state && state.selected_node) {
2794
2457
  return state.selected_node[0];
2795
2458
  } else {
@@ -2799,13 +2462,13 @@ var jqtree = (function (exports) {
2799
2462
  }, {
2800
2463
  key: "parseState",
2801
2464
  value: function parseState(jsonData) {
2802
- var state = JSON.parse(jsonData); // Check if selected_node is an int (instead of an array)
2465
+ var state = JSON.parse(jsonData);
2803
2466
 
2467
+ // Check if selected_node is an int (instead of an array)
2804
2468
  if (state && state.selected_node && isInt(state.selected_node)) {
2805
2469
  // Convert to array
2806
2470
  state.selected_node = [state.selected_node];
2807
2471
  }
2808
-
2809
2472
  return state;
2810
2473
  }
2811
2474
  }, {
@@ -2823,15 +2486,12 @@ var jqtree = (function (exports) {
2823
2486
  key: "openInitialNodes",
2824
2487
  value: function openInitialNodes(nodeIds) {
2825
2488
  var mustLoadOnDemand = false;
2826
-
2827
2489
  var _iterator = _createForOfIteratorHelper(nodeIds),
2828
- _step;
2829
-
2490
+ _step;
2830
2491
  try {
2831
2492
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2832
2493
  var nodeId = _step.value;
2833
2494
  var node = this.treeWidget.getNodeById(nodeId);
2834
-
2835
2495
  if (node) {
2836
2496
  if (!node.load_on_demand) {
2837
2497
  node.is_open = true;
@@ -2845,22 +2505,18 @@ var jqtree = (function (exports) {
2845
2505
  } finally {
2846
2506
  _iterator.f();
2847
2507
  }
2848
-
2849
2508
  return mustLoadOnDemand;
2850
2509
  }
2851
2510
  }, {
2852
2511
  key: "selectInitialNodes",
2853
2512
  value: function selectInitialNodes(nodeIds) {
2854
2513
  var selectCount = 0;
2855
-
2856
2514
  var _iterator2 = _createForOfIteratorHelper(nodeIds),
2857
- _step2;
2858
-
2515
+ _step2;
2859
2516
  try {
2860
2517
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
2861
2518
  var nodeId = _step2.value;
2862
2519
  var node = this.treeWidget.getNodeById(nodeId);
2863
-
2864
2520
  if (node) {
2865
2521
  selectCount += 1;
2866
2522
  this.treeWidget.selectNodeHandler.addToSelection(node);
@@ -2871,7 +2527,6 @@ var jqtree = (function (exports) {
2871
2527
  } finally {
2872
2528
  _iterator2.f();
2873
2529
  }
2874
-
2875
2530
  return selectCount !== 0;
2876
2531
  }
2877
2532
  }, {
@@ -2887,22 +2542,16 @@ var jqtree = (function (exports) {
2887
2542
  key: "doSetInitialStateOnDemand",
2888
2543
  value: function doSetInitialStateOnDemand(nodeIdsParam, selectedNodes, cbFinished) {
2889
2544
  var _this2 = this;
2890
-
2891
2545
  var loadingCount = 0;
2892
2546
  var nodeIds = nodeIdsParam;
2893
-
2894
2547
  var openNodes = function openNodes() {
2895
2548
  var newNodesIds = [];
2896
-
2897
2549
  var _iterator3 = _createForOfIteratorHelper(nodeIds),
2898
- _step3;
2899
-
2550
+ _step3;
2900
2551
  try {
2901
2552
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
2902
2553
  var nodeId = _step3.value;
2903
-
2904
2554
  var node = _this2.treeWidget.getNodeById(nodeId);
2905
-
2906
2555
  if (!node) {
2907
2556
  newNodesIds.push(nodeId);
2908
2557
  } else {
@@ -2920,27 +2569,21 @@ var jqtree = (function (exports) {
2920
2569
  } finally {
2921
2570
  _iterator3.f();
2922
2571
  }
2923
-
2924
2572
  nodeIds = newNodesIds;
2925
-
2926
2573
  if (_this2.selectInitialNodes(selectedNodes)) {
2927
2574
  _this2.treeWidget._refreshElements(null);
2928
2575
  }
2929
-
2930
2576
  if (loadingCount === 0) {
2931
2577
  cbFinished();
2932
2578
  }
2933
2579
  };
2934
-
2935
2580
  var loadAndOpenNode = function loadAndOpenNode(node) {
2936
2581
  loadingCount += 1;
2937
-
2938
2582
  _this2.treeWidget._openNode(node, false, function () {
2939
2583
  loadingCount -= 1;
2940
2584
  openNodes();
2941
2585
  });
2942
2586
  };
2943
-
2944
2587
  openNodes();
2945
2588
  }
2946
2589
  }, {
@@ -2968,41 +2611,30 @@ var jqtree = (function (exports) {
2968
2611
  } catch (error) {
2969
2612
  return false;
2970
2613
  }
2971
-
2972
2614
  return true;
2973
2615
  }
2974
2616
  };
2975
-
2976
2617
  if (this._supportsLocalStorage == null) {
2977
2618
  this._supportsLocalStorage = testSupport();
2978
2619
  }
2979
-
2980
2620
  return this._supportsLocalStorage;
2981
2621
  }
2982
2622
  }]);
2983
-
2984
2623
  return SaveStateHandler;
2985
2624
  }();
2986
2625
 
2987
2626
  var ScrollHandler = /*#__PURE__*/function () {
2988
2627
  function ScrollHandler(treeWidget) {
2989
2628
  _classCallCheck(this, ScrollHandler);
2990
-
2991
2629
  _defineProperty(this, "treeWidget", void 0);
2992
-
2993
2630
  _defineProperty(this, "previousTop", void 0);
2994
-
2995
2631
  _defineProperty(this, "isInitialized", void 0);
2996
-
2997
2632
  _defineProperty(this, "$scrollParent", void 0);
2998
-
2999
2633
  _defineProperty(this, "scrollParentTop", void 0);
3000
-
3001
2634
  this.treeWidget = treeWidget;
3002
2635
  this.previousTop = -1;
3003
2636
  this.isInitialized = false;
3004
2637
  }
3005
-
3006
2638
  _createClass(ScrollHandler, [{
3007
2639
  key: "checkScrolling",
3008
2640
  value: function checkScrolling() {
@@ -3014,7 +2646,6 @@ var jqtree = (function (exports) {
3014
2646
  key: "scrollToY",
3015
2647
  value: function scrollToY(top) {
3016
2648
  this.ensureInit();
3017
-
3018
2649
  if (this.$scrollParent) {
3019
2650
  this.$scrollParent[0].scrollTop = top;
3020
2651
  } else {
@@ -3032,7 +2663,6 @@ var jqtree = (function (exports) {
3032
2663
  var elementTop;
3033
2664
  var viewTop;
3034
2665
  var elHeight = $element.height() || 0;
3035
-
3036
2666
  if (this.$scrollParent) {
3037
2667
  viewTop = 0;
3038
2668
  viewBottom = this.$scrollParent.height() || 0;
@@ -3044,13 +2674,10 @@ var jqtree = (function (exports) {
3044
2674
  viewTop = jQuery(window).scrollTop() || 0;
3045
2675
  var windowHeight = jQuery(window).height() || 0;
3046
2676
  viewBottom = viewTop + windowHeight;
3047
-
3048
2677
  var _offset = $element.offset();
3049
-
3050
2678
  elementTop = _offset ? _offset.top : 0;
3051
2679
  elementBottom = elementTop + elHeight;
3052
2680
  }
3053
-
3054
2681
  return elementBottom <= viewBottom && elementTop >= viewTop;
3055
2682
  }
3056
2683
  }, {
@@ -3066,68 +2693,46 @@ var jqtree = (function (exports) {
3066
2693
  key: "initScrollParent",
3067
2694
  value: function initScrollParent() {
3068
2695
  var _this = this;
3069
-
3070
2696
  var getParentWithOverflow = function getParentWithOverflow() {
3071
2697
  var cssAttributes = ["overflow", "overflow-y"];
3072
-
3073
2698
  var hasOverFlow = function hasOverFlow($el) {
3074
- var _iterator = _createForOfIteratorHelper(cssAttributes),
3075
- _step;
3076
-
3077
- try {
3078
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
3079
- var attr = _step.value;
3080
- var overflowValue = $el.css(attr);
3081
-
3082
- if (overflowValue === "auto" || overflowValue === "scroll") {
3083
- return true;
3084
- }
2699
+ for (var _i = 0, _cssAttributes = cssAttributes; _i < _cssAttributes.length; _i++) {
2700
+ var attr = _cssAttributes[_i];
2701
+ var overflowValue = $el.css(attr);
2702
+ if (overflowValue === "auto" || overflowValue === "scroll") {
2703
+ return true;
3085
2704
  }
3086
- } catch (err) {
3087
- _iterator.e(err);
3088
- } finally {
3089
- _iterator.f();
3090
2705
  }
3091
-
3092
2706
  return false;
3093
2707
  };
3094
-
3095
2708
  if (hasOverFlow(_this.treeWidget.$el)) {
3096
2709
  return _this.treeWidget.$el;
3097
2710
  }
3098
-
3099
- var _iterator2 = _createForOfIteratorHelper(_this.treeWidget.$el.parents().get()),
3100
- _step2;
3101
-
2711
+ var _iterator = _createForOfIteratorHelper(_this.treeWidget.$el.parents().get()),
2712
+ _step;
3102
2713
  try {
3103
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
3104
- var el = _step2.value;
2714
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
2715
+ var el = _step.value;
3105
2716
  var $el = jQuery(el);
3106
-
3107
2717
  if (hasOverFlow($el)) {
3108
2718
  return $el;
3109
2719
  }
3110
2720
  }
3111
2721
  } catch (err) {
3112
- _iterator2.e(err);
2722
+ _iterator.e(err);
3113
2723
  } finally {
3114
- _iterator2.f();
2724
+ _iterator.f();
3115
2725
  }
3116
-
3117
2726
  return null;
3118
2727
  };
3119
-
3120
2728
  var setDocumentAsScrollParent = function setDocumentAsScrollParent() {
3121
2729
  _this.scrollParentTop = 0;
3122
2730
  _this.$scrollParent = null;
3123
2731
  };
3124
-
3125
2732
  if (this.treeWidget.$el.css("position") === "fixed") {
3126
2733
  setDocumentAsScrollParent();
3127
2734
  }
3128
-
3129
2735
  var $scrollParent = getParentWithOverflow();
3130
-
3131
2736
  if ($scrollParent && $scrollParent.length && $scrollParent[0].tagName !== "HTML") {
3132
2737
  this.$scrollParent = $scrollParent;
3133
2738
  var offset = this.$scrollParent.offset();
@@ -3135,7 +2740,6 @@ var jqtree = (function (exports) {
3135
2740
  } else {
3136
2741
  setDocumentAsScrollParent();
3137
2742
  }
3138
-
3139
2743
  this.isInitialized = true;
3140
2744
  }
3141
2745
  }, {
@@ -3149,13 +2753,10 @@ var jqtree = (function (exports) {
3149
2753
  key: "handleVerticalScrollingWithScrollParent",
3150
2754
  value: function handleVerticalScrollingWithScrollParent(area) {
3151
2755
  var scrollParent = this.$scrollParent && this.$scrollParent[0];
3152
-
3153
2756
  if (!scrollParent) {
3154
2757
  return;
3155
2758
  }
3156
-
3157
2759
  var distanceBottom = this.scrollParentTop + scrollParent.offsetHeight - area.bottom;
3158
-
3159
2760
  if (distanceBottom < 20) {
3160
2761
  scrollParent.scrollTop += 20;
3161
2762
  this.treeWidget.refreshHitAreas();
@@ -3171,12 +2772,10 @@ var jqtree = (function (exports) {
3171
2772
  value: function handleVerticalScrollingWithDocument(area) {
3172
2773
  var scrollTop = jQuery(document).scrollTop() || 0;
3173
2774
  var distanceTop = area.top - scrollTop;
3174
-
3175
2775
  if (distanceTop < 20) {
3176
2776
  jQuery(document).scrollTop(scrollTop - 20);
3177
2777
  } else {
3178
2778
  var windowHeight = jQuery(window).height() || 0;
3179
-
3180
2779
  if (windowHeight - (area.bottom - scrollTop) < 20) {
3181
2780
  jQuery(document).scrollTop(scrollTop + 20);
3182
2781
  }
@@ -3186,10 +2785,8 @@ var jqtree = (function (exports) {
3186
2785
  key: "checkVerticalScrolling",
3187
2786
  value: function checkVerticalScrolling() {
3188
2787
  var hoveredArea = this.treeWidget.dndHandler.hoveredArea;
3189
-
3190
2788
  if (hoveredArea && hoveredArea.top !== this.previousTop) {
3191
2789
  this.previousTop = hoveredArea.top;
3192
-
3193
2790
  if (this.$scrollParent) {
3194
2791
  this.handleVerticalScrollingWithScrollParent(hoveredArea);
3195
2792
  } else {
@@ -3201,11 +2798,9 @@ var jqtree = (function (exports) {
3201
2798
  key: "checkHorizontalScrolling",
3202
2799
  value: function checkHorizontalScrolling() {
3203
2800
  var positionInfo = this.treeWidget.dndHandler.positionInfo;
3204
-
3205
2801
  if (!positionInfo) {
3206
2802
  return;
3207
2803
  }
3208
-
3209
2804
  if (this.$scrollParent) {
3210
2805
  this.handleHorizontalScrollingWithParent(positionInfo);
3211
2806
  } else {
@@ -3218,14 +2813,11 @@ var jqtree = (function (exports) {
3218
2813
  if (positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
3219
2814
  return;
3220
2815
  }
3221
-
3222
2816
  var $scrollParent = this.$scrollParent;
3223
2817
  var scrollParentOffset = $scrollParent && $scrollParent.offset();
3224
-
3225
2818
  if (!($scrollParent && scrollParentOffset)) {
3226
2819
  return;
3227
2820
  }
3228
-
3229
2821
  var scrollParent = $scrollParent[0];
3230
2822
  var canScrollRight = scrollParent.scrollLeft + scrollParent.clientWidth < scrollParent.scrollWidth;
3231
2823
  var canScrollLeft = scrollParent.scrollLeft > 0;
@@ -3233,7 +2825,6 @@ var jqtree = (function (exports) {
3233
2825
  var leftEdge = scrollParentOffset.left;
3234
2826
  var isNearRightEdge = positionInfo.pageX > rightEdge - 20;
3235
2827
  var isNearLeftEdge = positionInfo.pageX < leftEdge + 20;
3236
-
3237
2828
  if (isNearRightEdge && canScrollRight) {
3238
2829
  scrollParent.scrollLeft = Math.min(scrollParent.scrollLeft + 20, scrollParent.scrollWidth);
3239
2830
  } else if (isNearLeftEdge && canScrollLeft) {
@@ -3246,14 +2837,12 @@ var jqtree = (function (exports) {
3246
2837
  if (positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
3247
2838
  return;
3248
2839
  }
3249
-
3250
2840
  var $document = jQuery(document);
3251
2841
  var scrollLeft = $document.scrollLeft() || 0;
3252
2842
  var windowWidth = jQuery(window).width() || 0;
3253
2843
  var canScrollLeft = scrollLeft > 0;
3254
2844
  var isNearRightEdge = positionInfo.pageX > windowWidth - 20;
3255
2845
  var isNearLeftEdge = positionInfo.pageX - scrollLeft < 20;
3256
-
3257
2846
  if (isNearRightEdge) {
3258
2847
  $document.scrollLeft(scrollLeft + 20);
3259
2848
  } else if (isNearLeftEdge && canScrollLeft) {
@@ -3261,30 +2850,23 @@ var jqtree = (function (exports) {
3261
2850
  }
3262
2851
  }
3263
2852
  }]);
3264
-
3265
2853
  return ScrollHandler;
3266
2854
  }();
3267
2855
 
3268
2856
  var SelectNodeHandler = /*#__PURE__*/function () {
3269
2857
  function SelectNodeHandler(treeWidget) {
3270
2858
  _classCallCheck(this, SelectNodeHandler);
3271
-
3272
2859
  _defineProperty(this, "treeWidget", void 0);
3273
-
3274
2860
  _defineProperty(this, "selectedNodes", void 0);
3275
-
3276
2861
  _defineProperty(this, "selectedSingleNode", void 0);
3277
-
3278
2862
  this.treeWidget = treeWidget;
3279
2863
  this.selectedNodes = new Set();
3280
2864
  this.clear();
3281
2865
  }
3282
-
3283
2866
  _createClass(SelectNodeHandler, [{
3284
2867
  key: "getSelectedNode",
3285
2868
  value: function getSelectedNode() {
3286
2869
  var selectedNodes = this.getSelectedNodes();
3287
-
3288
2870
  if (selectedNodes.length) {
3289
2871
  return selectedNodes[0];
3290
2872
  } else {
@@ -3295,14 +2877,12 @@ var jqtree = (function (exports) {
3295
2877
  key: "getSelectedNodes",
3296
2878
  value: function getSelectedNodes() {
3297
2879
  var _this = this;
3298
-
3299
2880
  if (this.selectedSingleNode) {
3300
2881
  return [this.selectedSingleNode];
3301
2882
  } else {
3302
2883
  var selectedNodes = [];
3303
2884
  this.selectedNodes.forEach(function (id) {
3304
2885
  var node = _this.treeWidget.getNodeById(id);
3305
-
3306
2886
  if (node) {
3307
2887
  selectedNodes.push(node);
3308
2888
  }
@@ -3321,17 +2901,14 @@ var jqtree = (function (exports) {
3321
2901
  }
3322
2902
  } else {
3323
2903
  var selectedNodes = [];
3324
-
3325
2904
  for (var id in this.selectedNodes) {
3326
2905
  if (Object.prototype.hasOwnProperty.call(this.selectedNodes, id)) {
3327
2906
  var node = this.treeWidget.getNodeById(id);
3328
-
3329
2907
  if (node && parent.isParentOf(node)) {
3330
2908
  selectedNodes.push(node);
3331
2909
  }
3332
2910
  }
3333
2911
  }
3334
-
3335
2912
  return selectedNodes;
3336
2913
  }
3337
2914
  }
@@ -3356,22 +2933,18 @@ var jqtree = (function (exports) {
3356
2933
  key: "removeFromSelection",
3357
2934
  value: function removeFromSelection(node) {
3358
2935
  var _this2 = this;
3359
-
3360
2936
  var includeChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
3361
-
3362
2937
  if (node.id == null) {
3363
2938
  if (this.selectedSingleNode && node.element === this.selectedSingleNode.element) {
3364
2939
  this.selectedSingleNode = null;
3365
2940
  }
3366
2941
  } else {
3367
2942
  this.selectedNodes["delete"](node.id);
3368
-
3369
2943
  if (includeChildren) {
3370
2944
  node.iterate(function () {
3371
2945
  if (node.id != null) {
3372
2946
  _this2.selectedNodes["delete"](node.id);
3373
2947
  }
3374
-
3375
2948
  return true;
3376
2949
  });
3377
2950
  }
@@ -3393,37 +2966,28 @@ var jqtree = (function (exports) {
3393
2966
  return Boolean(activeElement && activeElement.tagName === "SPAN" && this.treeWidget._containsElement(activeElement));
3394
2967
  }
3395
2968
  }]);
3396
-
3397
2969
  return SelectNodeHandler;
3398
2970
  }();
3399
2971
 
3400
2972
  var NodeElement = /*#__PURE__*/function () {
3401
2973
  function NodeElement(node, treeWidget) {
3402
2974
  _classCallCheck(this, NodeElement);
3403
-
3404
2975
  _defineProperty(this, "node", void 0);
3405
-
3406
2976
  _defineProperty(this, "$element", void 0);
3407
-
3408
2977
  _defineProperty(this, "treeWidget", void 0);
3409
-
3410
2978
  this.init(node, treeWidget);
3411
2979
  }
3412
-
3413
2980
  _createClass(NodeElement, [{
3414
2981
  key: "init",
3415
2982
  value: function init(node, treeWidget) {
3416
2983
  this.node = node;
3417
2984
  this.treeWidget = treeWidget;
3418
-
3419
2985
  if (!node.element) {
3420
2986
  var element = this.treeWidget.element.get(0);
3421
-
3422
2987
  if (element) {
3423
2988
  node.element = element;
3424
2989
  }
3425
2990
  }
3426
-
3427
2991
  if (node.element) {
3428
2992
  this.$element = jQuery(node.element);
3429
2993
  }
@@ -3441,13 +3005,11 @@ var jqtree = (function (exports) {
3441
3005
  key: "select",
3442
3006
  value: function select(mustSetFocus) {
3443
3007
  var _this$treeWidget$opti;
3444
-
3445
3008
  var $li = this.getLi();
3446
3009
  $li.addClass("jqtree-selected");
3447
3010
  $li.attr("aria-selected", "true");
3448
3011
  var $span = this.getSpan();
3449
3012
  $span.attr("tabindex", (_this$treeWidget$opti = this.treeWidget.options.tabIndex) !== null && _this$treeWidget$opti !== void 0 ? _this$treeWidget$opti : null);
3450
-
3451
3013
  if (mustSetFocus) {
3452
3014
  $span.trigger("focus");
3453
3015
  }
@@ -3483,61 +3045,45 @@ var jqtree = (function (exports) {
3483
3045
  return position === Position.Inside;
3484
3046
  }
3485
3047
  }]);
3486
-
3487
3048
  return NodeElement;
3488
3049
  }();
3489
3050
  var FolderElement = /*#__PURE__*/function (_NodeElement) {
3490
3051
  _inherits(FolderElement, _NodeElement);
3491
-
3492
3052
  var _super = _createSuper(FolderElement);
3493
-
3494
3053
  function FolderElement() {
3495
3054
  _classCallCheck(this, FolderElement);
3496
-
3497
3055
  return _super.apply(this, arguments);
3498
3056
  }
3499
-
3500
3057
  _createClass(FolderElement, [{
3501
3058
  key: "open",
3502
3059
  value: function open(onFinished) {
3503
3060
  var _this = this;
3504
-
3505
3061
  var slide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
3506
3062
  var animationSpeed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "fast";
3507
-
3508
3063
  if (this.node.is_open) {
3509
3064
  return;
3510
3065
  }
3511
-
3512
3066
  this.node.is_open = true;
3513
3067
  var $button = this.getButton();
3514
3068
  $button.removeClass("jqtree-closed");
3515
3069
  $button.html("");
3516
3070
  var buttonEl = $button.get(0);
3517
-
3518
3071
  if (buttonEl) {
3519
3072
  var icon = this.treeWidget.renderer.openedIconElement.cloneNode(true);
3520
3073
  buttonEl.appendChild(icon);
3521
3074
  }
3522
-
3523
3075
  var doOpen = function doOpen() {
3524
3076
  var $li = _this.getLi();
3525
-
3526
3077
  $li.removeClass("jqtree-closed");
3527
-
3528
3078
  var $span = _this.getSpan();
3529
-
3530
3079
  $span.attr("aria-expanded", "true");
3531
-
3532
3080
  if (onFinished) {
3533
3081
  onFinished(_this.node);
3534
3082
  }
3535
-
3536
3083
  _this.treeWidget._triggerEvent("tree.open", {
3537
3084
  node: _this.node
3538
3085
  });
3539
3086
  };
3540
-
3541
3087
  if (slide) {
3542
3088
  this.getUl().slideDown(animationSpeed, doOpen);
3543
3089
  } else {
@@ -3549,39 +3095,29 @@ var jqtree = (function (exports) {
3549
3095
  key: "close",
3550
3096
  value: function close() {
3551
3097
  var _this2 = this;
3552
-
3553
3098
  var slide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
3554
3099
  var animationSpeed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "fast";
3555
-
3556
3100
  if (!this.node.is_open) {
3557
3101
  return;
3558
3102
  }
3559
-
3560
3103
  this.node.is_open = false;
3561
3104
  var $button = this.getButton();
3562
3105
  $button.addClass("jqtree-closed");
3563
3106
  $button.html("");
3564
3107
  var buttonEl = $button.get(0);
3565
-
3566
3108
  if (buttonEl) {
3567
3109
  var icon = this.treeWidget.renderer.closedIconElement.cloneNode(true);
3568
3110
  buttonEl.appendChild(icon);
3569
3111
  }
3570
-
3571
3112
  var doClose = function doClose() {
3572
3113
  var $li = _this2.getLi();
3573
-
3574
3114
  $li.addClass("jqtree-closed");
3575
-
3576
3115
  var $span = _this2.getSpan();
3577
-
3578
3116
  $span.attr("aria-expanded", "false");
3579
-
3580
3117
  _this2.treeWidget._triggerEvent("tree.close", {
3581
3118
  node: _this2.node
3582
3119
  });
3583
3120
  };
3584
-
3585
3121
  if (slide) {
3586
3122
  this.getUl().slideUp(animationSpeed, doClose);
3587
3123
  } else {
@@ -3600,15 +3136,12 @@ var jqtree = (function (exports) {
3600
3136
  return this.$element.children(".jqtree-element").find("a.jqtree-toggler");
3601
3137
  }
3602
3138
  }]);
3603
-
3604
3139
  return FolderElement;
3605
3140
  }(NodeElement);
3606
3141
  var BorderDropHint = /*#__PURE__*/function () {
3607
3142
  function BorderDropHint($element, scrollLeft) {
3608
3143
  _classCallCheck(this, BorderDropHint);
3609
-
3610
3144
  _defineProperty(this, "$hint", void 0);
3611
-
3612
3145
  var $div = $element.children(".jqtree-element");
3613
3146
  var elWidth = $element.width() || 0;
3614
3147
  var width = Math.max(elWidth + scrollLeft - 4, 0);
@@ -3621,31 +3154,23 @@ var jqtree = (function (exports) {
3621
3154
  height: height
3622
3155
  });
3623
3156
  }
3624
-
3625
3157
  _createClass(BorderDropHint, [{
3626
3158
  key: "remove",
3627
3159
  value: function remove() {
3628
3160
  this.$hint.remove();
3629
3161
  }
3630
3162
  }]);
3631
-
3632
3163
  return BorderDropHint;
3633
3164
  }();
3634
-
3635
3165
  var GhostDropHint = /*#__PURE__*/function () {
3636
3166
  function GhostDropHint(node, $element, position) {
3637
3167
  _classCallCheck(this, GhostDropHint);
3638
-
3639
3168
  _defineProperty(this, "$element", void 0);
3640
-
3641
3169
  _defineProperty(this, "node", void 0);
3642
-
3643
3170
  _defineProperty(this, "$ghost", void 0);
3644
-
3645
3171
  this.$element = $element;
3646
3172
  this.node = node;
3647
3173
  this.$ghost = jQuery("<li class=\"jqtree_common jqtree-ghost\"><span class=\"jqtree_common jqtree-circle\"></span>\n <span class=\"jqtree_common jqtree-line\"></span></li>");
3648
-
3649
3174
  if (position === Position.After) {
3650
3175
  this.moveAfter();
3651
3176
  } else if (position === Position.Before) {
@@ -3658,7 +3183,6 @@ var jqtree = (function (exports) {
3658
3183
  }
3659
3184
  }
3660
3185
  }
3661
-
3662
3186
  _createClass(GhostDropHint, [{
3663
3187
  key: "remove",
3664
3188
  value: function remove() {
@@ -3678,7 +3202,6 @@ var jqtree = (function (exports) {
3678
3202
  key: "moveInsideOpenFolder",
3679
3203
  value: function moveInsideOpenFolder() {
3680
3204
  var childElement = this.node.children[0].element;
3681
-
3682
3205
  if (childElement) {
3683
3206
  jQuery(childElement).before(this.$ghost);
3684
3207
  }
@@ -3690,7 +3213,6 @@ var jqtree = (function (exports) {
3690
3213
  this.$ghost.addClass("jqtree-inside");
3691
3214
  }
3692
3215
  }]);
3693
-
3694
3216
  return GhostDropHint;
3695
3217
  }();
3696
3218
 
@@ -3698,67 +3220,45 @@ var jqtree = (function (exports) {
3698
3220
  var PARAM_IS_EMPTY = "Parameter is empty: ";
3699
3221
  var JqTreeWidget = /*#__PURE__*/function (_MouseWidget) {
3700
3222
  _inherits(JqTreeWidget, _MouseWidget);
3701
-
3702
3223
  var _super = _createSuper(JqTreeWidget);
3703
-
3704
3224
  function JqTreeWidget() {
3705
3225
  var _this;
3706
-
3707
3226
  _classCallCheck(this, JqTreeWidget);
3708
-
3709
3227
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3710
3228
  args[_key] = arguments[_key];
3711
3229
  }
3712
-
3713
3230
  _this = _super.call.apply(_super, [this].concat(args));
3714
-
3715
3231
  _defineProperty(_assertThisInitialized(_this), "element", void 0);
3716
-
3717
3232
  _defineProperty(_assertThisInitialized(_this), "tree", void 0);
3718
-
3719
3233
  _defineProperty(_assertThisInitialized(_this), "dndHandler", void 0);
3720
-
3721
3234
  _defineProperty(_assertThisInitialized(_this), "renderer", void 0);
3722
-
3723
3235
  _defineProperty(_assertThisInitialized(_this), "dataLoader", void 0);
3724
-
3725
3236
  _defineProperty(_assertThisInitialized(_this), "scrollHandler", void 0);
3726
-
3727
3237
  _defineProperty(_assertThisInitialized(_this), "selectNodeHandler", void 0);
3728
-
3729
3238
  _defineProperty(_assertThisInitialized(_this), "isInitialized", void 0);
3730
-
3731
3239
  _defineProperty(_assertThisInitialized(_this), "saveStateHandler", void 0);
3732
-
3733
3240
  _defineProperty(_assertThisInitialized(_this), "keyHandler", void 0);
3734
-
3735
3241
  _defineProperty(_assertThisInitialized(_this), "handleClick", function (e) {
3736
3242
  var clickTarget = _this.getClickTarget(e.target);
3737
-
3738
3243
  if (clickTarget) {
3739
3244
  if (clickTarget.type === "button") {
3740
3245
  _this.toggle(clickTarget.node, _this.options.slide);
3741
-
3742
3246
  e.preventDefault();
3743
3247
  e.stopPropagation();
3744
3248
  } else if (clickTarget.type === "label") {
3745
3249
  var _node2 = clickTarget.node;
3746
-
3747
3250
  var event = _this._triggerEvent("tree.click", {
3748
3251
  node: _node2,
3749
3252
  click_event: e
3750
3253
  });
3751
-
3752
3254
  if (!event.isDefaultPrevented()) {
3753
3255
  _this.doSelectNode(_node2);
3754
3256
  }
3755
3257
  }
3756
3258
  }
3757
3259
  });
3758
-
3759
3260
  _defineProperty(_assertThisInitialized(_this), "handleDblclick", function (e) {
3760
3261
  var clickTarget = _this.getClickTarget(e.target);
3761
-
3762
3262
  if ((clickTarget === null || clickTarget === void 0 ? void 0 : clickTarget.type) === "label") {
3763
3263
  _this._triggerEvent("tree.dblclick", {
3764
3264
  node: clickTarget.node,
@@ -3766,49 +3266,37 @@ var jqtree = (function (exports) {
3766
3266
  });
3767
3267
  }
3768
3268
  });
3769
-
3770
3269
  _defineProperty(_assertThisInitialized(_this), "handleContextmenu", function (e) {
3771
3270
  var $div = jQuery(e.target).closest("ul.jqtree-tree .jqtree-element");
3772
-
3773
3271
  if ($div.length) {
3774
3272
  var _node3 = _this.getNode($div);
3775
-
3776
3273
  if (_node3) {
3777
3274
  e.preventDefault();
3778
3275
  e.stopPropagation();
3779
-
3780
3276
  _this._triggerEvent("tree.contextmenu", {
3781
3277
  node: _node3,
3782
3278
  click_event: e
3783
3279
  });
3784
-
3785
3280
  return false;
3786
3281
  }
3787
3282
  }
3788
-
3789
3283
  return null;
3790
3284
  });
3791
-
3792
3285
  return _this;
3793
3286
  }
3794
-
3795
3287
  _createClass(JqTreeWidget, [{
3796
3288
  key: "toggle",
3797
3289
  value: function toggle(node) {
3798
3290
  var slideParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
3799
-
3800
3291
  if (!node) {
3801
3292
  throw Error(NODE_PARAM_IS_EMPTY);
3802
3293
  }
3803
-
3804
3294
  var slide = slideParam !== null && slideParam !== void 0 ? slideParam : this.options.slide;
3805
-
3806
3295
  if (node.is_open) {
3807
3296
  this.closeNode(node, slide);
3808
3297
  } else {
3809
3298
  this.openNode(node, slide);
3810
3299
  }
3811
-
3812
3300
  return this.element;
3813
3301
  }
3814
3302
  }, {
@@ -3838,6 +3326,7 @@ var jqtree = (function (exports) {
3838
3326
  this.doLoadData(data, parentNode);
3839
3327
  return this.element;
3840
3328
  }
3329
+
3841
3330
  /*
3842
3331
  signatures:
3843
3332
  - loadDataFromUrl(url, parent_node=null, on_finished=null)
@@ -3851,7 +3340,6 @@ var jqtree = (function (exports) {
3851
3340
  loadDataFromUrl(null, function() { console.log('finished'); });
3852
3341
  loadDataFromUrl(node1, function() { console.log('finished'); });
3853
3342
  */
3854
-
3855
3343
  }, {
3856
3344
  key: "loadDataFromUrl",
3857
3345
  value: function loadDataFromUrl(param1, param2, param3) {
@@ -3862,7 +3350,6 @@ var jqtree = (function (exports) {
3862
3350
  // first parameter is not url
3863
3351
  this.doLoadDataFromUrl(null, param1, param2);
3864
3352
  }
3865
-
3866
3353
  return this.element;
3867
3354
  }
3868
3355
  }, {
@@ -3875,7 +3362,6 @@ var jqtree = (function (exports) {
3875
3362
  key: "refresh",
3876
3363
  value: function refresh() {
3877
3364
  this._refreshElements(null);
3878
-
3879
3365
  return this.element;
3880
3366
  }
3881
3367
  }, {
@@ -3912,15 +3398,12 @@ var jqtree = (function (exports) {
3912
3398
  key: "openNode",
3913
3399
  value: function openNode(node, param1, param2) {
3914
3400
  var _this2 = this;
3915
-
3916
3401
  if (!node) {
3917
3402
  throw Error(NODE_PARAM_IS_EMPTY);
3918
3403
  }
3919
-
3920
3404
  var parseParams = function parseParams() {
3921
3405
  var onFinished;
3922
3406
  var slide;
3923
-
3924
3407
  if (isFunction(param1)) {
3925
3408
  onFinished = param1;
3926
3409
  slide = null;
@@ -3928,23 +3411,17 @@ var jqtree = (function (exports) {
3928
3411
  slide = param1;
3929
3412
  onFinished = param2;
3930
3413
  }
3931
-
3932
3414
  if (slide == null) {
3933
3415
  var _this2$options$slide;
3934
-
3935
3416
  slide = (_this2$options$slide = _this2.options.slide) !== null && _this2$options$slide !== void 0 ? _this2$options$slide : false;
3936
3417
  }
3937
-
3938
3418
  return [slide, onFinished];
3939
3419
  };
3940
-
3941
3420
  var _parseParams = parseParams(),
3942
- _parseParams2 = _slicedToArray(_parseParams, 2),
3943
- slide = _parseParams2[0],
3944
- onFinished = _parseParams2[1];
3945
-
3421
+ _parseParams2 = _slicedToArray(_parseParams, 2),
3422
+ slide = _parseParams2[0],
3423
+ onFinished = _parseParams2[1];
3946
3424
  this._openNode(node, slide, onFinished);
3947
-
3948
3425
  return this.element;
3949
3426
  }
3950
3427
  }, {
@@ -3953,14 +3430,11 @@ var jqtree = (function (exports) {
3953
3430
  if (!node) {
3954
3431
  throw Error(NODE_PARAM_IS_EMPTY);
3955
3432
  }
3956
-
3957
3433
  var slide = slideParam !== null && slideParam !== void 0 ? slideParam : this.options.slide;
3958
-
3959
3434
  if (node.isFolder() || node.isEmptyFolder) {
3960
3435
  new FolderElement(node, this).close(slide, this.options.animationSpeed);
3961
3436
  this.saveState();
3962
3437
  }
3963
-
3964
3438
  return this.element;
3965
3439
  }
3966
3440
  }, {
@@ -3978,11 +3452,9 @@ var jqtree = (function (exports) {
3978
3452
  key: "addNodeAfter",
3979
3453
  value: function addNodeAfter(newNodeInfo, existingNode) {
3980
3454
  var newNode = existingNode.addAfter(newNodeInfo);
3981
-
3982
3455
  if (newNode) {
3983
3456
  this._refreshElements(existingNode.parent);
3984
3457
  }
3985
-
3986
3458
  return newNode;
3987
3459
  }
3988
3460
  }, {
@@ -3991,13 +3463,10 @@ var jqtree = (function (exports) {
3991
3463
  if (!existingNode) {
3992
3464
  throw Error(PARAM_IS_EMPTY + "existingNode");
3993
3465
  }
3994
-
3995
3466
  var newNode = existingNode.addBefore(newNodeInfo);
3996
-
3997
3467
  if (newNode) {
3998
3468
  this._refreshElements(existingNode.parent);
3999
3469
  }
4000
-
4001
3470
  return newNode;
4002
3471
  }
4003
3472
  }, {
@@ -4006,13 +3475,10 @@ var jqtree = (function (exports) {
4006
3475
  if (!existingNode) {
4007
3476
  throw Error(PARAM_IS_EMPTY + "existingNode");
4008
3477
  }
4009
-
4010
3478
  var newNode = existingNode.addParent(newNodeInfo);
4011
-
4012
3479
  if (newNode) {
4013
3480
  this._refreshElements(newNode.parent);
4014
3481
  }
4015
-
4016
3482
  return newNode;
4017
3483
  }
4018
3484
  }, {
@@ -4021,18 +3487,14 @@ var jqtree = (function (exports) {
4021
3487
  if (!node) {
4022
3488
  throw Error(NODE_PARAM_IS_EMPTY);
4023
3489
  }
4024
-
4025
3490
  if (!node.parent) {
4026
3491
  throw Error("Node has no parent");
4027
3492
  }
4028
-
4029
3493
  this.selectNodeHandler.removeFromSelection(node, true); // including children
4030
3494
 
4031
3495
  var parent = node.parent;
4032
3496
  node.remove();
4033
-
4034
3497
  this._refreshElements(parent);
4035
-
4036
3498
  return this.element;
4037
3499
  }
4038
3500
  }, {
@@ -4040,9 +3502,7 @@ var jqtree = (function (exports) {
4040
3502
  value: function appendNode(newNodeInfo, parentNodeParam) {
4041
3503
  var parentNode = parentNodeParam || this.tree;
4042
3504
  var node = parentNode.append(newNodeInfo);
4043
-
4044
3505
  this._refreshElements(parentNode);
4045
-
4046
3506
  return node;
4047
3507
  }
4048
3508
  }, {
@@ -4050,9 +3510,7 @@ var jqtree = (function (exports) {
4050
3510
  value: function prependNode(newNodeInfo, parentNodeParam) {
4051
3511
  var parentNode = parentNodeParam !== null && parentNodeParam !== void 0 ? parentNodeParam : this.tree;
4052
3512
  var node = parentNode.prepend(newNodeInfo);
4053
-
4054
3513
  this._refreshElements(parentNode);
4055
-
4056
3514
  return node;
4057
3515
  }
4058
3516
  }, {
@@ -4061,36 +3519,27 @@ var jqtree = (function (exports) {
4061
3519
  if (!node) {
4062
3520
  throw Error(NODE_PARAM_IS_EMPTY);
4063
3521
  }
4064
-
4065
3522
  var idIsChanged = _typeof(data) === "object" && data.id && data.id !== node.id;
4066
-
4067
3523
  if (idIsChanged) {
4068
3524
  this.tree.removeNodeFromIndex(node);
4069
3525
  }
4070
-
4071
3526
  node.setData(data);
4072
-
4073
3527
  if (idIsChanged) {
4074
3528
  this.tree.addNodeToIndex(node);
4075
3529
  }
4076
-
4077
3530
  if (_typeof(data) === "object" && data["children"] && data["children"] instanceof Array) {
4078
3531
  node.removeChildren();
4079
-
4080
3532
  if (data.children.length) {
4081
3533
  node.loadFromData(data.children);
4082
3534
  }
4083
3535
  }
4084
-
4085
3536
  this._refreshElements(node);
4086
-
4087
3537
  return this.element;
4088
3538
  }
4089
3539
  }, {
4090
3540
  key: "isSelectedNodeInSubtree",
4091
3541
  value: function isSelectedNodeInSubtree(subtree) {
4092
3542
  var selectedNode = this.getSelectedNode();
4093
-
4094
3543
  if (!selectedNode) {
4095
3544
  return false;
4096
3545
  } else {
@@ -4103,19 +3552,14 @@ var jqtree = (function (exports) {
4103
3552
  if (!node) {
4104
3553
  throw Error(NODE_PARAM_IS_EMPTY);
4105
3554
  }
4106
-
4107
3555
  if (!targetNode) {
4108
3556
  throw Error(PARAM_IS_EMPTY + "targetNode");
4109
3557
  }
4110
-
4111
3558
  var positionIndex = getPosition(position);
4112
-
4113
3559
  if (positionIndex !== undefined) {
4114
3560
  this.tree.moveNode(node, targetNode, positionIndex);
4115
-
4116
3561
  this._refreshElements(null);
4117
3562
  }
4118
-
4119
3563
  return this.element;
4120
3564
  }
4121
3565
  }, {
@@ -4129,11 +3573,8 @@ var jqtree = (function (exports) {
4129
3573
  if (!node) {
4130
3574
  throw Error(NODE_PARAM_IS_EMPTY);
4131
3575
  }
4132
-
4133
3576
  this.selectNodeHandler.addToSelection(node);
4134
-
4135
3577
  this._getNodeElementForNode(node).select(mustSetFocus === undefined ? true : mustSetFocus);
4136
-
4137
3578
  this.saveState();
4138
3579
  return this.element;
4139
3580
  }
@@ -4148,7 +3589,6 @@ var jqtree = (function (exports) {
4148
3589
  if (!node) {
4149
3590
  throw Error(NODE_PARAM_IS_EMPTY);
4150
3591
  }
4151
-
4152
3592
  return this.selectNodeHandler.isNodeSelected(node);
4153
3593
  }
4154
3594
  }, {
@@ -4157,11 +3597,8 @@ var jqtree = (function (exports) {
4157
3597
  if (!node) {
4158
3598
  throw Error(NODE_PARAM_IS_EMPTY);
4159
3599
  }
4160
-
4161
3600
  this.selectNodeHandler.removeFromSelection(node);
4162
-
4163
3601
  this._getNodeElementForNode(node).deselect();
4164
-
4165
3602
  this.saveState();
4166
3603
  return this.element;
4167
3604
  }
@@ -4171,7 +3608,6 @@ var jqtree = (function (exports) {
4171
3608
  if (!node) {
4172
3609
  throw Error(NODE_PARAM_IS_EMPTY);
4173
3610
  }
4174
-
4175
3611
  var nodeOffset = jQuery(node.element).offset();
4176
3612
  var nodeTop = nodeOffset ? nodeOffset.top : 0;
4177
3613
  var treeOffset = this.$el.offset();
@@ -4189,9 +3625,7 @@ var jqtree = (function (exports) {
4189
3625
  key: "setState",
4190
3626
  value: function setState(state) {
4191
3627
  this.saveStateHandler.setInitialState(state);
4192
-
4193
3628
  this._refreshElements(null);
4194
-
4195
3629
  return this.element;
4196
3630
  }
4197
3631
  }, {
@@ -4204,22 +3638,18 @@ var jqtree = (function (exports) {
4204
3638
  key: "moveDown",
4205
3639
  value: function moveDown() {
4206
3640
  var selectedNode = this.getSelectedNode();
4207
-
4208
3641
  if (selectedNode) {
4209
3642
  this.keyHandler.moveDown(selectedNode);
4210
3643
  }
4211
-
4212
3644
  return this.element;
4213
3645
  }
4214
3646
  }, {
4215
3647
  key: "moveUp",
4216
3648
  value: function moveUp() {
4217
3649
  var selectedNode = this.getSelectedNode();
4218
-
4219
3650
  if (selectedNode) {
4220
3651
  this.keyHandler.moveUp(selectedNode);
4221
3652
  }
4222
-
4223
3653
  return this.element;
4224
3654
  }
4225
3655
  }, {
@@ -4238,51 +3668,43 @@ var jqtree = (function (exports) {
4238
3668
  key: "_openNode",
4239
3669
  value: function _openNode(node) {
4240
3670
  var _this3 = this;
4241
-
4242
3671
  var slide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
4243
3672
  var onFinished = arguments.length > 2 ? arguments[2] : undefined;
4244
-
4245
3673
  var doOpenNode = function doOpenNode(_node, _slide, _onFinished) {
4246
3674
  var folderElement = new FolderElement(_node, _this3);
4247
3675
  folderElement.open(_onFinished, _slide, _this3.options.animationSpeed);
4248
3676
  };
4249
-
4250
3677
  if (node.isFolder() || node.isEmptyFolder) {
4251
3678
  if (node.load_on_demand) {
4252
3679
  this.loadFolderOnDemand(node, slide, onFinished);
4253
3680
  } else {
4254
3681
  var parent = node.parent;
4255
-
4256
3682
  while (parent) {
4257
3683
  // nb: do not open root element
4258
3684
  if (parent.parent) {
4259
3685
  doOpenNode(parent, false, null);
4260
3686
  }
4261
-
4262
3687
  parent = parent.parent;
4263
3688
  }
4264
-
4265
3689
  doOpenNode(node, slide, onFinished);
4266
3690
  this.saveState();
4267
3691
  }
4268
3692
  }
4269
3693
  }
3694
+
4270
3695
  /*
4271
3696
  Redraw the tree or part of the tree.
4272
3697
  from_node: redraw this subtree
4273
3698
  */
4274
-
4275
3699
  }, {
4276
3700
  key: "_refreshElements",
4277
3701
  value: function _refreshElements(fromNode) {
4278
3702
  var mustSetFocus = this.selectNodeHandler.isFocusOnTree();
4279
3703
  var mustSelect = fromNode ? this.isSelectedNodeInSubtree(fromNode) : false;
4280
3704
  this.renderer.render(fromNode);
4281
-
4282
3705
  if (mustSelect) {
4283
3706
  this.selectCurrentNode(mustSetFocus);
4284
3707
  }
4285
-
4286
3708
  this._triggerEvent("tree.refresh");
4287
3709
  }
4288
3710
  }, {
@@ -4298,7 +3720,6 @@ var jqtree = (function (exports) {
4298
3720
  key: "_getNodeElement",
4299
3721
  value: function _getNodeElement($element) {
4300
3722
  var node = this.getNode($element);
4301
-
4302
3723
  if (node) {
4303
3724
  return this._getNodeElementForNode(node);
4304
3725
  } else {
@@ -4320,15 +3741,12 @@ var jqtree = (function (exports) {
4320
3741
  key: "init",
4321
3742
  value: function init() {
4322
3743
  _get(_getPrototypeOf(JqTreeWidget.prototype), "init", this).call(this);
4323
-
4324
3744
  this.element = this.$el;
4325
3745
  this.isInitialized = false;
4326
3746
  this.options.rtl = this.getRtlOption();
4327
-
4328
3747
  if (this.options.closedIcon == null) {
4329
3748
  this.options.closedIcon = this.getDefaultClosedIcon();
4330
3749
  }
4331
-
4332
3750
  this.renderer = new ElementsRenderer(this);
4333
3751
  this.dataLoader = new DataLoader(this);
4334
3752
  this.saveStateHandler = new SaveStateHandler(this);
@@ -4339,7 +3757,6 @@ var jqtree = (function (exports) {
4339
3757
  this.initData();
4340
3758
  this.element.on("click", this.handleClick);
4341
3759
  this.element.on("dblclick", this.handleDblclick);
4342
-
4343
3760
  if (this.options.useContextMenu) {
4344
3761
  this.element.on("contextmenu", this.handleContextmenu);
4345
3762
  }
@@ -4351,7 +3768,6 @@ var jqtree = (function (exports) {
4351
3768
  this.element.off();
4352
3769
  this.keyHandler.deinit();
4353
3770
  this.tree = new Node({}, true);
4354
-
4355
3771
  _get(_getPrototypeOf(JqTreeWidget.prototype), "deinit", this).call(this);
4356
3772
  }
4357
3773
  }, {
@@ -4396,7 +3812,6 @@ var jqtree = (function (exports) {
4396
3812
  key: "getMouseDelay",
4397
3813
  value: function getMouseDelay() {
4398
3814
  var _this$options$startDn;
4399
-
4400
3815
  return (_this$options$startDn = this.options.startDndDelay) !== null && _this$options$startDn !== void 0 ? _this$options$startDn : 0;
4401
3816
  }
4402
3817
  }, {
@@ -4406,7 +3821,6 @@ var jqtree = (function (exports) {
4406
3821
  this.doLoadData(this.options.data, null);
4407
3822
  } else {
4408
3823
  var dataUrl = this.getDataUrlInfo(null);
4409
-
4410
3824
  if (dataUrl) {
4411
3825
  this.doLoadDataFromUrl(null, null, null);
4412
3826
  } else {
@@ -4418,9 +3832,7 @@ var jqtree = (function (exports) {
4418
3832
  key: "getDataUrlInfo",
4419
3833
  value: function getDataUrlInfo(node) {
4420
3834
  var _this4 = this;
4421
-
4422
3835
  var dataUrl = this.options.dataUrl || this.element.data("url");
4423
-
4424
3836
  var getUrlFromString = function getUrlFromString(url) {
4425
3837
  var urlInfo = {
4426
3838
  url: url
@@ -4428,7 +3840,6 @@ var jqtree = (function (exports) {
4428
3840
  setUrlInfoData(urlInfo);
4429
3841
  return urlInfo;
4430
3842
  };
4431
-
4432
3843
  var setUrlInfoData = function setUrlInfoData(urlInfo) {
4433
3844
  if (node !== null && node !== void 0 && node.id) {
4434
3845
  // Load on demand of a subtree; add node parameter
@@ -4439,7 +3850,6 @@ var jqtree = (function (exports) {
4439
3850
  } else {
4440
3851
  // Add selected_node parameter
4441
3852
  var selectedNodeId = _this4.getNodeIdToBeSelected();
4442
-
4443
3853
  if (selectedNodeId) {
4444
3854
  var _data = {
4445
3855
  selected_node: selectedNodeId
@@ -4448,7 +3858,6 @@ var jqtree = (function (exports) {
4448
3858
  }
4449
3859
  }
4450
3860
  };
4451
-
4452
3861
  if (typeof dataUrl === "function") {
4453
3862
  return dataUrl(node);
4454
3863
  } else if (typeof dataUrl === "string") {
@@ -4473,68 +3882,57 @@ var jqtree = (function (exports) {
4473
3882
  key: "initTree",
4474
3883
  value: function initTree(data) {
4475
3884
  var _this5 = this;
4476
-
4477
3885
  var doInit = function doInit() {
4478
3886
  if (!_this5.isInitialized) {
4479
3887
  _this5.isInitialized = true;
4480
-
4481
3888
  _this5._triggerEvent("tree.init");
4482
3889
  }
4483
3890
  };
4484
-
4485
3891
  if (!this.options.nodeClass) {
4486
3892
  return;
4487
3893
  }
4488
-
4489
3894
  this.tree = new this.options.nodeClass(null, true, this.options.nodeClass);
4490
3895
  this.selectNodeHandler.clear();
4491
3896
  this.tree.loadFromData(data);
4492
3897
  var mustLoadOnDemand = this.setInitialState();
4493
-
4494
3898
  this._refreshElements(null);
4495
-
4496
3899
  if (!mustLoadOnDemand) {
4497
3900
  doInit();
4498
3901
  } else {
4499
3902
  // Load data on demand and then init the tree
4500
3903
  this.setInitialStateOnDemand(doInit);
4501
3904
  }
4502
- } // Set initial state, either by restoring the state or auto-opening nodes
4503
- // result: must load nodes on demand?
3905
+ }
4504
3906
 
3907
+ // Set initial state, either by restoring the state or auto-opening nodes
3908
+ // result: must load nodes on demand?
4505
3909
  }, {
4506
3910
  key: "setInitialState",
4507
3911
  value: function setInitialState() {
4508
3912
  var _this6 = this;
4509
-
4510
3913
  var restoreState = function restoreState() {
4511
3914
  // result: is state restored, must load on demand?
4512
3915
  if (!_this6.options.saveState) {
4513
3916
  return [false, false];
4514
3917
  } else {
4515
3918
  var state = _this6.saveStateHandler.getStateFromStorage();
4516
-
4517
3919
  if (!state) {
4518
3920
  return [false, false];
4519
3921
  } else {
4520
- var _mustLoadOnDemand = _this6.saveStateHandler.setInitialState(state); // return true: the state is restored
4521
-
3922
+ var _mustLoadOnDemand = _this6.saveStateHandler.setInitialState(state);
4522
3923
 
3924
+ // return true: the state is restored
4523
3925
  return [true, _mustLoadOnDemand];
4524
3926
  }
4525
3927
  }
4526
3928
  };
4527
-
4528
3929
  var autoOpenNodes = function autoOpenNodes() {
4529
3930
  // result: must load on demand?
4530
3931
  if (_this6.options.autoOpen === false) {
4531
3932
  return false;
4532
3933
  }
4533
-
4534
3934
  var maxLevel = _this6.getAutoOpenMaxLevel();
4535
-
4536
3935
  var mustLoadOnDemand = false;
4537
-
4538
3936
  _this6.tree.iterate(function (node, level) {
4539
3937
  if (node.load_on_demand) {
4540
3938
  mustLoadOnDemand = true;
@@ -4546,82 +3944,66 @@ var jqtree = (function (exports) {
4546
3944
  return level !== maxLevel;
4547
3945
  }
4548
3946
  });
4549
-
4550
3947
  return mustLoadOnDemand;
4551
3948
  };
4552
-
4553
3949
  var _restoreState = restoreState(),
4554
- _restoreState2 = _slicedToArray(_restoreState, 2),
4555
- isRestored = _restoreState2[0],
4556
- mustLoadOnDemand = _restoreState2[1]; // eslint-disable-line prefer-const
4557
-
3950
+ _restoreState2 = _slicedToArray(_restoreState, 2),
3951
+ isRestored = _restoreState2[0],
3952
+ mustLoadOnDemand = _restoreState2[1]; // eslint-disable-line prefer-const
4558
3953
 
4559
3954
  if (!isRestored) {
4560
3955
  mustLoadOnDemand = autoOpenNodes();
4561
3956
  }
4562
-
4563
3957
  return mustLoadOnDemand;
4564
- } // Set the initial state for nodes that are loaded on demand
4565
- // Call cb_finished when done
3958
+ }
4566
3959
 
3960
+ // Set the initial state for nodes that are loaded on demand
3961
+ // Call cb_finished when done
4567
3962
  }, {
4568
3963
  key: "setInitialStateOnDemand",
4569
3964
  value: function setInitialStateOnDemand(cbFinished) {
4570
3965
  var _this7 = this;
4571
-
4572
3966
  var restoreState = function restoreState() {
4573
3967
  if (!_this7.options.saveState) {
4574
3968
  return false;
4575
3969
  } else {
4576
3970
  var state = _this7.saveStateHandler.getStateFromStorage();
4577
-
4578
3971
  if (!state) {
4579
3972
  return false;
4580
3973
  } else {
4581
3974
  _this7.saveStateHandler.setInitialStateOnDemand(state, cbFinished);
4582
-
4583
3975
  return true;
4584
3976
  }
4585
3977
  }
4586
3978
  };
4587
-
4588
3979
  var autoOpenNodes = function autoOpenNodes() {
4589
3980
  var maxLevel = _this7.getAutoOpenMaxLevel();
4590
-
4591
3981
  var loadingCount = 0;
4592
-
4593
3982
  var loadAndOpenNode = function loadAndOpenNode(node) {
4594
3983
  loadingCount += 1;
4595
-
4596
3984
  _this7._openNode(node, false, function () {
4597
3985
  loadingCount -= 1;
4598
3986
  openNodes();
4599
3987
  });
4600
3988
  };
4601
-
4602
3989
  var openNodes = function openNodes() {
4603
3990
  _this7.tree.iterate(function (node, level) {
4604
3991
  if (node.load_on_demand) {
4605
3992
  if (!node.is_loading) {
4606
3993
  loadAndOpenNode(node);
4607
3994
  }
4608
-
4609
3995
  return false;
4610
3996
  } else {
4611
3997
  _this7._openNode(node, false, null);
4612
-
4613
3998
  return level !== maxLevel;
4614
3999
  }
4615
4000
  });
4616
-
4617
4001
  if (loadingCount === 0) {
4618
4002
  cbFinished();
4619
4003
  }
4620
4004
  };
4621
-
4622
4005
  openNodes();
4623
4006
  };
4624
-
4625
4007
  if (!restoreState()) {
4626
4008
  autoOpenNodes();
4627
4009
  }
@@ -4644,10 +4026,8 @@ var jqtree = (function (exports) {
4644
4026
  value: function getClickTarget(element) {
4645
4027
  var $target = jQuery(element);
4646
4028
  var $button = $target.closest(".jqtree-toggler");
4647
-
4648
4029
  if ($button.length) {
4649
4030
  var _node4 = this.getNode($button);
4650
-
4651
4031
  if (_node4) {
4652
4032
  return {
4653
4033
  type: "button",
@@ -4656,10 +4036,8 @@ var jqtree = (function (exports) {
4656
4036
  }
4657
4037
  } else {
4658
4038
  var $el = $target.closest(".jqtree-element");
4659
-
4660
4039
  if ($el.length) {
4661
4040
  var _node5 = this.getNode($el);
4662
-
4663
4041
  if (_node5) {
4664
4042
  return {
4665
4043
  type: "label",
@@ -4668,14 +4046,12 @@ var jqtree = (function (exports) {
4668
4046
  }
4669
4047
  }
4670
4048
  }
4671
-
4672
4049
  return null;
4673
4050
  }
4674
4051
  }, {
4675
4052
  key: "getNode",
4676
4053
  value: function getNode($element) {
4677
4054
  var $li = $element.closest("li.jqtree_common");
4678
-
4679
4055
  if ($li.length === 0) {
4680
4056
  return null;
4681
4057
  } else {
@@ -4693,10 +4069,8 @@ var jqtree = (function (exports) {
4693
4069
  key: "selectCurrentNode",
4694
4070
  value: function selectCurrentNode(mustSetFocus) {
4695
4071
  var node = this.getSelectedNode();
4696
-
4697
4072
  if (node) {
4698
4073
  var nodeElement = this._getNodeElementForNode(node);
4699
-
4700
4074
  if (nodeElement) {
4701
4075
  nodeElement.select(mustSetFocus);
4702
4076
  }
@@ -4706,7 +4080,6 @@ var jqtree = (function (exports) {
4706
4080
  key: "deselectCurrentNode",
4707
4081
  value: function deselectCurrentNode() {
4708
4082
  var node = this.getSelectedNode();
4709
-
4710
4083
  if (node) {
4711
4084
  this.removeFromSelection(node);
4712
4085
  }
@@ -4729,7 +4102,6 @@ var jqtree = (function (exports) {
4729
4102
  return this.options.rtl;
4730
4103
  } else {
4731
4104
  var dataRtl = this.element.data("rtl");
4732
-
4733
4105
  if (dataRtl !== null && dataRtl !== false && dataRtl !== undefined) {
4734
4106
  return true;
4735
4107
  } else {
@@ -4741,27 +4113,22 @@ var jqtree = (function (exports) {
4741
4113
  key: "doSelectNode",
4742
4114
  value: function doSelectNode(node, optionsParam) {
4743
4115
  var _this8 = this;
4744
-
4745
4116
  var saveState = function saveState() {
4746
4117
  if (_this8.options.saveState) {
4747
4118
  _this8.saveStateHandler.saveState();
4748
4119
  }
4749
4120
  };
4750
-
4751
4121
  if (!node) {
4752
4122
  // Called with empty node -> deselect current node
4753
4123
  this.deselectCurrentNode();
4754
4124
  saveState();
4755
4125
  return;
4756
4126
  }
4757
-
4758
4127
  var defaultOptions = {
4759
4128
  mustSetFocus: true,
4760
4129
  mustToggle: true
4761
4130
  };
4762
-
4763
4131
  var selectOptions = _objectSpread2(_objectSpread2({}, defaultOptions), optionsParam || {});
4764
-
4765
4132
  var canSelect = function canSelect() {
4766
4133
  if (_this8.options.onCanSelectNode) {
4767
4134
  return _this8.options.selectable === true && _this8.options.onCanSelectNode(node);
@@ -4769,23 +4136,18 @@ var jqtree = (function (exports) {
4769
4136
  return _this8.options.selectable === true;
4770
4137
  }
4771
4138
  };
4772
-
4773
4139
  var openParents = function openParents() {
4774
4140
  var parent = node.parent;
4775
-
4776
4141
  if (parent && parent.parent && !parent.is_open) {
4777
4142
  _this8.openNode(parent, false);
4778
4143
  }
4779
4144
  };
4780
-
4781
4145
  if (!canSelect()) {
4782
4146
  return;
4783
4147
  }
4784
-
4785
4148
  if (this.selectNodeHandler.isNodeSelected(node)) {
4786
4149
  if (selectOptions.mustToggle) {
4787
4150
  this.deselectCurrentNode();
4788
-
4789
4151
  this._triggerEvent("tree.select", {
4790
4152
  node: null,
4791
4153
  previous_node: node
@@ -4795,47 +4157,39 @@ var jqtree = (function (exports) {
4795
4157
  var deselectedNode = this.getSelectedNode() || null;
4796
4158
  this.deselectCurrentNode();
4797
4159
  this.addToSelection(node, selectOptions.mustSetFocus);
4798
-
4799
4160
  this._triggerEvent("tree.select", {
4800
4161
  node: node,
4801
4162
  deselected_node: deselectedNode
4802
4163
  });
4803
-
4804
4164
  openParents();
4805
4165
  }
4806
-
4807
4166
  saveState();
4808
4167
  }
4809
4168
  }, {
4810
4169
  key: "doLoadData",
4811
4170
  value: function doLoadData(data, parentNode) {
4812
- if (!data) {
4813
- return;
4814
- } else {
4815
- this._triggerEvent("tree.load_data", {
4816
- tree_data: data
4817
- });
4818
-
4171
+ if (data) {
4819
4172
  if (parentNode) {
4820
4173
  this.deselectNodes(parentNode);
4821
4174
  this.loadSubtree(data, parentNode);
4822
4175
  } else {
4823
4176
  this.initTree(data);
4824
4177
  }
4825
-
4826
4178
  if (this.isDragging()) {
4827
4179
  this.dndHandler.refresh();
4828
4180
  }
4829
4181
  }
4182
+ this._triggerEvent("tree.load_data", {
4183
+ tree_data: data,
4184
+ parent_node: parentNode
4185
+ });
4830
4186
  }
4831
4187
  }, {
4832
4188
  key: "deselectNodes",
4833
4189
  value: function deselectNodes(parentNode) {
4834
4190
  var selectedNodesUnderParent = this.selectNodeHandler.getSelectedNodesUnder(parentNode);
4835
-
4836
4191
  var _iterator = _createForOfIteratorHelper(selectedNodesUnderParent),
4837
- _step;
4838
-
4192
+ _step;
4839
4193
  try {
4840
4194
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
4841
4195
  var n = _step.value;
@@ -4853,7 +4207,6 @@ var jqtree = (function (exports) {
4853
4207
  parentNode.loadFromData(data);
4854
4208
  parentNode.load_on_demand = false;
4855
4209
  parentNode.is_loading = false;
4856
-
4857
4210
  this._refreshElements(parentNode);
4858
4211
  }
4859
4212
  }, {
@@ -4866,7 +4219,6 @@ var jqtree = (function (exports) {
4866
4219
  key: "loadFolderOnDemand",
4867
4220
  value: function loadFolderOnDemand(node) {
4868
4221
  var _this9 = this;
4869
-
4870
4222
  var slide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
4871
4223
  var onFinished = arguments.length > 2 ? arguments[2] : undefined;
4872
4224
  node.is_loading = true;
@@ -4875,10 +4227,8 @@ var jqtree = (function (exports) {
4875
4227
  });
4876
4228
  }
4877
4229
  }]);
4878
-
4879
4230
  return JqTreeWidget;
4880
4231
  }(MouseWidget);
4881
-
4882
4232
  _defineProperty(JqTreeWidget, "defaults", {
4883
4233
  animationSpeed: "fast",
4884
4234
  autoEscape: true,
@@ -4925,13 +4275,10 @@ var jqtree = (function (exports) {
4925
4275
  tabIndex: 0,
4926
4276
  useContextMenu: true
4927
4277
  });
4928
-
4929
4278
  SimpleWidget.register(JqTreeWidget, "tree");
4930
4279
 
4931
4280
  exports.JqTreeWidget = JqTreeWidget;
4932
4281
 
4933
- Object.defineProperty(exports, '__esModule', { value: true });
4934
-
4935
4282
  return exports;
4936
4283
 
4937
4284
  })({});