jqtree 1.7.4 → 1.7.5

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 (59) hide show
  1. package/.eslintrc +5 -1
  2. package/bower.json +1 -1
  3. package/docs/_config.yml +1 -1
  4. package/docs/_entries/general/changelog.md +5 -0
  5. package/docs/package.json +1 -1
  6. package/docs/pnpm-lock.yaml +30 -30
  7. package/lib/dataLoader.js +2 -3
  8. package/lib/dragAndDropHandler.js +5 -13
  9. package/lib/elementsRenderer.js +2 -3
  10. package/lib/keyHandler.js +1 -5
  11. package/lib/mouse.widget.js +1 -2
  12. package/lib/node.js +30 -39
  13. package/lib/nodeElement.js +3 -6
  14. package/lib/nodeUtils.js +10 -0
  15. package/lib/playwright/coverage.js +14 -11
  16. package/lib/playwright/playwright.test.js +482 -104
  17. package/lib/playwright/testUtils.js +75 -49
  18. package/lib/saveStateHandler.js +2 -3
  19. package/lib/scrollHandler/containerScrollParent.js +160 -0
  20. package/lib/scrollHandler/createScrollParent.js +57 -0
  21. package/lib/scrollHandler/documentScrollParent.js +169 -0
  22. package/lib/scrollHandler/scrollParent.js +58 -0
  23. package/lib/scrollHandler/types.js +1 -0
  24. package/lib/scrollHandler.js +28 -207
  25. package/lib/selectNodeHandler.js +2 -3
  26. package/lib/simple.widget.js +1 -2
  27. package/lib/test/jqTree/loadOnDemand.test.js +3 -3
  28. package/lib/test/jqTree/methods.test.js +2 -1
  29. package/lib/test/jqTree/scrollHandler/containerScrollParent.test.js +94 -0
  30. package/lib/test/node.test.js +49 -7
  31. package/lib/test/nodeUtils.test.js +20 -0
  32. package/lib/test/support/exampleData.js +1 -2
  33. package/lib/test/support/testUtil.js +3 -6
  34. package/lib/test/support/treeStructure.js +1 -2
  35. package/lib/tree.jquery.js +6 -7
  36. package/lib/util.js +4 -7
  37. package/lib/version.js +2 -3
  38. package/package.json +27 -27
  39. package/src/dragAndDropHandler.ts +27 -33
  40. package/src/keyHandler.ts +0 -8
  41. package/src/node.ts +32 -48
  42. package/src/nodeUtils.ts +10 -0
  43. package/src/playwright/playwright.test.ts +207 -15
  44. package/src/playwright/testUtils.ts +23 -15
  45. package/src/scrollHandler/containerScrollParent.ts +177 -0
  46. package/src/scrollHandler/createScrollParent.ts +50 -0
  47. package/src/scrollHandler/documentScrollParent.ts +182 -0
  48. package/src/scrollHandler/types.ts +7 -0
  49. package/src/scrollHandler.ts +25 -243
  50. package/src/test/jqTree/loadOnDemand.test.ts +2 -3
  51. package/src/test/jqTree/methods.test.ts +1 -1
  52. package/src/test/node.test.ts +84 -25
  53. package/src/test/nodeUtils.test.ts +21 -0
  54. package/src/tree.jquery.ts +27 -30
  55. package/src/version.ts +1 -1
  56. package/tree.jquery.debug.js +391 -229
  57. package/tree.jquery.debug.js.map +1 -1
  58. package/tree.jquery.js +2 -2
  59. package/tree.jquery.js.map +1 -1
package/.eslintrc CHANGED
@@ -15,6 +15,10 @@
15
15
  "@typescript-eslint/interface-name-prefix": "off",
16
16
  "@typescript-eslint/no-explicit-any": "off",
17
17
  "@typescript-eslint/no-use-before-define": "off",
