jqtree 1.6.3 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/.github/workflows/ci.yml +15 -21
  2. package/.github/workflows/codeql-analysis.yml +2 -2
  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 +34 -37
  8. package/docs/_config.yml +1 -1
  9. package/docs/_entries/10_changelog.md +13 -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/98_getpreviousvisiblenode.md +14 -0
  14. package/docs/package.json +7 -7
  15. package/docs/pnpm-lock.yaml +413 -265
  16. package/docs/static/bower.json +2 -2
  17. package/docs/static/bower_components/fontawesome/css/all.min.css +6 -2
  18. package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  19. package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  20. package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  21. package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  22. package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  23. package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  24. package/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
  25. package/docs/static/bower_components/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
  26. package/docs/static/bower_components/jquery/dist/jquery.js +944 -1121
  27. package/docs/static/bower_components/jquery/dist/jquery.min.js +2 -2
  28. package/docs/static/documentation.css +181 -159
  29. package/docs/static/example.css +0 -1
  30. package/docs/tree.jquery.js +3 -3
  31. package/lib/dataLoader.js +5 -31
  32. package/lib/dragAndDropHandler.js +40 -142
  33. package/lib/elementsRenderer.js +52 -72
  34. package/lib/keyHandler.js +8 -32
  35. package/lib/mouse.widget.js +24 -74
  36. package/lib/node.js +72 -134
  37. package/lib/nodeElement.js +24 -84
  38. package/lib/playwright/coverage.js +58 -97
  39. package/lib/playwright/playwright.test.js +148 -210
  40. package/lib/playwright/testUtils.js +116 -182
  41. package/lib/saveStateHandler.js +13 -62
  42. package/lib/scrollHandler.js +24 -77
  43. package/lib/selectNodeHandler.js +6 -25
  44. package/lib/simple.widget.js +20 -53
  45. package/lib/test/jqTree/accessibility.test.js +37 -0
  46. package/lib/test/jqTree/create.test.js +0 -4
  47. package/lib/test/jqTree/events.test.js +73 -84
  48. package/lib/test/jqTree/keyboard.test.js +0 -6
  49. package/lib/test/jqTree/loadOnDemand.test.js +84 -121
  50. package/lib/test/jqTree/methods.test.js +107 -150
  51. package/lib/test/jqTree/options.test.js +32 -54
  52. package/lib/test/node.test.js +134 -76
  53. package/lib/test/nodeUtil.test.js +0 -1
  54. package/lib/test/support/jqTreeMatchers.js +4 -9
  55. package/lib/test/support/setupTests.js +0 -4
  56. package/lib/test/support/testUtil.js +2 -11
  57. package/lib/test/support/treeStructure.js +0 -6
  58. package/lib/test/util.test.js +0 -1
  59. package/lib/tree.jquery.js +28 -239
  60. package/lib/util.js +0 -6
  61. package/lib/version.js +1 -1
  62. package/package.json +44 -47
  63. package/src/dragAndDropHandler.ts +24 -10
  64. package/src/elementsRenderer.ts +49 -42
  65. package/src/jqtreeOptions.ts +3 -3
  66. package/src/keyHandler.ts +3 -3
  67. package/src/mouse.widget.ts +12 -0
  68. package/src/node.ts +52 -16
  69. package/src/nodeElement.ts +27 -21
  70. package/src/saveStateHandler.ts +1 -1
  71. package/src/scrollHandler.ts +6 -2
  72. package/src/selectNodeHandler.ts +1 -1
  73. package/src/simple.widget.ts +2 -0
  74. package/src/test/.eslintrc +3 -1
  75. package/src/test/jqTree/accessibility.test.ts +25 -0
  76. package/src/test/jqTree/events.test.ts +79 -93
  77. package/src/test/jqTree/methods.test.ts +1 -1
  78. package/src/test/node.test.ts +152 -58
  79. package/src/test/nodeUtil.test.ts +1 -1
  80. package/src/tree.jquery.ts +7 -6
  81. package/src/version.ts +1 -1
  82. package/tree.jquery.debug.js +297 -904
  83. package/tree.jquery.debug.js.map +1 -1
  84. package/tree.jquery.js +3 -3
  85. package/tree.jquery.js.map +1 -1
  86. package/tsconfig.json +1 -0
  87. package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.eot +0 -0
  88. package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.svg +0 -3717
  89. package/docs/static/bower_components/fontawesome/webfonts/fa-brands-400.woff +0 -0
  90. package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.eot +0 -0
  91. package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.svg +0 -801
  92. package/docs/static/bower_components/fontawesome/webfonts/fa-regular-400.woff +0 -0
  93. package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.eot +0 -0
  94. package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.svg +0 -5028
  95. package/docs/static/bower_components/fontawesome/webfonts/fa-solid-900.woff +0 -0
  96. /package/docs/_entries/{96_getprevioussibling.md → 97_getprevioussibling.md} +0 -0
  97. /package/docs/_entries/{97_parent.md → 99_parent.md} +0 -0
@@ -1,7 +1,7 @@
1
1
  /*
2
- JqTree 1.6.3
2
+ JqTree 1.7.1
3
3
 
4
- Copyright 2022 Marco Braak
4
+ Copyright 2023 Marco Braak
5
5
 
6
6
  Licensed under the Apache License, Version 2.0 (the "License");
7
7
  you may not use this file except in compliance with the License.
@@ -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";
329
-
330
- var Position;
295
+ var version = "1.7.1";
331
296
 
332
- (function (Position) {
297
+ var Position = /*#__PURE__*/function (Position) {
333
298
  Position[Position["Before"] = 1] = "Before";
334
299
  Position[Position["After"] = 2] = "After";
335
300
  Position[Position["Inside"] = 3] = "Inside";
336
301
  Position[Position["None"] = 4] = "None";
337
- })(Position || (Position = {}));
338
-
302
+ return Position;
303
+ }({});
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,9 +789,8 @@ 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
- return this.parent.children[previousIndex];
793
+ return this.parent.children[previousIndex] || null;
893
794
  } else {
894
795
  return null;
895
796
  }
@@ -902,9 +803,8 @@ 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
- return this.parent.children[nextIndex];
807
+ return this.parent.children[nextIndex] || null;
908
808
  } else {
909
809
  return null;
910
810
  }
