jqtree 1.5.2 → 1.6.2

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 (174) hide show
  1. package/.eslintrc +1 -0
  2. package/.github/workflows/ci.yml +54 -0
  3. package/.github/workflows/codeql-analysis.yml +28 -0
  4. package/README.md +1 -1
  5. package/_config.yml +1 -1
  6. package/_entries/10_changelog.md +20 -0
  7. package/_entries/{36_showemptynode.md → 36_showemptyfolder.md} +5 -5
  8. package/_entries/38_start_dnd_delay.md +13 -0
  9. package/_entries/{38_tabindex.md → 39_tabindex.md} +0 -0
  10. package/_entries/{39_usecontextmenu.md → 40_usecontextmenu.md} +0 -0
  11. package/_entries/{40_functions.md → 41_functions.md} +0 -0
  12. package/_entries/{41_addparentnode.md → 42_addparentnode.md} +0 -0
  13. package/_entries/{42_addnodeafter.md → 43_addnodeafter.md} +0 -0
  14. package/_entries/{43_addnodebefore.md → 44_addnodebefore.md} +0 -0
  15. package/_entries/{44_appendnode.md → 45_appendnode.md} +0 -0
  16. package/_entries/{45_closenode.md → 46_closenode.md} +0 -0
  17. package/_entries/{46_destroy.md → 47_destroy.md} +0 -0
  18. package/_entries/{47_getnodebycallback.md → 48_getnodebycallback.md} +0 -0
  19. package/_entries/{48_getnodebyid.md → 49_getnodebyid.md} +0 -0
  20. package/_entries/{49_getnodebyhtmlelement.md → 50_getnodebyhtmlelement.md} +0 -0
  21. package/_entries/{50_getselectednode.md → 51_getselectednode.md} +0 -0
  22. package/_entries/{51_getstate.md → 52_getstate.md} +0 -0
  23. package/_entries/{52_gettree.md → 53_gettree.md} +0 -0
  24. package/_entries/{53_isdragging.md → 54_isdragging.md} +0 -0
  25. package/_entries/{54_loaddata.md → 55_loaddata.md} +0 -0
  26. package/_entries/{55_loaddatafromurl.md → 56_loaddatafromurl.md} +0 -0
  27. package/_entries/{56_movedown.md → 57_movedown.md} +0 -0
  28. package/_entries/{57_movenode.md → 58_movenode.md} +0 -0
  29. package/_entries/{58_moveup.md → 59_moveup.md} +0 -0
  30. package/_entries/{59_opennode.md → 60_opennode.md} +0 -0
  31. package/_entries/{60_prependnode.md → 61_prependnode.md} +0 -0
  32. package/_entries/62_refresh.md +12 -0
  33. package/_entries/{61_reload.md → 63_reload.md} +0 -0
  34. package/_entries/{62_removenode.md → 64_removenode.md} +0 -0
  35. package/_entries/{63_selectnode.md → 65_selectnode.md} +0 -0
  36. package/_entries/{64_scrolltonode.md → 66_scrolltonode.md} +0 -0
  37. package/_entries/{65_setoption.md → 67_setoption.md} +0 -0
  38. package/_entries/{66_setstate.md → 68_setstate.md} +0 -0
  39. package/_entries/{67_toggle.md → 69_toggle.md} +0 -0
  40. package/_entries/{68_tojson.md → 70_tojson.md} +0 -0
  41. package/_entries/{69_updatenode.md → 71_updatenode.md} +0 -0
  42. package/_entries/{70_events.md → 72_events.md} +0 -0
  43. package/_entries/{71_tree-click.md → 73_tree-click.md} +0 -0
  44. package/_entries/{72_tree-close.md → 74_tree-close.md} +0 -0
  45. package/_entries/{73_tree-contextmenu.md → 75_tree-contextmenu.md} +0 -0
  46. package/_entries/{74_tree-dblclick.md → 76_tree-dblclick.md} +0 -0
  47. package/_entries/{75_tree-init.md → 77_tree-init.md} +0 -0
  48. package/_entries/{76_tree-load-data.md → 78_tree-load-data.md} +0 -0
  49. package/_entries/{77_tree-loading-data.md → 79_tree-loading-data.md} +0 -0
  50. package/_entries/{78_tree-move.md → 80_tree-move.md} +0 -0
  51. package/_entries/{79_tree-refresh.md → 81_tree-refresh.md} +0 -0
  52. package/_entries/{80_tree-open.md → 82_tree-open.md} +0 -0
  53. package/_entries/{81_tree-select.md → 83_tree-select.md} +0 -0
  54. package/_entries/{82_multiple-selection.md → 84_multiple-selection.md} +0 -0
  55. package/_entries/{83_add-to-selection.md → 85_add-to-selection.md} +0 -0
  56. package/_entries/{84_get-selected-nodes.md → 86_get-selected-nodes.md} +0 -0
  57. package/_entries/{85_is-node-selected.md → 87_is-node-selected.md} +0 -0
  58. package/_entries/{86_remove-from-selection.md → 88_remove-from-selection.md} +0 -0
  59. package/_entries/{87_node-functions.md → 89_node-functions.md} +0 -0
  60. package/_entries/{88_children.md → 90_children.md} +0 -0
  61. package/_entries/{89_getdata.md → 91_getdata.md} +0 -0
  62. package/_entries/{90_getlevel.md → 92_getlevel.md} +0 -0
  63. package/_entries/{91_getnextnode.md → 93_getnextnode.md} +0 -0
  64. package/_entries/{92_getnextsibling.md → 94_getnextsibling.md} +0 -0
  65. package/_entries/{93_getpreviousnode.md → 95_getpreviousnode.md} +0 -0
  66. package/_entries/{94_getprevioussibling.md → 96_getprevioussibling.md} +0 -0
  67. package/_entries/{95_parent.md → 97_parent.md} +0 -0
  68. package/_examples/13_drag_outside.html +2 -1
  69. package/_examples/14_filter.html +113 -0
  70. package/_layouts/base.html +1 -23
  71. package/babel.config.json +11 -0
  72. package/babel.coverage.config.json +4 -0
  73. package/bower.json +1 -1
  74. package/jest-browser.config.js +0 -3
  75. package/jest-jsdom.config.js +1 -2
  76. package/jqtree.css +4 -1
  77. package/jqtree.postcss +3 -0
  78. package/lib/dataLoader.js +146 -98
  79. package/lib/dragAndDropHandler.js +668 -470
  80. package/lib/elementsRenderer.js +282 -197
  81. package/lib/jqtreeOptions.js +1 -2
  82. package/lib/keyHandler.js +134 -87
  83. package/lib/mouse.widget.js +288 -165
  84. package/lib/node.js +693 -505
  85. package/lib/nodeElement.js +329 -205
  86. package/lib/playwright/playwright.test.js +216 -189
  87. package/lib/playwright/testUtil.js +437 -192
  88. package/lib/playwright/visualRegression.js +183 -117
  89. package/lib/saveStateHandler.js +311 -204
  90. package/lib/scrollHandler.js +293 -199
  91. package/lib/selectNodeHandler.js +140 -105
  92. package/lib/simple.widget.js +184 -109
  93. package/lib/test/global.d.js +3 -0
  94. package/lib/test/jqTree/create.test.js +44 -40
  95. package/lib/test/jqTree/events.test.js +185 -138
  96. package/lib/test/jqTree/keyboard.test.js +216 -199
  97. package/lib/test/jqTree/loadOnDemand.test.js +233 -157
  98. package/lib/test/jqTree/methods.test.js +1269 -1000
  99. package/lib/test/jqTree/options.test.js +467 -398
  100. package/lib/test/node.test.js +1036 -873
  101. package/lib/test/nodeUtil.test.js +21 -20
  102. package/lib/test/support/exampleData.js +35 -23
  103. package/lib/test/support/jqTreeMatchers.js +72 -54
  104. package/lib/test/support/matchers.d.js +1 -0
  105. package/lib/test/support/setupTests.js +9 -3
  106. package/lib/test/support/testUtil.js +38 -15
  107. package/lib/test/support/treeStructure.js +41 -32
  108. package/lib/test/util.test.js +21 -20
  109. package/lib/tree.jquery.d.js +1 -0
  110. package/lib/tree.jquery.js +1264 -883
  111. package/lib/types.js +1 -2
  112. package/lib/typings.d.js +2 -0
  113. package/lib/util.js +21 -7
  114. package/lib/version.js +8 -3
  115. package/package.json +43 -36
  116. package/production +4 -4
  117. package/rollup.config.js +16 -11
  118. package/src/dataLoader.ts +6 -6
  119. package/src/dragAndDropHandler.ts +0 -4
  120. package/src/elementsRenderer.ts +4 -0
  121. package/src/jqtreeOptions.ts +33 -32
  122. package/src/mouse.widget.ts +58 -29
  123. package/src/node.ts +32 -46
  124. package/src/nodeElement.ts +17 -9
  125. package/src/playwright/.eslintrc +5 -0
  126. package/src/playwright/playwright.test.ts +30 -30
  127. package/src/playwright/testUtil.ts +36 -37
  128. package/src/saveStateHandler.ts +11 -6
  129. package/src/selectNodeHandler.ts +14 -21
  130. package/src/simple.widget.ts +1 -1
  131. package/src/test/.eslintrc +4 -0
  132. package/src/test/jqTree/create.test.ts +0 -1
  133. package/src/test/jqTree/events.test.ts +12 -13
  134. package/src/test/jqTree/keyboard.test.ts +0 -1
  135. package/src/test/jqTree/loadOnDemand.test.ts +46 -1
  136. package/src/test/jqTree/methods.test.ts +67 -18
  137. package/src/test/jqTree/options.test.ts +5 -6
  138. package/src/test/node.test.ts +2 -2
  139. package/src/test/support/jqTreeMatchers.ts +8 -9
  140. package/src/test/support/matchers.d.ts +2 -4
  141. package/src/test/support/setupTests.ts +2 -1
  142. package/src/tree.jquery.d.ts +19 -13
  143. package/src/tree.jquery.ts +63 -57
  144. package/src/version.ts +1 -1
  145. package/static/bower.json +3 -3
  146. package/static/bower_components/fontawesome/css/all.min.css +2 -2
  147. package/static/bower_components/fontawesome/webfonts/fa-brands-400.eot +0 -0
  148. package/static/bower_components/fontawesome/webfonts/fa-brands-400.svg +774 -627
  149. package/static/bower_components/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  150. package/static/bower_components/fontawesome/webfonts/fa-brands-400.woff +0 -0
  151. package/static/bower_components/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  152. package/static/bower_components/fontawesome/webfonts/fa-regular-400.eot +0 -0
  153. package/static/bower_components/fontawesome/webfonts/fa-regular-400.svg +93 -95
  154. package/static/bower_components/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  155. package/static/bower_components/fontawesome/webfonts/fa-regular-400.woff +0 -0
  156. package/static/bower_components/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  157. package/static/bower_components/fontawesome/webfonts/fa-solid-900.eot +0 -0
  158. package/static/bower_components/fontawesome/webfonts/fa-solid-900.svg +1164 -1074
  159. package/static/bower_components/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  160. package/static/bower_components/fontawesome/webfonts/fa-solid-900.woff +0 -0
  161. package/static/bower_components/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  162. package/static/bower_components/jquery/dist/jquery.js +118 -109
  163. package/static/bower_components/jquery/dist/jquery.min.js +2 -2
  164. package/static/bower_components/jquery-mockjax/dist/jquery.mockjax.js +15 -9
  165. package/static/example.css +13 -0
  166. package/static/example.postcss +13 -0
  167. package/static/example_data.js +33 -36
  168. package/static/examples/filter.js +63 -0
  169. package/tree.jquery.debug.js +4809 -3305
  170. package/tree.jquery.debug.js.map +1 -1
  171. package/tree.jquery.js +3 -3
  172. package/tree.jquery.js.map +1 -1
  173. package/tsconfig.json +1 -0
  174. package/.travis.yml +0 -18
