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,220 +1,327 @@
1
1
  "use strict";
2
- exports.__esModule = true;
3
- var util_1 = require("./util");
4
- var SaveStateHandler = /** @class */ (function () {
5
- function SaveStateHandler(treeWidget) {
6
- this.treeWidget = treeWidget;
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _util = require("./util");
9
+
10
+ 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
+ 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
+
16
+ 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
+
20
+ 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
+
24
+ var SaveStateHandler = /*#__PURE__*/function () {
25
+ function SaveStateHandler(treeWidget) {
26
+ _classCallCheck(this, SaveStateHandler);
27
+
28
+ _defineProperty(this, "treeWidget", void 0);
29
+
30
+ _defineProperty(this, "_supportsLocalStorage", void 0);
31
+
32
+ this.treeWidget = treeWidget;
33
+ }
34
+
35
+ _createClass(SaveStateHandler, [{
36
+ key: "saveState",
37
+ value: function saveState() {
38
+ var state = JSON.stringify(this.getState());
39
+
40
+ if (this.treeWidget.options.onSetStateFromStorage) {
41
+ this.treeWidget.options.onSetStateFromStorage(state);
42
+ } else if (this.supportsLocalStorage()) {
43
+ localStorage.setItem(this.getKeyName(), state);
44
+ }
45
+ }
46
+ }, {
47
+ key: "getStateFromStorage",
48
+ value: function getStateFromStorage() {
49
+ var jsonData = this.loadFromStorage();
50
+
51
+ if (jsonData) {
52
+ return this.parseState(jsonData);
53
+ } else {
54
+ return null;
55
+ }
56
+ }
57
+ }, {
58
+ key: "getState",
59
+ value: function getState() {
60
+ var _this = this;
61
+
62
+ var getOpenNodeIds = function getOpenNodeIds() {
63
+ var openNodes = [];
64
+
65
+ _this.treeWidget.tree.iterate(function (node) {
66
+ if (node.is_open && node.id && node.hasChildren()) {
67
+ openNodes.push(node.id);
68
+ }
69
+
70
+ return true;
71
+ });
72
+
73
+ return openNodes;
74
+ };
75
+
76
+ var getSelectedNodeIds = function getSelectedNodeIds() {
77
+ var selectedNodeIds = [];
78
+
79
+ _this.treeWidget.getSelectedNodes().forEach(function (node) {
80
+ if (node.id != null) {
81
+ selectedNodeIds.push(node.id);
82
+ }
83
+ });
84
+
85
+ return selectedNodeIds;
86
+ };
87
+
88
+ return {
89
+ open_nodes: getOpenNodeIds(),
90
+ selected_node: getSelectedNodeIds()
91
+ };
7
92
  }
8
- SaveStateHandler.prototype.saveState = function () {
9
- var state = JSON.stringify(this.getState());
10
- if (this.treeWidget.options.onSetStateFromStorage) {
11
- this.treeWidget.options.onSetStateFromStorage(state);
12
- }
13
- else if (this.supportsLocalStorage()) {
14
- localStorage.setItem(this.getKeyName(), state);
15
- }
16
- };
17
- SaveStateHandler.prototype.getStateFromStorage = function () {
18
- var jsonData = this.loadFromStorage();
19
- if (jsonData) {
20
- return this.parseState(jsonData);
21
- }
22
- else {
23
- return null;
24
- }
25
- };
26
- SaveStateHandler.prototype.getState = function () {
27
- var _this = this;
28
- var getOpenNodeIds = function () {
29
- var openNodes = [];
30
- _this.treeWidget.tree.iterate(function (node) {
31
- if (node.is_open && node.id && node.hasChildren()) {
32
- openNodes.push(node.id);
33
- }
34
- return true;
35
- });
36
- return openNodes;
37
- };
38
- var getSelectedNodeIds = function () {
39
- var selectedNodeIds = [];
40
- _this.treeWidget.getSelectedNodes().forEach(function (node) {
41
- if (node.id != null) {
42
- selectedNodeIds.push(node.id);
43
- }
44
- });
45
- return selectedNodeIds;
46
- };
47
- return {
48
- open_nodes: getOpenNodeIds(),
49
- selected_node: getSelectedNodeIds()
50
- };
51
- };
52
93
  /*
53
94
  Set initial state
54
95
  Don't handle nodes that are loaded on demand
55
-
56
- result: must load on demand
96
+ result: must load on demand
57
97
  */
58
- SaveStateHandler.prototype.setInitialState = function (state) {
59
- if (!state) {
60
- return false;
61
- }
62
- else {
63
- var mustLoadOnDemand = false;
64
- if (state.open_nodes) {
65
- mustLoadOnDemand = this.openInitialNodes(state.open_nodes);
66
- }
67
- if (state.selected_node) {
68
- this.resetSelection();
69
- this.selectInitialNodes(state.selected_node);
70
- }
71
- return mustLoadOnDemand;
72
- }
73
- };
74
- SaveStateHandler.prototype.setInitialStateOnDemand = function (state, cbFinished) {
75
- if (state) {
76
- this.doSetInitialStateOnDemand(state.open_nodes, state.selected_node, cbFinished);
77
- }
78
- else {
79
- cbFinished();
80
- }
81
- };
82
- SaveStateHandler.prototype.getNodeIdToBeSelected = function () {
83
- var state = this.getStateFromStorage();
84
- if (state && state.selected_node) {
85
- return state.selected_node[0];
86
- }
87
- else {
88
- return null;
89
- }
90
- };
91
- SaveStateHandler.prototype.parseState = function (jsonData) {
92
- var state = JSON.parse(jsonData);
93
- // Check if selected_node is an int (instead of an array)
94
- if (state && state.selected_node && util_1.isInt(state.selected_node)) {
95
- // Convert to array
96
- state.selected_node = [state.selected_node];
97
- }
98
- return state;
99
- };
100
- SaveStateHandler.prototype.loadFromStorage = function () {
101
- if (this.treeWidget.options.onGetStateFromStorage) {
102
- return this.treeWidget.options.onGetStateFromStorage();
103
- }
104
- else if (this.supportsLocalStorage()) {
105
- return localStorage.getItem(this.getKeyName());
106
- }
107
- else {
108
- return null;
109
- }
110
- };
111
- SaveStateHandler.prototype.openInitialNodes = function (nodeIds) {
98
+
99
+ }, {
100
+ key: "setInitialState",
101
+ value: function setInitialState(state) {
102
+ if (!state) {
103
+ return false;
104
+ } else {
112
105
  var mustLoadOnDemand = false;
113
- for (var _i = 0, nodeIds_1 = nodeIds; _i < nodeIds_1.length; _i++) {
114
- var nodeDd = nodeIds_1[_i];
115
- var node = this.treeWidget.getNodeById(nodeDd);
116
- if (node) {
117
- if (!node.load_on_demand) {
118
- node.is_open = true;
119
- }
120
- else {
121
- mustLoadOnDemand = true;
122
- }
123
- }
106
+
107
+ if (state.open_nodes) {
108
+ mustLoadOnDemand = this.openInitialNodes(state.open_nodes);
124
109
  }
110
+
111
+ if (state.selected_node) {
112
+ this.resetSelection();
113
+ this.selectInitialNodes(state.selected_node);
114
+ }
115
+
125
116
  return mustLoadOnDemand;
126
- };
127
- SaveStateHandler.prototype.selectInitialNodes = function (nodeIds) {
128
- var selectCount = 0;
129
- for (var _i = 0, nodeIds_2 = nodeIds; _i < nodeIds_2.length; _i++) {
130
- var nodeId = nodeIds_2[_i];
131
- var node = this.treeWidget.getNodeById(nodeId);
132
- if (node) {
133
- selectCount += 1;
134
- this.treeWidget.selectNodeHandler.addToSelection(node);
117
+ }
118
+ }
119
+ }, {
120
+ key: "setInitialStateOnDemand",
121
+ value: function setInitialStateOnDemand(state, cbFinished) {
122
+ if (state) {
123
+ this.doSetInitialStateOnDemand(state.open_nodes, state.selected_node, cbFinished);
124
+ } else {
125
+ cbFinished();
126
+ }
127
+ }
128
+ }, {
129
+ key: "getNodeIdToBeSelected",
130
+ value: function getNodeIdToBeSelected() {
131
+ var state = this.getStateFromStorage();
132
+
133
+ if (state && state.selected_node) {
134
+ return state.selected_node[0];
135
+ } else {
136
+ return null;
137
+ }
138
+ }
139
+ }, {
140
+ key: "parseState",
141
+ value: function parseState(jsonData) {
142
+ var state = JSON.parse(jsonData); // Check if selected_node is an int (instead of an array)
143
+
144
+ if (state && state.selected_node && (0, _util.isInt)(state.selected_node)) {
145
+ // Convert to array
146
+ state.selected_node = [state.selected_node];
147
+ }
148
+
149
+ return state;
150
+ }
151
+ }, {
152
+ key: "loadFromStorage",
153
+ value: function loadFromStorage() {
154
+ if (this.treeWidget.options.onGetStateFromStorage) {
155
+ return this.treeWidget.options.onGetStateFromStorage();
156
+ } else if (this.supportsLocalStorage()) {
157
+ return localStorage.getItem(this.getKeyName());
158
+ } else {
159
+ return null;
160
+ }
161
+ }
162
+ }, {
163
+ key: "openInitialNodes",
164
+ value: function openInitialNodes(nodeIds) {
165
+ var mustLoadOnDemand = false;
166
+
167
+ var _iterator = _createForOfIteratorHelper(nodeIds),
168
+ _step;
169
+
170
+ try {
171
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
172
+ var nodeId = _step.value;
173
+ var node = this.treeWidget.getNodeById(nodeId);
174
+
175
+ if (node) {
176
+ if (!node.load_on_demand) {
177
+ node.is_open = true;
178
+ } else {
179
+ mustLoadOnDemand = true;
135
180
  }
181
+ }
136
182
  }
137
- return selectCount !== 0;
138
- };
139
- SaveStateHandler.prototype.resetSelection = function () {
140
- var selectNodeHandler = this.treeWidget.selectNodeHandler;
141
- var selectedNodes = selectNodeHandler.getSelectedNodes();
142
- selectedNodes.forEach(function (node) {
143
- selectNodeHandler.removeFromSelection(node);
144
- });
145
- };
146
- SaveStateHandler.prototype.doSetInitialStateOnDemand = function (nodeIdsParam, selectedNodes, cbFinished) {
147
- var _this = this;
148
- var loadingCount = 0;
149
- var nodeIds = nodeIdsParam;
150
- var openNodes = function () {
151
- var newNodesIds = [];
152
- for (var _i = 0, nodeIds_3 = nodeIds; _i < nodeIds_3.length; _i++) {
153
- var nodeId = nodeIds_3[_i];
154
- var node = _this.treeWidget.getNodeById(nodeId);
155
- if (!node) {
156
- newNodesIds.push(nodeId);
157
- }
158
- else {
159
- if (!node.is_loading) {
160
- if (node.load_on_demand) {
161
- loadAndOpenNode(node);
162
- }
163
- else {
164
- _this.treeWidget._openNode(node, false, null);
165
- }
166
- }
183
+ } catch (err) {
184
+ _iterator.e(err);
185
+ } finally {
186
+ _iterator.f();
187
+ }
188
+
189
+ return mustLoadOnDemand;
190
+ }
191
+ }, {
192
+ key: "selectInitialNodes",
193
+ value: function selectInitialNodes(nodeIds) {
194
+ var selectCount = 0;
195
+
196
+ var _iterator2 = _createForOfIteratorHelper(nodeIds),
197
+ _step2;
198
+
199
+ try {
200
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
201
+ var nodeId = _step2.value;
202
+ var node = this.treeWidget.getNodeById(nodeId);
203
+
204
+ if (node) {
205
+ selectCount += 1;
206
+ this.treeWidget.selectNodeHandler.addToSelection(node);
207
+ }
208
+ }
209
+ } catch (err) {
210
+ _iterator2.e(err);
211
+ } finally {
212
+ _iterator2.f();
213
+ }
214
+
215
+ return selectCount !== 0;
216
+ }
217
+ }, {
218
+ key: "resetSelection",
219
+ value: function resetSelection() {
220
+ var selectNodeHandler = this.treeWidget.selectNodeHandler;
221
+ var selectedNodes = selectNodeHandler.getSelectedNodes();
222
+ selectedNodes.forEach(function (node) {
223
+ selectNodeHandler.removeFromSelection(node);
224
+ });
225
+ }
226
+ }, {
227
+ key: "doSetInitialStateOnDemand",
228
+ value: function doSetInitialStateOnDemand(nodeIdsParam, selectedNodes, cbFinished) {
229
+ var _this2 = this;
230
+
231
+ var loadingCount = 0;
232
+ var nodeIds = nodeIdsParam;
233
+
234
+ var openNodes = function openNodes() {
235
+ var newNodesIds = [];
236
+
237
+ var _iterator3 = _createForOfIteratorHelper(nodeIds),
238
+ _step3;
239
+
240
+ try {
241
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
242
+ var nodeId = _step3.value;
243
+
244
+ var node = _this2.treeWidget.getNodeById(nodeId);
245
+
246
+ if (!node) {
247
+ newNodesIds.push(nodeId);
248
+ } else {
249
+ if (!node.is_loading) {
250
+ if (node.load_on_demand) {
251
+ loadAndOpenNode(node);
252
+ } else {
253
+ _this2.treeWidget._openNode(node, false, null);
167
254
  }
255
+ }
168
256
  }
169
- nodeIds = newNodesIds;
170
- if (_this.selectInitialNodes(selectedNodes)) {
171
- _this.treeWidget._refreshElements(null);
172
- }
173
- if (loadingCount === 0) {
174
- cbFinished();
175
- }
176
- };
177
- var loadAndOpenNode = function (node) {
178
- loadingCount += 1;
179
- _this.treeWidget._openNode(node, false, function () {
180
- loadingCount -= 1;
181
- openNodes();
182
- });
183
- };
184
- openNodes();
185
- };
186
- SaveStateHandler.prototype.getKeyName = function () {
187
- if (typeof this.treeWidget.options.saveState === "string") {
188
- return this.treeWidget.options.saveState;
257
+ }
258
+ } catch (err) {
259
+ _iterator3.e(err);
260
+ } finally {
261
+ _iterator3.f();
189
262
  }
190
- else {
191
- return "tree";
263
+
264
+ nodeIds = newNodesIds;
265
+
266
+ if (_this2.selectInitialNodes(selectedNodes)) {
267
+ _this2.treeWidget._refreshElements(null);
192
268
  }
193
- };
194
- SaveStateHandler.prototype.supportsLocalStorage = function () {
195
- var testSupport = function () {
196
- // Is local storage supported?
197
- if (localStorage == null) {
198
- return false;
199
- }
200
- else {
201
- // Check if it's possible to store an item. Safari does not allow this in private browsing mode.
202
- try {
203
- var key = "_storage_test";
204
- sessionStorage.setItem(key, "value");
205
- sessionStorage.removeItem(key);
206
- }
207
- catch (error) {
208
- return false;
209
- }
210
- return true;
211
- }
212
- };
213
- if (this._supportsLocalStorage == null) {
214
- this._supportsLocalStorage = testSupport();
269
+
270
+ if (loadingCount === 0) {
271
+ cbFinished();
272
+ }
273
+ };
274
+
275
+ var loadAndOpenNode = function loadAndOpenNode(node) {
276
+ loadingCount += 1;
277
+
278
+ _this2.treeWidget._openNode(node, false, function () {
279
+ loadingCount -= 1;
280
+ openNodes();
281
+ });
282
+ };
283
+
284
+ openNodes();
285
+ }
286
+ }, {
287
+ key: "getKeyName",
288
+ value: function getKeyName() {
289
+ if (typeof this.treeWidget.options.saveState === "string") {
290
+ return this.treeWidget.options.saveState;
291
+ } else {
292
+ return "tree";
293
+ }
294
+ }
295
+ }, {
296
+ key: "supportsLocalStorage",
297
+ value: function supportsLocalStorage() {
298
+ var testSupport = function testSupport() {
299
+ // Is local storage supported?
300
+ if (localStorage == null) {
301
+ return false;
302
+ } else {
303
+ // Check if it's possible to store an item. Safari does not allow this in private browsing mode.
304
+ try {
305
+ var key = "_storage_test";
306
+ sessionStorage.setItem(key, "value");
307
+ sessionStorage.removeItem(key);
308
+ } catch (error) {
309
+ return false;
310
+ }
311
+
312
+ return true;
215
313
  }
216
- return this._supportsLocalStorage;
217
- };
218
- return SaveStateHandler;
219
- }());
220
- exports["default"] = SaveStateHandler;
314
+ };
315
+
316
+ if (this._supportsLocalStorage == null) {
317
+ this._supportsLocalStorage = testSupport();
318
+ }
319
+
320
+ return this._supportsLocalStorage;
321
+ }
322
+ }]);
323
+
324
+ return SaveStateHandler;
325
+ }();
326
+
327
+ exports["default"] = SaveStateHandler;