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