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,192 +1,219 @@
1
1
  "use strict";
2
- /// <reference types="jest-playwright-preset" />
3
- /// <reference types="expect-playwright" />
4
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
- return new (P || (P = Promise))(function (resolve, reject) {
7
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
- step((generator = generator.apply(thisArg, _arguments || [])).next());
11
- });
12
- };
13
- var __generator = (this && this.__generator) || function (thisArg, body) {
14
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
15
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
16
- function verb(n) { return function (v) { return step([n, v]); }; }
17
- function step(op) {
18
- if (f) throw new TypeError("Generator is already executing.");
19
- while (_) try {
20
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
21
- if (y = 0, t) op = [op[0] & 2, t.value];
22
- switch (op[0]) {
23
- case 0: case 1: t = op; break;
24
- case 4: _.label++; return { value: op[1], done: false };
25
- case 5: _.label++; y = op[1]; op = [0]; continue;
26
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
27
- default:
28
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
29
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
30
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
31
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
32
- if (t[2]) _.ops.pop();
33
- _.trys.pop(); continue;
34
- }
35
- op = body.call(thisArg, _);
36
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
37
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
2
+
3
+ var _givens = _interopRequireDefault(require("givens"));
4
+
5
+ var _testUtil = require("./testUtil");
6
+
7
+ var _visualRegression = require("./visualRegression");
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
+
11
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
12
+
13
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
14
+
15
+ var given = (0, _givens["default"])();
16
+ given("dragAndDrop", function () {
17
+ return false;
18
+ });
19
+ beforeEach( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
20
+ return regeneratorRuntime.wrap(function _callee$(_context) {
21
+ while (1) {
22
+ switch (_context.prev = _context.next) {
23
+ case 0:
24
+ _context.next = 2;
25
+ return jestPlaywright.resetPage();
26
+
27
+ case 2:
28
+ _context.next = 4;
29
+ return page["goto"]("http://localhost:8080/test_index.html");
30
+
31
+ case 4:
32
+ _context.next = 6;
33
+ return page.waitForLoadState("domcontentloaded");
34
+
35
+ case 6:
36
+ _context.next = 8;
37
+ return page.evaluate(function () {
38
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
39
+ window["reportCodeCoverage"] = function () {
40
+ return null;
41
+ };
42
+ });
43
+
44
+ case 8:
45
+ _context.next = 10;
46
+ return page.evaluate("\n const $tree = jQuery(\"#tree1\");\n\n $tree.tree({\n animationSpeed: 0,\n autoOpen: 0,\n data: ExampleData.exampleData,\n dragAndDrop: ".concat(given.dragAndDrop, ",\n startDndDelay: 100,\n });\n "));
47
+
48
+ case 10:
49
+ case "end":
50
+ return _context.stop();
51
+ }
38
52
  }
39
- };
40
- exports.__esModule = true;
41
- var givens_1 = require("givens");
42
- var testUtil_1 = require("./testUtil");
43
- var visualRegression_1 = require("./visualRegression");
44
- var given = givens_1["default"]();
45
- given("dragAndDrop", function () { return false; });
46
- beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
47
- return __generator(this, function (_a) {
48
- switch (_a.label) {
49
- case 0: return [4 /*yield*/, jestPlaywright.resetPage()];
50
- case 1:
51
- _a.sent();
52
- return [4 /*yield*/, page.goto("http://localhost:8080/test_index.html")];
53
- case 2:
54
- _a.sent();
55
- return [4 /*yield*/, page.waitForLoadState("domcontentloaded")];
56
- case 3:
57
- _a.sent();
58
- // Fix error on iphone6 device when collecting coverage
59
- return [4 /*yield*/, page.evaluate(function () {
60
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
61
- window["reportCodeCoverage"] = function () { return null; };
62
- })];
63
- case 4:
64
- // Fix error on iphone6 device when collecting coverage
65
- _a.sent();
66
- return [4 /*yield*/, page.evaluate("\n const $tree = jQuery(\"#tree1\");\n\n $tree.tree({\n animationSpeed: 0,\n autoOpen: 0,\n data: ExampleData.exampleData,\n dragAndDrop: " + given.dragAndDrop + ",\n startDndDelay: 100,\n });\n ")];
67
- case 5:
68
- _a.sent();
69
- return [2 /*return*/];
70
- }
71
- });
72
- }); });
73
- afterEach(function () { return __awaiter(void 0, void 0, void 0, function () {
74
- return __generator(this, function (_a) {
75
- switch (_a.label) {
76
- case 0: return [4 /*yield*/, jestPlaywright.saveCoverage(page)];
77
- case 1:
78
- _a.sent();
79
- return [2 /*return*/];
80
- }
81
- });
82
- }); });
83
- it("displays a tree", function () { return __awaiter(void 0, void 0, void 0, function () {
84
- return __generator(this, function (_a) {
85
- switch (_a.label) {
86
- case 0: return [4 /*yield*/, expect(page).toHaveText("Saurischia")];
87
- case 1:
88
- _a.sent();
89
- return [4 /*yield*/, expect(page).toHaveText("Ornithischians")];
90
- case 2:
91
- _a.sent();
92
- return [4 /*yield*/, expect(page).toHaveText("Coelophysoids")];
93
- case 3:
94
- _a.sent();
95
- return [4 /*yield*/, visualRegression_1.matchScreenshot("displays_a_tree")];
96
- case 4:
97
- _a.sent();
98
- return [2 /*return*/];
99
- }
100
- });
101
- }); });
102
- it("selects a node", function () { return __awaiter(void 0, void 0, void 0, function () {
103
- var saurischia;
104
- return __generator(this, function (_a) {
105
- switch (_a.label) {
106
- case 0: return [4 /*yield*/, expect(page).toHaveText("Saurischia")];
107
- case 1:
108
- _a.sent();
109
- return [4 /*yield*/, testUtil_1.findNodeElement("Saurischia")];
110
- case 2:
111
- saurischia = _a.sent();
112
- return [4 /*yield*/, testUtil_1.selectNode(saurischia)];
113
- case 3:
114
- _a.sent();
115
- return [4 /*yield*/, testUtil_1.expectToBeSelected(saurischia)];
116
- case 4:
117
- _a.sent();
118
- return [4 /*yield*/, visualRegression_1.matchScreenshot("selects_a_node")];
119
- case 5:
120
- _a.sent();
121
- return [2 /*return*/];
122
- }
123
- });
124
- }); });
125
- it("opens a node", function () { return __awaiter(void 0, void 0, void 0, function () {
126
- var theropods;
127
- return __generator(this, function (_a) {
128
- switch (_a.label) {
129
- case 0: return [4 /*yield*/, expect(page).toHaveText("Saurischia")];
130
- case 1:
131
- _a.sent();
132
- return [4 /*yield*/, testUtil_1.findNodeElement("Theropods")];
133
- case 2:
134
- theropods = _a.sent();
135
- return [4 /*yield*/, testUtil_1.expectToBeClosed(theropods)];
136
- case 3:
137
- _a.sent();
138
- return [4 /*yield*/, testUtil_1.openNode(theropods)];
139
- case 4:
140
- _a.sent();
141
- return [4 /*yield*/, testUtil_1.expectToBeOpen(theropods)];
142
- case 5:
143
- _a.sent();
144
- return [4 /*yield*/, visualRegression_1.matchScreenshot("opens_a_node")];
145
- case 6:
146
- _a.sent();
147
- return [2 /*return*/];
148
- }
149
- });
150
- }); });
53
+ }, _callee);
54
+ })));
55
+ afterEach( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
56
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
57
+ while (1) {
58
+ switch (_context2.prev = _context2.next) {
59
+ case 0:
60
+ _context2.next = 2;
61
+ return jestPlaywright.saveCoverage(page);
62
+
63
+ case 2:
64
+ case "end":
65
+ return _context2.stop();
66
+ }
67
+ }
68
+ }, _callee2);
69
+ })));
70
+ it("displays a tree", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
71
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
72
+ while (1) {
73
+ switch (_context3.prev = _context3.next) {
74
+ case 0:
75
+ _context3.next = 2;
76
+ return expect(page).toMatchText(/.*Saurischia.*/);
77
+
78
+ case 2:
79
+ _context3.next = 4;
80
+ return expect(page).toMatchText(/.*Ornithischians.*/);
81
+
82
+ case 4:
83
+ _context3.next = 6;
84
+ return expect(page).toMatchText(/.*Coelophysoids.*/);
85
+
86
+ case 6:
87
+ _context3.next = 8;
88
+ return (0, _visualRegression.matchScreenshot)("displays_a_tree");
89
+
90
+ case 8:
91
+ case "end":
92
+ return _context3.stop();
93
+ }
94
+ }
95
+ }, _callee3);
96
+ })));
97
+ it("selects a node", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
98
+ var saurischia;
99
+ return regeneratorRuntime.wrap(function _callee4$(_context4) {
100
+ while (1) {
101
+ switch (_context4.prev = _context4.next) {
102
+ case 0:
103
+ _context4.next = 2;
104
+ return expect(page).toMatchText(/.*Saurischia.*/);
105
+
106
+ case 2:
107
+ _context4.next = 4;
108
+ return (0, _testUtil.findNodeElement)("Saurischia");
109
+
110
+ case 4:
111
+ saurischia = _context4.sent;
112
+ _context4.next = 7;
113
+ return (0, _testUtil.selectNode)(saurischia);
114
+
115
+ case 7:
116
+ _context4.next = 9;
117
+ return (0, _testUtil.expectToBeSelected)(saurischia);
118
+
119
+ case 9:
120
+ _context4.next = 11;
121
+ return (0, _visualRegression.matchScreenshot)("selects_a_node");
122
+
123
+ case 11:
124
+ case "end":
125
+ return _context4.stop();
126
+ }
127
+ }
128
+ }, _callee4);
129
+ })));
130
+ it("opens a node", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
131
+ var theropods;
132
+ return regeneratorRuntime.wrap(function _callee5$(_context5) {
133
+ while (1) {
134
+ switch (_context5.prev = _context5.next) {
135
+ case 0:
136
+ _context5.next = 2;
137
+ return expect(page).toMatchText(/.*Saurischia.*/);
138
+
139
+ case 2:
140
+ _context5.next = 4;
141
+ return (0, _testUtil.findNodeElement)("Theropods");
142
+
143
+ case 4:
144
+ theropods = _context5.sent;
145
+ _context5.next = 7;
146
+ return (0, _testUtil.expectToBeClosed)(theropods);
147
+
148
+ case 7:
149
+ _context5.next = 9;
150
+ return (0, _testUtil.openNode)(theropods);
151
+
152
+ case 9:
153
+ _context5.next = 11;
154
+ return (0, _testUtil.expectToBeOpen)(theropods);
155
+
156
+ case 11:
157
+ _context5.next = 13;
158
+ return (0, _visualRegression.matchScreenshot)("opens_a_node");
159
+
160
+ case 13:
161
+ case "end":
162
+ return _context5.stop();
163
+ }
164
+ }
165
+ }, _callee5);
166
+ })));
151
167
  describe("dragAndDrop", function () {
152
- given("dragAndDrop", function () { return true; });
153
- it("moves a node", function () { return __awaiter(void 0, void 0, void 0, function () {
154
- return __generator(this, function (_a) {
155
- switch (_a.label) {
156
- case 0: return [4 /*yield*/, testUtil_1.dragAndDrop("Herrerasaurians", "Ornithischians")];
157
- case 1:
158
- _a.sent();
159
- return [4 /*yield*/, testUtil_1.getTreeStructure().then(function (structure) {
160
- expect(structure).toEqual([
161
- expect.objectContaining({
162
- name: "Saurischia",
163
- children: [
164
- expect.objectContaining({ name: "Theropods" }),
165
- expect.objectContaining({ name: "Sauropodomorphs" }),
166
- ]
167
- }),
168
- expect.objectContaining({
169
- name: "Ornithischians",
170
- children: [
171
- expect.objectContaining({ name: "Herrerasaurians" }),
172
- expect.objectContaining({ name: "Heterodontosaurids" }),
173
- expect.objectContaining({ name: "Thyreophorans" }),
174
- expect.objectContaining({ name: "Ornithopods" }),
175
- expect.objectContaining({
176
- name: "Pachycephalosaurians"
177
- }),
178
- expect.objectContaining({ name: "Ceratopsians" }),
179
- ]
180
- }),
181
- ]);
182
- })];
183
- case 2:
184
- _a.sent();
185
- return [4 /*yield*/, visualRegression_1.matchScreenshot("moves_a_node")];
186
- case 3:
187
- _a.sent();
188
- return [2 /*return*/];
189
- }
190
- });
191
- }); });
192
- });
168
+ given("dragAndDrop", function () {
169
+ return true;
170
+ });
171
+ it("moves a node", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
172
+ var structure;
173
+ return regeneratorRuntime.wrap(function _callee6$(_context6) {
174
+ while (1) {
175
+ switch (_context6.prev = _context6.next) {
176
+ case 0:
177
+ _context6.next = 2;
178
+ return (0, _testUtil.dragAndDrop)("Herrerasaurians", "Ornithischians");
179
+
180
+ case 2:
181
+ _context6.next = 4;
182
+ return (0, _testUtil.getTreeStructure)();
183
+
184
+ case 4:
185
+ structure = _context6.sent;
186
+ expect(structure).toEqual([expect.objectContaining({
187
+ name: "Saurischia",
188
+ children: [expect.objectContaining({
189
+ name: "Theropods"
190
+ }), expect.objectContaining({
191
+ name: "Sauropodomorphs"
192
+ })]
193
+ }), expect.objectContaining({
194
+ name: "Ornithischians",
195
+ children: [expect.objectContaining({
196
+ name: "Herrerasaurians"
197
+ }), expect.objectContaining({
198
+ name: "Heterodontosaurids"
199
+ }), expect.objectContaining({
200
+ name: "Thyreophorans"
201
+ }), expect.objectContaining({
202
+ name: "Ornithopods"
203
+ }), expect.objectContaining({
204
+ name: "Pachycephalosaurians"
205
+ }), expect.objectContaining({
206
+ name: "Ceratopsians"
207
+ })]
208
+ })]);
209
+ _context6.next = 8;
210
+ return (0, _visualRegression.matchScreenshot)("moves_a_node");
211
+
212
+ case 8:
213
+ case "end":
214
+ return _context6.stop();
215
+ }
216
+ }
217
+ }, _callee6);
218
+ })));
219
+ });