package/lib/dataLoader.js CHANGED
@@ -1,102 +1,150 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
9
+
10
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
+
12
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13
+
14
+ 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); } }
15
+
16
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
17
+
18
+ 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; }
19
+
20
+ var DataLoader = /*#__PURE__*/function () {
21
+ function DataLoader(treeWidget) {
22
+ _classCallCheck(this, DataLoader);
23
+
24
+ _defineProperty(this, "treeWidget", void 0);
25
+
26
+ this.treeWidget = treeWidget;
27
+ }
28
+
29
+ _createClass(DataLoader, [{
30
+ key: "loadFromUrl",
31
+ value: function loadFromUrl(urlInfo, parentNode, onFinished) {
32
+ var _this = this;
33
+
34
+ if (!urlInfo) {
35
+ return;
36
+ }
37
+
38
+ var $el = this.getDomElement(parentNode);
39
+ this.addLoadingClass($el);
40
+ this.notifyLoading(true, parentNode, $el);
41
+
42
+ var stopLoading = function stopLoading() {
43
+ _this.removeLoadingClass($el);
44
+
45
+ _this.notifyLoading(false, parentNode, $el);
46
+ };
47
+
48
+ var handleSuccess = function handleSuccess(data) {
49
+ stopLoading();
50
+
51
+ _this.treeWidget.loadData(_this.parseData(data), parentNode);
52
+
53
+ if (onFinished && typeof onFinished === "function") {
54
+ onFinished();
8
55
  }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- exports.__esModule = true;
14
- var DataLoader = /** @class */ (function () {
15
- function DataLoader(treeWidget) {
16
- this.treeWidget = treeWidget;
17
- }
18
- DataLoader.prototype.loadFromUrl = function (urlInfo, parentNode, onFinished) {
19
- var _this = this;
20
- if (!urlInfo) {
21
- return;
22
- }
23
- var $el = this.getDomElement(parentNode);
24
- this.addLoadingClass($el);
25
- this.notifyLoading(true, parentNode, $el);
26
- var stopLoading = function () {
27
- _this.removeLoadingClass($el);
28
- _this.notifyLoading(false, parentNode, $el);
29
- };
30
- var handleSuccess = function (data) {
31
- stopLoading();
32
- _this.treeWidget.loadData(_this.parseData(data), parentNode);
33
- if (onFinished && typeof onFinished === "function") {
34
- onFinished();
35
- }
36
- };
37
- var handleError = function (jqXHR) {
38
- stopLoading();
39
- if (_this.treeWidget.options.onLoadFailed) {
40
- _this.treeWidget.options.onLoadFailed(jqXHR);
41
- }
42
- };
43
- this.submitRequest(urlInfo, handleSuccess, handleError);
44
- };
45
- DataLoader.prototype.addLoadingClass = function ($el) {
46
- if ($el) {
47
- $el.addClass("jqtree-loading");
48
- }
49
- };
50
- DataLoader.prototype.removeLoadingClass = function ($el) {
51
- if ($el) {
52
- $el.removeClass("jqtree-loading");
53
- }
54
- };
55
- DataLoader.prototype.getDomElement = function (parentNode) {
56
- if (parentNode) {
57
- return jQuery(parentNode.element);
58
- }
59
- else {
60
- return this.treeWidget.element;
61
- }
62
- };
63
- DataLoader.prototype.notifyLoading = function (isLoading, node, $el) {
64
- if (this.treeWidget.options.onLoading) {
65
- this.treeWidget.options.onLoading(isLoading, node, $el);
66
- }
67
- this.treeWidget._triggerEvent("tree.loading_data", {
68
- isLoading: isLoading,
69
- node: node,
70
- $el: $el
71
- });
72
- };
73
- DataLoader.prototype.submitRequest = function (urlInfoInput, handleSuccess, handleError) {
74
- var _a;
75
- var urlInfo = typeof urlInfoInput === "string"
76
- ? { url: urlInfoInput }
77
- : urlInfoInput;
78
- var ajaxSettings = __assign({ method: "GET", cache: false, dataType: "json", success: handleSuccess, error: handleError }, urlInfo);
79
- ajaxSettings.method = ((_a = ajaxSettings.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) || "GET";
80
- void jQuery.ajax(ajaxSettings);
81
- };
82
- DataLoader.prototype.parseData = function (data) {
83
- var dataFilter = this.treeWidget.options.dataFilter;
84
- var getParsedData = function () {
85
- if (typeof data === "string") {
86
- return JSON.parse(data);
87
- }
88
- else {
89
- return data;
90
- }
91
- };
92
- var parsedData = getParsedData();
93
- if (dataFilter) {
94
- return dataFilter(parsedData);
56
+ };
57
+
58
+ var handleError = function handleError(jqXHR) {
59
+ stopLoading();
60
+
61
+ if (_this.treeWidget.options.onLoadFailed) {
62
+ _this.treeWidget.options.onLoadFailed(jqXHR);
95
63
  }
96
- else {
97
- return parsedData;
64
+ };
65
+
66
+ this.submitRequest(urlInfo, handleSuccess, handleError);
67
+ }
68
+ }, {
69
+ key: "addLoadingClass",
70
+ value: function addLoadingClass($el) {
71
+ if ($el) {
72
+ $el.addClass("jqtree-loading");
73
+ }
74
+ }
75
+ }, {
76
+ key: "removeLoadingClass",
77
+ value: function removeLoadingClass($el) {
78
+ if ($el) {
79
+ $el.removeClass("jqtree-loading");
80
+ }
81
+ }
82
+ }, {
83
+ key: "getDomElement",
84
+ value: function getDomElement(parentNode) {
85
+ if (parentNode) {
86
+ return jQuery(parentNode.element);
87
+ } else {
88
+ return this.treeWidget.element;
89
+ }
90
+ }
91
+ }, {
92
+ key: "notifyLoading",
93
+ value: function notifyLoading(isLoading, node, $el) {
94
+ if (this.treeWidget.options.onLoading) {
95
+ this.treeWidget.options.onLoading(isLoading, node, $el);
96
+ }
97
+
98
+ this.treeWidget._triggerEvent("tree.loading_data", {
99
+ isLoading: isLoading,
100
+ node: node,
101
+ $el: $el
102
+ });
103
+ }
104
+ }, {
105
+ key: "submitRequest",
106
+ value: function submitRequest(urlInfoInput, handleSuccess, handleError) {
107
+ var _ajaxSettings$method;
108
+
109
+ var urlInfo = typeof urlInfoInput === "string" ? {
110
+ url: urlInfoInput
111
+ } : urlInfoInput;
112
+
113
+ var ajaxSettings = _objectSpread({
114
+ method: "GET",
115
+ cache: false,
116
+ dataType: "json",
117
+ success: handleSuccess,
118
+ error: handleError
119
+ }, urlInfo);
120
+
121
+ ajaxSettings.method = ((_ajaxSettings$method = ajaxSettings.method) === null || _ajaxSettings$method === void 0 ? void 0 : _ajaxSettings$method.toUpperCase()) || "GET";
122
+ void jQuery.ajax(ajaxSettings);
123
+ }
124
+ }, {
125
+ key: "parseData",
126
+ value: function parseData(data) {
127
+ var dataFilter = this.treeWidget.options.dataFilter;
128
+
129
+ var getParsedData = function getParsedData() {
130
+ if (typeof data === "string") {
131
+ return JSON.parse(data);
132
+ } else {
133
+ return data;
98
134
  }
99
- };
100
- return DataLoader;
101
- }());
102
- exports["default"] = DataLoader;
135
+ };
136
+
137
+ var parsedData = getParsedData();
138
+
139
+ if (dataFilter) {
140
+ return dataFilter(parsedData);
141
+ } else {
142
+ return parsedData;
143
+ }
144
+ }
145
+ }]);
146
+
147
+ return DataLoader;
148
+ }();
149
+
150
+ exports["default"] = DataLoader;