jqtree 1.6.1 → 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 (84) hide show
  1. package/.eslintrc +1 -0
  2. package/_config.yml +1 -1
  3. package/_entries/10_changelog.md +5 -0
  4. package/_layouts/base.html +0 -22
  5. package/babel.config.json +11 -0
  6. package/babel.coverage.config.json +4 -0
  7. package/bower.json +1 -1
  8. package/jest-browser.config.js +0 -3
  9. package/jest-jsdom.config.js +1 -2
  10. package/jqtree.css +4 -1
  11. package/jqtree.postcss +3 -0
  12. package/lib/dataLoader.js +146 -98
  13. package/lib/dragAndDropHandler.js +668 -472
  14. package/lib/elementsRenderer.js +282 -197
  15. package/lib/jqtreeOptions.js +1 -2
  16. package/lib/keyHandler.js +134 -87
  17. package/lib/mouse.widget.js +285 -186
  18. package/lib/node.js +691 -505
  19. package/lib/nodeElement.js +329 -207
  20. package/lib/playwright/playwright.test.js +216 -189
  21. package/lib/playwright/testUtil.js +429 -193
  22. package/lib/playwright/visualRegression.js +182 -117
  23. package/lib/saveStateHandler.js +311 -204
  24. package/lib/scrollHandler.js +293 -199
  25. package/lib/selectNodeHandler.js +140 -100
  26. package/lib/simple.widget.js +184 -109
  27. package/lib/test/global.d.js +3 -0
  28. package/lib/test/jqTree/create.test.js +44 -40
  29. package/lib/test/jqTree/events.test.js +185 -138
  30. package/lib/test/jqTree/keyboard.test.js +216 -199
  31. package/lib/test/jqTree/loadOnDemand.test.js +233 -157
  32. package/lib/test/jqTree/methods.test.js +1269 -1019
  33. package/lib/test/jqTree/options.test.js +467 -398
  34. package/lib/test/node.test.js +1036 -873
  35. package/lib/test/nodeUtil.test.js +21 -20
  36. package/lib/test/support/exampleData.js +35 -23
  37. package/lib/test/support/jqTreeMatchers.js +72 -54
  38. package/lib/test/support/matchers.d.js +1 -0
  39. package/lib/test/support/setupTests.js +9 -3
  40. package/lib/test/support/testUtil.js +35 -15
  41. package/lib/test/support/treeStructure.js +41 -32
  42. package/lib/test/util.test.js +21 -20
  43. package/lib/tree.jquery.d.js +1 -0
  44. package/lib/tree.jquery.js +1264 -892
  45. package/lib/types.js +1 -2
  46. package/lib/typings.d.js +2 -0
  47. package/lib/util.js +19 -8
  48. package/lib/version.js +8 -3
  49. package/package.json +42 -34
  50. package/production +4 -4
  51. package/rollup.config.js +16 -11
  52. package/src/dataLoader.ts +6 -6
  53. package/src/dragAndDropHandler.ts +0 -4
  54. package/src/elementsRenderer.ts +4 -0
  55. package/src/jqtreeOptions.ts +1 -1
  56. package/src/mouse.widget.ts +19 -15
  57. package/src/node.ts +27 -41
  58. package/src/nodeElement.ts +17 -9
  59. package/src/playwright/.eslintrc +5 -0
  60. package/src/playwright/playwright.test.ts +29 -29
  61. package/src/saveStateHandler.ts +11 -6
  62. package/src/selectNodeHandler.ts +1 -1
  63. package/src/simple.widget.ts +1 -1
  64. package/src/test/.eslintrc +4 -0
  65. package/src/test/jqTree/create.test.ts +0 -1
  66. package/src/test/jqTree/events.test.ts +0 -1
  67. package/src/test/jqTree/keyboard.test.ts +0 -1
  68. package/src/test/jqTree/loadOnDemand.test.ts +46 -1
  69. package/src/test/jqTree/methods.test.ts +35 -10
  70. package/src/test/jqTree/options.test.ts +4 -5
  71. package/src/test/node.test.ts +2 -2
  72. package/src/test/support/jqTreeMatchers.ts +8 -9
  73. package/src/test/support/matchers.d.ts +2 -4
  74. package/src/test/support/setupTests.ts +2 -1
  75. package/src/tree.jquery.d.ts +18 -12
  76. package/src/tree.jquery.ts +25 -21
  77. package/src/version.ts +1 -1
  78. package/static/example.postcss +13 -0
  79. package/static/example_data.js +33 -36
  80. package/tree.jquery.debug.js +4806 -3325
  81. package/tree.jquery.debug.js.map +1 -1
  82. package/tree.jquery.js +2 -2
  83. package/tree.jquery.js.map +1 -1
  84. package/tsconfig.json +1 -0