18
+ "@typescript-eslint/no-unused-vars": ["error", {
19
+ "argsIgnorePattern": "^_",
20
+ "varsIgnorePattern": "^_"
21
+ }],
18
22
  "@typescript-eslint/prefer-includes": "off",
19
23
  "@typescript-eslint/triple-slash-reference": "off",
20
24
  "@typescript-eslint/prefer-string-starts-ends-with": "off",
@@ -29,6 +33,6 @@
29
33
  ]
30
34
  },
31
35
  "parserOptions": {
32
- "project": "./tsconfig.json"
36
+ "project": "./tsconfig.json",
33
37
  }
34
38
  }
package/bower.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jqTree",
3
- "version": "1.7.4",
3
+ "version": "1.7.5",
4
4
  "main": [
5
5
  "jqtree.css",
6
6
  "jqtree-circle.png",
package/docs/_config.yml CHANGED
@@ -118,7 +118,7 @@ defaults:
118
118
  values:
119
119
  layout: "example"
120
120
 
121
- jqtree_version: 1.7.4
121
+ jqtree_version: 1.7.5
122
122
 
123
123
  # Build settings
124
124
  markdown: kramdown
@@ -3,6 +3,11 @@ title: Changelog
3
3
  name: changelog
4
4
  ---
5
5
 
6
+ #### 1.7.5 (october 21 2023)
7
+
8
+ - Issue #734: fix autoscroll issue (thanks to WriterStat)
9
+ - issue #736: fix empty folder for prepend
10
+
6
11
  #### 1.7.4 (september 24 2023)
7
12
 
8
13
  - Issue #675: support toggler on the right with multiline (thanks to Odungern)
package/docs/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "devDependencies": {
13
13
  "@tailwindcss/typography": "^0.5.9",
14
14
  "autoprefixer": "^10.4.15",
15
- "postcss": "^8.4.28",
15
+ "postcss": "^8.4.31",
16
16
  "postcss-cli": "^10.1.0",
17
17
  "postcss-import": "^15.1.0",
18
18
  "postcss-load-config": "^4.0.1",
@@ -10,22 +10,22 @@ devDependencies:
10
10
  version: 0.5.9(tailwindcss@3.3.3)
11
11
  autoprefixer:
12
12
  specifier: ^10.4.15
13
- version: 10.4.15(postcss@8.4.28)
13
+ version: 10.4.15(postcss@8.4.31)
14
14
  postcss:
15
- specifier: ^8.4.28
16
- version: 8.4.28
15
+ specifier: ^8.4.31
16
+ version: 8.4.31
17
17
  postcss-cli:
18
18
  specifier: ^10.1.0
19
- version: 10.1.0(postcss@8.4.28)
19
+ version: 10.1.0(postcss@8.4.31)
20
20
  postcss-import:
21
21
  specifier: ^15.1.0
22
- version: 15.1.0(postcss@8.4.28)
22
+ version: 15.1.0(postcss@8.4.31)
23
23
  postcss-load-config:
24
24
  specifier: ^4.0.1
25
- version: 4.0.1(postcss@8.4.28)
25
+ version: 4.0.1(postcss@8.4.31)
26
26
  postcss-nested:
27
27
  specifier: ^6.0.1
28
- version: 6.0.1(postcss@8.4.28)
28
+ version: 6.0.1(postcss@8.4.31)
29
29
  tailwindcss:
30
30
  specifier: ^3.3.3
31
31
  version: 3.3.3
@@ -128,7 +128,7 @@ packages:
128
128
  resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
129
129
  dev: true
130
130
 
131
- /autoprefixer@10.4.15(postcss@8.4.28):
131
+ /autoprefixer@10.4.15(postcss@8.4.31):
132
132
  resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==}
133
133
  engines: {node: ^10 || ^12 || >=14}
134
134
  hasBin: true
@@ -140,7 +140,7 @@ packages:
140
140
  fraction.js: 4.2.1
141
141
  normalize-range: 0.1.2
142
142
  picocolors: 1.0.0
143
- postcss: 8.4.28
143
+ postcss: 8.4.31
144
144
  postcss-value-parser: 4.2.0
145
145
  dev: true
146
146
 
@@ -561,7 +561,7 @@ packages:
561
561
  engines: {node: '>= 6'}
562
562
  dev: true
563
563
 
564
- /postcss-cli@10.1.0(postcss@8.4.28):
564
+ /postcss-cli@10.1.0(postcss@8.4.31):
565
565
  resolution: {integrity: sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==}
566
566
  engines: {node: '>=14'}
567
567
  hasBin: true
@@ -574,9 +574,9 @@ packages:
574
574
  get-stdin: 9.0.0
575
575
  globby: 13.2.2
576
576
  picocolors: 1.0.0
577
- postcss: 8.4.28
578
- postcss-load-config: 4.0.1(postcss@8.4.28)
579
- postcss-reporter: 7.0.5(postcss@8.4.28)
577
+ postcss: 8.4.31
578
+ postcss-load-config: 4.0.1(postcss@8.4.31)
579
+ postcss-reporter: 7.0.5(postcss@8.4.31)
580
580
  pretty-hrtime: 1.0.3
581
581
  read-cache: 1.0.0
582
582
  slash: 5.1.0
@@ -585,29 +585,29 @@ packages:
585
585
  - ts-node
586
586
  dev: true
587
587
 
588
- /postcss-import@15.1.0(postcss@8.4.28):
588
+ /postcss-import@15.1.0(postcss@8.4.31):
589
589
  resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
590
590
  engines: {node: '>=14.0.0'}
591
591
  peerDependencies:
592
592
  postcss: ^8.0.0
593
593
  dependencies:
594
- postcss: 8.4.28
594
+ postcss: 8.4.31
595
595
  postcss-value-parser: 4.2.0
596
596
  read-cache: 1.0.0
597
597
  resolve: 1.22.4
598
598
  dev: true
599
599
 
600
- /postcss-js@4.0.1(postcss@8.4.28):
600
+ /postcss-js@4.0.1(postcss@8.4.31):
601
601
  resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
602
602
  engines: {node: ^12 || ^14 || >= 16}
603
603
  peerDependencies:
604
604
  postcss: ^8.4.21
605
605
  dependencies:
606
606
  camelcase-css: 2.0.1
607
- postcss: 8.4.28
607
+ postcss: 8.4.31
608
608
  dev: true
609
609
 
610
- /postcss-load-config@4.0.1(postcss@8.4.28):
610
+ /postcss-load-config@4.0.1(postcss@8.4.31):
611
611
  resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
612
612
  engines: {node: '>= 14'}
613
613
  peerDependencies:
@@ -620,28 +620,28 @@ packages:
620
620
  optional: true
621
621
  dependencies:
622
622
  lilconfig: 2.1.0
623
- postcss: 8.4.28
623
+ postcss: 8.4.31
624
624
  yaml: 2.3.2
625
625
  dev: true
626
626
 
627
- /postcss-nested@6.0.1(postcss@8.4.28):
627
+ /postcss-nested@6.0.1(postcss@8.4.31):
628
628
  resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
629
629
  engines: {node: '>=12.0'}
630
630
  peerDependencies:
631
631
  postcss: ^8.2.14
632
632
  dependencies:
633
- postcss: 8.4.28
633
+ postcss: 8.4.31
634
634
  postcss-selector-parser: 6.0.13
635
635
  dev: true
636
636
 
637
- /postcss-reporter@7.0.5(postcss@8.4.28):
637
+ /postcss-reporter@7.0.5(postcss@8.4.31):
638
638
  resolution: {integrity: sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==}
639
639
  engines: {node: '>=10'}
640
640
  peerDependencies:
641
641
  postcss: ^8.1.0
642
642
  dependencies:
643
643
  picocolors: 1.0.0
644
- postcss: 8.4.28
644
+ postcss: 8.4.31
645
645
  thenby: 1.3.4
646
646
  dev: true
647
647
 
@@ -665,8 +665,8 @@ packages:
665
665
  resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
666
666
  dev: true
667
667
 
668
- /postcss@8.4.28:
669
- resolution: {integrity: sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==}
668
+ /postcss@8.4.31:
669
+ resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
670
670
  engines: {node: ^10 || ^12 || >=14}
671
671
  dependencies:
672
672
  nanoid: 3.3.6
@@ -790,11 +790,11 @@ packages:
790
790
  normalize-path: 3.0.0
791
791
  object-hash: 3.0.0
792
792
  picocolors: 1.0.0
793
- postcss: 8.4.28
794
- postcss-import: 15.1.0(postcss@8.4.28)
795
- postcss-js: 4.0.1(postcss@8.4.28)
796
- postcss-load-config: 4.0.1(postcss@8.4.28)
797
- postcss-nested: 6.0.1(postcss@8.4.28)
793
+ postcss: 8.4.31
794
+ postcss-import: 15.1.0(postcss@8.4.31)
795
+ postcss-js: 4.0.1(postcss@8.4.31)
796
+ postcss-load-config: 4.0.1(postcss@8.4.31)
797
+ postcss-nested: 6.0.1(postcss@8.4.31)
798
798
  postcss-selector-parser: 6.0.13
799
799
  resolve: 1.22.4
800
800
  sucrase: 3.34.0
package/lib/dataLoader.js CHANGED
@@ -13,7 +13,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
13
13
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
14
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
15
15
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
- var DataLoader = /*#__PURE__*/function () {
16
+ var DataLoader = exports["default"] = /*#__PURE__*/function () {
17
17
  function DataLoader(treeWidget) {
18
18
  _classCallCheck(this, DataLoader);
19
19
  _defineProperty(this, "treeWidget", void 0);
@@ -120,5 +120,4 @@ var DataLoader = /*#__PURE__*/function () {
120
120
  }
121
121
  }]);
122
122
  return DataLoader;
123
- }();
124
- exports["default"] = DataLoader;
123
+ }();
@@ -22,14 +22,13 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
22
22
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
23
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
24
24
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
25
- var DragAndDropHandler = /*#__PURE__*/function () {
25
+ var DragAndDropHandler = exports.DragAndDropHandler = /*#__PURE__*/function () {
26
26
  function DragAndDropHandler(treeWidget) {
27
27
  _classCallCheck(this, DragAndDropHandler);
28
28
  _defineProperty(this, "hitAreas", void 0);
29
29
  _defineProperty(this, "isDragging", void 0);
30
30
  _defineProperty(this, "currentItem", void 0);
31
31
  _defineProperty(this, "hoveredArea", void 0);
32
- _defineProperty(this, "positionInfo", void 0);
33
32
  _defineProperty(this, "treeWidget", void 0);
34
33
  _defineProperty(this, "dragElement", void 0);
35
34
  _defineProperty(this, "previousGhost", void 0);
@@ -39,7 +38,6 @@ var DragAndDropHandler = /*#__PURE__*/function () {
39
38
  this.hitAreas = [];
40
39
  this.isDragging = false;
41
40
  this.currentItem = null;
42
- this.positionInfo = null;
43
41
  }
44
42
  _createClass(DragAndDropHandler, [{
45
43
  key: "mouseCapture",
@@ -74,7 +72,6 @@ var DragAndDropHandler = /*#__PURE__*/function () {
74
72
  var node = this.currentItem.node;
75
73
  this.dragElement = new DragElement(node.name, positionInfo.pageX - left, positionInfo.pageY - top, this.treeWidget.element, (_this$treeWidget$opti = this.treeWidget.options.autoEscape) !== null && _this$treeWidget$opti !== void 0 ? _this$treeWidget$opti : true);
76
74
  this.isDragging = true;
77
- this.positionInfo = positionInfo;
78
75
  this.currentItem.$element.addClass("jqtree-moving");
79
76
  return true;
80
77
  }
@@ -85,7 +82,6 @@ var DragAndDropHandler = /*#__PURE__*/function () {
85
82
  return false;
86
83
  }
87
84
  this.dragElement.move(positionInfo.pageX, positionInfo.pageY);
88
- this.positionInfo = positionInfo;
89
85
  var area = this.findHoveredArea(positionInfo.pageX, positionInfo.pageY);
90
86
  if (area && this.canMoveToArea(area)) {
91
87
  if (!area.node.isFolder()) {
@@ -128,7 +124,6 @@ var DragAndDropHandler = /*#__PURE__*/function () {
128
124
  this.currentItem = null;
129
125
  }
130
126
  this.isDragging = false;
131
- this.positionInfo = null;
132
127
  if (!this.hoveredArea && currentItem) {
133
128
  if (this.treeWidget.options.onDragStop) {
134
129
  this.treeWidget.options.onDragStop(currentItem.node, positionInfo.originalEvent);
@@ -330,7 +325,6 @@ var DragAndDropHandler = /*#__PURE__*/function () {
330
325
  }]);
331
326
  return DragAndDropHandler;
332
327
  }();
333
- exports.DragAndDropHandler = DragAndDropHandler;
334
328
  var VisibleNodeIterator = /*#__PURE__*/function () {
335
329
  function VisibleNodeIterator(tree) {
336
330
  _classCallCheck(this, VisibleNodeIterator);
@@ -389,7 +383,7 @@ var VisibleNodeIterator = /*#__PURE__*/function () {
389
383
  }]);
390
384
  return VisibleNodeIterator;
391
385
  }();
392
- var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
386
+ var HitAreasGenerator = exports.HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
393
387
  _inherits(HitAreasGenerator, _VisibleNodeIterator);
394
388
  var _super = _createSuper(HitAreasGenerator);
395
389
  function HitAreasGenerator(tree, currentNode, treeBottom) {
@@ -415,7 +409,8 @@ var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
415
409
  }, {
416
410
  key: "generateHitAreas",
417
411
  value: function generateHitAreas(positions) {
418
- var previousTop = -1;
412
+ var _positions$0$top, _positions$;
413
+ var previousTop = (_positions$0$top = (_positions$ = positions[0]) === null || _positions$ === void 0 ? void 0 : _positions$.top) !== null && _positions$0$top !== void 0 ? _positions$0$top : 0;
419
414
  var group = [];
420
415
  var hitAreas = [];
421
416
  var _iterator = _createForOfIteratorHelper(positions),
@@ -424,9 +419,7 @@ var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
424
419
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
425
420
  var position = _step.value;
426
421
  if (position.top !== previousTop && group.length) {
427
- if (group.length) {
428
- this.generateHitAreasForGroup(hitAreas, group, previousTop, position.top);
429
- }
422
+ this.generateHitAreasForGroup(hitAreas, group, previousTop, position.top);
430
423
  previousTop = position.top;
431
424
  group = [];
432
425
  }
@@ -560,7 +553,6 @@ var HitAreasGenerator = /*#__PURE__*/function (_VisibleNodeIterator) {
560
553
  }]);
561
554
  return HitAreasGenerator;
562
555
  }(VisibleNodeIterator);
563
- exports.HitAreasGenerator = HitAreasGenerator;
564
556
  var DragElement = /*#__PURE__*/function () {
565
557
  function DragElement(nodeName, offsetX, offsetY, $tree, autoEscape) {
566
558
  _classCallCheck(this, DragElement);
@@ -15,7 +15,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
15
15
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16
16
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
17
17
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
18
- var ElementsRenderer = /*#__PURE__*/function () {
18
+ var ElementsRenderer = exports["default"] = /*#__PURE__*/function () {
19
19
  function ElementsRenderer(treeWidget) {
20
20
  _classCallCheck(this, ElementsRenderer);
21
21
  _defineProperty(this, "openedIconElement", void 0);
@@ -264,5 +264,4 @@ var ElementsRenderer = /*#__PURE__*/function () {
264
264
  }
265
265
  }]);
266
266
  return ElementsRenderer;
267
- }();
268
- exports["default"] = ElementsRenderer;
267
+ }();
package/lib/keyHandler.js CHANGED
@@ -11,7 +11,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
11
11
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
12
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
13
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
14
- var KeyHandler = /*#__PURE__*/function () {
14
+ var KeyHandler = exports["default"] = /*#__PURE__*/function () {
15
15
  function KeyHandler(treeWidget) {
16
16
  var _this = this;
17
17
  _classCallCheck(this, KeyHandler);
@@ -94,9 +94,6 @@ var KeyHandler = /*#__PURE__*/function () {
94
94
  return true;
95
95
  } else {
96
96
  this.treeWidget.selectNode(node);
97
- if (!this.treeWidget.scrollHandler.isScrolledIntoView(jQuery(node.element).find(".jqtree-element"))) {
98
- this.treeWidget.scrollToNode(node);
99
- }
100
97
  return false;
101
98
  }
102
99
  }
@@ -108,7 +105,6 @@ var KeyHandler = /*#__PURE__*/function () {
108
105
  }]);
109
106
  return KeyHandler;
110
107
  }();
111
- exports["default"] = KeyHandler;
112
108
  _defineProperty(KeyHandler, "LEFT", 37);
113
109
  _defineProperty(KeyHandler, "UP", 38);
114
110
  _defineProperty(KeyHandler, "RIGHT", 39);
@@ -252,5 +252,4 @@ var MouseWidget = /*#__PURE__*/function (_SimpleWidget) {
252
252
  }]);
253
253
  return MouseWidget;
254
254
  }(_simple["default"]);
255
- var _default = MouseWidget;
256
- exports["default"] = _default;
255
+ var _default = exports["default"] = MouseWidget;
package/lib/node.js CHANGED
@@ -4,31 +4,31 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getPositionName = exports.getPosition = exports.Position = exports.Node = void 0;
7
+ var _nodeUtils = require("./nodeUtils");
7
8
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
8
9
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
9
10
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10
12
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11
13
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
12
14
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
13
15
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
16
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
15
17
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
17
- var Position = /*#__PURE__*/function (Position) {
18
+ var Position = exports.Position = /*#__PURE__*/function (Position) {
18
19
  Position[Position["Before"] = 1] = "Before";
19
20
  Position[Position["After"] = 2] = "After";
20
21
  Position[Position["Inside"] = 3] = "Inside";
21
22
  Position[Position["None"] = 4] = "None";
22
23
  return Position;
23
24
  }({});
24
- exports.Position = Position;
25
25
  var positionNames = {
26
26
  before: Position.Before,
27
27
  after: Position.After,
28
28
  inside: Position.Inside,
29
29
  none: Position.None
30
30
  };
31
- var getPositionName = function getPositionName(position) {
31
+ var getPositionName = exports.getPositionName = function getPositionName(position) {
32
32
  for (var name in positionNames) {
33
33
  if (Object.prototype.hasOwnProperty.call(positionNames, name)) {
34
34
  if (positionNames[name] === position) {
@@ -38,17 +38,12 @@ var getPositionName = function getPositionName(position) {
38
38
  }
39
39
  return "";
40
40
  };
41
- exports.getPositionName = getPositionName;
42
- var getPosition = function getPosition(name) {
41
+ var getPosition = exports.getPosition = function getPosition(name) {
43
42
  return positionNames[name];
44
43
  };
45
- exports.getPosition = getPosition;
46
- var isNodeRecordWithChildren = function isNodeRecordWithChildren(data) {
47
- return _typeof(data) === "object" && "children" in data && data["children"] instanceof Array;
48
- };
49
- var Node = /*#__PURE__*/function () {
44
+ var Node = exports.Node = /*#__PURE__*/function () {
50
45
  function Node() {
51
- var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
46
+ var nodeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
52
47
  var isRoot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
53
48
  var nodeClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Node;
54
49
  _classCallCheck(this, Node);
@@ -65,9 +60,9 @@ var Node = /*#__PURE__*/function () {
65
60
  _defineProperty(this, "is_loading", void 0);
66
61
  _defineProperty(this, "isEmptyFolder", void 0);
67
62
  this.name = "";
68
- this.isEmptyFolder = false;
69
63
  this.load_on_demand = false;
70
- this.setData(o);
64
+ this.isEmptyFolder = nodeData != null && (0, _nodeUtils.isNodeRecordWithChildren)(nodeData) && nodeData.children.length === 0;
65
+ this.setData(nodeData);
71
66
  this.children = [];
72
67
  this.parent = null;
73
68
  if (isRoot) {
@@ -80,9 +75,9 @@ var Node = /*#__PURE__*/function () {
80
75
  /*
81
76
  Set the data of this node.
82
77
  setData(string): set the name of the node
83
- setdata(object): set attributes of the node
78
+ setData(object): set attributes of the node
84
79
  Examples:
85
- setdata('node1')
80
+ setData('node1')
86
81
  setData({ name: 'node1', id: 1});
87
82
  setData({ name: 'node2', id: 2, color: 'green'});
88
83
  * This is an internal function; it is not in the docs
@@ -137,15 +132,11 @@ var Node = /*#__PURE__*/function () {
137
132
  _step;
138
133
  try {
139
134
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
140
- var o = _step.value;
141
- var _node = this.createNode(o);
135
+ var childData = _step.value;
136
+ var _node = this.createNode(childData);
142
137
  this.addChild(_node);
143
- if (isNodeRecordWithChildren(o)) {
144
- if (o.children.length === 0) {
145
- _node.isEmptyFolder = true;
146
- } else {
147
- _node.loadFromData(o.children);
148
- }
138
+ if ((0, _nodeUtils.isNodeRecordWithChildren)(childData)) {
139
+ _node.loadFromData(childData.children);
149
140
  }
150
141
  }
151
142
  } catch (err) {
@@ -374,9 +365,7 @@ var Node = /*#__PURE__*/function () {
374
365
  var _node2 = this.createNode(nodeInfo);
375
366
  var childIndex = this.parent.getChildIndex(this);
376
367
  this.parent.addChildAtPosition(_node2, childIndex + 1);
377
- if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {
378
- _node2.loadFromData(nodeInfo.children);
379
- }
368
+ _node2.loadChildrenFromData(nodeInfo);
380
369
  return _node2;
381
370
  }
382
371
  }
@@ -389,9 +378,7 @@ var Node = /*#__PURE__*/function () {
389
378
  var _node3 = this.createNode(nodeInfo);
390
379
  var childIndex = this.parent.getChildIndex(this);
391
380
  this.parent.addChildAtPosition(_node3, childIndex);
392
- if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {
393
- _node3.loadFromData(nodeInfo.children);
394
- }
381
+ _node3.loadChildrenFromData(nodeInfo);
395
382
  return _node3;
396
383
  }
397
384
  }
@@ -436,9 +423,7 @@ var Node = /*#__PURE__*/function () {
436
423
  value: function append(nodeInfo) {
437
424
  var node = this.createNode(nodeInfo);
438
425
  this.addChild(node);
439
- if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {
440
- node.loadFromData(nodeInfo.children);
441
- }
426
+ node.loadChildrenFromData(nodeInfo);
442
427
  return node;
443
428
  }
444
429
  }, {
@@ -446,9 +431,7 @@ var Node = /*#__PURE__*/function () {
446
431
  value: function prepend(nodeInfo) {
447
432
  var node = this.createNode(nodeInfo);
448
433
  this.addChildAtPosition(node, 0);
449
- if (isNodeRecordWithChildren(nodeInfo) && nodeInfo.children.length) {
450
- node.loadFromData(nodeInfo.children);
451
- }
434
+ node.loadChildrenFromData(nodeInfo);
452
435
  return node;
453
436
  }
454
437
  }, {
@@ -662,7 +645,7 @@ var Node = /*#__PURE__*/function () {
662
645
  var _this2 = this;
663
646
  var addNode = function addNode(nodeData) {
664
647
  _this2.setData(nodeData);
665
- if (isNodeRecordWithChildren(nodeData) && nodeData.children.length) {
648
+ if ((0, _nodeUtils.isNodeRecordWithChildren)(nodeData) && nodeData.children.length) {
666
649
  addChildren(nodeData.children);
667
650
  }
668
651
  };
@@ -711,7 +694,15 @@ var Node = /*#__PURE__*/function () {
711
694
  var nodeClass = this.getNodeClass();
712
695
  return new nodeClass(nodeData);
713
696
  }
697
+
698
+ // Load children data from nodeInfo if it has children
699
+ }, {
700
+ key: "loadChildrenFromData",
701
+ value: function loadChildrenFromData(nodeInfo) {
702
+ if ((0, _nodeUtils.isNodeRecordWithChildren)(nodeInfo) && nodeInfo.children.length) {
703
+ this.loadFromData(nodeInfo.children);
704
+ }
705
+ }
714
706
  }]);
715
707
  return Node;
716
- }();
717
- exports.Node = Node;
708
+ }();
@@ -19,7 +19,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
19
19
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
20
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
21
21
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
22
- var NodeElement = /*#__PURE__*/function () {
22
+ var NodeElement = exports.NodeElement = /*#__PURE__*/function () {
23
23
  function NodeElement(node, treeWidget) {
24
24
  _classCallCheck(this, NodeElement);
25
25
  _defineProperty(this, "node", void 0);
@@ -97,8 +97,7 @@ var NodeElement = /*#__PURE__*/function () {
97
97
  }]);
98
98
  return NodeElement;
99
99
  }();
100
- exports.NodeElement = NodeElement;
101
- var FolderElement = /*#__PURE__*/function (_NodeElement) {
100
+ var FolderElement = exports.FolderElement = /*#__PURE__*/function (_NodeElement) {
102
101
  _inherits(FolderElement, _NodeElement);
103
102
  var _super = _createSuper(FolderElement);
104
103
  function FolderElement() {
@@ -195,8 +194,7 @@ var FolderElement = /*#__PURE__*/function (_NodeElement) {
195
194
  }]);
196
195
  return FolderElement;
197
196
  }(NodeElement);
198
- exports.FolderElement = FolderElement;
199
- var BorderDropHint = /*#__PURE__*/function () {
197
+ var BorderDropHint = exports.BorderDropHint = /*#__PURE__*/function () {
200
198
  function BorderDropHint($element, scrollLeft) {
201
199
  _classCallCheck(this, BorderDropHint);
202
200
  _defineProperty(this, "$hint", void 0);
@@ -220,7 +218,6 @@ var BorderDropHint = /*#__PURE__*/function () {
220
218
  }]);
221
219
  return BorderDropHint;
222
220
  }();
223
- exports.BorderDropHint = BorderDropHint;
224
221
  var GhostDropHint = /*#__PURE__*/function () {
225
222
  function GhostDropHint(node, $element, position) {
226
223
  _classCallCheck(this, GhostDropHint);
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isNodeRecordWithChildren = void 0;
7
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
+ var isNodeRecordWithChildren = exports.isNodeRecordWithChildren = function isNodeRecordWithChildren(data) {
9
+ return _typeof(data) === "object" && "children" in data && data["children"] instanceof Array;
10
+ };