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
@@ -1,4 +1,4 @@
1
- var ExampleData = {};
1
+ const ExampleData = {};
2
2
 
3
3
  ExampleData.exampleData = [
4
4
  {
@@ -24,10 +24,10 @@ ExampleData.exampleData = [
24
24
  { name: "Oviraptorosaurians", id: 12 },
25
25
  { name: "Dromaeosaurids", id: 13 },
26
26
  { name: "Troodontids", id: 14 },
27
- { name: "Avialans", id: 15 }
28
- ]
29
- }
30
- ]
27
+ { name: "Avialans", id: 15 },
28
+ ],
29
+ },
30
+ ],
31
31
  },
32
32
  {
33
33
  name: "Sauropodomorphs",
@@ -44,14 +44,14 @@ ExampleData.exampleData = [
44
44
  id: 20,
45
45
  children: [
46
46
  { name: "Brachiosaurids", id: 21 },
47
- { name: "Titanosaurians", id: 22 }
48
- ]
49
- }
50
- ]
51
- }
52
- ]
53
- }
54
- ]
47
+ { name: "Titanosaurians", id: 22 },
48
+ ],
49
+ },
50
+ ],
51
+ },
52
+ ],
53
+ },
54
+ ],
55
55
  },
56
56
  {
57
57
  name: "Ornithischians",
@@ -63,57 +63,54 @@ ExampleData.exampleData = [
63
63
  id: 25,
64
64
  children: [
65
65
  { name: "Ankylosaurians", id: 26 },
66
- { name: "Stegosaurians", id: 27 }
67
- ]
66
+ { name: "Stegosaurians", id: 27 },
67
+ ],
68
68
  },
69
69
  {
70
70
  name: "Ornithopods",
71
71
  id: 28,
72
- children: [{ name: "Hadrosaurids", id: 29 }]
72
+ children: [{ name: "Hadrosaurids", id: 29 }],
73
73
  },
74
74
  { name: "Pachycephalosaurians", id: 30 },
75
- { name: "Ceratopsians", id: 31 }
76
- ]
77
- }
75
+ { name: "Ceratopsians", id: 31 },
76
+ ],
77
+ },
78
78
  ];
79
79
 
80
- ExampleData.getFirstLevelData = function(nodes) {
80
+ ExampleData.getFirstLevelData = function (nodes) {
81
81
  if (!nodes) {
82
82
  nodes = ExampleData.exampleData;
83
83
  }
84
84
 
85
- var data = [];
85
+ const data = [];
86
86
 
87
- $.each(nodes, function() {
88
- var node = {
89
- name: this.name,
90
- id: this.id
91
- };
87
+ nodes.forEach(function (node) {
88
+ const newNode = { id: node.id, name: node.name };
92
89
 
93
- if (this.children) {
94
- node.load_on_demand = true;
90
+ if (node.children) {
91
+ newNode.load_on_demand = true;
95
92
  }
96
93
 
97
- data.push(node);
94
+ data.push(newNode);
98
95
  });
99
96
 
100
97
  return data;
101
98
  };
102
99
 
103
- ExampleData.getChildrenOfNode = function(node_id) {
104
- var result = null;
100
+ ExampleData.getChildrenOfNode = function (nodeId) {
101
+ let result = null;
105
102
 
106
103
  function iterate(nodes) {
107
- $.each(nodes, function() {
104
+ nodes.forEach(function (node) {
108
105
  if (result) {
109
106
  return;
110
107
  } else {
111
- if (this.id == node_id) {
112
- result = this;
108
+ if (node.id == nodeId) {
109
+ result = node;
113
110
  }
114
111
 
115
- if (this.children) {
116
- iterate(this.children);
112
+ if (node.children) {
113
+ iterate(node.children);
117
114
  }
118
115
  }
119
116
  });
@@ -0,0 +1,63 @@
1
+ const $tree = $("#tree1");
2
+
3
+ let foundMatch = false;
4
+
5
+ $tree.tree({
6
+ autoOpen: false,
7
+ data: ExampleData.exampleData,
8
+ useContextMenu: false,
9
+ onCreateLi: (node, $el) => {
10
+ if (foundMatch && !node.openForMatch && !node.parent.matches) {
11
+ $el.addClass("hidden-node");
12
+ }
13
+
14
+ if (node.matches) {
15
+ $el.addClass("highlight-node");
16
+ }
17
+ },
18
+ });
19
+
20
+ $("#search").on("click", () => {
21
+ const searchTerm = $("#search-term").val().toLowerCase();
22
+
23
+ if (!searchTerm) {
24
+ foundMatch = false;
25
+
26
+ tree.iterate((node) => {
27
+ node['openForMatch'] = false;
28
+ node["matches"] = false;
29
+ return true;
30
+ });
31
+
32
+ $tree.tree("refresh");
33
+ return;
34
+ }
35
+
36
+ const tree = $tree.tree("getTree");
37
+ foundMatch = false;
38
+
39
+ tree.iterate((node) => {
40
+ const matches = node.name.toLowerCase().includes(searchTerm);
41
+ node["openForMatch"] = matches;
42
+ node["matches"] = matches;
43
+
44
+ if (matches) {
45
+ foundMatch = true;
46
+
47
+ if (node.isFolder()) {
48
+ node.is_open = true;
49
+ }
50
+
51
+ let parent = node.parent;
52
+ while (parent) {
53
+ parent["openForMatch"] = true;
54
+ parent.is_open = true;
55
+ parent = parent.parent;
56
+ }
57
+ }
58
+
59
+ return true;
60
+ });
61
+
62
+ $tree.tree("refresh");
63
+ });