@@ -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,16 +833,30 @@ 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] || null;
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
- return this.children[0];
854
+ return this.children[0] || null;
941
855
  } else {
942
856
  if (!this.parent) {
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,36 @@ var jqtree = (function (exports) {
995
921
  return null;
996
922
  } else {
997
923
  var lastChild = this.children[this.children.length - 1];
998
-
924
+ if (!lastChild) {
925
+ return null;
926
+ }
999
927
  if (!(lastChild.hasChildren() && lastChild.is_open)) {
1000
928
  return lastChild;
1001
929
  } else {
1002
- return lastChild.getLastChild();
930
+ return lastChild === null || lastChild === void 0 ? void 0 : lastChild.getLastChild();
1003
931
  }
1004
932
  }
1005
- } // Init Node from data without making it the root of the tree
933
+ }
1006
934
 
935
+ // Init Node from data without making it the root of the tree
1007
936
  }, {
1008
937
  key: "initFromData",
1009
938
  value: function initFromData(data) {
1010
939
  var _this2 = this;
1011
-
1012
940
  var addNode = function addNode(nodeData) {
1013
941
  _this2.setData(nodeData);
1014
-
1015
942
  if (isNodeRecordWithChildren(nodeData) && nodeData.children.length) {
1016
943
  addChildren(nodeData.children);
1017
944
  }
1018
945
  };
1019
-
1020
946
  var addChildren = function addChildren(childrenData) {
1021
947
  var _iterator4 = _createForOfIteratorHelper(childrenData),
1022
- _step4;
1023
-
948
+ _step4;
1024
949
  try {
1025
950
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
1026
951
  var child = _step4.value;
1027
-
1028
952
  var _node4 = _this2.createNode();
1029
-
1030
953
  _node4.initFromData(child);
1031
-
1032
954
  _this2.addChild(_node4);
1033
955
  }
1034
956
  } catch (err) {
@@ -1037,14 +959,12 @@ var jqtree = (function (exports) {
1037
959
  _iterator4.f();
1038
960
  }
1039
961
  };
1040
-
1041
962
  addNode(data);
1042
963
  }
1043
964
  }, {
1044
965
  key: "setParent",
1045
966
  value: function setParent(parent) {
1046
967
  var _this$tree2;
1047
-
1048
968
  this.parent = parent;
1049
969
  this.tree = parent.tree;
1050
970
  (_this$tree2 = this.tree) === null || _this$tree2 === void 0 ? void 0 : _this$tree2.addNodeToIndex(this);
@@ -1053,7 +973,6 @@ var jqtree = (function (exports) {
1053
973
  key: "doRemoveChild",
1054
974
  value: function doRemoveChild(node) {
1055
975
  var _this$tree3;
1056
-
1057
976
  this.children.splice(this.getChildIndex(node), 1);
1058
977
  (_this$tree3 = this.tree) === null || _this$tree3 === void 0 ? void 0 : _this$tree3.removeNodeFromIndex(node);
1059
978
  }
@@ -1061,8 +980,7 @@ var jqtree = (function (exports) {
1061
980
  key: "getNodeClass",
1062
981
  value: function getNodeClass() {
1063
982
  var _this$tree4;
1064
-
1065
- 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;
983
+ return this.nodeClass || (this === null || this === void 0 || (_this$tree4 = this.tree) === null || _this$tree4 === void 0 ? void 0 : _this$tree4.nodeClass) || Node;
1066
984
  }
1067
985
  }, {
1068
986
  key: "createNode",
@@ -1071,32 +989,21 @@ var jqtree = (function (exports) {
1071
989
  return new nodeClass(nodeData);
1072
990
  }
1073
991
  }]);
1074
-
1075
992
  return Node;
1076
993
  }();
1077
994
 
1078
995
  var DragAndDropHandler = /*#__PURE__*/function () {
1079
996
  function DragAndDropHandler(treeWidget) {
1080
997
  _classCallCheck(this, DragAndDropHandler);
1081
-
1082
998
  _defineProperty(this, "hitAreas", void 0);
1083
-
1084
999
  _defineProperty(this, "isDragging", void 0);
1085
-
1086
1000
  _defineProperty(this, "currentItem", void 0);
1087
-
1088
1001
  _defineProperty(this, "hoveredArea", void 0);
1089
-
1090
1002
  _defineProperty(this, "positionInfo", void 0);
1091
-
1092
1003
  _defineProperty(this, "treeWidget", void 0);
1093
-
1094
1004
  _defineProperty(this, "dragElement", void 0);
1095
-
1096
1005
  _defineProperty(this, "previousGhost", void 0);
1097
-
1098
1006
  _defineProperty(this, "openFolderTimer", void 0);
1099
-
1100
1007
  this.treeWidget = treeWidget;
1101
1008
  this.hoveredArea = null;
1102
1009
  this.hitAreas = [];
@@ -1104,28 +1011,22 @@ var jqtree = (function (exports) {
1104
1011
  this.currentItem = null;
1105
1012
  this.positionInfo = null;
1106
1013
  }
1107
-
1108
1014
  _createClass(DragAndDropHandler, [{
1109
1015
  key: "mouseCapture",
1110
1016
  value: function mouseCapture(positionInfo) {
1111
1017
  var $element = jQuery(positionInfo.target);
1112
-
1113
1018
  if (!this.mustCaptureElement($element)) {
1114
1019
  return null;
1115
1020
  }
1116
-
1117
1021
  if (this.treeWidget.options.onIsMoveHandle && !this.treeWidget.options.onIsMoveHandle($element)) {
1118
1022
  return null;
1119
1023
  }
1120
-
1121
1024
  var nodeElement = this.treeWidget._getNodeElement($element);
1122
-
1123
1025
  if (nodeElement && this.treeWidget.options.onCanMove) {
1124
1026
  if (!this.treeWidget.options.onCanMove(nodeElement.node)) {
1125
1027
  nodeElement = null;
1126
1028
  }
1127
1029
  }
1128
-
1129
1030
  this.currentItem = nodeElement;
1130
1031
  return this.currentItem != null;
1131
1032
  }
@@ -1133,11 +1034,9 @@ var jqtree = (function (exports) {
1133
1034
  key: "mouseStart",
1134
1035
  value: function mouseStart(positionInfo) {
1135
1036
  var _this$treeWidget$opti;
1136
-
1137
1037
  if (!this.currentItem || positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
1138
1038
  return false;
1139
1039
  }
1140
-
1141
1040
  this.refresh();
1142
1041
  var offset = jQuery(positionInfo.target).offset();
1143
1042
  var left = offset ? offset.left : 0;
@@ -1155,25 +1054,22 @@ var jqtree = (function (exports) {
1155
1054
  if (!this.currentItem || !this.dragElement || positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
1156
1055
  return false;
1157
1056
  }
1158
-
1159
1057
  this.dragElement.move(positionInfo.pageX, positionInfo.pageY);
1160
1058
  this.positionInfo = positionInfo;
1161
1059
  var area = this.findHoveredArea(positionInfo.pageX, positionInfo.pageY);
1162
-
1163
1060
  if (area && this.canMoveToArea(area)) {
1164
1061
  if (!area.node.isFolder()) {
1165
1062
  this.stopOpenFolderTimer();
1166
1063
  }
1167
-
1168
1064
  if (this.hoveredArea !== area) {
1169
- this.hoveredArea = area; // If this is a closed folder, start timer to open it
1065
+ this.hoveredArea = area;
1170
1066
 
1067
+ // If this is a closed folder, start timer to open it
1171
1068
  if (this.mustOpenFolderTimer(area)) {
1172
1069
  this.startOpenFolderTimer(area.node);
1173
1070
  } else {
1174
1071
  this.stopOpenFolderTimer();
1175
1072
  }
1176
-
1177
1073
  this.updateDropHint();
1178
1074
  }
1179
1075
  } else {
@@ -1181,13 +1077,11 @@ var jqtree = (function (exports) {
1181
1077
  this.stopOpenFolderTimer();
1182
1078
  this.hoveredArea = area;
1183
1079
  }
1184
-
1185
1080
  if (!area) {
1186
1081
  if (this.treeWidget.options.onDragMove) {
1187
1082
  this.treeWidget.options.onDragMove(this.currentItem.node, positionInfo.originalEvent);
1188
1083
  }
1189
1084
  }
1190
-
1191
1085
  return true;
1192
1086
  }
1193
1087
  }, {
@@ -1199,32 +1093,26 @@ var jqtree = (function (exports) {
1199
1093
  this.removeDropHint();
1200
1094
  this.removeHitAreas();
1201
1095
  var currentItem = this.currentItem;
1202
-
1203
1096
  if (this.currentItem) {
1204
1097
  this.currentItem.$element.removeClass("jqtree-moving");
1205
1098
  this.currentItem = null;
1206
1099
  }
1207
-
1208
1100
  this.isDragging = false;
1209
1101
  this.positionInfo = null;
1210
-
1211
1102
  if (!this.hoveredArea && currentItem) {
1212
1103
  if (this.treeWidget.options.onDragStop) {
1213
1104
  this.treeWidget.options.onDragStop(currentItem.node, positionInfo.originalEvent);
1214
1105
  }
1215
1106
  }
1216
-
1217
1107
  return false;
1218
1108
  }
1219
1109
  }, {
1220
1110
  key: "refresh",
1221
1111
  value: function refresh() {
1222
1112
  this.removeHitAreas();
1223
-
1224
1113
  if (this.currentItem) {
1225
1114
  this.generateHitAreas();
1226
1115
  this.currentItem = this.treeWidget._getNodeElementForNode(this.currentItem.node);
1227
-
1228
1116
  if (this.isDragging) {
1229
1117
  this.currentItem.$element.addClass("jqtree-moving");
1230
1118
  }
@@ -1251,11 +1139,9 @@ var jqtree = (function (exports) {
1251
1139
  if (!this.treeWidget.options.onCanMoveTo) {
1252
1140
  return true;
1253
1141
  }
1254
-
1255
1142
  if (!this.currentItem) {
1256
1143
  return false;
1257
1144
  }
1258
-
1259
1145
  var positionName = getPositionName(area.position);
1260
1146
  return this.treeWidget.options.onCanMoveTo(this.currentItem.node, area.node, positionName);
1261
1147
  }
@@ -1288,18 +1174,17 @@ var jqtree = (function (exports) {
1288
1174
  key: "findHoveredArea",
1289
1175
  value: function findHoveredArea(x, y) {
1290
1176
  var dimensions = this.getTreeDimensions();
1291
-
1292
1177
  if (x < dimensions.left || y < dimensions.top || x > dimensions.right || y > dimensions.bottom) {
1293
1178
  return null;
1294
1179
  }
1295
-
1296
1180
  var low = 0;
1297
1181
  var high = this.hitAreas.length;
1298
-
1299
1182
  while (low < high) {
1300
1183
  var mid = low + high >> 1;
1301
1184
  var area = this.hitAreas[mid];
1302
-
1185
+ if (!area) {
1186
+ return null;
1187
+ }
1303
1188
  if (y < area.top) {
1304
1189
  high = mid;
1305
1190
  } else if (y > area.bottom) {
@@ -1308,7 +1193,6 @@ var jqtree = (function (exports) {
1308
1193
  return area;
1309
1194
  }
1310
1195
  }
1311
-
1312
1196
  return null;
1313
1197
  }
1314
1198
  }, {
@@ -1322,31 +1206,27 @@ var jqtree = (function (exports) {
1322
1206
  value: function updateDropHint() {
1323
1207
  if (!this.hoveredArea) {
1324
1208
  return;
1325
- } // remove previous drop hint
1326
-
1209
+ }
1327
1210
 
1328
- this.removeDropHint(); // add new drop hint
1211
+ // remove previous drop hint
1212
+ this.removeDropHint();
1329
1213
 
1214
+ // add new drop hint
1330
1215
  var nodeElement = this.treeWidget._getNodeElementForNode(this.hoveredArea.node);
1331
-
1332
1216
  this.previousGhost = nodeElement.addDropHint(this.hoveredArea.position);
1333
1217
  }
1334
1218
  }, {
1335
1219
  key: "startOpenFolderTimer",
1336
1220
  value: function startOpenFolderTimer(folder) {
1337
1221
  var _this = this;
1338
-
1339
1222
  var openFolder = function openFolder() {
1340
1223
  _this.treeWidget._openNode(folder, _this.treeWidget.options.slide, function () {
1341
1224
  _this.refresh();
1342
-
1343
1225
  _this.updateDropHint();
1344
1226
  });
1345
1227
  };
1346
-
1347
1228
  this.stopOpenFolderTimer();
1348
1229
  var openFolderDelay = this.treeWidget.options.openFolderDelay;
1349
-
1350
1230
  if (openFolderDelay !== false) {
1351
1231
  this.openFolderTimer = window.setTimeout(openFolder, openFolderDelay);
1352
1232
  }
@@ -1363,25 +1243,19 @@ var jqtree = (function (exports) {
1363
1243
  key: "moveItem",
1364
1244
  value: function moveItem(positionInfo) {
1365
1245
  var _this2 = this;
1366
-
1367
1246
  if (this.currentItem && this.hoveredArea && this.hoveredArea.position !== Position.None && this.canMoveToArea(this.hoveredArea)) {
1368
1247
  var movedNode = this.currentItem.node;
1369
1248
  var targetNode = this.hoveredArea.node;
1370
1249
  var position = this.hoveredArea.position;
1371
1250
  var previousParent = movedNode.parent;
1372
-
1373
1251
  if (position === Position.Inside) {
1374
1252
  this.hoveredArea.node.is_open = true;
1375
1253
  }
1376
-
1377
1254
  var doMove = function doMove() {
1378
1255
  _this2.treeWidget.tree.moveNode(movedNode, targetNode, position);
1379
-
1380
1256
  _this2.treeWidget.element.empty();
1381
-
1382
1257
  _this2.treeWidget._refreshElements(null);
1383
1258
  };
1384
-
1385
1259
  var event = this.treeWidget._triggerEvent("tree.move", {
1386
1260
  move_info: {
1387
1261
  moved_node: movedNode,
@@ -1392,7 +1266,6 @@ var jqtree = (function (exports) {
1392
1266
  original_event: positionInfo.originalEvent
1393
1267
  }
1394
1268
  });
1395
-
1396
1269
  if (!event.isDefaultPrevented()) {
1397
1270
  doMove();
1398
1271
  }
@@ -1404,7 +1277,6 @@ var jqtree = (function (exports) {
1404
1277
  // Return the dimensions of the tree. Add a margin to the bottom to allow
1405
1278
  // to drag-and-drop after the last element.
1406
1279
  var offset = this.treeWidget.element.offset();
1407
-
1408
1280
  if (!offset) {
1409
1281
  return {
1410
1282
  left: 0,
@@ -1416,9 +1288,7 @@ var jqtree = (function (exports) {
1416
1288
  var el = this.treeWidget.element;
1417
1289
  var width = el.width() || 0;
1418
1290
  var height = el.height() || 0;
1419
-
1420
1291
  var left = offset.left + this.treeWidget._getScrollLeft();
1421
-
1422
1292
  return {
1423
1293
  left: left,
1424
1294
  top: offset.top,
@@ -1428,43 +1298,31 @@ var jqtree = (function (exports) {
1428
1298
  }
1429
1299
  }
1430
1300
  }]);
1431
-
1432
1301
  return DragAndDropHandler;
1433
1302
  }();
1434
-
1435
1303
  var VisibleNodeIterator = /*#__PURE__*/function () {
1436
1304
  function VisibleNodeIterator(tree) {
1437
1305
  _classCallCheck(this, VisibleNodeIterator);
1438
-
1439
1306
  _defineProperty(this, "tree", void 0);
1440
-
1441
1307
  this.tree = tree;
1442
1308
  }
1443
-
1444
1309
  _createClass(VisibleNodeIterator, [{
1445
1310
  key: "iterate",
1446
1311
  value: function iterate() {
1447
1312
  var _this3 = this;
1448
-
1449
1313
  var isFirstNode = true;
1450
-
1451
1314
  var _iterateNode = function _iterateNode(node, nextNode) {
1452
1315
  var mustIterateInside = (node.is_open || !node.element) && node.hasChildren();
1453
1316
  var $element = null;
1454
-
1455
1317
  if (node.element) {
1456
1318
  $element = jQuery(node.element);
1457
-
1458
1319
  if (!$element.is(":visible")) {
1459
1320
  return;
1460
1321
  }
1461
-
1462
1322
  if (isFirstNode) {
1463
1323
  _this3.handleFirstNode(node);
1464
-
1465
1324
  isFirstNode = false;
1466
1325
  }
1467
-
1468
1326
  if (!node.hasChildren()) {
1469
1327
  _this3.handleNode(node, nextNode, $element);
1470
1328
  } else if (node.is_open) {
@@ -1475,55 +1333,46 @@ var jqtree = (function (exports) {
1475
1333
  _this3.handleClosedFolder(node, nextNode, $element);
1476
1334
  }
1477
1335
  }
1478
-
1479
1336
  if (mustIterateInside) {
1480
1337
  var childrenLength = node.children.length;
1481
1338
  node.children.forEach(function (_, i) {
1482
- if (i === childrenLength - 1) {
1483
- _iterateNode(node.children[i], null);
1484
- } else {
1485
- _iterateNode(node.children[i], node.children[i + 1]);
1339
+ var child = node.children[i];
1340
+ if (child) {
1341
+ if (i === childrenLength - 1) {
1342
+ _iterateNode(child, null);
1343
+ } else {
1344
+ var nextChild = node.children[i + 1];
1345
+ if (nextChild) {
1346
+ _iterateNode(child, nextChild);
1347
+ }
1348
+ }
1486
1349
  }
1487
1350
  });
1488
-
1489
1351
  if (node.is_open && $element) {
1490
1352
  _this3.handleAfterOpenFolder(node, nextNode);
1491
1353
  }
1492
1354
  }
1493
1355
  };
1494
-
1495
1356
  _iterateNode(this.tree, null);
1496
1357
  }
1497
1358
  }]);
1498
-
1499
1359
  return VisibleNodeIterator;
1500
1360
  }();
1501
-
1502
1361
  var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
1503
1362
  _inherits(HitAreasGenerator, _VisibleNodeIterator);
1504
-
1505
1363
  var _super = _createSuper(HitAreasGenerator);
1506
-
1507
1364
  function HitAreasGenerator(tree, currentNode, treeBottom) {
1508
1365
  var _this4;
1509
-
1510
1366
  _classCallCheck(this, HitAreasGenerator);
1511
-
1512
1367
  _this4 = _super.call(this, tree);
1513
-
1514
1368
  _defineProperty(_assertThisInitialized(_this4), "currentNode", void 0);
1515
-
1516
1369
  _defineProperty(_assertThisInitialized(_this4), "treeBottom", void 0);
1517
-
1518
1370
  _defineProperty(_assertThisInitialized(_this4), "positions", void 0);
1519
-
1520
1371
  _defineProperty(_assertThisInitialized(_this4), "lastTop", void 0);
1521
-
1522
1372
  _this4.currentNode = currentNode;
1523
1373
  _this4.treeBottom = treeBottom;
1524
1374
  return _this4;
1525
1375
  }
1526
-
1527
1376
  _createClass(HitAreasGenerator, [{
1528
1377
  key: "generate",
1529
1378
  value: function generate() {
@@ -1538,23 +1387,18 @@ var jqtree = (function (exports) {
1538
1387
  var previousTop = -1;
1539
1388
  var group = [];
1540
1389
  var hitAreas = [];
1541
-
1542
1390
  var _iterator = _createForOfIteratorHelper(positions),
1543
- _step;
1544
-
1391
+ _step;
1545
1392
  try {
1546
1393
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
1547
1394
  var position = _step.value;
1548
-
1549
1395
  if (position.top !== previousTop && group.length) {
1550
1396
  if (group.length) {
1551
1397
  this.generateHitAreasForGroup(hitAreas, group, previousTop, position.top);
1552
1398
  }
1553
-
1554
1399
  previousTop = position.top;
1555
1400
  group = [];
1556
1401
  }
1557
-
1558
1402
  group.push(position);
1559
1403
  }
1560
1404
  } catch (err) {
@@ -1562,7 +1406,6 @@ var jqtree = (function (exports) {
1562
1406
  } finally {
1563
1407
  _iterator.f();
1564
1408
  }
1565
-
1566
1409
  this.generateHitAreasForGroup(hitAreas, group, previousTop, this.treeBottom);
1567
1410
  return hitAreas;
1568
1411
  }
@@ -1573,27 +1416,27 @@ var jqtree = (function (exports) {
1573
1416
  // Cannot move inside current item
1574
1417
  // Stop iterating
1575
1418
  return false;
1576
- } // Cannot move before current item
1577
-
1419
+ }
1578
1420
 
1421
+ // Cannot move before current item
1579
1422
  if (node.children[0] !== this.currentNode) {
1580
1423
  this.addPosition(node, Position.Inside, this.getTop($element));
1581
- } // Continue iterating
1582
-
1424
+ }
1583
1425
 
1426
+ // Continue iterating
1584
1427
  return true;
1585
1428
  }
1586
1429
  }, {
1587
1430
  key: "handleClosedFolder",
1588
1431
  value: function handleClosedFolder(node, nextNode, $element) {
1589
1432
  var top = this.getTop($element);
1590
-
1591
1433
  if (node === this.currentNode) {
1592
1434
  // Cannot move after current item
1593
1435
  this.addPosition(node, Position.None, top);
1594
1436
  } else {
1595
- this.addPosition(node, Position.Inside, top); // Cannot move before current item
1437
+ this.addPosition(node, Position.Inside, top);
1596
1438
 
1439
+ // Cannot move before current item
1597
1440
  if (nextNode !== this.currentNode) {
1598
1441
  this.addPosition(node, Position.After, top);
1599
1442
  }
@@ -1620,14 +1463,12 @@ var jqtree = (function (exports) {
1620
1463
  key: "handleNode",
1621
1464
  value: function handleNode(node, nextNode, $element) {
1622
1465
  var top = this.getTop($element);
1623
-
1624
1466
  if (node === this.currentNode) {
1625
1467
  // Cannot move inside current item
1626
1468
  this.addPosition(node, Position.None, top);
1627
1469
  } else {
1628
1470
  this.addPosition(node, Position.Inside, top);
1629
1471
  }
1630
-
1631
1472
  if (nextNode === this.currentNode || node === this.currentNode) {
1632
1473
  // Cannot move before or after current item
1633
1474
  this.addPosition(node, Position.None, top);
@@ -1661,48 +1502,40 @@ var jqtree = (function (exports) {
1661
1502
  var areaHeight = Math.round((bottom - top) / positionCount);
1662
1503
  var areaTop = top;
1663
1504
  var i = 0;
1664
-
1665
1505
  while (i < positionCount) {
1666
1506
  var position = positionsInGroup[i];
1667
- hitAreas.push({
1668
- top: areaTop,
1669
- bottom: areaTop + areaHeight,
1670
- node: position.node,
1671
- position: position.position
1672
- });
1507
+ if (position) {
1508
+ hitAreas.push({
1509
+ top: areaTop,
1510
+ bottom: areaTop + areaHeight,
1511
+ node: position.node,
1512
+ position: position.position
1513
+ });
1514
+ }
1673
1515
  areaTop += areaHeight;
1674
1516
  i += 1;
1675
1517
  }
1676
1518
  }
1677
1519
  }]);
1678
-
1679
1520
  return HitAreasGenerator;
1680
1521
  }(VisibleNodeIterator);
1681
-
1682
1522
  var DragElement = /*#__PURE__*/function () {
1683
1523
  function DragElement(nodeName, offsetX, offsetY, $tree, autoEscape) {
1684
1524
  _classCallCheck(this, DragElement);
1685
-
1686
1525
  _defineProperty(this, "offsetX", void 0);
1687
-
1688
1526
  _defineProperty(this, "offsetY", void 0);
1689
-
1690
1527
  _defineProperty(this, "$element", void 0);
1691
-
1692
1528
  this.offsetX = offsetX;
1693
1529
  this.offsetY = offsetY;
1694
1530
  this.$element = jQuery("<span>").addClass("jqtree-title jqtree-dragging");
1695
-
1696
1531
  if (autoEscape) {
1697
1532
  this.$element.text(nodeName);
1698
1533
  } else {
1699
1534
  this.$element.html(nodeName);
1700
1535
  }
1701
-
1702
1536
  this.$element.css("position", "absolute");
1703
1537
  $tree.append(this.$element);
1704
1538
  }
1705
-
1706
1539
  _createClass(DragElement, [{
1707
1540
  key: "move",
1708
1541
  value: function move(pageX, pageY) {
@@ -1717,7 +1550,6 @@ var jqtree = (function (exports) {
1717
1550
  this.$element.remove();
1718
1551
  }
1719
1552
  }]);
1720
-
1721
1553
  return DragElement;
1722
1554
  }();
1723
1555
 
@@ -1734,18 +1566,13 @@ var jqtree = (function (exports) {
1734
1566
  var ElementsRenderer = /*#__PURE__*/function () {
1735
1567
  function ElementsRenderer(treeWidget) {
1736
1568
  _classCallCheck(this, ElementsRenderer);
1737
-
1738
1569
  _defineProperty(this, "openedIconElement", void 0);
1739
-
1740
1570
  _defineProperty(this, "closedIconElement", void 0);
1741
-
1742
1571
  _defineProperty(this, "treeWidget", void 0);
1743
-
1744
1572
  this.treeWidget = treeWidget;
1745
1573
  this.openedIconElement = this.createButtonElement(treeWidget.options.openedIcon || "+");
1746
1574
  this.closedIconElement = this.createButtonElement(treeWidget.options.closedIcon || "-");
1747
1575
  }
1748
-
1749
1576
  _createClass(ElementsRenderer, [{
1750
1577
  key: "render",
1751
1578
  value: function render(fromNode) {
@@ -1760,21 +1587,27 @@ var jqtree = (function (exports) {
1760
1587
  value: function renderFromRoot() {
1761
1588
  var $element = this.treeWidget.element;
1762
1589
  $element.empty();
1763
- this.createDomElements($element[0], this.treeWidget.tree.children, true, 1);
1590
+ if ($element[0]) {
1591
+ this.createDomElements($element[0], this.treeWidget.tree.children, true, 1);
1592
+ }
1764
1593
  }
1765
1594
  }, {
1766
1595
  key: "renderFromNode",
1767
1596
  value: function renderFromNode(node) {
1768
1597
  // remember current li
1769
- var $previousLi = jQuery(node.element); // create element
1598
+ var $previousLi = jQuery(node.element);
1770
1599
 
1600
+ // create element
1771
1601
  var li = this.createLi(node, node.getLevel());
1772
- this.attachNodeData(node, li); // add element to dom
1602
+ this.attachNodeData(node, li);
1773
1603
 
1774
- $previousLi.after(li); // remove previous li
1604
+ // add element to dom
1605
+ $previousLi.after(li);
1775
1606
 
1776
- $previousLi.remove(); // create children
1607
+ // remove previous li
1608
+ $previousLi.remove();
1777
1609
 
1610
+ // create children
1778
1611
  if (node.children) {
1779
1612
  this.createDomElements(li, node.children, false, node.getLevel() + 1);
1780
1613
  }
@@ -1784,17 +1617,14 @@ var jqtree = (function (exports) {
1784
1617
  value: function createDomElements(element, children, isRootNode, level) {
1785
1618
  var ul = this.createUl(isRootNode);
1786
1619
  element.appendChild(ul);
1787
-
1788
1620
  var _iterator = _createForOfIteratorHelper(children),
1789
- _step;
1790
-
1621
+ _step;
1791
1622
  try {
1792
1623
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
1793
1624
  var child = _step.value;
1794
1625
  var li = this.createLi(child, level);
1795
1626
  ul.appendChild(li);
1796
1627
  this.attachNodeData(child, li);
1797
-
1798
1628
  if (child.hasChildren()) {
1799
1629
  this.createDomElements(li, child.children, false, level + 1);
1800
1630
  }
@@ -1816,23 +1646,19 @@ var jqtree = (function (exports) {
1816
1646
  value: function createUl(isRootNode) {
1817
1647
  var classString;
1818
1648
  var role;
1819
-
1820
1649
  if (!isRootNode) {
1821
1650
  classString = "";
1822
1651
  role = "group";
1823
1652
  } else {
1824
1653
  classString = "jqtree-tree";
1825
1654
  role = "tree";
1826
-
1827
1655
  if (this.treeWidget.options.rtl) {
1828
1656
  classString += " jqtree-rtl";
1829
1657
  }
1830
1658
  }
1831
-
1832
1659
  if (this.treeWidget.options.dragAndDrop) {
1833
1660
  classString += " jqtree-dnd";
1834
1661
  }
1835
-
1836
1662
  var ul = document.createElement("ul");
1837
1663
  ul.className = "jqtree_common ".concat(classString);
1838
1664
  ul.setAttribute("role", role);
@@ -1844,138 +1670,132 @@ var jqtree = (function (exports) {
1844
1670
  var isSelected = Boolean(this.treeWidget.selectNodeHandler.isNodeSelected(node));
1845
1671
  var mustShowFolder = node.isFolder() || node.isEmptyFolder && this.treeWidget.options.showEmptyFolder;
1846
1672
  var li = mustShowFolder ? this.createFolderLi(node, level, isSelected) : this.createNodeLi(node, level, isSelected);
1847
-
1848
1673
  if (this.treeWidget.options.onCreateLi) {
1849
1674
  this.treeWidget.options.onCreateLi(node, jQuery(li), isSelected);
1850
1675
  }
1851
-
1852
1676
  return li;
1853
1677
  }
1678
+ }, {
1679
+ key: "setTreeItemAriaAttributes",
1680
+ value: function setTreeItemAriaAttributes(element, name, level, isSelected) {
1681
+ element.setAttribute("aria-label", name);
1682
+ element.setAttribute("aria-level", "".concat(level));
1683
+ element.setAttribute("aria-selected", getBoolString(isSelected));
1684
+ element.setAttribute("role", "treeitem");
1685
+ }
1854
1686
  }, {
1855
1687
  key: "createFolderLi",
1856
1688
  value: function createFolderLi(node, level, isSelected) {
1857
1689
  var buttonClasses = this.getButtonClasses(node);
1858
1690
  var folderClasses = this.getFolderClasses(node, isSelected);
1859
- var iconElement = node.is_open ? this.openedIconElement : this.closedIconElement; // li
1691
+ var iconElement = node.is_open ? this.openedIconElement : this.closedIconElement;
1860
1692
 
1693
+ // li
1861
1694
  var li = document.createElement("li");
1862
1695
  li.className = "jqtree_common ".concat(folderClasses);
1863
- li.setAttribute("role", "presentation"); // div
1696
+ li.setAttribute("role", "none");
1864
1697
 
1698
+ // div
1865
1699
  var div = document.createElement("div");
1866
1700
  div.className = "jqtree-element jqtree_common";
1867
- div.setAttribute("role", "presentation");
1868
- li.appendChild(div); // button link
1701
+ div.setAttribute("role", "none");
1702
+ li.appendChild(div);
1869
1703
 
1704
+ // button link
1870
1705
  var buttonLink = document.createElement("a");
1871
1706
  buttonLink.className = buttonClasses;
1872
- buttonLink.appendChild(iconElement.cloneNode(true));
1873
- buttonLink.setAttribute("role", "presentation");
1874
- buttonLink.setAttribute("aria-hidden", "true");
1875
-
1707
+ if (iconElement) {
1708
+ buttonLink.appendChild(iconElement.cloneNode(true));
1709
+ }
1876
1710
  if (this.treeWidget.options.buttonLeft) {
1877
1711
  div.appendChild(buttonLink);
1878
- } // title span
1879
-
1880
-
1881
- div.appendChild(this.createTitleSpan(node.name, level, isSelected, node.is_open, true));
1712
+ }
1882
1713
 
1714
+ // title span
1715
+ var titleSpan = this.createTitleSpan(node.name, isSelected, true, level);
1716
+ titleSpan.setAttribute("aria-expanded", getBoolString(node.is_open));
1717
+ div.appendChild(titleSpan);
1883
1718
  if (!this.treeWidget.options.buttonLeft) {
1884
1719
  div.appendChild(buttonLink);
1885
1720
  }
1886
-
1887
1721
  return li;
1888
1722
  }
1889
1723
  }, {
1890
1724
  key: "createNodeLi",
1891
1725
  value: function createNodeLi(node, level, isSelected) {
1892
1726
  var liClasses = ["jqtree_common"];
1893
-
1894
1727
  if (isSelected) {
1895
1728
  liClasses.push("jqtree-selected");
1896
1729
  }
1730
+ var classString = liClasses.join(" ");
1897
1731
 
1898
- var classString = liClasses.join(" "); // li
1899
-
1732
+ // li
1900
1733
  var li = document.createElement("li");
1901
1734
  li.className = classString;
1902
- li.setAttribute("role", "presentation"); // div
1735
+ li.setAttribute("role", "none");
1903
1736
 
1737
+ // div
1904
1738
  var div = document.createElement("div");
1905
1739
  div.className = "jqtree-element jqtree_common";
1906
- div.setAttribute("role", "presentation");
1907
- li.appendChild(div); // title span
1740
+ div.setAttribute("role", "none");
1741
+ li.appendChild(div);
1908
1742
 
1909
- div.appendChild(this.createTitleSpan(node.name, level, isSelected, node.is_open, false));
1743
+ // title span
1744
+ var titleSpan = this.createTitleSpan(node.name, isSelected, false, level);
1745
+ div.appendChild(titleSpan);
1910
1746
  return li;
1911
1747
  }
1912
1748
  }, {
1913
1749
  key: "createTitleSpan",
1914
- value: function createTitleSpan(nodeName, level, isSelected, isOpen, isFolder) {
1750
+ value: function createTitleSpan(nodeName, isSelected, isFolder, level) {
1915
1751
  var titleSpan = document.createElement("span");
1916
1752
  var classes = "jqtree-title jqtree_common";
1917
-
1918
1753
  if (isFolder) {
1919
1754
  classes += " jqtree-title-folder";
1920
1755
  }
1921
-
1922
1756
  classes += " jqtree-title-button-".concat(this.treeWidget.options.buttonLeft ? "left" : "right");
1923
1757
  titleSpan.className = classes;
1924
- titleSpan.setAttribute("role", "treeitem");
1925
- titleSpan.setAttribute("aria-level", "".concat(level));
1926
- titleSpan.setAttribute("aria-selected", getBoolString(isSelected));
1927
- titleSpan.setAttribute("aria-expanded", getBoolString(isOpen));
1928
-
1929
1758
  if (isSelected) {
1930
1759
  var tabIndex = this.treeWidget.options.tabIndex;
1931
-
1932
1760
  if (tabIndex !== undefined) {
1933
1761
  titleSpan.setAttribute("tabindex", "".concat(tabIndex));
1934
1762
  }
1935
1763
  }
1936
-
1764
+ this.setTreeItemAriaAttributes(titleSpan, nodeName, level, isSelected);
1937
1765
  if (this.treeWidget.options.autoEscape) {
1938
1766
  titleSpan.textContent = nodeName;
1939
1767
  } else {
1940
1768
  titleSpan.innerHTML = nodeName;
1941
1769
  }
1942
-
1943
1770
  return titleSpan;
1944
1771
  }
1945
1772
  }, {
1946
1773
  key: "getButtonClasses",
1947
1774
  value: function getButtonClasses(node) {
1948
1775
  var classes = ["jqtree-toggler", "jqtree_common"];
1949
-
1950
1776
  if (!node.is_open) {
1951
1777
  classes.push("jqtree-closed");
1952
1778
  }
1953
-
1954
1779
  if (this.treeWidget.options.buttonLeft) {
1955
1780
  classes.push("jqtree-toggler-left");
1956
1781
  } else {
1957
1782
  classes.push("jqtree-toggler-right");
1958
1783
  }
1959
-
1960
1784
  return classes.join(" ");
1961
1785
  }
1962
1786
  }, {
1963
1787
  key: "getFolderClasses",
1964
1788
  value: function getFolderClasses(node, isSelected) {
1965
1789
  var classes = ["jqtree-folder"];
1966
-
1967
1790
  if (!node.is_open) {
1968
1791
  classes.push("jqtree-closed");
1969
1792
  }
1970
-
1971
1793
  if (isSelected) {
1972
1794
  classes.push("jqtree-selected");
1973
1795
  }
1974
-
1975
1796
  if (node.is_loading) {
1976
1797
  classes.push("jqtree-loading");
1977
1798
  }
1978
-
1979
1799
  return classes.join(" ");
1980
1800
  }
1981
1801
  }, {
@@ -1991,56 +1811,42 @@ var jqtree = (function (exports) {
1991
1811
  }
1992
1812
  }
1993
1813
  }]);
1994
-
1995
1814
  return ElementsRenderer;
1996
1815
  }();
1997
1816
 
1998
1817
  var DataLoader = /*#__PURE__*/function () {
1999
1818
  function DataLoader(treeWidget) {
2000
1819
  _classCallCheck(this, DataLoader);
2001
-
2002
1820
  _defineProperty(this, "treeWidget", void 0);
2003
-
2004
1821
  this.treeWidget = treeWidget;
2005
1822
  }
2006
-
2007
1823
  _createClass(DataLoader, [{
2008
1824
  key: "loadFromUrl",
2009
1825
  value: function loadFromUrl(urlInfo, parentNode, onFinished) {
2010
1826
  var _this = this;
2011
-
2012
1827
  if (!urlInfo) {
2013
1828
  return;
2014
1829
  }
2015
-
2016
1830
  var $el = this.getDomElement(parentNode);
2017
1831
  this.addLoadingClass($el);
2018
1832
  this.notifyLoading(true, parentNode, $el);
2019
-
2020
1833
  var stopLoading = function stopLoading() {
2021
1834
  _this.removeLoadingClass($el);
2022
-
2023
1835
  _this.notifyLoading(false, parentNode, $el);
2024
1836
  };
2025
-
2026
1837
  var handleSuccess = function handleSuccess(data) {
2027
1838
  stopLoading();
2028
-
2029
1839
  _this.treeWidget.loadData(_this.parseData(data), parentNode);
2030
-
2031
1840
  if (onFinished && typeof onFinished === "function") {
2032
1841
  onFinished();
2033
1842
  }
2034
1843
  };
2035
-
2036
1844
  var handleError = function handleError(jqXHR) {
2037
1845
  stopLoading();
2038
-
2039
1846
  if (_this.treeWidget.options.onLoadFailed) {
2040
1847
  _this.treeWidget.options.onLoadFailed(jqXHR);
2041
1848
  }
2042
1849
  };
2043
-
2044
1850
  this.submitRequest(urlInfo, handleSuccess, handleError);
2045
1851
  }
2046
1852
  }, {
@@ -2072,7 +1878,6 @@ var jqtree = (function (exports) {
2072
1878
  if (this.treeWidget.options.onLoading) {
2073
1879
  this.treeWidget.options.onLoading(isLoading, node, $el);
2074
1880
  }
2075
-
2076
1881
  this.treeWidget._triggerEvent("tree.loading_data", {
2077
1882
  isLoading: isLoading,
2078
1883
  node: node,
@@ -2083,11 +1888,9 @@ var jqtree = (function (exports) {
2083
1888
  key: "submitRequest",
2084
1889
  value: function submitRequest(urlInfoInput, handleSuccess, handleError) {
2085
1890
  var _ajaxSettings$method;
2086
-
2087
1891
  var urlInfo = typeof urlInfoInput === "string" ? {
2088
1892
  url: urlInfoInput
2089
1893
  } : urlInfoInput;
2090
-
2091
1894
  var ajaxSettings = _objectSpread2({
2092
1895
  method: "GET",
2093
1896
  cache: false,
@@ -2095,7 +1898,6 @@ var jqtree = (function (exports) {
2095
1898
  success: handleSuccess,
2096
1899
  error: handleError
2097
1900
  }, urlInfo);
2098
-
2099
1901
  ajaxSettings.method = ((_ajaxSettings$method = ajaxSettings.method) === null || _ajaxSettings$method === void 0 ? void 0 : _ajaxSettings$method.toUpperCase()) || "GET";
2100
1902
  void jQuery.ajax(ajaxSettings);
2101
1903
  }
@@ -2103,7 +1905,6 @@ var jqtree = (function (exports) {
2103
1905
  key: "parseData",
2104
1906
  value: function parseData(data) {
2105
1907
  var dataFilter = this.treeWidget.options.dataFilter;
2106
-
2107
1908
  var getParsedData = function getParsedData() {
2108
1909
  if (typeof data === "string") {
2109
1910
  return JSON.parse(data);
@@ -2111,9 +1912,7 @@ var jqtree = (function (exports) {
2111
1912
  return data;
2112
1913
  }
2113
1914
  };
2114
-
2115
1915
  var parsedData = getParsedData();
2116
-
2117
1916
  if (dataFilter) {
2118
1917
  return dataFilter(parsedData);
2119
1918
  } else {
@@ -2121,56 +1920,41 @@ var jqtree = (function (exports) {
2121
1920
  }
2122
1921
  }
2123
1922
  }]);
2124
-
2125
1923
  return DataLoader;
2126
1924
  }();
2127
1925
 
2128
1926
  var KeyHandler = /*#__PURE__*/function () {
2129
1927
  function KeyHandler(treeWidget) {
2130
1928
  var _this = this;
2131
-
2132
1929
  _classCallCheck(this, KeyHandler);
2133
-
2134
1930
  _defineProperty(this, "treeWidget", void 0);
2135
-
2136
1931
  _defineProperty(this, "handleKeyDown", function (e) {
2137
1932
  if (!_this.canHandleKeyboard()) {
2138
1933
  return true;
2139
1934
  }
2140
-
2141
1935
  var selectedNode = _this.treeWidget.getSelectedNode();
2142
-
2143
1936
  if (!selectedNode) {
2144
1937
  return true;
2145
1938
  }
2146
-
2147
1939
  var key = e.which;
2148
-
2149
1940
  switch (key) {
2150
1941
  case KeyHandler.DOWN:
2151
1942
  return _this.moveDown(selectedNode);
2152
-
2153
1943
  case KeyHandler.UP:
2154
1944
  return _this.moveUp(selectedNode);
2155
-
2156
1945
  case KeyHandler.RIGHT:
2157
1946
  return _this.moveRight(selectedNode);
2158
-
2159
1947
  case KeyHandler.LEFT:
2160
1948
  return _this.moveLeft(selectedNode);
2161
-
2162
1949
  default:
2163
1950
  return true;
2164
1951
  }
2165
1952
  });
2166
-
2167
1953
  this.treeWidget = treeWidget;
2168
-
2169
1954
  if (treeWidget.options.keyboardSupport) {
2170
1955
  jQuery(document).on("keydown.jqtree", this.handleKeyDown);
2171
1956
  }
2172
1957
  }
2173
-
2174
1958
  _createClass(KeyHandler, [{
2175
1959
  key: "deinit",
2176
1960
  value: function deinit() {
@@ -2179,12 +1963,12 @@ var jqtree = (function (exports) {
2179
1963
  }, {
2180
1964
  key: "moveDown",
2181
1965
  value: function moveDown(selectedNode) {
2182
- return this.selectNode(selectedNode.getNextNode());
1966
+ return this.selectNode(selectedNode.getNextVisibleNode());
2183
1967
  }
2184
1968
  }, {
2185
1969
  key: "moveUp",
2186
1970
  value: function moveUp(selectedNode) {
2187
- return this.selectNode(selectedNode.getPreviousNode());
1971
+ return this.selectNode(selectedNode.getPreviousVisibleNode());
2188
1972
  }
2189
1973
  }, {
2190
1974
  key: "moveRight",
@@ -2195,7 +1979,7 @@ var jqtree = (function (exports) {
2195
1979
  // folder node
2196
1980
  if (selectedNode.is_open) {
2197
1981
  // Right moves to the first child of an open node
2198
- return this.selectNode(selectedNode.getNextNode());
1982
+ return this.selectNode(selectedNode.getNextVisibleNode());
2199
1983
  } else {
2200
1984
  // Right expands a closed node
2201
1985
  this.treeWidget.openNode(selectedNode);
@@ -2222,11 +2006,9 @@ var jqtree = (function (exports) {
2222
2006
  return true;
2223
2007
  } else {
2224
2008
  this.treeWidget.selectNode(node);
2225
-
2226
2009
  if (!this.treeWidget.scrollHandler.isScrolledIntoView(jQuery(node.element).find(".jqtree-element"))) {
2227
2010
  this.treeWidget.scrollToNode(node);
2228
2011
  }
2229
-
2230
2012
  return false;
2231
2013
  }
2232
2014
  }
@@ -2236,53 +2018,41 @@ var jqtree = (function (exports) {
2236
2018
  return (this.treeWidget.options.keyboardSupport || false) && this.treeWidget.selectNodeHandler.isFocusOnTree();
2237
2019
  }
2238
2020
  }]);
2239
-
2240
2021
  return KeyHandler;
2241
2022
  }();
2242
-
2243
2023
  _defineProperty(KeyHandler, "LEFT", 37);
2244
-
2245
2024
  _defineProperty(KeyHandler, "UP", 38);
2246
-
2247
2025
  _defineProperty(KeyHandler, "RIGHT", 39);
2248
-
2249
2026
  _defineProperty(KeyHandler, "DOWN", 40);
2250
2027
 
2251
2028
  var _register = function register(widgetClass, widgetName) {
2252
2029
  var getDataKey = function getDataKey() {
2253
2030
  return "simple_widget_".concat(widgetName);
2254
2031
  };
2255
-
2256
2032
  var getWidgetData = function getWidgetData(el, dataKey) {
2257
2033
  var widget = jQuery.data(el, dataKey);
2258
-
2259
2034
  if (widget && widget instanceof SimpleWidget) {
2260
2035
  return widget;
2261
2036
  } else {
2262
2037
  return null;
2263
2038
  }
2264
2039
  };
2265
-
2266
2040
  var createWidget = function createWidget($el, options) {
2267
2041
  var dataKey = getDataKey();
2268
-
2269
2042
  var _iterator = _createForOfIteratorHelper($el.get()),
2270
- _step;
2271
-
2043
+ _step;
2272
2044
  try {
2273
2045
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2274
2046
  var el = _step.value;
2275
2047
  var existingWidget = getWidgetData(el, dataKey);
2276
-
2277
2048
  if (!existingWidget) {
2278
2049
  var simpleWidgetClass = widgetClass;
2279
2050
  var widget = new simpleWidgetClass(el, options);
2280
-
2281
2051
  if (!jQuery.data(el, dataKey)) {
2282
2052
  jQuery.data(el, dataKey, widget);
2283
- } // Call init after setting data, so we can call methods
2284
-
2053
+ }
2285
2054
 
2055
+ // Call init after setting data, so we can call methods
2286
2056
  widget.init();
2287
2057
  }
2288
2058
  }
@@ -2291,25 +2061,19 @@ var jqtree = (function (exports) {
2291
2061
  } finally {
2292
2062
  _iterator.f();
2293
2063
  }
2294
-
2295
2064
  return $el;
2296
2065
  };
2297
-
2298
2066
  var destroyWidget = function destroyWidget($el) {
2299
2067
  var dataKey = getDataKey();
2300
-
2301
2068
  var _iterator2 = _createForOfIteratorHelper($el.get()),
2302
- _step2;
2303
-
2069
+ _step2;
2304
2070
  try {
2305
2071
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
2306
2072
  var el = _step2.value;
2307
2073
  var widget = getWidgetData(el, dataKey);
2308
-
2309
2074
  if (widget) {
2310
2075
  widget.destroy();
2311
2076
  }
2312
-
2313
2077
  jQuery.removeData(el, dataKey);
2314
2078
  }
2315
2079
  } catch (err) {
@@ -2318,22 +2082,17 @@ var jqtree = (function (exports) {
2318
2082
  _iterator2.f();
2319
2083
  }
2320
2084
  };
2321
-
2322
2085
  var callFunction = function callFunction($el, functionName, args) {
2323
2086
  var result = null;
2324
-
2325
2087
  var _iterator3 = _createForOfIteratorHelper($el.get()),
2326
- _step3;
2327
-
2088
+ _step3;
2328
2089
  try {
2329
2090
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
2330
2091
  var el = _step3.value;
2331
2092
  var widget = jQuery.data(el, getDataKey());
2332
-
2333
2093
  if (widget && widget instanceof SimpleWidget) {
2334
2094
  var simpleWidget = widget;
2335
2095
  var widgetFunction = simpleWidget[functionName];
2336
-
2337
2096
  if (widgetFunction && typeof widgetFunction === "function") {
2338
2097
  result = widgetFunction.apply(widget, args);
2339
2098
  }
@@ -2344,11 +2103,10 @@ var jqtree = (function (exports) {
2344
2103
  } finally {
2345
2104
  _iterator3.f();
2346
2105
  }
2347
-
2348
2106
  return result;
2349
- }; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2350
-
2107
+ };
2351
2108
 
2109
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2352
2110
  jQuery.fn[widgetName] = function (argument1) {
2353
2111
  if (!argument1) {
2354
2112
  return createWidget(this, null);
@@ -2357,7 +2115,6 @@ var jqtree = (function (exports) {
2357
2115
  return createWidget(this, options);
2358
2116
  } else if (typeof argument1 === "string" && argument1[0] !== "_") {
2359
2117
  var functionName = argument1;
2360
-
2361
2118
  if (functionName === "destroy") {
2362
2119
  return destroyWidget(this);
2363
2120
  } else if (functionName === "get_widget_class") {
@@ -2366,27 +2123,24 @@ var jqtree = (function (exports) {
2366
2123
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2367
2124
  args[_key - 1] = arguments[_key];
2368
2125
  }
2369
-
2370
2126
  return callFunction(this, functionName, args);
2371
2127
  }
2128
+ } else {
2129
+ return undefined;
2372
2130
  }
2373
2131
  };
2374
2132
  };
2375
-
2376
2133
  var SimpleWidget = /*#__PURE__*/function () {
2377
2134
  function SimpleWidget(el, options) {
2378
2135
  _classCallCheck(this, SimpleWidget);
2379
-
2380
2136
  _defineProperty(this, "options", void 0);
2381
-
2382
2137
  _defineProperty(this, "$el", void 0);
2138
+ this.$el = jQuery(el);
2383
2139
 
2384
- this.$el = jQuery(el); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2385
-
2140
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
2386
2141
  var defaults = this.constructor["defaults"];
2387
2142
  this.options = _objectSpread2(_objectSpread2({}, defaults), options);
2388
2143
  }
2389
-
2390
2144
  _createClass(SimpleWidget, [{
2391
2145
  key: "destroy",
2392
2146
  value: function destroy() {
@@ -2394,11 +2148,13 @@ var jqtree = (function (exports) {
2394
2148
  }
2395
2149
  }, {
2396
2150
  key: "init",
2397
- value: function init() {//
2151
+ value: function init() {
2152
+ //
2398
2153
  }
2399
2154
  }, {
2400
2155
  key: "deinit",
2401
- value: function deinit() {//
2156
+ value: function deinit() {
2157
+ //
2402
2158
  }
2403
2159
  }], [{
2404
2160
  key: "register",
@@ -2406,10 +2162,8 @@ var jqtree = (function (exports) {
2406
2162
  _register(widgetClass, widgetName);
2407
2163
  }
2408
2164
  }]);
2409
-
2410
2165
  return SimpleWidget;
2411
2166
  }();
2412
-
2413
2167
  _defineProperty(SimpleWidget, "defaults", {});
2414
2168
 
2415
2169
  var getPositionInfoFromMouseEvent = function getPositionInfoFromMouseEvent(e) {
@@ -2420,7 +2174,6 @@ var jqtree = (function (exports) {
2420
2174
  originalEvent: e
2421
2175
  };
2422
2176
  };
2423
-
2424
2177
  var getPositionInfoFromTouch = function getPositionInfoFromTouch(touch, e) {
2425
2178
  return {
2426
2179
  pageX: touch.pageX,
@@ -2429,102 +2182,81 @@ var jqtree = (function (exports) {
2429
2182
  originalEvent: e
2430
2183
  };
2431
2184
  };
2432
-
2433
2185
  var MouseWidget = /*#__PURE__*/function (_SimpleWidget) {
2434
2186
  _inherits(MouseWidget, _SimpleWidget);
2435
-
2436
2187
  var _super = _createSuper(MouseWidget);
2437
-
2438
2188
  function MouseWidget() {
2439
2189
  var _this;
2440
-
2441
2190
  _classCallCheck(this, MouseWidget);
2442
-
2443
2191
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
2444
2192
  args[_key] = arguments[_key];
2445
2193
  }
2446
-
2447
2194
  _this = _super.call.apply(_super, [this].concat(args));
2448
-
2449
2195
  _defineProperty(_assertThisInitialized(_this), "isMouseStarted", void 0);
2450
-
2451
2196
  _defineProperty(_assertThisInitialized(_this), "mouseDownInfo", void 0);
2452
-
2453
2197
  _defineProperty(_assertThisInitialized(_this), "mouseDelayTimer", void 0);
2454
-
2455
2198
  _defineProperty(_assertThisInitialized(_this), "isMouseDelayMet", void 0);
2456
-
2457
2199
  _defineProperty(_assertThisInitialized(_this), "mouseDown", function (e) {
2458
2200
  // Left mouse button?
2459
2201
  if (e.button !== 0) {
2460
2202
  return;
2461
2203
  }
2462
-
2463
2204
  var result = _this.handleMouseDown(getPositionInfoFromMouseEvent(e));
2464
-
2465
2205
  if (result && e.cancelable) {
2466
2206
  e.preventDefault();
2467
2207
  }
2468
2208
  });
2469
-
2470
2209
  _defineProperty(_assertThisInitialized(_this), "mouseMove", function (e) {
2471
2210
  _this.handleMouseMove(e, getPositionInfoFromMouseEvent(e));
2472
2211
  });
2473
-
2474
2212
  _defineProperty(_assertThisInitialized(_this), "mouseUp", function (e) {
2475
2213
  _this.handleMouseUp(getPositionInfoFromMouseEvent(e));
2476
2214
  });
2477
-
2478
2215
  _defineProperty(_assertThisInitialized(_this), "touchStart", function (e) {
2479
2216
  if (!e) {
2480
2217
  return;
2481
2218
  }
2482
-
2483
2219
  if (e.touches.length > 1) {
2484
2220
  return;
2485
2221
  }
2486
-
2487
2222
  var touch = e.changedTouches[0];
2488
-
2223
+ if (!touch) {
2224
+ return;
2225
+ }
2489
2226
  _this.handleMouseDown(getPositionInfoFromTouch(touch, e));
2490
2227
  });
2491
-
2492
2228
  _defineProperty(_assertThisInitialized(_this), "touchMove", function (e) {
2493
2229
  if (!e) {
2494
2230
  return;
2495
2231
  }
2496
-
2497
2232
  if (e.touches.length > 1) {
2498
2233
  return;
2499
2234
  }
2500
-
2501
2235
  var touch = e.changedTouches[0];
2502
-
2236
+ if (!touch) {
2237
+ return;
2238
+ }
2503
2239
  _this.handleMouseMove(e, getPositionInfoFromTouch(touch, e));
2504
2240
  });
2505
-
2506
2241
  _defineProperty(_assertThisInitialized(_this), "touchEnd", function (e) {
2507
2242
  if (!e) {
2508
2243
  return;
2509
2244
  }
2510
-
2511
2245
  if (e.touches.length > 1) {
2512
2246
  return;
2513
2247
  }
2514
-
2515
2248
  var touch = e.changedTouches[0];
2516
-
2249
+ if (!touch) {
2250
+ return;
2251
+ }
2517
2252
  _this.handleMouseUp(getPositionInfoFromTouch(touch, e));
2518
2253
  });
2519
-
2520
2254
  return _this;
2521
2255
  }
2522
-
2523
2256
  _createClass(MouseWidget, [{
2524
2257
  key: "init",
2525
2258
  value: function init() {
2526
2259
  var element = this.$el.get(0);
2527
-
2528
2260
  if (element) {
2529
2261
  element.addEventListener("mousedown", this.mouseDown, {
2530
2262
  passive: false
@@ -2533,7 +2265,6 @@ var jqtree = (function (exports) {
2533
2265
  passive: false
2534
2266
  });
2535
2267
  }
2536
-
2537
2268
  this.isMouseStarted = false;
2538
2269
  this.mouseDelayTimer = null;
2539
2270
  this.isMouseDelayMet = false;
@@ -2543,18 +2274,17 @@ var jqtree = (function (exports) {
2543
2274
  key: "deinit",
2544
2275
  value: function deinit() {
2545
2276
  var el = this.$el.get(0);
2546
-
2547
2277
  if (el) {
2548
2278
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2549
2279
  el.removeEventListener("mousedown", this.mouseDown, {
2550
2280
  passive: false
2551
- }); // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2281
+ });
2552
2282
 
2283
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2553
2284
  el.removeEventListener("touchstart", this.touchStart, {
2554
2285
  passive: false
2555
2286
  });
2556
2287
  }
2557
-
2558
2288
  this.removeMouseMoveEventListeners();
2559
2289
  }
2560
2290
  }, {
@@ -2564,13 +2294,10 @@ var jqtree = (function (exports) {
2564
2294
  if (this.isMouseStarted) {
2565
2295
  this.handleMouseUp(positionInfo);
2566
2296
  }
2567
-
2568
2297
  this.mouseDownInfo = positionInfo;
2569
-
2570
2298
  if (!this.mouseCapture(positionInfo)) {
2571
2299
  return false;
2572
2300
  }
2573
-
2574
2301
  this.handleStartMouse();
2575
2302
  return true;
2576
2303
  }
@@ -2590,7 +2317,6 @@ var jqtree = (function (exports) {
2590
2317
  passive: false
2591
2318
  });
2592
2319
  var mouseDelay = this.getMouseDelay();
2593
-
2594
2320
  if (mouseDelay) {
2595
2321
  this.startMouseDelayTimer(mouseDelay);
2596
2322
  } else {
@@ -2601,11 +2327,9 @@ var jqtree = (function (exports) {
2601
2327
  key: "startMouseDelayTimer",
2602
2328
  value: function startMouseDelayTimer(mouseDelay) {
2603
2329
  var _this2 = this;
2604
-
2605
2330
  if (this.mouseDelayTimer) {
2606
2331
  clearTimeout(this.mouseDelayTimer);
2607
2332
  }
2608
-
2609
2333
  this.mouseDelayTimer = window.setTimeout(function () {
2610
2334
  if (_this2.mouseDownInfo) {
2611
2335
  _this2.isMouseDelayMet = true;
@@ -2618,25 +2342,19 @@ var jqtree = (function (exports) {
2618
2342
  value: function handleMouseMove(e, positionInfo) {
2619
2343
  if (this.isMouseStarted) {
2620
2344
  this.mouseDrag(positionInfo);
2621
-
2622
2345
  if (e.cancelable) {
2623
2346
  e.preventDefault();
2624
2347
  }
2625
-
2626
2348
  return;
2627
2349
  }
2628
-
2629
2350
  if (!this.isMouseDelayMet) {
2630
2351
  return;
2631
2352
  }
2632
-
2633
2353
  if (this.mouseDownInfo) {
2634
2354
  this.isMouseStarted = this.mouseStart(this.mouseDownInfo) !== false;
2635
2355
  }
2636
-
2637
2356
  if (this.isMouseStarted) {
2638
2357
  this.mouseDrag(positionInfo);
2639
-
2640
2358
  if (e.cancelable) {
2641
2359
  e.preventDefault();
2642
2360
  }
@@ -2650,7 +2368,6 @@ var jqtree = (function (exports) {
2650
2368
  this.removeMouseMoveEventListeners();
2651
2369
  this.isMouseDelayMet = false;
2652
2370
  this.mouseDownInfo = null;
2653
-
2654
2371
  if (this.isMouseStarted) {
2655
2372
  this.isMouseStarted = false;
2656
2373
  this.mouseStop(positionInfo);
@@ -2662,41 +2379,35 @@ var jqtree = (function (exports) {
2662
2379
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2663
2380
  document.removeEventListener("mousemove", this.mouseMove, {
2664
2381
  passive: false
2665
- }); // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2666
-
2382
+ });
2383
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2667
2384
  document.removeEventListener("touchmove", this.touchMove, {
2668
2385
  passive: false
2669
- }); // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2670
-
2386
+ });
2387
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2671
2388
  document.removeEventListener("mouseup", this.mouseUp, {
2672
2389
  passive: false
2673
- }); // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2674
-
2390
+ });
2391
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
2675
2392
  document.removeEventListener("touchend", this.touchEnd, {
2676
2393
  passive: false
2677
2394
  });
2678
2395
  }
2679
2396
  }]);
2680
-
2681
2397
  return MouseWidget;
2682
2398
  }(SimpleWidget);
2683
2399
 
2684
2400
  var SaveStateHandler = /*#__PURE__*/function () {
2685
2401
  function SaveStateHandler(treeWidget) {
2686
2402
  _classCallCheck(this, SaveStateHandler);
2687
-
2688
2403
  _defineProperty(this, "treeWidget", void 0);
2689
-
2690
2404
  _defineProperty(this, "_supportsLocalStorage", void 0);
2691
-
2692
2405
  this.treeWidget = treeWidget;
2693
2406
  }
2694
-
2695
2407
  _createClass(SaveStateHandler, [{
2696
2408
  key: "saveState",
2697
2409
  value: function saveState() {
2698
2410
  var state = JSON.stringify(this.getState());
2699
-
2700
2411
  if (this.treeWidget.options.onSetStateFromStorage) {
2701
2412
  this.treeWidget.options.onSetStateFromStorage(state);
2702
2413
  } else if (this.supportsLocalStorage()) {
@@ -2707,7 +2418,6 @@ var jqtree = (function (exports) {
2707
2418
  key: "getStateFromStorage",
2708
2419
  value: function getStateFromStorage() {
2709
2420
  var jsonData = this.loadFromStorage();
2710
-
2711
2421
  if (jsonData) {
2712
2422
  return this.parseState(jsonData);
2713
2423
  } else {
@@ -2718,44 +2428,36 @@ var jqtree = (function (exports) {
2718
2428
  key: "getState",
2719
2429
  value: function getState() {
2720
2430
  var _this = this;
2721
-
2722
2431
  var getOpenNodeIds = function getOpenNodeIds() {
2723
2432
  var openNodes = [];
2724
-
2725
2433
  _this.treeWidget.tree.iterate(function (node) {
2726
2434
  if (node.is_open && node.id && node.hasChildren()) {
2727
2435
  openNodes.push(node.id);
2728
2436
  }
2729
-
2730
2437
  return true;
2731
2438
  });
2732
-
2733
2439
  return openNodes;
2734
2440
  };
2735
-
2736
2441
  var getSelectedNodeIds = function getSelectedNodeIds() {
2737
2442
  var selectedNodeIds = [];
2738
-
2739
2443
  _this.treeWidget.getSelectedNodes().forEach(function (node) {
2740
2444
  if (node.id != null) {
2741
2445
  selectedNodeIds.push(node.id);
2742
2446
  }
2743
2447
  });
2744
-
2745
2448
  return selectedNodeIds;
2746
2449
  };
2747
-
2748
2450
  return {
2749
2451
  open_nodes: getOpenNodeIds(),
2750
2452
  selected_node: getSelectedNodeIds()
2751
2453
  };
2752
2454
  }
2455
+
2753
2456
  /*
2754
2457
  Set initial state
2755
2458
  Don't handle nodes that are loaded on demand
2756
2459
  result: must load on demand
2757
2460
  */
2758
-
2759
2461
  }, {
2760
2462
  key: "setInitialState",
2761
2463
  value: function setInitialState(state) {
@@ -2763,16 +2465,13 @@ var jqtree = (function (exports) {
2763
2465
  return false;
2764
2466
  } else {
2765
2467
  var mustLoadOnDemand = false;
2766
-
2767
2468
  if (state.open_nodes) {
2768
2469
  mustLoadOnDemand = this.openInitialNodes(state.open_nodes);
2769
2470
  }
2770
-
2771
2471
  if (state.selected_node) {
2772
2472
  this.resetSelection();
2773
2473
  this.selectInitialNodes(state.selected_node);
2774
2474
  }
2775
-
2776
2475
  return mustLoadOnDemand;
2777
2476
  }
2778
2477
  }
@@ -2789,9 +2488,8 @@ var jqtree = (function (exports) {
2789
2488
  key: "getNodeIdToBeSelected",
2790
2489
  value: function getNodeIdToBeSelected() {
2791
2490
  var state = this.getStateFromStorage();
2792
-
2793
2491
  if (state && state.selected_node) {
2794
- return state.selected_node[0];
2492
+ return state.selected_node[0] || null;
2795
2493
  } else {
2796
2494
  return null;
2797
2495
  }
@@ -2799,13 +2497,13 @@ var jqtree = (function (exports) {
2799
2497
  }, {
2800
2498
  key: "parseState",
2801
2499
  value: function parseState(jsonData) {
2802
- var state = JSON.parse(jsonData); // Check if selected_node is an int (instead of an array)
2500
+ var state = JSON.parse(jsonData);
2803
2501
 
2502
+ // Check if selected_node is an int (instead of an array)
2804
2503
  if (state && state.selected_node && isInt(state.selected_node)) {
2805
2504
  // Convert to array
2806
2505
  state.selected_node = [state.selected_node];
2807
2506
  }
2808
-
2809
2507
  return state;
2810
2508
  }
2811
2509
  }, {
@@ -2823,15 +2521,12 @@ var jqtree = (function (exports) {
2823
2521
  key: "openInitialNodes",
2824
2522
  value: function openInitialNodes(nodeIds) {
2825
2523
  var mustLoadOnDemand = false;
2826
-
2827
2524
  var _iterator = _createForOfIteratorHelper(nodeIds),
2828
- _step;
2829
-
2525
+ _step;
2830
2526
  try {
2831
2527
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
2832
2528
  var nodeId = _step.value;
2833
2529
  var node = this.treeWidget.getNodeById(nodeId);
2834
-
2835
2530
  if (node) {
2836
2531
  if (!node.load_on_demand) {
2837
2532
  node.is_open = true;
@@ -2845,22 +2540,18 @@ var jqtree = (function (exports) {
2845
2540
  } finally {
2846
2541
  _iterator.f();
2847
2542
  }
2848
-
2849
2543
  return mustLoadOnDemand;
2850
2544
  }
2851
2545
  }, {
2852
2546
  key: "selectInitialNodes",
2853
2547
  value: function selectInitialNodes(nodeIds) {
2854
2548
  var selectCount = 0;
2855
-
2856
2549
  var _iterator2 = _createForOfIteratorHelper(nodeIds),
2857
- _step2;
2858
-
2550
+ _step2;
2859
2551
  try {
2860
2552
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
2861
2553
  var nodeId = _step2.value;
2862
2554
  var node = this.treeWidget.getNodeById(nodeId);
2863
-
2864
2555
  if (node) {
2865
2556
  selectCount += 1;
2866
2557
  this.treeWidget.selectNodeHandler.addToSelection(node);
@@ -2871,7 +2562,6 @@ var jqtree = (function (exports) {
2871
2562
  } finally {
2872
2563
  _iterator2.f();
2873
2564
  }
2874
-
2875
2565
  return selectCount !== 0;
2876
2566
  }
2877
2567
  }, {
@@ -2887,22 +2577,16 @@ var jqtree = (function (exports) {
2887
2577
  key: "doSetInitialStateOnDemand",
2888
2578
  value: function doSetInitialStateOnDemand(nodeIdsParam, selectedNodes, cbFinished) {
2889
2579
  var _this2 = this;
2890
-
2891
2580
  var loadingCount = 0;
2892
2581
  var nodeIds = nodeIdsParam;
2893
-
2894
2582
  var openNodes = function openNodes() {
2895
2583
  var newNodesIds = [];
2896
-
2897
2584
  var _iterator3 = _createForOfIteratorHelper(nodeIds),
2898
- _step3;
2899
-
2585
+ _step3;
2900
2586
  try {
2901
2587
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
2902
2588
  var nodeId = _step3.value;
2903
-
2904
2589
  var node = _this2.treeWidget.getNodeById(nodeId);
2905
-
2906
2590
  if (!node) {
2907
2591
  newNodesIds.push(nodeId);
2908
2592
  } else {
@@ -2920,27 +2604,21 @@ var jqtree = (function (exports) {
2920
2604
  } finally {
2921
2605
  _iterator3.f();
2922
2606
  }
2923
-
2924
2607
  nodeIds = newNodesIds;
2925
-
2926
2608
  if (_this2.selectInitialNodes(selectedNodes)) {
2927
2609
  _this2.treeWidget._refreshElements(null);
2928
2610
  }
2929
-
2930
2611
  if (loadingCount === 0) {
2931
2612
  cbFinished();
2932
2613
  }
2933
2614
  };
2934
-
2935
2615
  var loadAndOpenNode = function loadAndOpenNode(node) {
2936
2616
  loadingCount += 1;
2937
-
2938
2617
  _this2.treeWidget._openNode(node, false, function () {
2939
2618
  loadingCount -= 1;
2940
2619
  openNodes();
2941
2620
  });
2942
2621
  };
2943
-
2944
2622
  openNodes();
2945
2623
  }
2946
2624
  }, {
@@ -2968,41 +2646,30 @@ var jqtree = (function (exports) {
2968
2646
  } catch (error) {
2969
2647
  return false;
2970
2648
  }
2971
-
2972
2649
  return true;
2973
2650
  }
2974
2651
  };
2975
-
2976
2652
  if (this._supportsLocalStorage == null) {
2977
2653
  this._supportsLocalStorage = testSupport();
2978
2654
  }
2979
-
2980
2655
  return this._supportsLocalStorage;
2981
2656
  }
2982
2657
  }]);
2983
-
2984
2658
  return SaveStateHandler;
2985
2659
  }();
2986
2660
 
2987
2661
  var ScrollHandler = /*#__PURE__*/function () {
2988
2662
  function ScrollHandler(treeWidget) {
2989
2663
  _classCallCheck(this, ScrollHandler);
2990
-
2991
2664
  _defineProperty(this, "treeWidget", void 0);
2992
-
2993
2665
  _defineProperty(this, "previousTop", void 0);
2994
-
2995
2666
  _defineProperty(this, "isInitialized", void 0);
2996
-
2997
2667
  _defineProperty(this, "$scrollParent", void 0);
2998
-
2999
2668
  _defineProperty(this, "scrollParentTop", void 0);
3000
-
3001
2669
  this.treeWidget = treeWidget;
3002
2670
  this.previousTop = -1;
3003
2671
  this.isInitialized = false;
3004
2672
  }
3005
-
3006
2673
  _createClass(ScrollHandler, [{
3007
2674
  key: "checkScrolling",
3008
2675
  value: function checkScrolling() {
@@ -3014,8 +2681,7 @@ var jqtree = (function (exports) {
3014
2681
  key: "scrollToY",
3015
2682
  value: function scrollToY(top) {
3016
2683
  this.ensureInit();
3017
-
3018
- if (this.$scrollParent) {
2684
+ if (this.$scrollParent && this.$scrollParent[0]) {
3019
2685
  this.$scrollParent[0].scrollTop = top;
3020
2686
  } else {
3021
2687
  var offset = this.treeWidget.$el.offset();
@@ -3032,7 +2698,6 @@ var jqtree = (function (exports) {
3032
2698
  var elementTop;
3033
2699
  var viewTop;
3034
2700
  var elHeight = $element.height() || 0;
3035
-
3036
2701
  if (this.$scrollParent) {
3037
2702
  viewTop = 0;
3038
2703
  viewBottom = this.$scrollParent.height() || 0;
@@ -3044,13 +2709,10 @@ var jqtree = (function (exports) {
3044
2709
  viewTop = jQuery(window).scrollTop() || 0;
3045
2710
  var windowHeight = jQuery(window).height() || 0;
3046
2711
  viewBottom = viewTop + windowHeight;
3047
-
3048
2712
  var _offset = $element.offset();
3049
-
3050
2713
  elementTop = _offset ? _offset.top : 0;
3051
2714
  elementBottom = elementTop + elHeight;
3052
2715
  }
3053
-
3054
2716
  return elementBottom <= viewBottom && elementTop >= viewTop;
3055
2717
  }
3056
2718
  }, {
@@ -3065,77 +2727,55 @@ var jqtree = (function (exports) {
3065
2727
  }, {
3066
2728
  key: "initScrollParent",
3067
2729
  value: function initScrollParent() {
3068
- var _this = this;
3069
-
2730
+ var _this = this,
2731
+ _$scrollParent$;
3070
2732
  var getParentWithOverflow = function getParentWithOverflow() {
3071
2733
  var cssAttributes = ["overflow", "overflow-y"];
3072
-
3073
2734
  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
- }
2735
+ for (var _i = 0, _cssAttributes = cssAttributes; _i < _cssAttributes.length; _i++) {
2736
+ var attr = _cssAttributes[_i];
2737
+ var overflowValue = $el.css(attr);
2738
+ if (overflowValue === "auto" || overflowValue === "scroll") {
2739
+ return true;
3085
2740
  }
3086
- } catch (err) {
3087
- _iterator.e(err);
3088
- } finally {
3089
- _iterator.f();
3090
2741
  }
3091
-
3092
2742
  return false;
3093
2743
  };
3094
-
3095
2744
  if (hasOverFlow(_this.treeWidget.$el)) {
3096
2745
  return _this.treeWidget.$el;
3097
2746
  }
3098
-
3099
- var _iterator2 = _createForOfIteratorHelper(_this.treeWidget.$el.parents().get()),
3100
- _step2;
3101
-
2747
+ var _iterator = _createForOfIteratorHelper(_this.treeWidget.$el.parents().get()),
2748
+ _step;
3102
2749
  try {
3103
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
3104
- var el = _step2.value;
2750
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
2751
+ var el = _step.value;
3105
2752
  var $el = jQuery(el);
3106
-
3107
2753
  if (hasOverFlow($el)) {
3108
2754
  return $el;
3109
2755
  }
3110
2756
  }
3111
2757
  } catch (err) {
3112
- _iterator2.e(err);
2758
+ _iterator.e(err);
3113
2759
  } finally {
3114
- _iterator2.f();
2760
+ _iterator.f();
3115
2761
  }
3116
-
3117
2762
  return null;
3118
2763
  };
3119
-
3120
2764
  var setDocumentAsScrollParent = function setDocumentAsScrollParent() {
3121
2765
  _this.scrollParentTop = 0;
3122
2766
  _this.$scrollParent = null;
3123
2767
  };
3124
-
3125
2768
  if (this.treeWidget.$el.css("position") === "fixed") {
3126
2769
  setDocumentAsScrollParent();
3127
2770
  }
3128
-
3129
2771
  var $scrollParent = getParentWithOverflow();
3130
-
3131
- if ($scrollParent && $scrollParent.length && $scrollParent[0].tagName !== "HTML") {
2772
+ if ($scrollParent && $scrollParent.length && ((_$scrollParent$ = $scrollParent[0]) === null || _$scrollParent$ === void 0 ? void 0 : _$scrollParent$.tagName) !== "HTML") {
3132
2773
  this.$scrollParent = $scrollParent;
3133
2774
  var offset = this.$scrollParent.offset();
3134
2775
  this.scrollParentTop = offset ? offset.top : 0;
3135
2776
  } else {
3136
2777
  setDocumentAsScrollParent();
3137
2778
  }
3138
-
3139
2779
  this.isInitialized = true;
3140
2780
  }
3141
2781
  }, {
@@ -3149,13 +2789,10 @@ var jqtree = (function (exports) {
3149
2789
  key: "handleVerticalScrollingWithScrollParent",
3150
2790
  value: function handleVerticalScrollingWithScrollParent(area) {
3151
2791
  var scrollParent = this.$scrollParent && this.$scrollParent[0];
3152
-
3153
2792
  if (!scrollParent) {
3154
2793
  return;
3155
2794
  }
3156
-
3157
2795
  var distanceBottom = this.scrollParentTop + scrollParent.offsetHeight - area.bottom;
3158
-
3159
2796
  if (distanceBottom < 20) {
3160
2797
  scrollParent.scrollTop += 20;
3161
2798
  this.treeWidget.refreshHitAreas();
@@ -3171,12 +2808,10 @@ var jqtree = (function (exports) {
3171
2808
  value: function handleVerticalScrollingWithDocument(area) {
3172
2809
  var scrollTop = jQuery(document).scrollTop() || 0;
3173
2810
  var distanceTop = area.top - scrollTop;
3174
-
3175
2811
  if (distanceTop < 20) {
3176
2812
  jQuery(document).scrollTop(scrollTop - 20);
3177
2813
  } else {
3178
2814
  var windowHeight = jQuery(window).height() || 0;
3179
-
3180
2815
  if (windowHeight - (area.bottom - scrollTop) < 20) {
3181
2816
  jQuery(document).scrollTop(scrollTop + 20);
3182
2817
  }
@@ -3186,10 +2821,8 @@ var jqtree = (function (exports) {
3186
2821
  key: "checkVerticalScrolling",
3187
2822
  value: function checkVerticalScrolling() {
3188
2823
  var hoveredArea = this.treeWidget.dndHandler.hoveredArea;
3189
-
3190
2824
  if (hoveredArea && hoveredArea.top !== this.previousTop) {
3191
2825
  this.previousTop = hoveredArea.top;
3192
-
3193
2826
  if (this.$scrollParent) {
3194
2827
  this.handleVerticalScrollingWithScrollParent(hoveredArea);
3195
2828
  } else {
@@ -3201,11 +2834,9 @@ var jqtree = (function (exports) {
3201
2834
  key: "checkHorizontalScrolling",
3202
2835
  value: function checkHorizontalScrolling() {
3203
2836
  var positionInfo = this.treeWidget.dndHandler.positionInfo;
3204
-
3205
2837
  if (!positionInfo) {
3206
2838
  return;
3207
2839
  }
3208
-
3209
2840
  if (this.$scrollParent) {
3210
2841
  this.handleHorizontalScrollingWithParent(positionInfo);
3211
2842
  } else {
@@ -3218,22 +2849,21 @@ var jqtree = (function (exports) {
3218
2849
  if (positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
3219
2850
  return;
3220
2851
  }
3221
-
3222
2852
  var $scrollParent = this.$scrollParent;
3223
2853
  var scrollParentOffset = $scrollParent && $scrollParent.offset();
3224
-
3225
2854
  if (!($scrollParent && scrollParentOffset)) {
3226
2855
  return;
3227
2856
  }
3228
-
3229
2857
  var scrollParent = $scrollParent[0];
2858
+ if (!scrollParent) {
2859
+ return;
2860
+ }
3230
2861
  var canScrollRight = scrollParent.scrollLeft + scrollParent.clientWidth < scrollParent.scrollWidth;
3231
2862
  var canScrollLeft = scrollParent.scrollLeft > 0;
3232
2863
  var rightEdge = scrollParentOffset.left + scrollParent.clientWidth;
3233
2864
  var leftEdge = scrollParentOffset.left;
3234
2865
  var isNearRightEdge = positionInfo.pageX > rightEdge - 20;
3235
2866
  var isNearLeftEdge = positionInfo.pageX < leftEdge + 20;
3236
-
3237
2867
  if (isNearRightEdge && canScrollRight) {
3238
2868
  scrollParent.scrollLeft = Math.min(scrollParent.scrollLeft + 20, scrollParent.scrollWidth);
3239
2869
  } else if (isNearLeftEdge && canScrollLeft) {
@@ -3246,14 +2876,12 @@ var jqtree = (function (exports) {
3246
2876
  if (positionInfo.pageX === undefined || positionInfo.pageY === undefined) {
3247
2877
  return;
3248
2878
  }
3249
-
3250
2879
  var $document = jQuery(document);
3251
2880
  var scrollLeft = $document.scrollLeft() || 0;
3252
2881
  var windowWidth = jQuery(window).width() || 0;
3253
2882
  var canScrollLeft = scrollLeft > 0;
3254
2883
  var isNearRightEdge = positionInfo.pageX > windowWidth - 20;
3255
2884
  var isNearLeftEdge = positionInfo.pageX - scrollLeft < 20;
3256
-
3257
2885
  if (isNearRightEdge) {
3258
2886
  $document.scrollLeft(scrollLeft + 20);
3259
2887
  } else if (isNearLeftEdge && canScrollLeft) {
@@ -3261,32 +2889,25 @@ var jqtree = (function (exports) {
3261
2889
  }
3262
2890
  }
3263
2891
  }]);
3264
-
3265
2892
  return ScrollHandler;
3266
2893
  }();
3267
2894
 
3268
2895
  var SelectNodeHandler = /*#__PURE__*/function () {
3269
2896
  function SelectNodeHandler(treeWidget) {
3270
2897
  _classCallCheck(this, SelectNodeHandler);
3271
-
3272
2898
  _defineProperty(this, "treeWidget", void 0);
3273
-
3274
2899
  _defineProperty(this, "selectedNodes", void 0);
3275
-
3276
2900
  _defineProperty(this, "selectedSingleNode", void 0);
3277
-
3278
2901
  this.treeWidget = treeWidget;
3279
2902
  this.selectedNodes = new Set();
3280
2903
  this.clear();
3281
2904
  }
3282
-
3283
2905
  _createClass(SelectNodeHandler, [{
3284
2906
  key: "getSelectedNode",
3285
2907
  value: function getSelectedNode() {
3286
2908
  var selectedNodes = this.getSelectedNodes();
3287
-
3288
2909
  if (selectedNodes.length) {
3289
- return selectedNodes[0];
2910
+ return selectedNodes[0] || false;
3290
2911
  } else {
3291
2912
  return false;
3292
2913
  }
@@ -3295,14 +2916,12 @@ var jqtree = (function (exports) {
3295
2916
  key: "getSelectedNodes",
3296
2917
  value: function getSelectedNodes() {
3297
2918
  var _this = this;
3298
-
3299
2919
  if (this.selectedSingleNode) {
3300
2920
  return [this.selectedSingleNode];
3301
2921
  } else {
3302
2922
  var selectedNodes = [];
3303
2923
  this.selectedNodes.forEach(function (id) {
3304
2924
  var node = _this.treeWidget.getNodeById(id);
3305
-
3306
2925
  if (node) {
3307
2926
  selectedNodes.push(node);
3308
2927
  }
@@ -3321,17 +2940,14 @@ var jqtree = (function (exports) {
3321
2940
  }
3322
2941
  } else {
3323
2942
  var selectedNodes = [];
3324
-
3325
2943
  for (var id in this.selectedNodes) {
3326
2944
  if (Object.prototype.hasOwnProperty.call(this.selectedNodes, id)) {
3327
2945
  var node = this.treeWidget.getNodeById(id);
3328
-
3329
2946
  if (node && parent.isParentOf(node)) {
3330
2947
  selectedNodes.push(node);
3331
2948
  }
3332
2949
  }
3333
2950
  }
3334
-
3335
2951
  return selectedNodes;
3336
2952
  }
3337
2953
  }
@@ -3356,22 +2972,18 @@ var jqtree = (function (exports) {
3356
2972
  key: "removeFromSelection",
3357
2973
  value: function removeFromSelection(node) {
3358
2974
  var _this2 = this;
3359
-
3360
2975
  var includeChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
3361
-
3362
2976
  if (node.id == null) {
3363
2977
  if (this.selectedSingleNode && node.element === this.selectedSingleNode.element) {
3364
2978
  this.selectedSingleNode = null;
3365
2979
  }
3366
2980
  } else {
3367
2981
  this.selectedNodes["delete"](node.id);
3368
-
3369
2982
  if (includeChildren) {
3370
2983
  node.iterate(function () {
3371
2984
  if (node.id != null) {
3372
2985
  _this2.selectedNodes["delete"](node.id);
3373
2986
  }
3374
-
3375
2987
  return true;
3376
2988
  });
3377
2989
  }
@@ -3393,37 +3005,28 @@ var jqtree = (function (exports) {
3393
3005
  return Boolean(activeElement && activeElement.tagName === "SPAN" && this.treeWidget._containsElement(activeElement));
3394
3006
  }
3395
3007
  }]);
3396
-
3397
3008
  return SelectNodeHandler;
3398
3009
  }();
3399
3010
 
3400
3011
  var NodeElement = /*#__PURE__*/function () {
3401
3012
  function NodeElement(node, treeWidget) {
3402
3013
  _classCallCheck(this, NodeElement);
3403
-
3404
3014
  _defineProperty(this, "node", void 0);
3405
-
3406
3015
  _defineProperty(this, "$element", void 0);
3407
-
3408
3016
  _defineProperty(this, "treeWidget", void 0);
3409
-
3410
3017
  this.init(node, treeWidget);
3411
3018
  }
3412
-
3413
3019
  _createClass(NodeElement, [{
3414
3020
  key: "init",
3415
3021
  value: function init(node, treeWidget) {
3416
3022
  this.node = node;
3417
3023
  this.treeWidget = treeWidget;
3418
-
3419
3024
  if (!node.element) {
3420
3025
  var element = this.treeWidget.element.get(0);
3421
-
3422
3026
  if (element) {
3423
3027
  node.element = element;
3424
3028
  }
3425
3029
  }
3426
-
3427
3030
  if (node.element) {
3428
3031
  this.$element = jQuery(node.element);
3429
3032
  }
@@ -3441,13 +3044,11 @@ var jqtree = (function (exports) {
3441
3044
  key: "select",
3442
3045
  value: function select(mustSetFocus) {
3443
3046
  var _this$treeWidget$opti;
3444
-
3445
3047
  var $li = this.getLi();
3446
3048
  $li.addClass("jqtree-selected");
3447
- $li.attr("aria-selected", "true");
3448
3049
  var $span = this.getSpan();
3449
3050
  $span.attr("tabindex", (_this$treeWidget$opti = this.treeWidget.options.tabIndex) !== null && _this$treeWidget$opti !== void 0 ? _this$treeWidget$opti : null);
3450
-
3051
+ $span.attr("aria-selected", "true");
3451
3052
  if (mustSetFocus) {
3452
3053
  $span.trigger("focus");
3453
3054
  }
@@ -3457,10 +3058,10 @@ var jqtree = (function (exports) {
3457
3058
  value: function deselect() {
3458
3059
  var $li = this.getLi();
3459
3060
  $li.removeClass("jqtree-selected");
3460
- $li.attr("aria-selected", "false");
3461
3061
  var $span = this.getSpan();
3462
3062
  $span.removeAttr("tabindex");
3463
- $span.blur();
3063
+ $span.attr("aria-selected", "false");
3064
+ $span.trigger("blur");
3464
3065
  }
3465
3066
  }, {
3466
3067
  key: "getUl",
@@ -3483,61 +3084,48 @@ var jqtree = (function (exports) {
3483
3084
  return position === Position.Inside;
3484
3085
  }
3485
3086
  }]);
3486
-
3487
3087
  return NodeElement;
3488
3088
  }();
3489
3089
  var FolderElement = /*#__PURE__*/function (_NodeElement) {
3490
3090
  _inherits(FolderElement, _NodeElement);
3491
-
3492
3091
  var _super = _createSuper(FolderElement);
3493
-
3494
3092
  function FolderElement() {
3495
3093
  _classCallCheck(this, FolderElement);
3496
-
3497
3094
  return _super.apply(this, arguments);
3498
3095
  }
3499
-
3500
3096
  _createClass(FolderElement, [{
3501
3097
  key: "open",
3502
3098
  value: function open(onFinished) {
3503
3099
  var _this = this;
3504
-
3505
3100
  var slide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
3506
3101
  var animationSpeed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "fast";
3507
-
3508
3102
  if (this.node.is_open) {
3509
3103
  return;
3510
3104
  }
3511
-
3512
3105
  this.node.is_open = true;
3513
3106
  var $button = this.getButton();
3514
3107
  $button.removeClass("jqtree-closed");
3515
3108
  $button.html("");
3516
3109
  var buttonEl = $button.get(0);
3517
-
3518
3110
  if (buttonEl) {
3519
- var icon = this.treeWidget.renderer.openedIconElement.cloneNode(true);
3520
- buttonEl.appendChild(icon);
3111
+ var openedIconElement = this.treeWidget.renderer.openedIconElement;
3112
+ if (openedIconElement) {
3113
+ var icon = openedIconElement.cloneNode(true);
3114
+ buttonEl.appendChild(icon);
3115
+ }
3521
3116
  }
3522
-
3523
3117
  var doOpen = function doOpen() {
3524
3118
  var $li = _this.getLi();
3525
-
3526
3119
  $li.removeClass("jqtree-closed");
3527
-
3528
- var $span = _this.getSpan();
3529
-
3530
- $span.attr("aria-expanded", "true");
3531
-
3120
+ var $titleSpan = _this.getSpan();
3121
+ $titleSpan.attr("aria-expanded", "true");
3532
3122
  if (onFinished) {
3533
3123
  onFinished(_this.node);
3534
3124
  }
3535
-
3536
3125
  _this.treeWidget._triggerEvent("tree.open", {
3537
3126
  node: _this.node
3538
3127
  });
3539
3128
  };
3540
-
3541
3129
  if (slide) {
3542
3130
  this.getUl().slideDown(animationSpeed, doOpen);
3543
3131
  } else {
@@ -3549,39 +3137,32 @@ var jqtree = (function (exports) {
3549
3137
  key: "close",
3550
3138
  value: function close() {
3551
3139
  var _this2 = this;
3552
-
3553
3140
  var slide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
3554
3141
  var animationSpeed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "fast";
3555
-
3556
3142
  if (!this.node.is_open) {
3557
3143
  return;
3558
3144
  }
3559
-
3560
3145
  this.node.is_open = false;
3561
3146
  var $button = this.getButton();
3562
3147
  $button.addClass("jqtree-closed");
3563
3148
  $button.html("");
3564
3149
  var buttonEl = $button.get(0);
3565
-
3566
3150
  if (buttonEl) {
3567
- var icon = this.treeWidget.renderer.closedIconElement.cloneNode(true);
3568
- buttonEl.appendChild(icon);
3151
+ var closedIconElement = this.treeWidget.renderer.closedIconElement;
3152
+ if (closedIconElement) {
3153
+ var icon = closedIconElement.cloneNode(true);
3154
+ buttonEl.appendChild(icon);
3155
+ }
3569
3156
  }
3570
-
3571
3157
  var doClose = function doClose() {
3572
3158
  var $li = _this2.getLi();
3573
-
3574
3159
  $li.addClass("jqtree-closed");
3575
-
3576
- var $span = _this2.getSpan();
3577
-
3578
- $span.attr("aria-expanded", "false");
3579
-
3160
+ var $titleSpan = _this2.getSpan();
3161
+ $titleSpan.attr("aria-expanded", "false");
3580
3162
  _this2.treeWidget._triggerEvent("tree.close", {
3581
3163
  node: _this2.node
3582
3164
  });
3583
3165
  };
3584
-
3585
3166
  if (slide) {
3586
3167
  this.getUl().slideUp(animationSpeed, doClose);
3587
3168
  } else {
@@ -3600,15 +3181,12 @@ var jqtree = (function (exports) {
3600
3181
  return this.$element.children(".jqtree-element").find("a.jqtree-toggler");
3601
3182
  }
3602
3183
  }]);
3603
-
3604
3184
  return FolderElement;
3605
3185
  }(NodeElement);
3606
3186
  var BorderDropHint = /*#__PURE__*/function () {
3607
3187
  function BorderDropHint($element, scrollLeft) {
3608
3188
  _classCallCheck(this, BorderDropHint);
3609
-
3610
3189
  _defineProperty(this, "$hint", void 0);
3611
-
3612
3190
  var $div = $element.children(".jqtree-element");
3613
3191
  var elWidth = $element.width() || 0;
3614
3192
  var width = Math.max(elWidth + scrollLeft - 4, 0);
@@ -3621,31 +3199,23 @@ var jqtree = (function (exports) {
3621
3199
  height: height
3622
3200
  });
3623
3201
  }
3624
-
3625
3202
  _createClass(BorderDropHint, [{
3626
3203
  key: "remove",
3627
3204
  value: function remove() {
3628
3205
  this.$hint.remove();
3629
3206
  }
3630
3207
  }]);
3631
-
3632
3208
  return BorderDropHint;
3633
3209
  }();
3634
-
3635
3210
  var GhostDropHint = /*#__PURE__*/function () {
3636
3211
  function GhostDropHint(node, $element, position) {
3637
3212
  _classCallCheck(this, GhostDropHint);
3638
-
3639
3213
  _defineProperty(this, "$element", void 0);
3640
-
3641
3214
  _defineProperty(this, "node", void 0);
3642
-
3643
3215
  _defineProperty(this, "$ghost", void 0);
3644
-
3645
3216
  this.$element = $element;
3646
3217
  this.node = node;
3647
3218
  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
3219
  if (position === Position.After) {
3650
3220
  this.moveAfter();
3651
3221
  } else if (position === Position.Before) {
@@ -3658,7 +3228,6 @@ var jqtree = (function (exports) {
3658
3228
  }
3659
3229
  }
3660
3230
  }
3661
-
3662
3231
  _createClass(GhostDropHint, [{
3663
3232
  key: "remove",
3664
3233
  value: function remove() {
@@ -3677,8 +3246,8 @@ var jqtree = (function (exports) {
3677
3246
  }, {
3678
3247
  key: "moveInsideOpenFolder",
3679
3248
  value: function moveInsideOpenFolder() {
3680
- var childElement = this.node.children[0].element;
3681
-
3249
+ var _this$node$children$;
3250
+ var childElement = (_this$node$children$ = this.node.children[0]) === null || _this$node$children$ === void 0 ? void 0 : _this$node$children$.element;
3682
3251
  if (childElement) {
3683
3252
  jQuery(childElement).before(this.$ghost);
3684
3253
  }
@@ -3690,7 +3259,6 @@ var jqtree = (function (exports) {
3690
3259
  this.$ghost.addClass("jqtree-inside");
3691
3260
  }
3692
3261
  }]);
3693
-
3694
3262
  return GhostDropHint;
3695
3263
  }();
3696
3264
 
@@ -3698,67 +3266,45 @@ var jqtree = (function (exports) {
3698
3266
  var PARAM_IS_EMPTY = "Parameter is empty: ";
3699
3267
  var JqTreeWidget = /*#__PURE__*/function (_MouseWidget) {
3700
3268
  _inherits(JqTreeWidget, _MouseWidget);
3701
-
3702
3269
  var _super = _createSuper(JqTreeWidget);
3703
-
3704
3270
  function JqTreeWidget() {
3705
3271
  var _this;
3706
-
3707
3272
  _classCallCheck(this, JqTreeWidget);
3708
-
3709
3273
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3710
3274
  args[_key] = arguments[_key];
3711
3275
  }
3712
-
3713
3276
  _this = _super.call.apply(_super, [this].concat(args));
3714
-
3715
3277
  _defineProperty(_assertThisInitialized(_this), "element", void 0);
3716
-
3717
3278
  _defineProperty(_assertThisInitialized(_this), "tree", void 0);
3718
-
3719
3279
  _defineProperty(_assertThisInitialized(_this), "dndHandler", void 0);
3720
-
3721
3280
  _defineProperty(_assertThisInitialized(_this), "renderer", void 0);
3722
-
3723
3281
  _defineProperty(_assertThisInitialized(_this), "dataLoader", void 0);
3724
-
3725
3282
  _defineProperty(_assertThisInitialized(_this), "scrollHandler", void 0);
3726
-
3727
3283
  _defineProperty(_assertThisInitialized(_this), "selectNodeHandler", void 0);
3728
-
3729
3284
  _defineProperty(_assertThisInitialized(_this), "isInitialized", void 0);
3730
-
3731
3285
  _defineProperty(_assertThisInitialized(_this), "saveStateHandler", void 0);
3732
-
3733
3286
  _defineProperty(_assertThisInitialized(_this), "keyHandler", void 0);
3734
-
3735
3287
  _defineProperty(_assertThisInitialized(_this), "handleClick", function (e) {
3736
3288
  var clickTarget = _this.getClickTarget(e.target);
3737
-
3738
3289
  if (clickTarget) {
3739
3290
  if (clickTarget.type === "button") {
3740
3291
  _this.toggle(clickTarget.node, _this.options.slide);
3741
-
3742
3292
  e.preventDefault();
3743
3293
  e.stopPropagation();
3744
3294
  } else if (clickTarget.type === "label") {
3745
3295
  var _node2 = clickTarget.node;
3746
-
3747
3296
  var event = _this._triggerEvent("tree.click", {
3748
3297
  node: _node2,
3749
3298
  click_event: e
3750
3299
  });
3751
-
3752
3300
  if (!event.isDefaultPrevented()) {
3753
3301
  _this.doSelectNode(_node2);
3754
3302
  }
3755
3303
  }
3756
3304
  }
3757
3305
  });
3758
-
3759
3306
  _defineProperty(_assertThisInitialized(_this), "handleDblclick", function (e) {
3760
3307
  var clickTarget = _this.getClickTarget(e.target);
3761
-
3762
3308
  if ((clickTarget === null || clickTarget === void 0 ? void 0 : clickTarget.type) === "label") {
3763
3309
  _this._triggerEvent("tree.dblclick", {
3764
3310
  node: clickTarget.node,
@@ -3766,49 +3312,37 @@ var jqtree = (function (exports) {
3766
3312
  });
3767
3313
  }
3768
3314
  });
3769
-
3770
3315
  _defineProperty(_assertThisInitialized(_this), "handleContextmenu", function (e) {
3771
3316
  var $div = jQuery(e.target).closest("ul.jqtree-tree .jqtree-element");
3772
-
3773
3317
  if ($div.length) {
3774
3318
  var _node3 = _this.getNode($div);
3775
-
3776
3319
  if (_node3) {
3777
3320
  e.preventDefault();
3778
3321
  e.stopPropagation();
3779
-
3780
3322
  _this._triggerEvent("tree.contextmenu", {
3781
3323
  node: _node3,
3782
3324
  click_event: e
3783
3325
  });
3784
-
3785
3326
  return false;
3786
3327
  }
3787
3328
  }
3788
-
3789
3329
  return null;
3790
3330
  });
3791
-
3792
3331
  return _this;
3793
3332
  }
3794
-
3795
3333
  _createClass(JqTreeWidget, [{
3796
3334
  key: "toggle",
3797
3335
  value: function toggle(node) {
3798
3336
  var slideParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
3799
-
3800
3337
  if (!node) {
3801
3338
  throw Error(NODE_PARAM_IS_EMPTY);
3802
3339
  }
3803
-
3804
3340
  var slide = slideParam !== null && slideParam !== void 0 ? slideParam : this.options.slide;
3805
-
3806
3341
  if (node.is_open) {
3807
3342
  this.closeNode(node, slide);
3808
3343
  } else {
3809
3344
  this.openNode(node, slide);
3810
3345
  }
3811
-
3812
3346
  return this.element;
3813
3347
  }
3814
3348
  }, {
@@ -3838,6 +3372,7 @@ var jqtree = (function (exports) {
3838
3372
  this.doLoadData(data, parentNode);
3839
3373
  return this.element;
3840
3374
  }
3375
+
3841
3376
  /*
3842
3377
  signatures:
3843
3378
  - loadDataFromUrl(url, parent_node=null, on_finished=null)
@@ -3851,7 +3386,6 @@ var jqtree = (function (exports) {
3851
3386
  loadDataFromUrl(null, function() { console.log('finished'); });
3852
3387
  loadDataFromUrl(node1, function() { console.log('finished'); });
3853
3388
  */
3854
-
3855
3389
  }, {
3856
3390
  key: "loadDataFromUrl",
3857
3391
  value: function loadDataFromUrl(param1, param2, param3) {
@@ -3862,7 +3396,6 @@ var jqtree = (function (exports) {
3862
3396
  // first parameter is not url
3863
3397
  this.doLoadDataFromUrl(null, param1, param2);
3864
3398
  }
3865
-
3866
3399
  return this.element;
3867
3400
  }
3868
3401
  }, {
@@ -3875,7 +3408,6 @@ var jqtree = (function (exports) {
3875
3408
  key: "refresh",
3876
3409
  value: function refresh() {
3877
3410
  this._refreshElements(null);
3878
-
3879
3411
  return this.element;
3880
3412
  }
3881
3413
  }, {
@@ -3912,15 +3444,12 @@ var jqtree = (function (exports) {
3912
3444
  key: "openNode",
3913
3445
  value: function openNode(node, param1, param2) {
3914
3446
  var _this2 = this;
3915
-
3916
3447
  if (!node) {
3917
3448
  throw Error(NODE_PARAM_IS_EMPTY);
3918
3449
  }
3919
-
3920
3450
  var parseParams = function parseParams() {
3921
3451
  var onFinished;
3922
3452
  var slide;
3923
-
3924
3453
  if (isFunction(param1)) {
3925
3454
  onFinished = param1;
3926
3455
  slide = null;
@@ -3928,23 +3457,17 @@ var jqtree = (function (exports) {
3928
3457
  slide = param1;
3929
3458
  onFinished = param2;
3930
3459
  }
3931
-
3932
3460
  if (slide == null) {
3933
3461
  var _this2$options$slide;
3934
-
3935
3462
  slide = (_this2$options$slide = _this2.options.slide) !== null && _this2$options$slide !== void 0 ? _this2$options$slide : false;
3936
3463
  }
3937
-
3938
3464
  return [slide, onFinished];
3939
3465
  };
3940
-
3941
3466
  var _parseParams = parseParams(),
3942
- _parseParams2 = _slicedToArray(_parseParams, 2),
3943
- slide = _parseParams2[0],
3944
- onFinished = _parseParams2[1];
3945
-
3467
+ _parseParams2 = _slicedToArray(_parseParams, 2),
3468
+ slide = _parseParams2[0],
3469
+ onFinished = _parseParams2[1];
3946
3470
  this._openNode(node, slide, onFinished);
3947
-
3948
3471
  return this.element;
3949
3472
  }
3950
3473
  }, {
@@ -3953,14 +3476,11 @@ var jqtree = (function (exports) {
3953
3476
  if (!node) {
3954
3477
  throw Error(NODE_PARAM_IS_EMPTY);
3955
3478
  }
3956
-
3957
3479
  var slide = slideParam !== null && slideParam !== void 0 ? slideParam : this.options.slide;
3958
-
3959
3480
  if (node.isFolder() || node.isEmptyFolder) {
3960
3481
  new FolderElement(node, this).close(slide, this.options.animationSpeed);
3961
3482
  this.saveState();
3962
3483
  }
3963
-
3964
3484
  return this.element;
3965
3485
  }
3966
3486
  }, {
@@ -3978,11 +3498,9 @@ var jqtree = (function (exports) {
3978
3498
  key: "addNodeAfter",
3979
3499
  value: function addNodeAfter(newNodeInfo, existingNode) {
3980
3500
  var newNode = existingNode.addAfter(newNodeInfo);
3981
-
3982
3501
  if (newNode) {
3983
3502
  this._refreshElements(existingNode.parent);
3984
3503
  }
3985
-
3986
3504
  return newNode;
3987
3505
  }
3988
3506
  }, {
@@ -3991,13 +3509,10 @@ var jqtree = (function (exports) {
3991
3509
  if (!existingNode) {
3992
3510
  throw Error(PARAM_IS_EMPTY + "existingNode");
3993
3511
  }
3994
-
3995
3512
  var newNode = existingNode.addBefore(newNodeInfo);
3996
-
3997
3513
  if (newNode) {
3998
3514
  this._refreshElements(existingNode.parent);
3999
3515
  }
4000
-
4001
3516
  return newNode;
4002
3517
  }
4003
3518
  }, {
@@ -4006,13 +3521,10 @@ var jqtree = (function (exports) {
4006
3521
  if (!existingNode) {
4007
3522
  throw Error(PARAM_IS_EMPTY + "existingNode");
4008
3523
  }
4009
-
4010
3524
  var newNode = existingNode.addParent(newNodeInfo);
4011
-
4012
3525
  if (newNode) {
4013
3526
  this._refreshElements(newNode.parent);
4014
3527
  }
4015
-
4016
3528
  return newNode;
4017
3529
  }
4018
3530
  }, {
@@ -4021,18 +3533,14 @@ var jqtree = (function (exports) {
4021
3533
  if (!node) {
4022
3534
  throw Error(NODE_PARAM_IS_EMPTY);
4023
3535
  }
4024
-
4025
3536
  if (!node.parent) {
4026
3537
  throw Error("Node has no parent");
4027
3538
  }
4028
-
4029
3539
  this.selectNodeHandler.removeFromSelection(node, true); // including children
4030
3540
 
4031
3541
  var parent = node.parent;
4032
3542
  node.remove();
4033
-
4034
3543
  this._refreshElements(parent);
4035
-
4036
3544
  return this.element;
4037
3545
  }
4038
3546
  }, {
@@ -4040,9 +3548,7 @@ var jqtree = (function (exports) {
4040
3548
  value: function appendNode(newNodeInfo, parentNodeParam) {
4041
3549
  var parentNode = parentNodeParam || this.tree;
4042
3550
  var node = parentNode.append(newNodeInfo);
4043
-
4044
3551
  this._refreshElements(parentNode);
4045
-
4046
3552
  return node;
4047
3553
  }
4048
3554
  }, {
@@ -4050,9 +3556,7 @@ var jqtree = (function (exports) {
4050
3556
  value: function prependNode(newNodeInfo, parentNodeParam) {
4051
3557
  var parentNode = parentNodeParam !== null && parentNodeParam !== void 0 ? parentNodeParam : this.tree;
4052
3558
  var node = parentNode.prepend(newNodeInfo);
4053
-
4054
3559
  this._refreshElements(parentNode);
4055
-
4056
3560
  return node;
4057
3561
  }
4058
3562
  }, {
@@ -4061,36 +3565,27 @@ var jqtree = (function (exports) {
4061
3565
  if (!node) {
4062
3566
  throw Error(NODE_PARAM_IS_EMPTY);
4063
3567
  }
4064
-
4065
3568
  var idIsChanged = _typeof(data) === "object" && data.id && data.id !== node.id;
4066
-
4067
3569
  if (idIsChanged) {
4068
3570
  this.tree.removeNodeFromIndex(node);
4069
3571
  }
4070
-
4071
3572
  node.setData(data);
4072
-
4073
3573
  if (idIsChanged) {
4074
3574
  this.tree.addNodeToIndex(node);
4075
3575
  }
4076
-
4077
3576
  if (_typeof(data) === "object" && data["children"] && data["children"] instanceof Array) {
4078
3577
  node.removeChildren();
4079
-
4080
3578
  if (data.children.length) {
4081
3579
  node.loadFromData(data.children);
4082
3580
  }
4083
3581
  }
4084
-
4085
3582
  this._refreshElements(node);
4086
-
4087
3583
  return this.element;
4088
3584
  }
4089
3585
  }, {
4090
3586
  key: "isSelectedNodeInSubtree",
4091
3587
  value: function isSelectedNodeInSubtree(subtree) {
4092
3588
  var selectedNode = this.getSelectedNode();
4093
-
4094
3589
  if (!selectedNode) {
4095
3590
  return false;
4096
3591
  } else {
@@ -4103,19 +3598,14 @@ var jqtree = (function (exports) {
4103
3598
  if (!node) {
4104
3599
  throw Error(NODE_PARAM_IS_EMPTY);
4105
3600
  }
4106
-
4107
3601
  if (!targetNode) {
4108
3602
  throw Error(PARAM_IS_EMPTY + "targetNode");
4109
3603
  }
4110
-
4111
3604
  var positionIndex = getPosition(position);
4112
-
4113
3605
  if (positionIndex !== undefined) {
4114
3606
  this.tree.moveNode(node, targetNode, positionIndex);
4115
-
4116
3607
  this._refreshElements(null);
4117
3608
  }
4118
-
4119
3609
  return this.element;
4120
3610
  }
4121
3611
  }, {
@@ -4129,11 +3619,8 @@ var jqtree = (function (exports) {
4129
3619
  if (!node) {
4130
3620
  throw Error(NODE_PARAM_IS_EMPTY);
4131
3621
  }
4132
-
4133
3622
  this.selectNodeHandler.addToSelection(node);
4134
-
4135
3623
  this._getNodeElementForNode(node).select(mustSetFocus === undefined ? true : mustSetFocus);
4136
-
4137
3624
  this.saveState();
4138
3625
  return this.element;
4139
3626
  }
@@ -4148,7 +3635,6 @@ var jqtree = (function (exports) {
4148
3635
  if (!node) {
4149
3636
  throw Error(NODE_PARAM_IS_EMPTY);
4150
3637
  }
4151
-
4152
3638
  return this.selectNodeHandler.isNodeSelected(node);
4153
3639
  }
4154
3640
  }, {
@@ -4157,11 +3643,8 @@ var jqtree = (function (exports) {
4157
3643
  if (!node) {
4158
3644
  throw Error(NODE_PARAM_IS_EMPTY);
4159
3645
  }
4160
-
4161
3646
  this.selectNodeHandler.removeFromSelection(node);
4162
-
4163
3647
  this._getNodeElementForNode(node).deselect();
4164
-
4165
3648
  this.saveState();
4166
3649
  return this.element;
4167
3650
  }
@@ -4171,7 +3654,6 @@ var jqtree = (function (exports) {
4171
3654
  if (!node) {
4172
3655
  throw Error(NODE_PARAM_IS_EMPTY);
4173
3656
  }
4174
-
4175
3657
  var nodeOffset = jQuery(node.element).offset();
4176
3658
  var nodeTop = nodeOffset ? nodeOffset.top : 0;
4177
3659
  var treeOffset = this.$el.offset();
@@ -4189,9 +3671,7 @@ var jqtree = (function (exports) {
4189
3671
  key: "setState",
4190
3672
  value: function setState(state) {
4191
3673
  this.saveStateHandler.setInitialState(state);
4192
-
4193
3674
  this._refreshElements(null);
4194
-
4195
3675
  return this.element;
4196
3676
  }
4197
3677
  }, {
@@ -4204,22 +3684,18 @@ var jqtree = (function (exports) {
4204
3684
  key: "moveDown",
4205
3685
  value: function moveDown() {
4206
3686
  var selectedNode = this.getSelectedNode();
4207
-
4208
3687
  if (selectedNode) {
4209
3688
  this.keyHandler.moveDown(selectedNode);
4210
3689
  }
4211
-
4212
3690
  return this.element;
4213
3691
  }
4214
3692
  }, {
4215
3693
  key: "moveUp",
4216
3694
  value: function moveUp() {
4217
3695
  var selectedNode = this.getSelectedNode();
4218
-
4219
3696
  if (selectedNode) {
4220
3697
  this.keyHandler.moveUp(selectedNode);
4221
3698
  }
4222
-
4223
3699
  return this.element;
4224
3700
  }
4225
3701
  }, {
@@ -4238,51 +3714,43 @@ var jqtree = (function (exports) {
4238
3714
  key: "_openNode",
4239
3715
  value: function _openNode(node) {
4240
3716
  var _this3 = this;
4241
-
4242
3717
  var slide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
4243
3718
  var onFinished = arguments.length > 2 ? arguments[2] : undefined;
4244
-
4245
3719
  var doOpenNode = function doOpenNode(_node, _slide, _onFinished) {
4246
3720
  var folderElement = new FolderElement(_node, _this3);
4247
3721
  folderElement.open(_onFinished, _slide, _this3.options.animationSpeed);
4248
3722
  };
4249
-
4250
3723
  if (node.isFolder() || node.isEmptyFolder) {
4251
3724
  if (node.load_on_demand) {
4252
3725
  this.loadFolderOnDemand(node, slide, onFinished);
4253
3726
  } else {
4254
3727
  var parent = node.parent;
4255
-
4256
3728
  while (parent) {
4257
3729
  // nb: do not open root element
4258
3730
  if (parent.parent) {
4259
3731
  doOpenNode(parent, false, null);
4260
3732
  }
4261
-
4262
3733
  parent = parent.parent;
4263
3734
  }
4264
-
4265
3735
  doOpenNode(node, slide, onFinished);
4266
3736
  this.saveState();
4267
3737
  }
4268
3738
  }
4269
3739
  }
3740
+
4270
3741
  /*
4271
3742
  Redraw the tree or part of the tree.
4272
3743
  from_node: redraw this subtree
4273
3744
  */
4274
-
4275
3745
  }, {
4276
3746
  key: "_refreshElements",
4277
3747
  value: function _refreshElements(fromNode) {
4278
3748
  var mustSetFocus = this.selectNodeHandler.isFocusOnTree();
4279
3749
  var mustSelect = fromNode ? this.isSelectedNodeInSubtree(fromNode) : false;
4280
3750
  this.renderer.render(fromNode);
4281
-
4282
3751
  if (mustSelect) {
4283
3752
  this.selectCurrentNode(mustSetFocus);
4284
3753
  }
4285
-
4286
3754
  this._triggerEvent("tree.refresh");
4287
3755
  }
4288
3756
  }, {
@@ -4298,7 +3766,6 @@ var jqtree = (function (exports) {
4298
3766
  key: "_getNodeElement",
4299
3767
  value: function _getNodeElement($element) {
4300
3768
  var node = this.getNode($element);
4301
-
4302
3769
  if (node) {
4303
3770
  return this._getNodeElementForNode(node);
4304
3771
  } else {
@@ -4320,15 +3787,12 @@ var jqtree = (function (exports) {
4320
3787
  key: "init",
4321
3788
  value: function init() {
4322
3789
  _get(_getPrototypeOf(JqTreeWidget.prototype), "init", this).call(this);
4323
-
4324
3790
  this.element = this.$el;
4325
3791
  this.isInitialized = false;
4326
3792
  this.options.rtl = this.getRtlOption();
4327
-
4328
3793
  if (this.options.closedIcon == null) {
4329
3794
  this.options.closedIcon = this.getDefaultClosedIcon();
4330
3795
  }
4331
-
4332
3796
  this.renderer = new ElementsRenderer(this);
4333
3797
  this.dataLoader = new DataLoader(this);
4334
3798
  this.saveStateHandler = new SaveStateHandler(this);
@@ -4339,7 +3803,6 @@ var jqtree = (function (exports) {
4339
3803
  this.initData();
4340
3804
  this.element.on("click", this.handleClick);
4341
3805
  this.element.on("dblclick", this.handleDblclick);
4342
-
4343
3806
  if (this.options.useContextMenu) {
4344
3807
  this.element.on("contextmenu", this.handleContextmenu);
4345
3808
  }
@@ -4351,7 +3814,6 @@ var jqtree = (function (exports) {
4351
3814
  this.element.off();
4352
3815
  this.keyHandler.deinit();
4353
3816
  this.tree = new Node({}, true);
4354
-
4355
3817
  _get(_getPrototypeOf(JqTreeWidget.prototype), "deinit", this).call(this);
4356
3818
  }
4357
3819
  }, {
@@ -4396,7 +3858,6 @@ var jqtree = (function (exports) {
4396
3858
  key: "getMouseDelay",
4397
3859
  value: function getMouseDelay() {
4398
3860
  var _this$options$startDn;
4399
-
4400
3861
  return (_this$options$startDn = this.options.startDndDelay) !== null && _this$options$startDn !== void 0 ? _this$options$startDn : 0;
4401
3862
  }
4402
3863
  }, {
@@ -4406,7 +3867,6 @@ var jqtree = (function (exports) {
4406
3867
  this.doLoadData(this.options.data, null);
4407
3868
  } else {
4408
3869
  var dataUrl = this.getDataUrlInfo(null);
4409
-
4410
3870
  if (dataUrl) {
4411
3871
  this.doLoadDataFromUrl(null, null, null);
4412
3872
  } else {
@@ -4418,9 +3878,7 @@ var jqtree = (function (exports) {
4418
3878
  key: "getDataUrlInfo",
4419
3879
  value: function getDataUrlInfo(node) {
4420
3880
  var _this4 = this;
4421
-
4422
3881
  var dataUrl = this.options.dataUrl || this.element.data("url");
4423
-
4424
3882
  var getUrlFromString = function getUrlFromString(url) {
4425
3883
  var urlInfo = {
4426
3884
  url: url
@@ -4428,7 +3886,6 @@ var jqtree = (function (exports) {
4428
3886
  setUrlInfoData(urlInfo);
4429
3887
  return urlInfo;
4430
3888
  };
4431
-
4432
3889
  var setUrlInfoData = function setUrlInfoData(urlInfo) {
4433
3890
  if (node !== null && node !== void 0 && node.id) {
4434
3891
  // Load on demand of a subtree; add node parameter
@@ -4439,7 +3896,6 @@ var jqtree = (function (exports) {
4439
3896
  } else {
4440
3897
  // Add selected_node parameter
4441
3898
  var selectedNodeId = _this4.getNodeIdToBeSelected();
4442
-
4443
3899
  if (selectedNodeId) {
4444
3900
  var _data = {
4445
3901
  selected_node: selectedNodeId
@@ -4448,7 +3904,6 @@ var jqtree = (function (exports) {
4448
3904
  }
4449
3905
  }
4450
3906
  };
4451
-
4452
3907
  if (typeof dataUrl === "function") {
4453
3908
  return dataUrl(node);
4454
3909
  } else if (typeof dataUrl === "string") {
@@ -4473,68 +3928,57 @@ var jqtree = (function (exports) {
4473
3928
  key: "initTree",
4474
3929
  value: function initTree(data) {
4475
3930
  var _this5 = this;
4476
-
4477
3931
  var doInit = function doInit() {
4478
3932
  if (!_this5.isInitialized) {
4479
3933
  _this5.isInitialized = true;
4480
-
4481
3934
  _this5._triggerEvent("tree.init");
4482
3935
  }
4483
3936
  };
4484
-
4485
3937
  if (!this.options.nodeClass) {
4486
3938
  return;
4487
3939
  }
4488
-
4489
3940
  this.tree = new this.options.nodeClass(null, true, this.options.nodeClass);
4490
3941
  this.selectNodeHandler.clear();
4491
3942
  this.tree.loadFromData(data);
4492
3943
  var mustLoadOnDemand = this.setInitialState();
4493
-
4494
3944
  this._refreshElements(null);
4495
-
4496
3945
  if (!mustLoadOnDemand) {
4497
3946
  doInit();
4498
3947
  } else {
4499
3948
  // Load data on demand and then init the tree
4500
3949
  this.setInitialStateOnDemand(doInit);
4501
3950
  }
4502
- } // Set initial state, either by restoring the state or auto-opening nodes
4503
- // result: must load nodes on demand?
3951
+ }
4504
3952
 
3953
+ // Set initial state, either by restoring the state or auto-opening nodes
3954
+ // result: must load nodes on demand?
4505
3955
  }, {
4506
3956
  key: "setInitialState",
4507
3957
  value: function setInitialState() {
4508
3958
  var _this6 = this;
4509
-
4510
3959
  var restoreState = function restoreState() {
4511
3960
  // result: is state restored, must load on demand?
4512
3961
  if (!_this6.options.saveState) {
4513
3962
  return [false, false];
4514
3963
  } else {
4515
3964
  var state = _this6.saveStateHandler.getStateFromStorage();
4516
-
4517
3965
  if (!state) {
4518
3966
  return [false, false];
4519
3967
  } else {
4520
- var _mustLoadOnDemand = _this6.saveStateHandler.setInitialState(state); // return true: the state is restored
4521
-
3968
+ var _mustLoadOnDemand = _this6.saveStateHandler.setInitialState(state);
4522
3969
 
3970
+ // return true: the state is restored
4523
3971
  return [true, _mustLoadOnDemand];
4524
3972
  }
4525
3973
  }
4526
3974
  };
4527
-
4528
3975
  var autoOpenNodes = function autoOpenNodes() {
4529
3976
  // result: must load on demand?
4530
3977
  if (_this6.options.autoOpen === false) {
4531
3978
  return false;
4532
3979
  }
4533
-
4534
3980
  var maxLevel = _this6.getAutoOpenMaxLevel();
4535
-
4536
3981
  var mustLoadOnDemand = false;
4537
-
4538
3982
  _this6.tree.iterate(function (node, level) {
4539
3983
  if (node.load_on_demand) {
4540
3984
  mustLoadOnDemand = true;
@@ -4546,82 +3990,66 @@ var jqtree = (function (exports) {
4546
3990
  return level !== maxLevel;
4547
3991
  }
4548
3992
  });
4549
-
4550
3993
  return mustLoadOnDemand;
4551
3994
  };
4552
-
4553
3995
  var _restoreState = restoreState(),
4554
- _restoreState2 = _slicedToArray(_restoreState, 2),
4555
- isRestored = _restoreState2[0],
4556
- mustLoadOnDemand = _restoreState2[1]; // eslint-disable-line prefer-const
4557
-
3996
+ _restoreState2 = _slicedToArray(_restoreState, 2),
3997
+ isRestored = _restoreState2[0],
3998
+ mustLoadOnDemand = _restoreState2[1]; // eslint-disable-line prefer-const
4558
3999
 
4559
4000
  if (!isRestored) {
4560
4001
  mustLoadOnDemand = autoOpenNodes();
4561
4002
  }
4562
-
4563
4003
  return mustLoadOnDemand;
4564
- } // Set the initial state for nodes that are loaded on demand
4565
- // Call cb_finished when done
4004
+ }
4566
4005
 
4006
+ // Set the initial state for nodes that are loaded on demand
4007
+ // Call cb_finished when done
4567
4008
  }, {
4568
4009
  key: "setInitialStateOnDemand",
4569
4010
  value: function setInitialStateOnDemand(cbFinished) {
4570
4011
  var _this7 = this;
4571
-
4572
4012
  var restoreState = function restoreState() {
4573
4013
  if (!_this7.options.saveState) {
4574
4014
  return false;
4575
4015
  } else {
4576
4016
  var state = _this7.saveStateHandler.getStateFromStorage();
4577
-
4578
4017
  if (!state) {
4579
4018
  return false;
4580
4019
  } else {
4581
4020
  _this7.saveStateHandler.setInitialStateOnDemand(state, cbFinished);
4582
-
4583
4021
  return true;
4584
4022
  }
4585
4023
  }
4586
4024
  };
4587
-
4588
4025
  var autoOpenNodes = function autoOpenNodes() {
4589
4026
  var maxLevel = _this7.getAutoOpenMaxLevel();
4590
-
4591
4027
  var loadingCount = 0;
4592
-
4593
4028
  var loadAndOpenNode = function loadAndOpenNode(node) {
4594
4029
  loadingCount += 1;
4595
-
4596
4030
  _this7._openNode(node, false, function () {
4597
4031
  loadingCount -= 1;
4598
4032
  openNodes();
4599
4033
  });
4600
4034
  };
4601
-
4602
4035
  var openNodes = function openNodes() {
4603
4036
  _this7.tree.iterate(function (node, level) {
4604
4037
  if (node.load_on_demand) {
4605
4038
  if (!node.is_loading) {
4606
4039
  loadAndOpenNode(node);
4607
4040
  }
4608
-
4609
4041
  return false;
4610
4042
  } else {
4611
4043
  _this7._openNode(node, false, null);
4612
-
4613
4044
  return level !== maxLevel;
4614
4045
  }
4615
4046
  });
4616
-
4617
4047
  if (loadingCount === 0) {
4618
4048
  cbFinished();
4619
4049
  }
4620
4050
  };
4621
-
4622
4051
  openNodes();
4623
4052
  };
4624
-
4625
4053
  if (!restoreState()) {
4626
4054
  autoOpenNodes();
4627
4055
  }
@@ -4644,10 +4072,8 @@ var jqtree = (function (exports) {
4644
4072
  value: function getClickTarget(element) {
4645
4073
  var $target = jQuery(element);
4646
4074
  var $button = $target.closest(".jqtree-toggler");
4647
-
4648
4075
  if ($button.length) {
4649
4076
  var _node4 = this.getNode($button);
4650
-
4651
4077
  if (_node4) {
4652
4078
  return {
4653
4079
  type: "button",
@@ -4656,10 +4082,8 @@ var jqtree = (function (exports) {
4656
4082
  }
4657
4083
  } else {
4658
4084
  var $el = $target.closest(".jqtree-element");
4659
-
4660
4085
  if ($el.length) {
4661
4086
  var _node5 = this.getNode($el);
4662
-
4663
4087
  if (_node5) {
4664
4088
  return {
4665
4089
  type: "label",
@@ -4668,14 +4092,12 @@ var jqtree = (function (exports) {
4668
4092
  }
4669
4093
  }
4670
4094
  }
4671
-
4672
4095
  return null;
4673
4096
  }
4674
4097
  }, {
4675
4098
  key: "getNode",
4676
4099
  value: function getNode($element) {
4677
4100
  var $li = $element.closest("li.jqtree_common");
4678
-
4679
4101
  if ($li.length === 0) {
4680
4102
  return null;
4681
4103
  } else {
@@ -4693,10 +4115,8 @@ var jqtree = (function (exports) {
4693
4115
  key: "selectCurrentNode",
4694
4116
  value: function selectCurrentNode(mustSetFocus) {
4695
4117
  var node = this.getSelectedNode();
4696
-
4697
4118
  if (node) {
4698
4119
  var nodeElement = this._getNodeElementForNode(node);
4699
-
4700
4120
  if (nodeElement) {
4701
4121
  nodeElement.select(mustSetFocus);
4702
4122
  }
@@ -4706,7 +4126,6 @@ var jqtree = (function (exports) {
4706
4126
  key: "deselectCurrentNode",
4707
4127
  value: function deselectCurrentNode() {
4708
4128
  var node = this.getSelectedNode();
4709
-
4710
4129
  if (node) {
4711
4130
  this.removeFromSelection(node);
4712
4131
  }
@@ -4729,7 +4148,6 @@ var jqtree = (function (exports) {
4729
4148
  return this.options.rtl;
4730
4149
  } else {
4731
4150
  var dataRtl = this.element.data("rtl");
4732
-
4733
4151
  if (dataRtl !== null && dataRtl !== false && dataRtl !== undefined) {
4734
4152
  return true;
4735
4153
  } else {
@@ -4741,27 +4159,22 @@ var jqtree = (function (exports) {
4741
4159
  key: "doSelectNode",
4742
4160
  value: function doSelectNode(node, optionsParam) {
4743
4161
  var _this8 = this;
4744
-
4745
4162
  var saveState = function saveState() {
4746
4163
  if (_this8.options.saveState) {
4747
4164
  _this8.saveStateHandler.saveState();
4748
4165
  }
4749
4166
  };
4750
-
4751
4167
  if (!node) {
4752
4168
  // Called with empty node -> deselect current node
4753
4169
  this.deselectCurrentNode();
4754
4170
  saveState();
4755
4171
  return;
4756
4172
  }
4757
-
4758
4173
  var defaultOptions = {
4759
4174
  mustSetFocus: true,
4760
4175
  mustToggle: true
4761
4176
  };
4762
-
4763
4177
  var selectOptions = _objectSpread2(_objectSpread2({}, defaultOptions), optionsParam || {});
4764
-
4765
4178
  var canSelect = function canSelect() {
4766
4179
  if (_this8.options.onCanSelectNode) {
4767
4180
  return _this8.options.selectable === true && _this8.options.onCanSelectNode(node);
@@ -4769,23 +4182,18 @@ var jqtree = (function (exports) {
4769
4182
  return _this8.options.selectable === true;
4770
4183
  }
4771
4184
  };
4772
-
4773
4185
  var openParents = function openParents() {
4774
4186
  var parent = node.parent;
4775
-
4776
4187
  if (parent && parent.parent && !parent.is_open) {
4777
4188
  _this8.openNode(parent, false);
4778
4189
  }
4779
4190
  };
4780
-
4781
4191
  if (!canSelect()) {
4782
4192
  return;
4783
4193
  }
4784
-
4785
4194
  if (this.selectNodeHandler.isNodeSelected(node)) {
4786
4195
  if (selectOptions.mustToggle) {
4787
4196
  this.deselectCurrentNode();
4788
-
4789
4197
  this._triggerEvent("tree.select", {
4790
4198
  node: null,
4791
4199
  previous_node: node
@@ -4795,47 +4203,39 @@ var jqtree = (function (exports) {
4795
4203
  var deselectedNode = this.getSelectedNode() || null;
4796
4204
  this.deselectCurrentNode();
4797
4205
  this.addToSelection(node, selectOptions.mustSetFocus);
4798
-
4799
4206
  this._triggerEvent("tree.select", {
4800
4207
  node: node,
4801
4208
  deselected_node: deselectedNode
4802
4209
  });
4803
-
4804
4210
  openParents();
4805
4211
  }
4806
-
4807
4212
  saveState();
4808
4213
  }
4809
4214
  }, {
4810
4215
  key: "doLoadData",
4811
4216
  value: function doLoadData(data, parentNode) {
4812
- if (!data) {
4813
- return;
4814
- } else {
4815
- this._triggerEvent("tree.load_data", {
4816
- tree_data: data
4817
- });
4818
-
4217
+ if (data) {
4819
4218
  if (parentNode) {
4820
4219
  this.deselectNodes(parentNode);
4821
4220
  this.loadSubtree(data, parentNode);
4822
4221
  } else {
4823
4222
  this.initTree(data);
4824
4223
  }
4825
-
4826
4224
  if (this.isDragging()) {
4827
4225
  this.dndHandler.refresh();
4828
4226
  }
4829
4227
  }
4228
+ this._triggerEvent("tree.load_data", {
4229
+ tree_data: data,
4230
+ parent_node: parentNode
4231
+ });
4830
4232
  }
4831
4233
  }, {
4832
4234
  key: "deselectNodes",
4833
4235
  value: function deselectNodes(parentNode) {
4834
4236
  var selectedNodesUnderParent = this.selectNodeHandler.getSelectedNodesUnder(parentNode);
4835
-
4836
4237
  var _iterator = _createForOfIteratorHelper(selectedNodesUnderParent),
4837
- _step;
4838
-
4238
+ _step;
4839
4239
  try {
4840
4240
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
4841
4241
  var n = _step.value;
@@ -4853,7 +4253,6 @@ var jqtree = (function (exports) {
4853
4253
  parentNode.loadFromData(data);
4854
4254
  parentNode.load_on_demand = false;
4855
4255
  parentNode.is_loading = false;
4856
-
4857
4256
  this._refreshElements(parentNode);
4858
4257
  }
4859
4258
  }, {
@@ -4866,7 +4265,6 @@ var jqtree = (function (exports) {
4866
4265
  key: "loadFolderOnDemand",
4867
4266
  value: function loadFolderOnDemand(node) {
4868
4267
  var _this9 = this;
4869
-
4870
4268
  var slide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
4871
4269
  var onFinished = arguments.length > 2 ? arguments[2] : undefined;
4872
4270
  node.is_loading = true;
@@ -4875,10 +4273,8 @@ var jqtree = (function (exports) {
4875
4273
  });
4876
4274
  }
4877
4275
  }]);
4878
-
4879
4276
  return JqTreeWidget;
4880
4277
  }(MouseWidget);
4881
-
4882
4278
  _defineProperty(JqTreeWidget, "defaults", {
4883
4279
  animationSpeed: "fast",
4884
4280
  autoEscape: true,
@@ -4925,13 +4321,10 @@ var jqtree = (function (exports) {
4925
4321
  tabIndex: 0,
4926
4322
  useContextMenu: true
4927
4323
  });
4928
-
4929
4324
  SimpleWidget.register(JqTreeWidget, "tree");
4930
4325
 
4931
4326
  exports.JqTreeWidget = JqTreeWidget;
4932
4327
 
4933
- Object.defineProperty(exports, '__esModule', { value: true });
4934
-
4935
4328
  return exports;
4936
4329
 
4937
4330
  })({});