@@ -1,214 +1,231 @@
1
1
  "use strict";
2
- exports.__esModule = true;
3
- var $ = require("jquery");
4
- var givens_1 = require("givens");
2
+
3
+ var _givens = _interopRequireDefault(require("givens"));
4
+
5
5
  require("../../tree.jquery");
6
- var exampleData_1 = require("../support/exampleData");
6
+
7
+ var _exampleData = _interopRequireDefault(require("../support/exampleData"));
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
+
7
11
  var context = describe;
8
12
  beforeEach(function () {
9
- $("body").append('<div id="tree1"></div>');
13
+ $("body").append('<div id="tree1"></div>');
10
14
  });
11
15
  afterEach(function () {
12
- var $tree = $("#tree1");
13
- $tree.tree("destroy");
14
- $tree.remove();
16
+ var $tree = $("#tree1");
17
+ $tree.tree("destroy");
18
+ $tree.remove();
15
19
  });
16
20
  describe("keyboard support", function () {
17
- var KEY_DOWN = 40;
18
- var KEY_LEFT = 37;
19
- var KEY_RIGHT = 39;
20
- var KEY_UP = 38;
21
- var KEY_PAGE_UP = 33;
22
- var given = givens_1["default"]();
23
- given("autoOpen", function () { return false; });
24
- given("initialSelectedNode", function () { return null; });
25
- given("$tree", function () { return $("#tree1"); });
26
- beforeEach(function () {
27
- given.$tree.tree({
28
- animationSpeed: 0,
29
- autoOpen: given.autoOpen,
30
- data: exampleData_1["default"]
31
- });
32
- if (given.initialSelectedNode) {
33
- given.$tree.tree("selectNode", given.initialSelectedNode);
34
- }
35
- given.$tree.trigger($.Event("keydown", { which: given.pressedKey }));
36
- });
37
- context("with key down", function () {
38
- given("pressedKey", function () { return KEY_DOWN; });
39
- context("when a node is selected", function () {
40
- given("initialSelectedNode", function () {
41
- return given.$tree.tree("getNodeByNameMustExist", "node1");
42
- });
43
- it("selects the next node", function () {
44
- expect(given.$tree).toHaveTreeStructure([
45
- expect.objectContaining({ name: "node1", selected: false }),
46
- expect.objectContaining({ name: "node2", selected: true }),
47
- ]);
48
- });
49
- });
50
- context("when no node is selected", function () {
51
- it("does nothing", function () {
52
- expect(given.$tree.tree("getSelectedNode")).toBe(false);
53
- });
54
- });
55
- context("when the last node is selected", function () {
56
- given("initialSelectedNode", function () {
57
- return given.$tree.tree("getNodeByNameMustExist", "node2");
58
- });
59
- it("keeps the node selected", function () {
60
- expect(given.$tree.tree("getSelectedNode")).toMatchObject({
61
- name: "node2"
62
- });
63
- });
64
- });
21
+ var KEY_DOWN = 40;
22
+ var KEY_LEFT = 37;
23
+ var KEY_RIGHT = 39;
24
+ var KEY_UP = 38;
25
+ var KEY_PAGE_UP = 33;
26
+ var given = (0, _givens["default"])();
27
+ given("autoOpen", function () {
28
+ return false;
29
+ });
30
+ given("initialSelectedNode", function () {
31
+ return null;
32
+ });
33
+ given("$tree", function () {
34
+ return $("#tree1");
35
+ });
36
+ beforeEach(function () {
37
+ given.$tree.tree({
38
+ animationSpeed: 0,
39
+ autoOpen: given.autoOpen,
40
+ data: _exampleData["default"]
65
41
  });
66
- context("with key up", function () {
67
- given("pressedKey", function () { return KEY_UP; });
68
- context("when a node is selected", function () {
69
- given("initialSelectedNode", function () {
70
- return given.$tree.tree("getNodeByNameMustExist", "node2");
71
- });
72
- it("selects the next node", function () {
73
- expect(given.$tree).toHaveTreeStructure([
74
- expect.objectContaining({ name: "node1", selected: true }),
75
- expect.objectContaining({ name: "node2", selected: false }),
76
- ]);
77
- });
78
- });
79
- context("when no node is selected", function () {
80
- it("does nothing", function () {
81
- expect(given.$tree.tree("getSelectedNode")).toBe(false);
82
- });
83
- });
42
+
43
+ if (given.initialSelectedNode) {
44
+ given.$tree.tree("selectNode", given.initialSelectedNode);
45
+ }
46
+
47
+ given.$tree.trigger($.Event("keydown", {
48
+ which: given.pressedKey
49
+ }));
50
+ });
51
+ context("with key down", function () {
52
+ given("pressedKey", function () {
53
+ return KEY_DOWN;
84
54
  });
85
- context("with key right", function () {
86
- given("pressedKey", function () { return KEY_RIGHT; });
87
- context("when a closed folder is selected", function () {
88
- given("initialSelectedNode", function () {
89
- return given.$tree.tree("getNodeByNameMustExist", "node1");
90
- });
91
- it("opens the folder", function () {
92
- expect(given.$tree).toHaveTreeStructure([
93
- expect.objectContaining({
94
- name: "node1",
95
- open: true,
96
- selected: true
97
- }),
98
- expect.objectContaining({
99
- name: "node2",
100
- open: false,
101
- selected: false
102
- }),
103
- ]);
104
- });
105
- });
106
- context("when an open folder is selected", function () {
107
- given("autoOpen", function () { return true; });
108
- given("initialSelectedNode", function () {
109
- return given.$tree.tree("getNodeByNameMustExist", "node1");
110
- });
111
- it("selects the first child", function () {
112
- expect(given.$tree).toHaveTreeStructure([
113
- expect.objectContaining({
114
- name: "node1",
115
- open: true,
116
- selected: false,
117
- children: [
118
- expect.objectContaining({
119
- name: "child1",
120
- selected: true
121
- }),
122
- expect.objectContaining({
123
- name: "child2",
124
- selected: false
125
- }),
126
- ]
127
- }),
128
- expect.objectContaining({
129
- name: "node2",
130
- selected: false
131
- }),
132
- ]);
133
- });
134
- });
135
- context("when no node is selected", function () {
136
- it("does nothing", function () {
137
- expect(given.$tree.tree("getSelectedNode")).toBe(false);
138
- });
139
- });
140
- context("when a child is selected", function () {
141
- given("initialSelectedNode", function () {
142
- return given.$tree.tree("getNodeByNameMustExist", "child1");
143
- });
144
- it("does nothing", function () {
145
- expect(given.$tree.tree("getSelectedNode")).toMatchObject({
146
- name: "child1"
147
- });
148
- });
149
- });
55
+ context("when a node is selected", function () {
56
+ given("initialSelectedNode", function () {
57
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
58
+ });
59
+ it("selects the next node", function () {
60
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
61
+ name: "node1",
62
+ selected: false
63
+ }), expect.objectContaining({
64
+ name: "node2",
65
+ selected: true
66
+ })]);
67
+ });
150
68
  });
151
- context("with key left", function () {
152
- given("pressedKey", function () { return KEY_LEFT; });
153
- context("when a closed folder is selected", function () {
154
- given("initialSelectedNode", function () {
155
- return given.$tree.tree("getNodeByNameMustExist", "node3");
156
- });
157
- it("selects the previous node", function () {
158
- expect(given.$tree).toHaveTreeStructure([
159
- expect.objectContaining({
160
- name: "node1",
161
- selected: false
162
- }),
163
- expect.objectContaining({
164
- name: "node2",
165
- selected: true,
166
- children: [
167
- expect.objectContaining({
168
- name: "node3",
169
- open: false,
170
- selected: false
171
- }),
172
- ]
173
- }),
174
- ]);
175
- });
176
- });
177
- context("when an open folder is selected", function () {
178
- given("autoOpen", function () { return true; });
179
- given("initialSelectedNode", function () {
180
- return given.$tree.tree("getNodeByNameMustExist", "node2");
181
- });
182
- it("closes the folder", function () {
183
- expect(given.$tree).toHaveTreeStructure([
184
- expect.objectContaining({
185
- name: "node1",
186
- open: true,
187
- selected: false
188
- }),
189
- expect.objectContaining({
190
- name: "node2",
191
- open: false,
192
- selected: true
193
- }),
194
- ]);
195
- });
196
- });
197
- context("when no node is selected", function () {
198
- it("does nothing", function () {
199
- expect(given.$tree.tree("getSelectedNode")).toBe(false);
200
- });
201
- });
69
+ context("when no node is selected", function () {
70
+ it("does nothing", function () {
71
+ expect(given.$tree.tree("getSelectedNode")).toBe(false);
72
+ });
202
73
  });
203
- context("with page up key", function () {
204
- given("pressedKey", function () { return KEY_PAGE_UP; });
205
- given("initialSelectedNode", function () {
206
- return given.$tree.tree("getNodeByNameMustExist", "child1");
74
+ context("when the last node is selected", function () {
75
+ given("initialSelectedNode", function () {
76
+ return given.$tree.tree("getNodeByNameMustExist", "node2");
77
+ });
78
+ it("keeps the node selected", function () {
79
+ expect(given.$tree.tree("getSelectedNode")).toMatchObject({
80
+ name: "node2"
207
81
  });
208
- it("does nothing", function () {
209
- expect(given.$tree.tree("getSelectedNode")).toMatchObject({
210
- name: "child1"
211
- });
82
+ });
83
+ });
84
+ });
85
+ context("with key up", function () {
86
+ given("pressedKey", function () {
87
+ return KEY_UP;
88
+ });
89
+ context("when a node is selected", function () {
90
+ given("initialSelectedNode", function () {
91
+ return given.$tree.tree("getNodeByNameMustExist", "node2");
92
+ });
93
+ it("selects the next node", function () {
94
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
95
+ name: "node1",
96
+ selected: true
97
+ }), expect.objectContaining({
98
+ name: "node2",
99
+ selected: false
100
+ })]);
101
+ });
102
+ });
103
+ context("when no node is selected", function () {
104
+ it("does nothing", function () {
105
+ expect(given.$tree.tree("getSelectedNode")).toBe(false);
106
+ });
107
+ });
108
+ });
109
+ context("with key right", function () {
110
+ given("pressedKey", function () {
111
+ return KEY_RIGHT;
112
+ });
113
+ context("when a closed folder is selected", function () {
114
+ given("initialSelectedNode", function () {
115
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
116
+ });
117
+ it("opens the folder", function () {
118
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
119
+ name: "node1",
120
+ open: true,
121
+ selected: true
122
+ }), expect.objectContaining({
123
+ name: "node2",
124
+ open: false,
125
+ selected: false
126
+ })]);
127
+ });
128
+ });
129
+ context("when an open folder is selected", function () {
130
+ given("autoOpen", function () {
131
+ return true;
132
+ });
133
+ given("initialSelectedNode", function () {
134
+ return given.$tree.tree("getNodeByNameMustExist", "node1");
135
+ });
136
+ it("selects the first child", function () {
137
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
138
+ name: "node1",
139
+ open: true,
140
+ selected: false,
141
+ children: [expect.objectContaining({
142
+ name: "child1",
143
+ selected: true
144
+ }), expect.objectContaining({
145
+ name: "child2",
146
+ selected: false
147
+ })]
148
+ }), expect.objectContaining({
149
+ name: "node2",
150
+ selected: false
151
+ })]);
152
+ });
153
+ });
154
+ context("when no node is selected", function () {
155
+ it("does nothing", function () {
156
+ expect(given.$tree.tree("getSelectedNode")).toBe(false);
157
+ });
158
+ });
159
+ context("when a child is selected", function () {
160
+ given("initialSelectedNode", function () {
161
+ return given.$tree.tree("getNodeByNameMustExist", "child1");
162
+ });
163
+ it("does nothing", function () {
164
+ expect(given.$tree.tree("getSelectedNode")).toMatchObject({
165
+ name: "child1"
212
166
  });
167
+ });
213
168
  });
214
- });
169
+ });
170
+ context("with key left", function () {
171
+ given("pressedKey", function () {
172
+ return KEY_LEFT;
173
+ });
174
+ context("when a closed folder is selected", function () {
175
+ given("initialSelectedNode", function () {
176
+ return given.$tree.tree("getNodeByNameMustExist", "node3");
177
+ });
178
+ it("selects the previous node", function () {
179
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
180
+ name: "node1",
181
+ selected: false
182
+ }), expect.objectContaining({
183
+ name: "node2",
184
+ selected: true,
185
+ children: [expect.objectContaining({
186
+ name: "node3",
187
+ open: false,
188
+ selected: false
189
+ })]
190
+ })]);
191
+ });
192
+ });
193
+ context("when an open folder is selected", function () {
194
+ given("autoOpen", function () {
195
+ return true;
196
+ });
197
+ given("initialSelectedNode", function () {
198
+ return given.$tree.tree("getNodeByNameMustExist", "node2");
199
+ });
200
+ it("closes the folder", function () {
201
+ expect(given.$tree).toHaveTreeStructure([expect.objectContaining({
202
+ name: "node1",
203
+ open: true,
204
+ selected: false
205
+ }), expect.objectContaining({
206
+ name: "node2",
207
+ open: false,
208
+ selected: true
209
+ })]);
210
+ });
211
+ });
212
+ context("when no node is selected", function () {
213
+ it("does nothing", function () {
214
+ expect(given.$tree.tree("getSelectedNode")).toBe(false);
215
+ });
216
+ });
217
+ });
218
+ context("with page up key", function () {
219
+ given("pressedKey", function () {
220
+ return KEY_PAGE_UP;
221
+ });
222
+ given("initialSelectedNode", function () {
223
+ return given.$tree.tree("getNodeByNameMustExist", "child1");
224
+ });
225
+ it("does nothing", function () {
226
+ expect(given.$tree.tree("getSelectedNode")).toMatchObject({
227
+ name: "child1"
228
+ });
229
+ });
230
+ });
231
+ });